IP Library › Granted Patent US 12,547,449
Granted Patent B2
US 12,547,449 · App. 18/094,655 · Granted Feb 10, 2026

Dynamic post-deployment server configuration

Inventors: Raffaele Vigliotti (Milan, IT); Sze K. Li (Bellevue, WA); Oleksandr Senyuk (Bellevue, WA); Michael Byrne (Indianapolis, IN); Omar Jaber (Bellevue, WA); Bradley Kenneth Michel (San Francisco, CA)
Assignee: Salesforce, Inc.
G06F9/4881G06F9/44505
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,547,449
App. No.
18/094,655
Filed
Jan 9, 2023
Granted
Feb 10, 2026
Kind
B2
Art Unit
2115
USPC
700/100
Abstract

Server instantiation or deployment with at least an orchestrated post-deployment configuration service utilizing an exemplary framework providing script orchestration, logging, retry logic and environment-specific infrastructure and service configurations. At least one repository may store configuration scripts (or their equivalent), including first scripts associated with, e.g., a multi-tenant system, vendor, database provider, controller, etc., and second scripts associated with, e.g., a tenant, a database client, customer, etc. After instantiating or installing a server, it may be configured with orchestrated execution to ensure successful first server configuration, and then further configured with orchestrated execution of second scripts to ensure successful subsequent server configuration. Orchestration includes retry logic, logging, and reboot support to repeat or continue script execution after reboot, and the number of scripts series is arbitrary, e.g., there may first, second, third, etc. to orchestrate configuring or deploying a server as desired.

Claims (69)

1 . A computing device operable to provide a multi-tenant system associated with a tenant and at least one repository for storing configuration scripts to at least configure a server after an instantiation of the server in a cloud, comprising:

one or more processors; and

a non-transitory machine-readable storage medium that provides instructions that, if executed by the one or more processors, are configurable to cause the computing device to perform:

storing in the at least one repository, configuration scripts including first scripts associated with the multi-tenant system and second scripts associated with the tenant;

booting the server after the instantiation;

first orchestrating script execution of the first scripts, the orchestrating including determining an order of executing selected ones of scripts being orchestrated;

second orchestrating execution of the second scripts based on at least one selected from a group consisting of: parameter data provided by a parameter resource, and reusable modules provided by a reusable modules resource;

identifying a first script of the configuration scripts to be executed;

executing the first script to first configure the server, the executing having a first result;

logging a first result corresponding executing the first script;

rebooting the server after executing the first script;

identifying, based at least in part on the first result, a second script of the configuration scripts to be executed after the first script;

executing the second script to second configure the server;

logging a second result corresponding to executing the second script; and

identifying, based at least in part the second result, a third script to be executed in the order of the scripts.

2 . The computing device of claim 1 , wherein the medium further provides instructions configurable to cause the computing device to perform:

inspecting the first result;

determining the first result corresponds to a failure of executing the first script; and

identifying the second script to be the first script to repeat execution of the first script.

3 . The computing device of claim 1 , wherein results are disposed in a selected one or more of: the repository, a server-storage associated with the server, or a tenant-storage associated with the tenant.

4 . The computing device of claim 1 , in which the orchestrating execution of scripts is based at least in part on one or more dependency relationship between selected scripts in the repository, and wherein each of the execute first scripts is to have an associated successful execution before executing the second scripts.

5 . The computing device of claim 4 , wherein the dependency relationship is based at least in part on identifiers associated with scripts to be executed.

6 . The computing device of claim 1 , wherein the instructions include further instructions configurable to cause the computing device to perform:

first configuring the server based at least in part on performing the first orchestrating script execution of the first scripts; and

second configuring the server based at least in part on performing the second orchestrating script execution of the second scripts.

7 . The computing device of claim 1 , wherein the cloud is a selected one or more of: a public cloud, or a private cloud.

8 . The method device of claim 1 , further comprising:

first configuring the server based at least in part on performing the first orchestrating script execution of the first scripts; and

second configuring the server based at least in part on performing the second orchestrating script execution of the second scripts.

9 . A method for providing a multi-tenant system associated with a tenant and at least one repository for storing configuration scripts to configure a server after an instantiation of the server in a cloud, the scripts including first scripts associated with the multi-tenant system and second scripts associated with the tenant, the method comprising:

first orchestrating script execution of the first scripts, in which orchestrating including determining an order of executing selected ones of scripts being orchestrated;

second orchestrating execution of the second scripts based on at least one selected from a group consisting of: parameter data provided by a parameter resource, and reusable modules provided by a reusable modules resource;

identifying a first script of the configuration scripts to be executed;

executing the first script to first configure the server, the executing having a first result;

logging a first result corresponding executing the first script;

rebooting the server after executing the first script;

identifying, based at least in part on the first result, a second script of the configuration scripts to be executed after the first script; and

executing the second script to second configure the server.

10 . The method of claim 9 , further comprising:

determining the first result corresponds to a failure of executing the first script; and

identifying, based at least in part on the failure, the first script as the second script to repeat execution of the first script.

11 . The method of claim 9 , wherein results are disposed in a selected one or more of: the repository, a server-storage associated with the server, or a tenant-storage associated with the tenant.

12 . The method of claim 9 , in which performing orchestrating execution of scripts is based at least in part on one or more dependency relationship between selected scripts in the repository, the method further comprising:

determining a first dependency for a subsequent script of a previous script to include a successful execution of the previous script prior to executing the subsequent script; and

executing the previous script until the successful execution of the previous script.

13 . The computing device of claim 9 , wherein performing orchestrating execution of scripts is based at least in part on one or more dependency relationship based at least in part on identifiers associated with scripts to be executed.

14 . The method of claim 9 , wherein the cloud is a selected one or more of: a public cloud, or a private cloud.

15 . A non-transitory machine-readable storage medium that includes instructions for providing a multi-tenant system associated with a tenant and at least one repository for storing configuration scripts to configure a server after an instantiation of the server in a cloud, the scripts including first scripts associated with the multi-tenant system and second scripts associated with the tenant, the instructions, if executed by the one or more processors, are configurable to cause the computing device to perform:

first orchestrating script execution of the first scripts, in which orchestrating including determining an order of executing selected ones of scripts being orchestrated;

second orchestrating execution of the second scripts based on at least one selected from a group consisting of: parameter data provided by a parameter resource, and reusable modules provided by a reusable modules resource;

identifying a first script of the configuration scripts to be executed;

executing the first script to first configure the server, the executing having a first result;

logging a first result corresponding executing the first script;

rebooting the server after executing the first script;

identifying, based at least in part on the first result, a second script of the configuration scripts to be executed after the first script; and

executing the second script to second configure the server.

16 . The storage medium of claim 15 , the instructions further including instructions configurable to cause the computing device to perform:

determining the first result corresponds to a failure of executing the first script; and

identifying, based at least in part on the failure, the first script as the second script to repeat execution of the first script.

17 . The storage medium of claim 15 , in which performing orchestrating execution of scripts is based at least in part on one or more dependency relationship between selected scripts in the repository, the instructions further including instructions configurable to cause the computing device to perform:

determining a first dependency for a subsequent script of a previous script to include a successful execution of the previous script prior to executing the subsequent script; and

executing the previous script until the successful execution of the previous script.

18 . The storage medium of claim 15 , the instructions further including instructions configurable to cause the computing device to perform:

determining at least one dependency relationship based at least in part on identifiers associated with scripts to be executed; and

orchestrating execution of scripts based at least in part on the at least one dependency.

19 . The storage medium of claim 15 , the instructions further including instructions configurable to cause the computing device to perform:

first configuring the server based at least in part on performing the first orchestrating script execution of the first scripts; and

second configuring the server based at least in part on performing the second orchestrating script execution of the second scripts.

20 . The storage medium of claim 15 , the instructions further including instructions configurable to cause the computing device to perform: instantiating the server in a selected one or more of: a public cloud, or a private cloud.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2023
From: VIGLIOTTI, RAFFAELE; LI, SZE K.; SENYUK, OLEKSANDR; BYRNE, MICHAEL; JABER, OMAR; MICHEL, BRADLEY KENNETH
To: SALESFORCE, INC.
Reel/Frame 062315/0131 →
Continuity (1)
Related Publication 20240231897A1 · Jul 11, 2024
References Cited (190)
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 10250455B1 · Moniz · 2019 [cited by examiner]
US 10264058B1 · Lauinger · 2019 [cited by examiner]
US 10318265B1 · To · 2019 [cited by examiner]
US 10324701B1 · Stickle · 2019 [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 · 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 20140337502A1 · Cahill · 2014 [cited by examiner]
US 20140359537A1 · Jackobson et al. · 2014 [cited by applicant]
US 20160103667A1 · Chen · 2016 [cited by examiner]
US 20160203074A1 · Van Grinsven · 2016 [cited by examiner]
US 20180285156A1 · Corey · 2018 [cited by examiner]
US 20230088202A1 · Myers · 2023 [cited by examiner]
US 20230342341A1 · Mohammed · 2023 [cited by examiner]
US 20240143342A1 · Parthasarathy · 2024 [cited by examiner]