IP Library Granted Patent US 12,360,757
Granted Patent B2
US 12,360,757 · App. 17/565,227 · Granted Jul 15, 2025

Upgrading a target system in a continuous integration system

Inventors: Raj Ramalingam (San Francisco, CA); Kishore Reddipalli (San Francisco, CA); Varun Srinivas (San Francisco, CA)
Assignee: Salesforce, Inc.
G06F8/65G06F8/61G06F8/71
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,360,757
App. No.
17/565,227
Granted
Jul 15, 2025
Kind
B2
Abstract

In an example, an apparatus may operate as a continuous delivery (CD) pipeline for application artifacts running on a target software platform. The apparatus may include a processor to operate an application upgrader for the target software platform, the application upgrader to: consume application artifacts from a continuous integration (CI) system, wherein the target software platform runs a version of the application artifacts; obtain a signed manifest output from the CI system, the signed manifest identifying the consumed application artifacts; and compare a signature of the application artifacts from the CI system to a signature of the version running on the target software platform to determine if an update of the version running on the target software platform is required. Other embodiments may be disclosed and/or claimed.

Claims (30)

1. An apparatus comprising a memory, to operate as a continuous delivery (CD) pipeline for application artifacts running on a target software platform, the apparatus comprising:

an application upgrader executed by one or more processors for the target software platform, the application upgrader decoupling a continuous integration (CI) system from the target software platform and configured to:

periodically retrieve over a network the application artifacts that are stored in one or more artifact repositories, the CI system comprising a first pipeline to build RPMs, jars, tarballs or binary artifacts referred to as base platform artifacts, and a second pipeline to build code, configuration and other non-binary artifacts referred to as the application artifacts, wherein the target software platform runs a version of the application artifacts, and wherein the Cl system publishes the base platform artifacts and the application artifacts to the one or more artifact repositories, wherein the second pipeline is a fast content pipeline to delivery application artifacts to central cloud storage, and wherein the first pipeline is a docker driven pipeline to delivery base platform artifacts as docker images to a central container registry;

generate, for a current version of a first application artifact of the application artifacts, a signature;

prune the current version of the first application artifact by deleting hidden files to create a pruned application artifact responsive to a determination that an update is required to replace a previously deployed version of the first application artifact running on the target software platform with the current version of the first application artifact based on a comparison of the signature generated for the current version with a signature generated the previously deployed version; and

update one or more individual parts of the previously deployed version with respective parts of the pruned application artifact responsive to a determination that the one or more individual parts require updating based on a comparison of signatures of individual parts of the previously deployed version with signatures of respective parts of the pruned application artifact.

2. The apparatus of claim 1 , wherein the application upgrader is configured to run on a system for automating deployment, scaling, and management of containerized applications.

3. The apparatus of claim 1 , wherein the application upgrader is deployed as a standalone executable.

4. The apparatus of claim 1 , wherein the application artifacts comprise configuration files or binaries.

5. The apparatus of claim 1 , wherein the application upgrader is configured to: retrieve over the network from cloud storage a signed manifest output from the CI system, the signed manifest identifying the application artifacts, wherein the signed manifest is obtained from a cloud storage or a docker registry container.

6. The apparatus of claim 5 wherein the application upgrader is configured to periodically poll source endpoints to check for new application artifacts, wherein the signed manifest is obtained in response to one of the periodic polls.

7. The apparatus of claim 1 , wherein the application artifacts comprise JARS, RPMs, Images, or Compressed Zips.

8. The apparatus of claim 1 , wherein the application artifact is a machine learning model deployed on the target system for training and/or inference.

9. The apparatus of claim 1 , wherein the application updater is configured to perform the generate, compare, prune, determine, and update application artifacts up to multiple times a day.

10. The apparatus of claim 1 , wherein the application artifacts running on the target software platform provide services on the public cloud.

11. A method of providing a continuous delivery (CD) pipeline for application artifacts running on a target software platform, the method comprising:

implementing an application upgrader executed by one or more processors having access to a memory, the application upgrader decoupling a continuous integration (CI) system from the target software platform;

periodically retrieve over a network the application artifacts that are stored in one or more artifact repositories, wherein the continuous integration (CI) system comprising a first pipeline to build RPMs, jars, tarballs or binary artifacts referred to as base platform artifacts, and a second pipeline to build code, configuration and other non-binary artifacts referred to as the application artifacts, wherein the target software platform runs a version of the application artifacts, and wherein the CI system publishes the base platform artifacts and the application artifacts to the one or more artifact repositories, wherein the second pipeline is a fast content pipeline to delivery application artifacts to central cloud storage, and wherein the first pipeline is a docker driven pipeline to delivery base platform artifacts as docker images to a central container registry;

generate, for a current version of a first application artifact of the application artifact, a signature;

prune the current version of the first application artifact by deleting hidden files to create a pruned application artifact responsive to a determination that an update is required to replace a previously deployed version of the first application artifact running on the target software platform with the current version of the first application artifact based on a comparison of the signature generated for the current version with a signature generated the previously deployed version; and

update one or more individual parts of the previously deployed version with respective parts of the pruned application artifact responsive to a determination that the one or more individual parts require updating based on a comparison of signatures of individual parts of the previously deployed version with signatures of respective parts of the pruned application artifact.

12. The method of claim 11 , wherein the method is performed using a system for automating deployment, scaling, and management of containerized applications.

13. The method of claim 11 , wherein the method is performed by an application upgrader deployed as a standalone executable.

14. The method of claim 11 , wherein the application artifacts comprise configuration files or binaries.

15. The method of claim 11 further comprising: retrieving over the network from cloud storage a signed manifest output from the CI system, the signed manifest identifying the application artifacts, wherein the signed manifest is obtained from a cloud storage or a docker registry container.

16. The method of claim 15 , wherein the retrieving comprises: periodically polling source endpoints to check for new application artifacts, wherein the signed manifest is obtained in response to one of the periodic polls.

17. The method of claim 11 , wherein the application artifacts comprise JARS, RPMs, Images, or Compressed Zips.

18. The method of claim 11 , wherein the application artifact is a machine learning model deployed on the target system for training and/or inference.

19. The method of claim 11 , wherein the application artifact may be updated multiple times a day.

20. The method of claim 11 , wherein the application artifacts running on the target software platform provide service.

Assignments (2)
CHANGE OF NAME Recorded Sep 5, 2023
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 064809/0559 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2022
From: RAMALINGAM, RAJ; SRINIVAS, VARUN; REDDIPALLI, KISHORE V.
To: SALESFORCE.COM, INC.
Reel/Frame 058628/0779 →
Continuity (1)
Related Publication 20230205510A1 · Jun 29, 2023
References Cited (196)
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 · 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 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 11328065B1 · Wall · 2022 [cited by examiner]
US 11550568B1 · Wall · 2023 [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 20070083757A1 · Nakano · 2007 [cited by examiner]
US 20070179795A1 · Ordonez · 2007 [cited by examiner]
US 20080109801A1 · Levine · 2008 [cited by examiner]
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 20090271779A1 · Clark · 2009 [cited by examiner]
US 20110218958A1 · Warshavsky · 2011 [cited by applicant]
US 20110247051A1 · Bulumulla · 2011 [cited by applicant]
US 20120042218A1 · Cinarkaya · 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 · 2013 [cited by applicant]
US 20140359537A1 · Jackobson et al. · 2014 [cited by applicant]
US 20170010955A1 · Chacko · 2017 [cited by examiner]
US 20170269921A1 · Martin Vicente · 2017 [cited by examiner]
US 20170371388A1 · Lu · 2017 [cited by examiner]
US 20190205121A1 · Ericson · 2019 [cited by examiner]
US 20190268420A1 · Acharya · 2019 [cited by examiner]
US 20190303623A1 · Reddy · 2019 [cited by examiner]
US 20200104125A1 · Pechacek · 2020 [cited by examiner]
US 20200364348A1 · Blass · 2020 [cited by examiner]
US 20210019418A1 · Peeters · 2021 [cited by examiner]
US 20210182054A1 · Kalika · 2021 [cited by examiner]
US 20210208916A1 · Wang · 2021 [cited by examiner]