IP Library Granted Patent US 12,206,567
Granted Patent B2
US 12,206,567 · App. 17/899,540 · Granted Jan 21, 2025

Dynamic cloning of application infrastructures

Inventors: Jeffrey P. Hartley (Dublin, OH); Atul Gosain (Bangalore, IN)
Assignee: Avago Technologies International Sales Pte. Limited
H04L43/16G06F9/45558G06F9/5027G06F9/5083H04L41/0846H04L67/1008H04L67/101H04L67/1029H04L67/1031G06F2009/45562G06F2009/45591
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,206,567
App. No.
17/899,540
Granted
Jan 21, 2025
Kind
B2
Abstract

Techniques for dynamically cloning application infrastructures are provided. In one embodiment, a computer system can monitor one or more metrics pertaining to an infrastructure for an application at a first site. If the one or more metrics exceed or fall below one or more corresponding thresholds, the computer system can clone the infrastructure at a second site distinct from the first site, thereby enabling the application to be hosted at the second site.

Claims (59)

1. A method comprising:

monitoring, by a computing system and over a network, utilization of first processing circuitry or first memory by a first virtual server for an application hosted at a first site;

determining, by an application resource broker (ARB) configured on the computing system, that the utilization of the first processing circuitry or the first memory satisfies a first usage threshold; and

dynamically establishing, by the ARB, responsive to determining that the utilization satisfies the first usage threshold, over the network, and at a second site that differs from the first site, a second virtual server to host the application at the second site, the second virtual server utilizing second processing circuitry and second memory at the second site; and

communicating, by the ARB responsive to establishing the second site responsive to determining that the utilization satisfies the first usage threshold, an indication to a global server load balancer (GSLB) to cause a response to a domain name service (DNS) request of one or more client devices to resolve an internet protocol (IP) address of the application to direct at least a portion of client traffic from the one or more client devices over the network for the application to the second virtual server utilizing the second processing circuitry and the second memory at the second site to reduce the utilization of the first processing circuitry or the first memory at the first site.

2. The method of claim 1 , wherein the dynamically establishing, by the computing system, over the network, and at the second site that differs from the first site, the second virtual server to host the application at the second site comprises:

establishing, by the computing system and over the network, the second virtual server at the second site as a clone of the first virtual server at the first site.

3. The method of claim 1 , wherein the causing, by the computing system, the at least the portion of the client traffic over the network for the application to be directed to the second virtual server comprises:

assigning a virtual internet protocol (IP) address to the second virtual server for the application, the virtual IP address differing from another virtual IP address assigned to the first virtual server for the application; and

transmitting, by the computing system and over the network, a notification to a server load balancer that indicates that virtual IP is associated with the application.

4. The method of claim 1 , wherein the monitoring, by the computing system and over the network, the utilization of the first processing circuitry or the first memory by the first virtual server for the application hosted at the first site further comprises:

monitoring, by the computing system and over the network, the utilization of the first processing circuitry or the first memory by the first virtual server and a first application server for the application hosted at the first site.

5. The method of claim 4 , wherein the dynamically establishing, by the computing system, over the network, and at the second site that differs from the first site, the second virtual server to host the application at the second site, further comprises:

dynamically establishing, by the computing system, over the network, and at the second site that differs from the first site, the second virtual server and a second application server to host the application at the second site.

6. The method of claim 5 , wherein the dynamically establishing, by the computing system, over the network, and at the second site that differs from the first site, the second virtual server to host the application at the second site comprises:

establishing, by the computing system and over the network, the second virtual server at the second site as a clone of the first virtual server at the first site; and

establishing, by the computing system and over the network, the second application server at the first site as a clone of the first application server at the first site.

7. The method of claim 1 , wherein the second site is one of a plurality of sites, and the method further comprises:

determining, by the computing system, first locations of a plurality of client devices utilizing the application hosted at the first site; and

selecting, by, the computing system, the second site from the plurality of sites based at least in part on proximities of the first locations of the plurality of client devices to second locations of the plurality of sites.

8. The method of claim 1 , further comprising:

monitoring, by the computing system and over the network, a number of connections to the first virtual server at the first site for the application, wherein the utilization is determined to satisfy the first usage threshold when the number of connections exceeds a threshold value.

9. The method of claim 1 , wherein the utilization satisfies the first usage threshold when the utilization of the first processing circuitry or the first memory by the first virtual server exceeds a threshold value.

10. The method of claim 1 , wherein the utilization is determined to satisfy the first usage threshold as a result of an unexpected burst of client traffic corresponding to the application.

11. The method of claim 1 , wherein the utilization is determined to satisfy the first usage threshold as a result of a failure of one or more of the first processing circuitry or the first memory.

12. The method of claim 1 , further comprising:

after dynamically establishing, by the computing system, over the network, and at the second site that differs from the first site, the second virtual server for the application:

continuing to monitor, by the computing system and over the network, the utilization of the first processing circuitry or the first memory by the first virtual server for the application hosted at the first site;

determining, by the computing system, that the utilization of the first processing circuitry or the first memory satisfies a second usage threshold; and

responsive to determining that the utilization satisfies the second usage threshold:

dynamically tearing down, by the computing system, over the network, and at the second site that differs from the first site, the second virtual server to release the second processing circuitry and second memory at the second site; and

causing, by the computing system, the at least the portion of the client traffic over the network for the application to be directed to the first virtual server at the first site.

13. A device comprising:

a memory; and

processor circuitry configured to:

monitor, over a network, utilization of first processing circuitry or first memory by a first application server for an application hosted at a first site, wherein the application is further hosted at a second site with a second application server utilizing second processing circuitry and second memory at the second site, the second site being distinct from the first site;

an application resource broker (ARB) configured on the processor circuitry to:

determine that the utilization of the first processing circuitry or the first memory satisfies a first usage threshold; and

dynamically tear down responsive to determining that the utilization satisfies the first usage threshold, over the network, and at the second site, the second application server to release the second processing circuitry and the second memory at the second site utilized by the second application server for the application; and

communicate, responsive to tearing down the second site responsive to determining that the utilization satisfies the first usage threshold, an indication to a global server load balancer (GSLB) to cause a response to a domain name service (DNS) request of one or more client device to resolve an internet protocol (IP) address of the application to direct client traffic of the one or client devices over the network for the application to the first application server at the first site instead of the second application server at the second site.

14. The device of claim 13 , wherein the second application server is a clone of the first application server.

15. The device of claim 14 , wherein the processor circuitry is further configured to:

prior to the determination that the utilization of the first processing circuitry or the first memory by the first application server for the application hosted at the first site satisfies the first usage threshold, determine that the utilization satisfies a second usage threshold; and

responsive to a determination that the utilization satisfies the second usage threshold:

establish, over the network, the second application server at the second Previously Presented as the clone of the first application server at the first site.

16. The device of claim 13 , wherein the processor circuitry is configured to cause client traffic over the network for the application to be directed to the first application server at the first site instead of the second application server at the second site by:

transmitting, over the network, a notification to a server load balancer to remove a virtual internet protocol (IP) address associated with the second application server from a list of IP addresses corresponding to the application.

17. The device of claim 13 , wherein the dynamically tear down, over the network, and at the second site, the second application server further comprises:

dynamically tear down, over the network and at the second site, a virtual server and the second application server to release the second processing circuitry and the second memory at the second site utilized at the second site by the virtual server and the second application server for the application.

18. A non-transitory machine-readable medium comprising instructions that, when executed by one or more processor circuits, causes the one or more processor circuits to perform operations comprising:

monitoring, over a network, utilization of first processing circuitry or first memory by a first application server for an application hosted at a first site;

determining an application resource broker (ARB) configured on the processor circuits that the utilization of the first processing circuitry or the first memory satisfies a first usage threshold; and

dynamically establishing the ARB, responsive to determining that the utilization satisfies the first usage threshold, over the network and at a second site that differs from the first site, a second application server to host the application at the second site, the second application server utilizing second processing circuitry and second memory at the second site; and

communicating, by the ARB responsive to establishing the second site responsive to determining that the utilization satisfies the first usage threshold, an indication to a global server load balancer (GSLB) to cause a response to a domain name service (DNS) request of one or more client device to resolve an internet protocol (IP) address of the application to direct at least a portion of client traffic of the one or more client devices over the network for the application to be directed to the second application server utilizing the second processing circuitry and the second memory at the second site to reduce the utilization of the first processing circuitry or the first memory at the first site.

19. The non-transitory machine-readable medium of claim 18 , wherein the dynamically establishing, over the network, and at the second site that differs from the first site, the second application server to host the application at the second site comprises:

establishing, over the network, the second application server at the second site as a clone of the first application server at the first site.

20. The non-transitory machine-readable medium of claim 19 , wherein the causing the at least the portion of the client traffic over the network for the application to be directed to the second application server comprises:

assigning a virtual internet protocol (IP) address to the second application server for the application, the virtual IP address differing from another virtual IP address assigned to the first application server for the application; and

transmitting, over the network, a notification to a server load balancer that indicates that virtual IP assigned to the second application server is associated with the application.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2024
From: HARTLEY, JEFFREY P.; GOSAIN, ATUL
To: BROCADE COMMUNICATIONS SYSTEMS, INC.
Reel/Frame 068498/0636 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2024
From: BROCADE COMMUNICATIONS SYSTEMS LLC
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 068499/0517 →
CHANGE OF NAME Recorded Sep 5, 2024
From: BROCADE COMMUNICATIONS SYSTEMS, INC.
To: BROCADE COMMUNICATIONS SYSTEMS LLC
Reel/Frame 068850/0636 →
Continuity (5)
Continuation 16592778 · Oct 4, 2019
Continuation 15878988 · Jan 24, 2018
Continuation 14316161 · Jun 26, 2014
Provisional Application 61895762 · Oct 25, 2013
Related Publication 20230069240A1 · Mar 2, 2023
References Cited (90)
US 6779017B1 · Lamberton · 2004 [cited by examiner]
US 6826616B2 · Larson · 2004 [cited by examiner]
US 6868441B2 · Greene · 2005 [cited by examiner]
US 7007299B2 · Ioele et al. · 2006 [cited by applicant]
US 7237023B2 · Menard et al. · 2007 [cited by applicant]
US 7383463B2 · Hayden et al. · 2008 [cited by applicant]
US 7941556B2 · Canali · 2011 [cited by examiner]
US 8024441B2 · Kommula et al. · 2011 [cited by applicant]
US 8209415B2 · Wei · 2012 [cited by applicant]
US 8234650B1 · Eppstein · 2012 [cited by examiner]
US 8429630B2 · Nickolov · 2013 [cited by examiner]
US 8473557B2 · Ramakrishnan · 2013 [cited by examiner]
US 8478718B1 · Ranade · 2013 [cited by applicant]
US 8484355B1 · Lochhead · 2013 [cited by examiner]
US 8544002B2 · Edwards · 2013 [cited by examiner]
US 8700729B2 · Dua · 2014 [cited by examiner]
US 8793684B2 · Breitgand · 2014 [cited by examiner]
US 8886865B1 · Huang · 2014 [cited by examiner]
US 8914406B1 · Haugsnes · 2014 [cited by examiner]
US 9055064B2 · Kumar · 2015 [cited by examiner]
US 9069608B2 · Antony · 2015 [cited by examiner]
US 9110693B1 · Meiri et al. · 2015 [cited by applicant]
US 9137136B2 · Malloy et al. · 2015 [cited by applicant]
US 9141625B1 · Thornewell · 2015 [cited by examiner]
US 9215239B1 · Wang · 2015 [cited by examiner]
US 9225772B2 · Lui et al. · 2015 [cited by applicant]
US 9268583B2 · Tsirkin · 2016 [cited by applicant]
US 9509783B1 · Hayden · 2016 [cited by examiner]
US 9578088B2 · Nickolov · 2017 [cited by examiner]
US 9729464B1 · Mihailovici et al. · 2017 [cited by applicant]
US 9912570B2 · Hartley et al. · 2018 [cited by applicant]
US 9929931B2 · Breitgand · 2018 [cited by examiner]
US 10389852B2 · Antony · 2019 [cited by examiner]
US 10425481B2 · Falanga · 2019 [cited by examiner]
US 10469400B2 · Mihailovici et al. · 2019 [cited by applicant]
US 10817318B2 · Astete · 2020 [cited by examiner]
US 20040210663A1 · Phillips · 2004 [cited by examiner]
US 20050065855A1 · Geller · 2005 [cited by examiner]
US 20050149940A1 · Calinescu et al. · 2005 [cited by applicant]
US 20060107087A1 · Sieroka et al. · 2006 [cited by applicant]
US 20060229090A1 · LaDue · 2006 [cited by examiner]
US 20080034365A1 · Dahlstedt · 2008 [cited by applicant]
US 20090013029A1 · Childress · 2009 [cited by examiner]
US 20090024994A1 · Kannan et al. · 2009 [cited by applicant]
US 20090119673A1 · Bubba · 2009 [cited by applicant]
US 20100169490A1 · McNair · 2010 [cited by examiner]
US 20100211669A1 · Dalgas · 2010 [cited by applicant]
US 20100223364A1 · Wei · 2010 [cited by examiner]
US 20100223378A1 · Wei · 2010 [cited by applicant]
US 20100228819A1 · Wei · 2010 [cited by examiner]
US 20100250746A1 · Murase · 2010 [cited by applicant]
US 20110012902A1 · Rajagopalan et al. · 2011 [cited by applicant]
US 20110035494A1 · Pandley et al. · 2011 [cited by applicant]
US 20110125895A1 · Anderson et al. · 2011 [cited by applicant]
US 20110126275A1 · Anderson et al. · 2011 [cited by applicant]
US 20110154324A1 · Pagan et al. · 2011 [cited by applicant]
US 20110209146A1 · Box et al. · 2011 [cited by applicant]
US 20110209147A1 · Box et al. · 2011 [cited by applicant]
US 20110231568A1 · Bansal et al. · 2011 [cited by applicant]
US 20110265085A1 · Kedem et al. · 2011 [cited by applicant]
US 20110292792A1 · Zuo et al. · 2011 [cited by applicant]
US 20110296024A1 · Madani et al. · 2011 [cited by applicant]
US 20110301998A1 · Talwar et al. · 2011 [cited by applicant]
US 20110314470A1 · Elyashev et al. · 2011 [cited by applicant]
US 20120089980A1 · Sharp et al. · 2012 [cited by applicant]
US 20120317274A1 · Richter et al. · 2012 [cited by applicant]
US 20130014107A1 · Kirchhofer · 2013 [cited by examiner]
US 20130179567A1 · Leighton · 2013 [cited by examiner]
US 20130297673A1 · McGrath · 2013 [cited by examiner]
US 20140075433A1 · Kotton · 2014 [cited by examiner]
US 20140101279A1 · Nagami et al. · 2014 [cited by applicant]
US 20140258536A1 · Chiong · 2014 [cited by applicant]
US 20140372567A1 · Ganesh · 2014 [cited by examiner]
US 20140372616A1 · Arisoylu · 2014 [cited by examiner]
US 20150039744A1 · Niazi · 2015 [cited by examiner]
US 20150039763A1 · Chaudhary · 2015 [cited by examiner]
US 20150082432A1 · Eaton et al. · 2015 [cited by applicant]
US 20150106813A1 · Mihailovici et al. · 2015 [cited by applicant]
US 20150120913A1 · Hartley et al. · 2015 [cited by applicant]
US 20170302588A1 · Mihailovici et al. · 2017 [cited by applicant]
US 20180336051A1 · Barnes · 2018 [cited by examiner]
US 20220114011A1 · Connor · 2022 [cited by examiner]
US 20220121556A1 · Guim Bernat · 2022 [cited by examiner]
U.S. Appl. No. 61/895,762, filed Oct. 25, 2013 by Hartley et al. [cited by applicant]
U.S. Appl. No. 61/357,692, filed Jun. 23, 2010 by Mihailovici et al. [cited by applicant]
Brocade Application Resource Broker: Dynamic Resource Provisioning in the Virtualized Data Center With Brocade Application Resource Broker, 2013, Brocade Communications Systems, Inc, 4 pages. [cited by applicant]
Implementing Virtual Provisioning on EMC Symmetrix OMX with Vmware Virtual Infrastructure, Vmware, EMC Corporation, 2008, pp. 1-30. [cited by applicant]
Zhu et al., SLA Based Dynamic Virtualized Resources Provisioning for Shared Cloud Data Centers, 2011 IEEE 4th International Conference on Cloud Computing, pp. 630-637. [cited by applicant]
Bl et al., Dynamic Provisioning Modeling for Virtualized Multi-tier Applications in Cloud Data Center, 2010 IEEE 3rd International Conference on Cloud Computing, pp. 370-377. [cited by applicant]
Vmware, “Introduction to Vmware Infrastructure—ESX Server 3.5, ESX Server 3i version 3.5, Virtual Center 2.5,” 2006-2007 Vmware, Inc. 46 pages. [cited by applicant]