IP Library Granted Patent US 12,639,171
Granted Patent B2
US 12,639,171 · App. 18/736,305 · Granted May 26, 2026

Examining a cloud-based storage system using codified states

Inventors: Arun Theebaprakasam (Fremont, CA); Grigori Inozemtsev (Los Gatos, CA); Neelesh Thakur (San Jose, CA); Swapnil Nagle (Sunnyvale, CA); Joshua Freilich (Kalaheo, HI); Naveen Neelakantam (Mountain View, CA)
Assignee: EVERPURE, INC.
G06F11/1464G06F3/0619G06F3/0629G06F3/067G06F11/1451G06F11/1469G06F2201/84
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,639,171
App. No.
18/736,305
Filed
Jun 6, 2024
Granted
May 26, 2026
Kind
B2
Art Unit
2196
USPC
711/162
Abstract

Examining a cloud-based storage system using codified states includes generating an enumeration of a plurality of resources of the cloud-based storage system; comparing the enumeration to a codified state for the cloud-based storage system; and identifying, based on the comparison, a difference between the enumeration and the codified state.

Claims (34)

1 . A method comprising:

generating an enumeration of a plurality of resources of a cloud-based storage system, wherein the enumeration identifies resources that are currently allocated to the cloud-based storage system;

comparing the enumeration to a configuration template of a plurality of configuration templates that represent different collections of resources allocated to the cloud-based storage system during different implementation states;

identifying, based on the comparing, one or more differences between the enumeration and the configuration template of the plurality of configuration templates; and

configuring, in response to identifying the one or more differences between the enumeration and the configuration template, a resource allocation of the cloud-based storage system to reflect the configuration template of the plurality of configuration templates, wherein configuring the resource allocation of the cloud-based storage system comprises updating the resource allocation for the cloud-based storage system according to the configuration template by causing a controller in the cloud-based storage system to provision or remove a cloud computing resource indicated by the one or more differences between the enumeration and the configuration template to align the resources of the cloud-based storage system in the enumeration with the configuration template associated with a particular implementation state.

2 . The method of claim 1 , wherein the plurality of configuration templates comprise an Infrastructure as Code (IaC) configuration template.

3 . The method of claim 1 , further comprising identifying a resource included in the configuration template and excluded from the enumeration, and the method further comprises adding the resource in the cloud-based storage system.

4 . The method of claim 3 , further comprising issuing an alert indicating a difference between the configuration template and the enumeration.

5 . The method of claim 1 , further comprising identifying a resource excluded from the configuration template and included in the enumeration, and the method further comprises configuring the cloud-based storage system to use the resource.

6 . The method of claim 1 , further comprising assigning, to each resource of a plurality of resources, a corresponding tag.

7 . The method of claim 6 , wherein generating the enumeration comprises querying the cloud-based storage system for each corresponding tag for the plurality of resources.

8 . An apparatus comprising:

a memory; and

a processor, operatively coupled to the memory, configured to:

generate an enumeration of a plurality of resources of a cloud-based storage system, wherein the enumeration identifies resources that are currently allocated to the cloud-based storage system;

compare the enumeration to a configuration template of a plurality of configuration templates that represent different collections of resources allocated to the cloud-based storage system during different implementation states;

identify, based on the comparing, one or more differences between the enumeration and the configuration template of the plurality of configuration templates; and

configure, in response to identifying the one or more differences between the enumeration and the configuration template, a resource allocation of the cloud-based storage system to reflect the configuration template of the plurality of configuration templates, wherein configuring the resource allocation of the cloud-based storage system comprises updating the resource allocation for the cloud-based storage system according to the configuration template by causing a controller in the cloud-based storage system to provision or remove a cloud computing resource indicated by the one or more differences between the enumeration and the configuration template to align the resources of the cloud-based storage system in the enumeration with the configuration template associated with a particular implementation state.

9 . The apparatus of claim 8 , wherein one or more of the plurality of configuration templates comprises an Infrastructure as Code (IaC) configuration template.

10 . The apparatus of claim 8 , the processor further configured to identify a resource included in the configuration template and excluded from the enumeration, and to add the resource in the cloud-based storage system.

11 . The apparatus of claim 8 , the processor further configured to issue an alert indicating a difference between the configuration template and the enumeration.

12 . The apparatus of claim 8 , the processor further configured to identify a resource excluded from the configuration template and included in the enumeration, and to configure the cloud-based storage system to use the resource.

13 . The apparatus of claim 8 , the processor further configured to assign, to each resource of a plurality of resources, a corresponding tag.

14 . The apparatus of claim 13 , wherein the processor configured to generate the enumeration comprises querying the cloud-based storage system for each corresponding tag for the plurality of resources.

15 . A non-transitory computer readable storage medium storing instructions, which when executed, cause a processor to:

generate an enumeration of a plurality of resources of a cloud-based storage system, wherein the enumeration identifies resources that are currently allocated to the cloud-based storage system;

compare the enumeration to a configuration template of a plurality of configuration templates that represent different collections of resources allocated to the cloud-based storage system during different implementation states;

identify, based on the comparing, one or more differences between the enumeration and the configuration template of the plurality of configuration templates; and

configure, in response to identifying the one or more differences between the enumeration and the configuration template, a resource allocation of the cloud-based storage system to reflect the configuration template of the plurality of configuration templates, wherein configuring the resource allocation of the cloud-based storage system comprises updating the resource allocation for the cloud-based storage system according to the configuration template by causing a controller in the cloud-based storage system to provision or remove a cloud computing resource indicated by the one or more differences between the enumeration and the configuration template to align the resources of the cloud-based storage system in the enumeration with the configuration template associated with a particular implementation state.

16 . The non-transitory computer readable storage medium of claim 15 , wherein one or more of the plurality of configuration templates comprise an Infrastructure as Code (IaC) configuration template.

17 . The non-transitory computer readable storage medium of claim 15 , the processor further configured to identify a resource included in the particular implementation state and excluded from the enumeration, and to add the resource in the cloud-based storage system.

18 . The non-transitory computer readable storage medium of claim 15 , the processor further configured to issue an alert indicating a difference between the configuration template and the enumeration.

19 . The non-transitory computer readable storage medium of claim 15 , the processor further configured to identify a resource excluded from the configuration template and included in the enumeration, and to configure the cloud-based storage system to use the resource.

20 . The non-transitory computer readable storage medium of claim 15 , the processor further configured to assign, to each resource of a plurality of resources, a corresponding tag.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 7, 2024
From: THEEBAPRAKASAM, ARUN; INOZEMTSEV, GRIGORI; THAKUR, NEELESH; NAGLE, SWAPNIL; FREILICH, JOSHUA; NEELAKANTAM, NAVEEN
To: PURE STORAGE, INC.
Reel/Frame 067652/0840 →
Continuity (5)
Continuation 16655624 · Oct 17, 2019
Continuation In Part 16458481 · Jul 1, 2019
Provisional Application 62769277 · Nov 19, 2018
Provisional Application 62768952 · Nov 18, 2018
Related Publication 20240330122A1 · Oct 3, 2024
References Cited (46)
US 7975115B2 · Wayda et al. · 2011 [cited by applicant]
US 8504797B2 · Mimatsu · 2013 [cited by applicant]
US 8775626B2 · Teather · 2014 [cited by examiner]
US 8822155B2 · Sukumar et al. · 2014 [cited by applicant]
US 9280678B2 · Redberg · 2016 [cited by applicant]
US 9395922B2 · Nishikido et al. · 2016 [cited by applicant]
US 9535629B1 · DeSimone · 2017 [cited by examiner]
US 10148527B2 · Cimprich · 2018 [cited by examiner]
US 10200246B1 · Rachamadugu · 2019 [cited by examiner]
US 10324639B2 · Seo · 2019 [cited by applicant]
US 10567406B2 · Astigarraga et al. · 2020 [cited by applicant]
US 10846137B2 · Vallala et al. · 2020 [cited by applicant]
US 10877683B2 · Wu et al. · 2020 [cited by applicant]
US 11076509B2 · Alissa et al. · 2021 [cited by applicant]
US 11106810B2 · Natanzon et al. · 2021 [cited by applicant]
US 11194707B2 · Stalzer · 2021 [cited by applicant]
US 11233847B1 · Viccari · 2022 [cited by examiner]
US 20040045001A1 · Bryant · 2004 [cited by examiner]
US 20080028048A1 · Shekar Cs · 2008 [cited by examiner]
US 20080256141A1 · Wayda et al. · 2008 [cited by applicant]
US 20100042720A1 · Stienhans · 2010 [cited by examiner]
US 20100306500A1 · Mimatsu · 2010 [cited by applicant]
US 20110035540A1 · Fitzgerald et al. · 2011 [cited by applicant]
US 20130036208A1 · Dochez · 2013 [cited by examiner]
US 20140220561A1 · Sukumar et al. · 2014 [cited by applicant]
US 20150154418A1 · Redberg · 2015 [cited by applicant]
US 20150199211A1 · Yang · 2015 [cited by examiner]
US 20160026397A1 · Nishikido et al. · 2016 [cited by applicant]
US 20160182542A1 · Staniford · 2016 [cited by applicant]
US 20160248631A1 · Duchesneau · 2016 [cited by applicant]
US 20170026416A1 · Carpenter · 2017 [cited by examiner]
US 20170153906A1 · Bektas · 2017 [cited by examiner]
US 20170207968A1 · Eicken · 2017 [cited by examiner]
US 20170262202A1 · Seo · 2017 [cited by applicant]
US 20180054454A1 · Astigarraga et al. · 2018 [cited by applicant]
US 20180069804A1 · Laplanche · 2018 [cited by examiner]
US 20180081562A1 · Vasudevan · 2018 [cited by applicant]
US 20190166007A1 · Sundaram · 2019 [cited by examiner]
US 20190220315A1 · Vallala et al. · 2019 [cited by applicant]
US 20200034560A1 · Natanzon et al. · 2020 [cited by applicant]
US 20200326871A1 · Wu et al. · 2020 [cited by applicant]
US 20210360833A1 · Alissa et al. · 2021 [cited by applicant]
Hwang K., et al., “RAID-x: A New Distributed Disk Array for I/O-Centric Cluster Computing,” Proceedings of The Ninth International Symposium On High-performance Distributed Computing, IEEE Computer Society, Los Alamitos… [cited by applicant]
Microsoft, “Hybrid Identity Management”, Microsoft (online), Apr. 2014, 2 pages, URL: download.microsoft.com/download/E/A/E/EAE57CD1-A80B-423C-96BB-142FAAC630B9/Hybrid_Identity_Datasheet.pdf. [cited by applicant]
Stalzer M.A., “FlashBlades: System Architecture and Applications,” Proceedings of the 2nd Workshop on Architectures and Systems for Big Data, Association for Computing Machinery, New York, NY, 2012, pp. 10-14. [cited by applicant]
Storer M.W., et al., “Pergamum: Replacing Tape with Energy Efficient, Reliable, Disk-Based Archival Storage,” 6th Usenix Conference on File And Storage Technologies (FAST'08), San Jose, CA, USA, Feb. 26-29, 2008, 16 Pag… [cited by applicant]