IP Library › Granted Patent US 12,223,305
Granted Patent B2
US 12,223,305 · App. 17/302,307 · Granted Feb 11, 2025

Methods and systems for deployment of services

Inventors: Vaishnavi Vithal Galgali (San Jose, CA); Arpeet Kale (San Jose, CA)
Assignee: Salesforce, Inc.
G06F8/65G06F16/2365G06F16/2379
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,223,305
App. No.
17/302,307
Granted
Feb 11, 2025
Kind
B2
Abstract

Systems and methods for deploying services may include accessing configuration data associated with a service to be deployed, the configuration data generated independently of the service and configured to include environment-related data and infrastructure-related data, the environment-related data identifying at least versioning information associated with the service, and the infrastructure-related data identifying at least artifact repository information associated with the service; accessing data related to a packaged service from an artifact repository based on the artifact repository information, the packaged service generated by a package manager based on the service; updating the packaged service using the environment-related data to generate an updated packaged service; and causing the updated packaged service to be deployed to a deployment destination.

Claims (51)

1. A system for deploying services, the system comprising:

a database system implemented using a server computing system, the database system configurable to cause:

executing, in a computing environment, a deployment orchestrator to orchestrate deployment of services, the deployment orchestrator retrieved from an artifact repository, the deployment orchestrator implemented in a container including a plurality of libraries, the execution of the deployment orchestrator being configurable using a configurable run command having a plurality of options including: a location of the deployment orchestrator, one or more configuration files, a service name, and a username and a password for the artifact repository;

accessing, by the executing deployment orchestrator, configuration data stored in the artifact repository, the configuration data associated with a service to be deployed, the configuration data generated independently of the service and including environment-related data and infrastructure-related data, the environment-related data identifying at least versioning information associated with the service, and the infrastructure-related data identifying at least artifact repository information associated with the service and a timeout for deployment;

incorporating, by the executing deployment orchestrator, the configuration data into the container;

accessing, by the executing deployment orchestrator, packaged service data of a packaged service stored in the artifact repository based on the artifact repository information, the packaged service generated by a package manager based on the service;

updating, by the executing deployment orchestrator, the packaged service using the environment-related data and the infrastructure-related data to generate an updated packaged service, wherein the updating of the packaged service includes using at least: (i) an application version and a chart version of the versioning information identified by the environment-related data, and (ii) a namespace, a number of replicas and the timeout for deployment identified by the infrastructure-related data to expand values in the packaged service and enable the updated packaged service to be deployed to a cluster;

determining, by the executing deployment orchestrator, a current state of packaged service deployment at the cluster;

causing, by the executing deployment orchestrator, the updated packaged service to be deployed to the cluster; and

determining, by the executing deployment orchestrator, after passage of the timeout identified by the infrastructure-related data, whether deployment of the updated packaged service was successful.

2. The system of claim 1 , wherein the updated packaged service is to be deployed to the cluster using a deployment manager associated with the package manager.

3. The system of claim 2 , wherein the cluster is one of a cluster environment and a local environment.

4. The system of claim 1 , wherein the accessing the configuration data is triggered by a triggering event in a continuous integration/continuous delivery (CI/CD) pipeline, the triggering event related to deploying the service to the cluster.

5. The system of claim 4 , further comprising:

generating a first error notification based on determining that the configuration data does not include the environment-related data; and

generating a second error notification based on determining that the configuration data does not include the infrastructure-related data.

6. The system of claim 5 , wherein the packaged service is a generic packaged service, and wherein the generic packaged service is updated to include at least the environment-related data to generate the updated packaged service.

7. The system of claim 6 , wherein the environment-related data and the infrastructure-related data include data related to multiple services including a first service and a second service, wherein an updated packaged service associated with the first service is to be deployed based on configuration data associated with the first service, and wherein an updated packaged service associated with the second service is to be deployed based on configuration data associated with the second service.

8. A computer-implemented method comprising:

executing, in a computing environment, a deployment orchestrator to orchestrate deployment of services, the deployment orchestrator retrieved from an artifact repository, the deployment orchestrator implemented in a container including a plurality of libraries, the execution of the deployment orchestrator being configurable using a configurable run command having a plurality of options including: a location of the deployment orchestrator, one or more configuration files, a service name, and a username and a password for the artifact repository;

accessing, by the executing deployment orchestrator, configuration data stored in the artifact repository, the configuration data associated with a service to be deployed, the configuration data generated independently of the service and including environment-related data and infrastructure-related data, the environment-related data identifying at least versioning information associated with the service, and the infrastructure-related data identifying at least artifact repository information associated with the service and a timeout for deployment;

incorporating, by the executing deployment orchestrator, the configuration data into the container;

accessing, by the executing deployment orchestrator, packaged service data of a packaged service stored in the artifact repository based on the artifact repository information, the packaged service generated by a package manager based on the service;

updating, by the executing deployment orchestrator, the packaged service using the environment-related data and the infrastructure-related data to generate an updated packaged service, wherein the updating of the packaged service includes using at least: (i) an application version and a chart version of the versioning information identified by the environment-related data, and (ii) a namespace, a number of replicas and the timeout for deployment identified by the infrastructure-related data to expand values in the packaged service and enable the updated packaged service to be deployed to a cluster;

determining, by the executing deployment orchestrator, a current state of packaged service deployment at the cluster;

causing, by the executing deployment orchestrator, the updated packaged service to be deployed to the cluster; and

determining, by the executing deployment orchestrator, after passage of the timeout identified by the infrastructure-related data, whether deployment of the updated packaged service was successful.

9. The method of claim 8 , wherein the updated packaged service is to be deployed to the cluster using a deployment manager associated with the package manager.

10. The method of claim 9 , wherein the cluster is one of a cluster environment and a local environment.

11. The method of claim 8 , wherein the accessing the configuration data is triggered by a triggering event in a continuous integration/continuous delivery (CI/CD) pipeline, the triggering event related to deploying the service to the cluster.

12. The method of claim 11 , further comprising:

generating a first error notification based on determining that the configuration data does not include the environment-related data; and

generating a second error notification based on determining that the configuration data does not include the infrastructure-related data.

13. The method of claim 12 , wherein the packaged service is a generic packaged service, and wherein the generic packaged service is updated to include at least the environment-related data to generate the updated packaged service.

14. The method of claim 13 , wherein the environment-related data and the infrastructure-related data include data related to multiple services including a first service and a second service, wherein an updated packaged service associated with the first service is to be deployed based on configuration data associated with the first service, and wherein an updated packaged service associated with the second service is to be deployed based on configuration data associated with the second service.

15. A computer program product comprising a non-transitory computer-readable medium storing computer-readable program code to be executed by one or more processors, the program code including instructions to:

execute, in a computing environment, a deployment orchestrator to orchestrate deployment of services, the deployment orchestrator retrieved from an artifact repository, the deployment orchestrator implemented in a container including a plurality of libraries, the execution of the deployment orchestrator being configurable using a configurable run command having a plurality of options including: a location of the deployment orchestrator, one or more configuration files, a service name, and a username and a password for the artifact repository;

access, by the executing deployment orchestrator, configuration data stored in the artifact repository, the configuration data associated with a service to be deployed, the configuration data generated independently of the service and including environment-related data and infrastructure-related data, the environment-related data identifying at least versioning information associated with the service, and the infrastructure-related data identifying at least artifact repository information associated with the service and a timeout for deployment;

incorporate, by the executing deployment orchestrator, the configuration data into the container;

access, by the executing deployment orchestrator, packaged service data of a packaged service stored in the artifact repository based on the artifact repository information, the packaged service generated by a package manager based on the service;

update, by the executing deployment orchestrator, the packaged service using the environment-related data and the infrastructure-related data to generate an updated packaged service, wherein the updating of the packaged service includes using at least: (i) an application version and a chart version of the versioning information identified by the environment-related data, and (ii) a namespace, a number of replicas and the timeout for deployment identified by the infrastructure-related data to expand values in the packaged service and enable the updated packaged service to be deployed to a cluster;

determine, by the executing deployment orchestrator, a current state of packaged service deployment at the cluster;

cause, by the executing deployment orchestrator, the updated packaged service to be deployed to the cluster; and

determine, by the executing deployment orchestrator, after passage of the timeout identified by the infrastructure-related data, whether deployment of the updated packaged service was successful.

16. The computer program product of claim 15 , wherein the updated packaged service is to be deployed to the cluster using a deployment manager associated with the package manager.

17. The computer program product of claim 16 , wherein the cluster is one of a cluster environment and a local environment.

18. The computer program product of claim 17 , wherein the configuration data is accessed based on a triggering event in a continuous integration/continuous delivery (CI/CD) pipeline, the triggering event related to deploying the service to the cluster.

19. The computer program product of claim 18 , further comprising instructions to:

generate a first error notification based on determining that the configuration data does not include the environment-related data; and

generate a second error notification based on determining that the configuration data does not include the infrastructure-related data.

20. The computer program product of claim 15 , wherein the environment-related data and the infrastructure-related data include data related to multiple services including a first service and a second service, wherein an updated packaged service associated with the first service is to be deployed based on configuration data associated with the first service, and wherein an updated packaged service associated with the second service is to be deployed based on configuration data associated with the second service.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 1, 2021
From: GALGALI, VAISHNAVI VITHAL; KALE, ARPEET
To: SALESFORCE.COM, INC
Reel/Frame 056738/0981 →
Continuity (1)
Related Publication 20220350587A1 · Nov 3, 2022
References Cited (201)
US 5577188A · Zhu · 1996 [cited by applicant]
US 5608872A · Schwartz et al. · 1997 [cited by applicant]
US 5649104A · Carleton et al. · 1997 [cited by applicant]
US 5715450A · Ambrose et al. · 1998 [cited by applicant]
US 5761419A · Schwartz et al. · 1998 [cited by applicant]
US 5819038A · Carleton et al. · 1998 [cited by applicant]
US 5821937A · Tonelli et al. · 1998 [cited by applicant]
US 5831610A · Tonelli et al. · 1998 [cited by applicant]
US 5873096A · Lim et al. · 1999 [cited by applicant]
US 5918159A · Fomukong et al. · 1999 [cited by applicant]
US 5963953A · Cram et al. · 1999 [cited by applicant]
US 5983227A · Nazem et al. · 1999 [cited by applicant]
US 6092083A · Brodersen et al. · 2000 [cited by applicant]
US 6161149A · Achacoso et al. · 2000 [cited by applicant]
US 6169534B1 · Raffel et al. · 2001 [cited by applicant]
US 6178425B1 · Brodersen et al. · 2001 [cited by applicant]
US 6189011B1 · Lim et al. · 2001 [cited by applicant]
US 6216133B1 · Masthoff · 2001 [cited by applicant]
US 6216135B1 · Brodersen et al. · 2001 [cited by applicant]
US 6233617B1 · Rothwein et al. · 2001 [cited by applicant]
US 6236978B1 · Tuzhilin · 2001 [cited by applicant]
US 6266669B1 · Brodersen et al. · 2001 [cited by applicant]
US 6288717B1 · Dunkle · 2001 [cited by applicant]
US 6295530B1 · Ritchie et al. · 2001 [cited by applicant]
US 6324568B1 · Diec et al. · 2001 [cited by applicant]
US 6324693B1 · Brodersen et al. · 2001 [cited by applicant]
US 6336137B1 · Lee et al. · 2002 [cited by applicant]
US D454139S · Feldcamp et al. · 2002 [cited by applicant]
US 6367077B1 · Brodersen et al. · 2002 [cited by applicant]
US 6393605B1 · Loomans · 2002 [cited by applicant]
US 6405220B1 · Brodersen et al. · 2002 [cited by applicant]
US 6411949B1 · Schaffer · 2002 [cited by applicant]
US 6434550B1 · Warner et al. · 2002 [cited by applicant]
US 6446089B1 · Brodersen et al. · 2002 [cited by applicant]
US 6535909B1 · Rust · 2003 [cited by applicant]
US 6549908B1 · Loomans · 2003 [cited by applicant]
US 6553563B2 · Ambrose et al. · 2003 [cited by applicant]
US 6560461B1 · Fomukong et al. · 2003 [cited by applicant]
US 6574635B2 · Stauber et al. · 2003 [cited by applicant]
US 6577726B1 · Huang et al. · 2003 [cited by applicant]
US 6601087B1 · Zhu et al. · 2003 [cited by applicant]
US 6604117B2 · Lim et al. · 2003 [cited by applicant]
US 6604128B2 · Diec et al. · 2003 [cited by applicant]
US 6609150B2 · Lee et al. · 2003 [cited by applicant]
US 6621834B1 · Scherpbier et al. · 2003 [cited by applicant]
US 6654032B1 · Zhu et al. · 2003 [cited by applicant]
US 6665648B2 · Brodersen et al. · 2003 [cited by applicant]
US 6665655B1 · Warner et al. · 2003 [cited by applicant]
US 6684438B2 · Brodersen et al. · 2004 [cited by applicant]
US 6711565B1 · Subramaniam et al. · 2004 [cited by applicant]
US 6724399B1 · Katchour et al. · 2004 [cited by applicant]
US 6728702B1 · Subramaniam et al. · 2004 [cited by applicant]
US 6728960B1 · Loomans et al. · 2004 [cited by applicant]
US 6732095B1 · Warshavsky et al. · 2004 [cited by applicant]
US 6732100B1 · Brodersen et al. · 2004 [cited by applicant]
US 6732111B2 · Brodersen et al. · 2004 [cited by applicant]
US 6754681B2 · Brodersen et al. · 2004 [cited by applicant]
US 6763351B1 · Subramaniam et al. · 2004 [cited by applicant]
US 6763501B1 · Zhu et al. · 2004 [cited by applicant]
US 6768904B2 · Kim · 2004 [cited by applicant]
US 6772229B1 · Achacoso et al. · 2004 [cited by applicant]
US 6782383B2 · Subramaniam et al. · 2004 [cited by applicant]
US 6804330B1 · Jones et al. · 2004 [cited by applicant]
US 6826565B2 · Ritchie et al. · 2004 [cited by applicant]
US 6826582B1 · Chatterjee et al. · 2004 [cited by applicant]
US 6826745B2 · Coker · 2004 [cited by applicant]
US 6829655B1 · Huang et al. · 2004 [cited by applicant]
US 6842748B1 · Warner et al. · 2005 [cited by applicant]
US 6850895B2 · Brodersen et al. · 2005 [cited by applicant]
US 6850949B2 · Warner et al. · 2005 [cited by applicant]
US 6907566B1 · McElfresh et al. · 2005 [cited by applicant]
US 7062502B1 · Kesler · 2006 [cited by applicant]
US 7069231B1 · Cinarkaya et al. · 2006 [cited by applicant]
US 7069497B1 · Desai · 2006 [cited by applicant]
US 7100111B2 · McElfresh et al. · 2006 [cited by applicant]
US 7181758B1 · Chan · 2007 [cited by applicant]
US 7269590B2 · Hull et al. · 2007 [cited by applicant]
US 7289976B2 · Kihneman et al. · 2007 [cited by applicant]
US 7340411B2 · Cook · 2008 [cited by applicant]
US 7356482B2 · Frankland et al. · 2008 [cited by applicant]
US 7373599B2 · McElfresh et al. · 2008 [cited by applicant]
US 7401094B1 · Kesler · 2008 [cited by applicant]
US 7406501B2 · Szeto et al. · 2008 [cited by applicant]
US 7412455B2 · Dillon · 2008 [cited by applicant]
US 7454509B2 · Boulter et al. · 2008 [cited by applicant]
US 7508789B2 · Chan · 2009 [cited by applicant]
US 7599935B2 · La Rotonda et al. · 2009 [cited by applicant]
US 7603331B2 · Tuzhilin et al. · 2009 [cited by applicant]
US 7603483B2 · Psounis et al. · 2009 [cited by applicant]
US 7620655B2 · Larsson et al. · 2009 [cited by applicant]
US 7644122B2 · Weyer et al. · 2010 [cited by applicant]
US 7668861B2 · Steven · 2010 [cited by applicant]
US 7698160B2 · Beaven et al. · 2010 [cited by applicant]
US 7730478B2 · Weissman · 2010 [cited by applicant]
US 7747648B1 · Kraft et al. · 2010 [cited by applicant]
US 7779039B2 · Weissman et al. · 2010 [cited by applicant]
US 7779475B2 · Jakobson et al. · 2010 [cited by applicant]
US 7827208B2 · Bosworth et al. · 2010 [cited by applicant]
US 7827548B1 · Anderson · 2010 [cited by examiner]
US 7853881B1 · Aly Assal et al. · 2010 [cited by applicant]
US 7945653B2 · Zukerberg et al. · 2011 [cited by applicant]
US 8005896B2 · Cheah · 2011 [cited by applicant]
US 8014943B2 · Jakobson · 2011 [cited by applicant]
US 8015495B2 · Achacoso et al. · 2011 [cited by applicant]
US 8032297B2 · Jakobson · 2011 [cited by applicant]
US 8073850B1 · Hubbard et al. · 2011 [cited by applicant]
US 8082301B2 · Ahlgren et al. · 2011 [cited by applicant]
US 8095413B1 · Beaven · 2012 [cited by applicant]
US 8095531B2 · Weissman et al. · 2012 [cited by applicant]
US 8095594B2 · Beaven et al. · 2012 [cited by applicant]
US 8103611B2 · Tuzhilin et al. · 2012 [cited by applicant]
US 8150913B2 · Cheah · 2012 [cited by applicant]
US 8209308B2 · Rueben et al. · 2012 [cited by applicant]
US 8209333B2 · Hubbard et al. · 2012 [cited by applicant]
US 8275836B2 · Beaven et al. · 2012 [cited by applicant]
US 8457545B2 · Chan · 2013 [cited by applicant]
US 8484111B2 · Frankland et al. · 2013 [cited by applicant]
US 8490025B2 · Jakobson et al. · 2013 [cited by applicant]
US 8504945B2 · Jakobson et al. · 2013 [cited by applicant]
US 8510045B2 · Rueben et al. · 2013 [cited by applicant]
US 8510664B2 · Rueben et al. · 2013 [cited by applicant]
US 8566301B2 · Rueben et al. · 2013 [cited by applicant]
US 8646103B2 · Jakobson et al. · 2014 [cited by applicant]
US 8661406B2 · Shapiro · 2014 [cited by examiner]
US 8938734B2 · Misovski · 2015 [cited by examiner]
US 11397569B2 · Vihar · 2022 [cited by examiner]
US 20010044791A1 · Richter et al. · 2001 [cited by applicant]
US 20020072951A1 · Lee et al. · 2002 [cited by applicant]
US 20020082892A1 · Raffel et al. · 2002 [cited by applicant]
US 20020129352A1 · Brodersen et al. · 2002 [cited by applicant]
US 20020140731A1 · Subramaniam et al. · 2002 [cited by applicant]
US 20020143997A1 · Huang et al. · 2002 [cited by applicant]
US 20020162090A1 · Parnell et al. · 2002 [cited by applicant]
US 20020165742A1 · Robbins · 2002 [cited by applicant]
US 20030004971A1 · Gong · 2003 [cited by applicant]
US 20030018705A1 · Chen et al. · 2003 [cited by applicant]
US 20030018830A1 · Chen et al. · 2003 [cited by applicant]
US 20030066031A1 · Laane et al. · 2003 [cited by applicant]
US 20030066032A1 · Ramachandran et al. · 2003 [cited by applicant]
US 20030069936A1 · Warner et al. · 2003 [cited by applicant]
US 20030070000A1 · Coker et al. · 2003 [cited by applicant]
US 20030070004A1 · Mukundan et al. · 2003 [cited by applicant]
US 20030070005A1 · Mukundan et al. · 2003 [cited by applicant]
US 20030074418A1 · Coker et al. · 2003 [cited by applicant]
US 20030120675A1 · Stauber et al. · 2003 [cited by applicant]
US 20030151633A1 · George et al. · 2003 [cited by applicant]
US 20030159136A1 · Huang et al. · 2003 [cited by applicant]
US 20030187921A1 · Diec et al. · 2003 [cited by applicant]
US 20030189600A1 · Gune et al. · 2003 [cited by applicant]
US 20030204427A1 · Gune et al. · 2003 [cited by applicant]
US 20030206192A1 · Chen et al. · 2003 [cited by applicant]
US 20030225730A1 · Warner et al. · 2003 [cited by applicant]
US 20040001092A1 · Rothwein et al. · 2004 [cited by applicant]
US 20040010489A1 · Rio et al. · 2004 [cited by applicant]
US 20040015981A1 · Coker et al. · 2004 [cited by applicant]
US 20040027388A1 · Berg et al. · 2004 [cited by applicant]
US 20040128001A1 · Levin et al. · 2004 [cited by applicant]
US 20040186860A1 · Lee et al. · 2004 [cited by applicant]
US 20040193510A1 · Catahan et al. · 2004 [cited by applicant]
US 20040199489A1 · Barnes-Leon et al. · 2004 [cited by applicant]
US 20040199536A1 · Barnes-Leon et al. · 2004 [cited by applicant]
US 20040199543A1 · Braud et al. · 2004 [cited by applicant]
US 20040249854A1 · Barnes-Leon et al. · 2004 [cited by applicant]
US 20040260534A1 · Pak et al. · 2004 [cited by applicant]
US 20040260659A1 · Chan et al. · 2004 [cited by applicant]
US 20040268299A1 · Lei et al. · 2004 [cited by applicant]
US 20050050555A1 · Exley et al. · 2005 [cited by applicant]
US 20050091098A1 · Brodersen et al. · 2005 [cited by applicant]
US 20080249972A1 · Dillon · 2008 [cited by applicant]
US 20090063415A1 · Chatfield et al. · 2009 [cited by applicant]
US 20090100342A1 · Jakobson · 2009 [cited by applicant]
US 20090177744A1 · Marlow et al. · 2009 [cited by applicant]
US 20110218958A1 · Warshavsky et al. · 2011 [cited by applicant]
US 20110247051A1 · Bulumulla et al. · 2011 [cited by applicant]
US 20120042218A1 · Cinarkaya et al. · 2012 [cited by applicant]
US 20120233137A1 · Jakobson et al. · 2012 [cited by applicant]
US 20120290407A1 · Hubbard et al. · 2012 [cited by applicant]
US 20130212497A1 · Zelenko et al. · 2013 [cited by applicant]
US 20130218948A1 · Jakobson · 2013 [cited by applicant]
US 20130218949A1 · Jakobson · 2013 [cited by applicant]
US 20130218966A1 · Jakobson · 2013 [cited by applicant]
US 20130247216A1 · Cinarkaya et al. · 2013 [cited by applicant]
US 20140359537A1 · Jakobson et al. · 2014 [cited by applicant]
US 20150006289A1 · Jakobson et al. · 2015 [cited by applicant]
US 20150007050A1 · Jakobson et al. · 2015 [cited by applicant]
US 20150095162A1 · Jakobson et al. · 2015 [cited by applicant]
US 20150142596A1 · Jakobson et al. · 2015 [cited by applicant]
US 20150172563A1 · Jakobson et al. · 2015 [cited by applicant]
US 20160117161A1 · Parthasarathy · 2016 [cited by examiner]
US 20170115978A1 · Modi · 2017 [cited by examiner]
US 20180046446A1 · Turovsky · 2018 [cited by examiner]
US 20180260409A1 · Sundar · 2018 [cited by examiner]
US 20200151038A1 · Lingamneni · 2020 [cited by examiner]
US 20210397429A1 · Gonzalez · 2021 [cited by examiner]
US 20220244949A1 · Iqbal · 2022 [cited by examiner]
US 20220269495A1 · Guan · 2022 [cited by examiner]
US 20220326930A1 · Nandavar · 2022 [cited by examiner]
WO WO2005076129A1 · 2005 [cited by examiner]
Aksenova et al., “an Orchestrator to deploy distributed services in cloud environments”, 2020, [Online], pp. 57-63, [Retrieved from internet on Nov. 1, 2024], <https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=939414… [cited by examiner]
Truyen et al., “Evaluation of container orchestration systems for deploying and managing NoSQL database clusters”, 2018, [Online], pp. 468-475, [Retrieved from internet on Nov. 1, 2024], <https://ieeexplore.ieee.org/sta… [cited by examiner]
“Google Plus Users”, Google+Ripples, Oct. 31, 2011 [retrieved on Feb. 21, 2012 from Internet at http://www.googleplusers.com/google-ripples.html], 3 pages. [cited by applicant]