IP Library Granted Patent US 12,386,675
Granted Patent B2
US 12,386,675 · App. 17/877,766 · Granted Aug 12, 2025

Orchestration of operations on a cloud platform based on multiple version maps of services

Inventors: Christopher Steven Moyes (San Mateo, CA); Zemann Phoesop Sheen (San Francisco, CA); Srinivas Dhruvakumar (Vancouver, CA); Mayakrishnan Chakkarapani (Fremont, CA)
Assignee: Salesforce, Inc.
G06F9/5072G06F8/71G06F8/60
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,386,675
App. No.
17/877,766
Granted
Aug 12, 2025
Kind
B2
Abstract

Computing systems, for example, multi-tenant systems deploy software artifacts in datacenters created in a cloud platform. The system receives multiple version maps. Each version map provides version information for a particular context associated with the datacenter. The context may specify a target environment, a target datacenter entity, or a target action to be performed on the cloud platform. The system generates an aggregate pipeline comprising a hierarchy of pipelines. The system generates an aggregate version map associating datacenter entities of the datacenter with versions of software artifacts targeted for deployment on the datacenter entities and versions of pipelines. The system executes the aggregate pipeline in conjunction with the aggregate version map to perform requested operations on the datacenter configured on the cloud platform, for example, provisioning resources or deploying services.

Claims (75)

1. A computer-implemented method for performing operations on a cloud platform, the method comprising:

receiving a request to perform an operation on a datacenter configured on the cloud platform, the datacenter associated with a set of services executing on the cloud platform;

for a particular service from the set of services, receiving a plurality of version maps, wherein each version map provides version information for a particular context associated with the datacenter;

creating an aggregate version map for the requested operation, comprising, selecting for the particular service, a particular version map from the plurality of version maps, the selection based on a relevance of the particular version map for a current context for the requested operation;

generating an aggregate pipeline based on the aggregate version map;

collecting a set of software artifacts according to the aggregate version map; and

executing the aggregate pipeline to perform the requested operation for the datacenter, the aggregate pipeline performing the requested operation based on the set of software artifacts.

2. The computer-implemented method of claim 1 , further comprising:

receiving a declarative specification describing a target configuration of datacenter entities for the datacenter;

accessing the datacenter to extract information describing datacenter entities currently available in the datacenter; and

comparing the information extracted from the datacenter with the declarative specification to identify the datacenter entity on which the operation is requested to be performed.

3. The computer-implemented method of claim 2 , further comprising:

determining a failure of execution of the aggregate pipeline; and

restarting execution of the aggregate pipeline, the restarting comprising, skipping execution of a stage of a pipeline responsive to determining based on the extracted information of the datacenter that the execution of the stage was previously completed.

4. The computer-implemented method of claim 1 , wherein the particular context specifies one or more of:

a target environment,

a target datacenter entity, or

a target action to be performed on the cloud platform.

5. The computer-implemented method of claim 1 , wherein the operation requested to be performed on the datacenter is one of:

provisioning a software artifact on the cloud platform,

deploying a software artifact on the cloud platform, or

patching a software artifact on the cloud platform.

6. The computer-implemented method of claim 1 , wherein the particular version map specifies one or more of: a version of a pipeline to be used and a version of a software artifact to be used for the particular context, the particular context represented using one or more of: a target environment, a target datacenter entity, or a target action to be performed on the cloud platform.

7. The computer-implemented method of claim 1 , wherein, the datacenter comprises a hierarchy of datacenter entities, wherein each datacenter entity comprises one or more of (1) a service or (2) one or more other datacenter entities.

8. The computer-implemented method of claim 1 , further comprising:

performing a topological sort of services in a datacenter entity based on dependencies

configuring the datacenter on a cloud platform based on a cloud platform independent declarative specification; and

generating an aggregate pipeline comprising a hierarchy of pipelines, the hierarchy of pipelines configured for performing the operation on the datacenter configured on the cloud platform.

9. A non-transitory computer readable storage medium for storing instructions that when executed by a computer processor cause the computer processor to perform steps for deploying software artifacts for services executing in datacenters configured on a cloud platform, the steps comprising:

receiving a request to perform an operation on a datacenter configured on the cloud platform, the datacenter associated with a set of services executing on the cloud platform;

for a particular service from the set of services, receiving a plurality of version maps, wherein each version map provides version information for a particular context associated with the datacenter;

creating an aggregate version map for the requested operation, comprising, selecting for the particular service, a particular version map from the plurality of version maps, the selection based on a relevance of the particular version map for a current context for the requested operation;

generating an aggregate pipeline based on the aggregate version map;

collecting a set of software artifacts according to the aggregate version map; and

executing the aggregate pipeline to perform the requested operation for the datacenter, the aggregate pipeline performing the requested operation based on the set of software artifacts.

10. The non-transitory computer readable storage medium of claim 9 , wherein the instructions further cause the computer processor to perform steps comprising:

receiving a declarative specification describing a target configuration of datacenter entities for the datacenter;

accessing the datacenter to extract information describing datacenter entities currently available in the datacenter; and

comparing the information extracted from the datacenter with the declarative specification to identify the datacenter entity on which the operation is requested to be performed.

11. The non-transitory computer readable storage medium of claim 9 , wherein the particular context specifies one or more of:

a target environment,

a target datacenter entity, or

a target action to be performed on the cloud platform.

12. The non-transitory computer readable storage medium of claim 9 , wherein the operation requested to be performed on the datacenter is one of:

provisioning a software artifact on the cloud platform,

deploying a software artifact on the cloud platform, or

patching a software artifact on the cloud platform.

13. The non-transitory computer readable storage medium of claim 12 , wherein the particular version map specifies one or more of: a version of a pipeline to be used and a version of a software artifact to be used for the particular context, the particular context represented using one or more of: a target environment, a target datacenter entity, or a target action to be performed on the cloud platform.

14. The non-transitory computer readable storage medium of claim 9 , wherein, the datacenter comprises a hierarchy of datacenter entities, wherein each datacenter entity comprises one or more of (1) a service or (2) one or more other datacenter entities.

15. The non-transitory computer readable storage medium of claim 9 , wherein, the datacenter comprises a hierarchy of datacenter entities, wherein each datacenter entity comprises one or more of (1) a service or (2) one or more other datacenter entities.

16. The non-transitory computer readable storage medium of claim 9 , wherein the instructions further cause the computer processor to perform steps comprising:

performing a topological sort of services in a datacenter entity based on dependencies

configuring the datacenter on a cloud platform based on a cloud platform independent declarative specification; and

generating an aggregate pipeline comprising a hierarchy of pipelines, the hierarchy of pipelines configured for performing the operation on the datacenter configured on the cloud platform.

17. A computer system comprising:

a computer processor; and

a non-transitory computer readable storage medium for storing instructions that when executed by the computer processor, cause the computer processor to perform steps for configuring datacenters in a cloud platform, the steps comprising:

receiving a request to perform an operation on a datacenter configured on the cloud platform, the datacenter associated with a set of services executing on the cloud platform;

for a particular service from the set of services, receiving a plurality of version maps, wherein each version map provides version information for a particular context associated with the datacenter;

creating an aggregate version map for the requested operation, comprising, selecting for the particular service, a particular version map from the plurality of version maps, the selection based on a relevance of the particular version map for a current context for the requested operation;

generating an aggregate pipeline based on the aggregate version map;

collecting a set of software artifacts according to the aggregate version map; and

executing the aggregate pipeline to perform the requested operation for the datacenter, the aggregate pipeline performing the requested operation based on the set of software artifacts.

18. The computer system of claim 17 , wherein the instructions further cause the computer processor to perform steps comprising:

receiving a declarative specification describing a target configuration of datacenter entities for the datacenter;

accessing the datacenter to extract information describing datacenter entities currently available in the datacenter; and

comparing the information extracted from the datacenter with the declarative specification to identify the datacenter entity on which the operation is requested to be performed.

19. The computer system of claim 18 , wherein the particular context specifies one or more of:

a target environment,

a target datacenter entity, or

a target action to be performed on the cloud platform.

20. The computer system of claim 17 , wherein the operation requested to be performed on the datacenter is one of:

provisioning a software artifact on the cloud platform,

deploying a software artifact on the cloud platform, or

patching a software artifact on the cloud platform.

Assignments (2)
CHANGE OF NAME Recorded Oct 30, 2023
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 065394/0169 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2022
From: MOYES, CHRISTOPHER STEVEN; SHEEN, ZEMANN PHOESOP; DHRUVAKUMAR, SRINIVAS; CHAKKARAPANI, MAYAKRISHNAN
To: SALESFORCE, INC.
Reel/Frame 060810/0231 →
Continuity (1)
Related Publication 20240036929A1 · Feb 1, 2024
References Cited (32)
US 8051028B2 · Karnik et al. · 2011 [cited by applicant]
US 9419856B1 · Chawla et al. · 2016 [cited by applicant]
US 9680696B1 · Firment et al. · 2017 [cited by applicant]
US 10318285B1 · Jodoin · 2019 [cited by examiner]
US 10334058B2 · Frank et al. · 2019 [cited by applicant]
US 11018938B1 · Gupta et al. · 2021 [cited by applicant]
US 11093227B1 · Shteyman et al. · 2021 [cited by applicant]
US 20120180024A1 · Gonzalez et al. · 2012 [cited by applicant]
US 20160291942A1 · Hutchison · 2016 [cited by applicant]
US 20170177324A1 · Frank et al. · 2017 [cited by applicant]
US 20170180266A1 · Frank · 2017 [cited by examiner]
US 20170262298A1 · Frank et al. · 2017 [cited by applicant]
US 20180048521A1 · Nair et al. · 2018 [cited by applicant]
US 20180329738A1 · Kasha et al. · 2018 [cited by applicant]
US 20180364985A1 · Liu et al. · 2018 [cited by applicant]
US 20190129712A1 · Hawrylo · 2019 [cited by examiner]
US 20190138288A1 · Brealey · 2019 [cited by examiner]
US 20190377570A1 · Govindaraju et al. · 2019 [cited by applicant]
US 20200117434A1 · Biskup et al. · 2020 [cited by applicant]
US 20200125344A1 · Varghese et al. · 2020 [cited by applicant]
US 20210055917A1 · Khakare · 2021 [cited by examiner]
US 20210064355A1 · Martinsson · 2021 [cited by examiner]
US 20210203550A1 · Thakkar et al. · 2021 [cited by applicant]
US 20210232388A1 · Mirantes · 2021 [cited by examiner]
US 20210360066A1 · Karumbunathan et al. · 2021 [cited by applicant]
US 20230102769A1 · Kirmse · 2023 [cited by examiner]
PCT International Search Report and Written Opinion, PCT Application No. PCT/US 23/11652, Apr. 14, 2023, 16 pages. [cited by applicant]
Austel, P. et al., “Continuous Delivery of Composite Solutions: A Case for Collaborative Software Defined PaaS Environments,” BigSystem '15, Jun. 2015, pp. 3-6. [cited by applicant]
Burns, E. et al., “Continuous Delivery with Spinnaker,” May 11, 2018, XP055626768, pp. 1-81. [cited by applicant]
Burns, E., “Why Spinnaker matters to CI/CD,” Aug. 27, 2019, seven pages, [Online] [Retrieved on Jan. 19, 2021] Retrieved from the Internet <URL: https://opensource.com/article/19/8/why-spinnaker-matters-cicd>. [cited by applicant]
Mukherjee, J., “What is a continuous delivery pipeline?” Date Unknown, 14 pages, [Online] [Retrieved on Jan. 19, 2021] Retrieved from the Internet <URL: https://www.atlassian.com/continuous-delivery/pipeline>. [cited by applicant]
Thakur, V., “Continuous Delivery Pipeline for Kubernetes Using Spinnaker,” May 27, 2020, 21 pages, [Online] [Retrieved on Jan. 19, 2021] Retrieved from the Internet <URL: https://www.metricfire.com/blog/continuous-deliv… [cited by applicant]