Abstract:
Embodiments of the present invention are directed to methods by which different services registered with cloud infrastructure may recover in case of disaster. Also directs procedures with which a resource provider may recover and rebuild its cloud resource information by scanning actual resources available. A resource provider will synchronize resources with a central service to get updated consumer and subscription information. In the scenario in which a central service fails and is recovered from backup, the central service should synchronize with resource providers to update its resource information.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims the benefit of the filing date of U.S. Provisional Patent Application No. 62/266,673, which is titled “Disaster Recovery of Cloud Resources” and was filed Dec. 13, 2015, the disclosure of which is hereby incorporated by reference herein in its entirety. 
     
    
     BACKGROUND 
       [0002]    Cloud computing provides access to a wide range of services. These services range from processing, server, storage, network, applications and online services. These services allow cloud consumers to rapidly provision, manage and release resources on demand with little management effort and without service provider interaction. Providers advertise a set of services as a package bundle—often referred to as “plans” or “offers.” Cloud consumers subscribe to these package bundles to get a system-wide entity called a subscription that provides consumer access to all advertised services. Once a subscription is acquired, then the consumers can create resources using these different services. 
         [0003]    Cloud infrastructure consists of a set of services registered by a service provider during initial setup. The set of services gets up-dated (e.g., added and removed) over time. These cloud infrastructure services are of different types ranging from services required to monitor, run and manage cloud infrastructure (often call “system services”) to services directly used by the cloud consumers to create their own resources (often called “resource providers”). There is a central service that manages all of these registered services. This central service is like a master service that provides centralized management of cloud infrastructure and resource access. All cloud infrastructure services register with the central service, and the central service decides routing of cloud consumer requests to relevant resource provider services. 
         [0004]    There can be scenarios in which one or more service goes down because of software, hardware or network failures. If the central service goes down, then whole system fails to respond to cloud consumer requests and becomes unavailable. If one of the resource providers goes down, then cloud consumers and service provider will not able to manage and create resources on that failed cloud service. If system service fails, then cloud system functionality is impacted, and the cloud system may be unusable. 
       SUMMARY 
       [0005]    This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. 
         [0006]    Embodiments of the present invention are directed to methods by which different services registered with cloud infrastructure may recover in case of disaster. Also directs procedures with which a resource provider may recover and rebuild its cloud resource information by scanning actual resources available. A resource provider will synchronize resources with a central service to get updated consumer and subscription information. In the scenario in which a central service fails and is recovered from backup, the central service should synchronize with resource providers to update its resource information. 
     
    
     
       DRAWINGS 
         [0007]    To further clarify the above and other advantages and features of embodiments of the present invention, a more particular description of embodiments of the present invention will be rendered by reference to the appended drawings. It is appreciated that these drawings depict only typical embodiments of the invention and are therefore not to be considered limiting of its scope. The invention will be described and explained with additional specificity and detail through the use of the accompanying drawings in which: 
           [0008]      FIG. 1  is a high level block diagram of a system that provides enterprise users with access to local, on-premises resources and to remote or public resources. 
           [0009]      FIG. 2  is a block diagram of a datacenter that provides cloud computing services or distributed computing services according to one embodiment. 
           [0010]      FIG. 3  illustrates communication connection between central service and resource providers. 
           [0011]      FIG. 4  illustrates a resource provider domain where it is responsible for tracking and managing resource information. 
           [0012]      FIG. 5  illustrates a sequence of steps for disaster recovery for a resource provider. 
           [0013]      FIG. 6  illustrates a sequence of steps for disaster recovery for central system. 
           [0014]      FIG. 7  is a flow chart illustrating an example method for recovering from a disaster or failure within a cloud-computing infrastructure. 
           [0015]      FIG. 8  is a flow chart illustrating an example method for recovering from a failure within a distributed computer network. 
       
    
    
     DETAILED DESCRIPTION 
       [0016]      FIG. 1  is a high level block diagram of a system that provides enterprise users with access to local, on-premises resources and to remote or public resources. Local enterprise terminal  101  allows users to directly access on-premises datacenter (private cloud)  102  via on-premises network  103 . Users located outside enterprise  100  may access on-premises datacenter  102  using remote terminal  104 . Terminals  101  and  104  may be, for example, a desktop, laptop, notebook, or tablet computer. Other devices, such as dedicated terminals, smartphones, personal digital assistants (PDA), etc. may also be used as terminals  101  and  104 . 
         [0017]    Firewall  105  provides network security system for enterprise  100  and controls incoming and outgoing network traffic. External terminal  104  may connect to enterprise on-premises network  103  via Internet  106  or any public or private network. Firewall  105  allows terminal  104  to access on-premises datacenter  102  if terminal  104  provides the appropriate credentials and authentication. Enterprise users at terminals  101  and  104  may also access public datacenter (public cloud)  107  via Internet  106 . 
         [0018]    On-premises datacenter  102  and public datacenter  107  may provide “cloud computing” services to enterprise  100  and other users. By freeing enterprise users from managing information technology (IT) infrastructure, cloud computing provides virtually limitless compute, storage, and network resources at low cost, while allowing services to scale on demand. 
         [0019]      FIG. 2  is a block diagram of a distributed computing network or datacenter  200  that provides cloud computing services or distributed computing services according to one embodiment. A plurality of servers  201  are managed by datacenter management controller  202 . Load balancer  203  distributes requests and workloads over servers  201  to avoid a situation where a single server  201  becomes overwhelmed and to maximize available capacity and performance of the resources in datacenter  200 . Routers/switches  204  support data traffic between servers  201  and between datacenter  200  and external resources and users via external network  205 , which may be a local area network (LAN) in the case of an enterprise, on-premises datacenter  102  or the Internet in the case of a public datacenter ( 107 ). 
         [0020]    Servers  201  may be traditional standalone computing devices and/or they may be configured as individual blades in a rack of many server devices. Servers  201  have an input/output (I/O) connector that manages communication with other database entities. One or more host processors on each server  201  run a host operating system (O/S) that supports multiple virtual machines (VM). Each VM may run its own O/S so that each VM O/S on a server is different, or the same, or a mix of both. The VM O/S&#39;s may be, for example, different versions of the same O/S (e.g., different VMs running different current and legacy versions of the Windows® operating system). In addition, or alternatively, the VM O/S&#39;s may be provided by different manufacturers (e.g., some VMs running the Windows® operating system, while others VMs run the Linux® operating system). Each VM may then run one or more applications (App). Each server also includes storage (e.g., hard disk drives (HDD)) and memory (e.g., RAM) that can be accessed and used by the host processors and VMs. 
         [0021]    Cloud computing is the delivery of computing capabilities as a service, making access to IT resources like compute power, networking and storage as available as water from a faucet. As with any utility, you generally only pay for what you use with cloud computing. By tapping into cloud services, users can harness the power of massive data centers without having to build, manage or maintain costly, complex IT building blocks. With the cloud, much of the complexity of IT is abstracted away, letting you focus just on the infrastructure, data and application development that really matter to your business. 
         [0022]    Datacenter  200  provides pooled resources on which customers or tenants can dynamically provision and scale applications as needed without having to add more servers or additional networking. This allows tenants to obtain the computing resources they need without having to procure, provision, and manage infrastructure on a per-application, ad-hoc basis. A cloud computing datacenter  200  allows tenants to scale up or scale down resources dynamically to meet the current needs of their business. Additionally, a datacenter operator can provide usage-based services to tenants so that they pay for only the resources they use, when they need to use them. For example, a tenant may initially use one VM on server  201 - 1  to run their applications. When demand increases, the datacenter may activate additional VMs on the same server and/or on a new server  201 -N as needed. These additional VMs can be deactivated if demand later drops. 
         [0023]    Datacenter  200  may offer guaranteed availability, disaster recovery, and back-up services. For example, the datacenter may designate one VM on server  201 - 1  as the primary location for the tenant&#39;s application and may activate a second VM on the same or different server as a standby or back-up in case the first VM or server  201 - 1  fails. Database manager  202  automatically shifts incoming user requests from the primary VM to the back-up VM without requiring tenant intervention. Although datacenter  200  is illustrated as a single location, it will be understood that servers  201  may be distributed to multiple locations across the globe to provide additional redundancy and disaster recovery capabilities. 
         [0024]    The datacenter operator may offer different levels of cloud computing services to tenants. With an Infrastructure-as-a-Service (IaaS) offering, the lower levels of the IT stack are delivered as a service, which frees up developers from much of the complexity of provisioning physical machines and configuring networks. With IaaS, tenants can easily provision virtual machines in a highly scalable and available cloud environment, develop and test solutions, then deploy applications to production. With a Platform-as-a-Service (PaaS) offering, everything from network connectivity through the runtime is provided. PaaS makes development easy by providing additional support for application services and management of the operating system, including updates. With PaaS, tenants can focus on the business logic of application and quickly move applications from concept to launch. With a Software-as-a-Service (SaaS) offering, a single finished application or suite of applications can be delivered to customers through a web browser, thereby eliminating their need to manage the underlying components of the IT stack including application code. 
         [0025]    Referring again to  FIG. 1 , an enterprise may use a public datacenter or public cloud computing services to take advantage of cost savings, reduced management requirements, or particular services offered. On the other hand, the enterprise may also use an on-premises datacenter or private cloud services to ensure data security or to use a proprietary application, for example. It will be understood that an enterprise does not have to use an on-premises datacenter to take advantage of private cloud services. Instead, private cloud services may be provided by a datacenter that limits access to the enterprise. The use of both public cloud services and private cloud services by an enterprise is referred to generally as a hybrid cloud. 
         [0026]      FIG. 3  illustrates communication connections between central service  301  and resource providers  302 . The central service  301  acts as master and manages a list of resource providers  302 , consumer subscriptions, and their resources  303 . Central service  301  keeps track of resource provider registrations and subscription management. Central service  301  is the master for subscriptions. Each resource provider  302  registers with central service  301  and enables consumers to create certain types of resources  303 . Resource provider  302  creates actual resources  303  on behalf of consumers and maintains metadata about the resource  303 . Resource provider  302  acts as master for resources  303 . Resources  303  denote the actual resources (such as websites, databases, storage, etc.) that consumers create on the cloud infrastructure. 
         [0027]      FIG. 4  illustrates a resource provider domain wherein the resource provider  401  is responsible for tracking and managing resource information. Resource provider  401  keeps track of consumer subscriptions. Resource provider  401  also creates and maintains the actual resources  403  on behalf of consumers. Resource provider  401  keeps information about consumer access in the form of subscriptions  402 . Resource consumption limits are also defined in the subscription in the form of quotas. Resource provider  401  also keeps track of actual resources  403  and resource metadata. Resource provider  401  tags actual resources  403  or names the resources  403  in such a manner that a metadata record of the actual resource can be re-created from that information. Accordingly, during a recovery process, resource provider  401  will re-generate metadata by scanning existing resources  403 . 
         [0028]      FIG. 5  illustrates a sequence of steps for disaster recovery for a resource provider. Recovery scenarios may depend on the location of actual resources and the central service. In step  501 , a resource provider has failed. There are many reasons why any cloud service may fail, such as due to hardware, network, communication link, or software failures. In step  502 , once the resource provider is restored back from backup. At that point, the resource provider will need to rebuild its metadata store. In step  503 , a service provider reconfigures the resource provider to perform the recovery process and to synchronize with the central service. 
         [0029]    In step  504 , the resource provider will start scanning actual resources to build resource metadata. The resource metadata will be created with consumer subscriptions so it provides consumers access to them. If metadata discovery and recovery cause any business rule violations, then those metadata records are marked appropriately so that the service provider can take manual action for recovery. 
         [0030]    In step  505 , the resource provider synchronizes with central service to update consumer subscription information. It will update subscription information in the metadata store. Any record which seems conflicting with business rules will be marked fail to recover. 
         [0031]      FIG. 6  illustrates a sequence of steps for disaster recovery for the central service. The recovery process depends upon underlying resource providers. In step  601 , a central service failure is detected. In step  602 , the central system is restored back from backup. In step  603 , the service provider reconfigures the central service with the latest settings to ensure all latest configuration applies. The service provider re-registers all resource providers so that they are pointing to latest endpoints and validate that the central service is able to communicate with the resource providers. 
         [0032]    The central system will then need to update its consumer subscription information. In step  604 , the central service s synchronizes with the resource providers, and each resource provider provides a list of consumer subscriptions known to them. Based on the available information, the central system needs to either update the subscriptions or create new offerings (i.e., plans and offers) and associate discovered subscriptions with the offerings. These subscriptions and offering are marked in such a manner that the service provider can review them later on and can take manual action. 
         [0033]    Central system needs to track resources owned by consumers. In step  605 , the central system synchronizes with each registered resource provider to update its resource metadata information. If there is any conflict during metadata recovery, then that record will be flagged for service provider review. 
         [0034]    In one embodiment, one or more computer storage media having computer-executable instructions embodied thereon that, when executed, perform a method for recovering from disaster within a cloud-computing infrastructure. In the method, a tenant acquires a subscription from a service provider. The tenant uses the subscription to create resources on a resource provider. The resource provider will create resources and tag them with specific information which helps in uniquely identifying resource and also enable resource provider to determine who owns this resource. This information will be used by resource provider during disaster recovery for re-creating its resource metadata records by scanning real resources and information tagged from those resources. This tagging is required for a successful disaster recovery when resource provider registry of resources needs to be recovered. 
         [0035]    Resource providers may maintain a list of consumer subscriptions and resources created by consumers. Each resource providers will expose the list of consumer subscriptions that have access to that resource provider. The resource provider will also provide a list of resources owned by each consumer subscription. A central service will use subscriptions and resource information during its recovery to rebuild its subscriptions and resource metadata information. Recovered resources and subscriptions can be tagged for subsequent review. 
         [0036]    A central service will synchronize with resource providers to update its resource and subscription information. Once the central service recovers from failure, then the service provider may reconfigure the central service and ensure that resource provider information is the latest version. The central service seeks out all registered resource providers to synchronize tenant subscriptions and resources. The resource provider exposes resources and subscription information. The central service may tag recovered resources in such a manner so service provider and tenants can review them. 
         [0037]    There are two ways that the system may be out-of-sync: 
         [0038]    (1) A centralized service has information that a resource provider does not have. The centralized service creates missing subscriptions and synchronizes them, which will result in deletion (or marking for deletion) of any extra information about resources that are missing in the resource provider. 
         [0039]    (2) A resource provider has information about a subscription that centralized service does not have. The centralized service recreates records about this subscription to further facilitate troubleshooting or clean deletion. 
         [0040]    If neither the resource provider nor centralized service have information about the subscription, then its traces may be lost. There is still a chance that information about such a subscription exists in auxiliary services (such as, monitoring, logging, billing, etc.) and similar synchronization may need to be performed. 
         [0041]    The central service may need to be synchronized with other services that sit “above” it, such as a billing system that approves subscription creation. The process for such synchronization is similar to what is described above. The subscriptions that are not in the billing system are suspended or marked for review/deletion. Subscriptions that are in the centralized service, but not in the billing system, are also suspended and manual information is required to repair them. 
         [0042]    When critical information about a subscription is missing, and it is not possible to recover it automatically (e.g., when owner or offer information is missing), a manual recovery may be needed:
       For subscription recovery—a new subscription may need to be created.   For resource recovery—a resource from a recovered subscription may need to be moved to a newly recreated subscription upon verification of resource ownership.       
 
         [0045]      FIG. 7  is a flow chart illustrating an example method for recovering from a disaster or failure within a cloud-computing infrastructure. In step  701 , resources are created on a distributed computing network by a resource provider. The resources each have a metadata record. In step  702 , the resources are tagged by the resource provider with specific information to uniquely identify the resource and to identity a tenant that owns the resource. In step  703 , the distributed computing network determines that it needs to enter a disaster recovery mode, such as when a software, hardware or network failure occurs. 
         [0046]    In step  704 , the resource metadata records are recreated by the resource provider using the tagged information. In step  705 , during disaster recovery, the subscriptions and specific information are used by a central service to rebuild its subscriptions and resource metadata information. 
         [0047]    The resource provider may maintain a list of consumer subscriptions and resources created by consumers. The resource provider may expose a list of consumer subscriptions that have access to the resource provider. The resource provider may provide a list of resources owned by each consumer subscription. 
         [0048]      FIG. 8  is a flow chart illustrating an example method for recovering from a failure within a distributed computer network. In step  801 , a central service synchronizes with resource providers to update the central service&#39;s resource and subscription information. In step  802 , once the central service recovers from the failure, the central service is reconfigured to ensure it has the latest resource provider information. In step  803 , all registered resource providers are contacted by the central service to synchronize tenant subscriptions and resources. 
         [0049]    In step  804 , the resource provider exposes resources and subscription information. In step  805 , the central service tags recovered resources for review by a service provider or a tenant. 
         [0050]    During disaster recover, the central service may be synchronized with other services, such as a billing system that approves subscription creation. Subscriptions that are not in the billing system may be suspended in the recovered system. When information about a subscription is missing and the information is not possible to be automatically recovered, a service provider may be contacted or requested to initiate a manual recovery. The manual recovery may require creating a new subscription. The manual recovery may require moving a resource from a recovered subscription to a newly recreated subscription upon verification of resource ownership. 
         [0051]    An example computer-implemented method for recovering from disaster within a cloud-computing infrastructure comprises creating resources on a distributed computing network by a resource provider, the resources each having a metadata record; tagging the resources by the resource provider with specific information to uniquely identify the resource and to identity a tenant that owns the resource; determining when the distributed computing network is in a disaster recovery mode; and recreating the resource metadata records by the resource provider using the tagged information. 
         [0052]    Additional embodiments of the method further comprise maintaining, by the resource provider, a list of consumer subscriptions and resources created by consumers. 
         [0053]    Additional embodiments of the method further comprise exposing, by the resource provider, a list of consumer subscriptions that have access to the resource provider. 
         [0054]    Additional embodiments of the method further comprise providing, by the resource provider, a list of resources owned by each consumer subscription. 
         [0055]    Additional embodiments of the method further comprise using the subscriptions and specific information, by a central service during disaster recovery, to rebuild its subscriptions and resource metadata information. 
         [0056]    Another example computer-implemented method for recovering from a failure within a distributed computer network comprises synchronizing a central service with resource providers to update the central service&#39;s resource and subscription information; once the central service recovers from the failure, reconfiguring the central service and ensuring it has the latest resource provider information; contacting all registered resource providers, by the central service, to synchronize tenant subscriptions and resources; exposing, by the resource provider, resources and subscription information; and tagging recovered resources, by the central service, for review by a service provide or a tenant. 
         [0057]    Additional embodiments of the method further comprise synchronizing the central service with other services. 
         [0058]    In other embodiments of the method, the other services include a billing system that approves subscription creation. 
         [0059]    Additional embodiments of the method further comprise suspending subscriptions that are not in the billing system. 
         [0060]    In other embodiments of the method, when information about a subscription is missing and the information is not possible to be automatically recovered, requesting a service provider to initiate a manual recovery. 
         [0061]    In other embodiments of the method, the manual recovery requires creating a new subscription. 
         [0062]    In other embodiments of the method, the manual recovery requires moving a resource from a recovered subscription to a newly recreated subscription upon verification of resource ownership. 
         [0063]    An example system comprises a distributed computing network executing a central service that manages user subscriptions and resource providers; a plurality of resource providers each configured to create resources as required by the user subscriptions, the resources each having a metadata record; the resources tagged by the resource provider with specific information to uniquely identify the resource and to identity a user that owns the resource, wherein during recovery from a failure of the distributed computing network the resource recreates the metadata records using the tagged information. 
         [0064]    In additional embodiments of the system, the central service is synchronized with the resource providers to update resource and subscription information on the central service. 
         [0065]    In additional embodiments of the system, once the central service recovers from the failure, the central service contacts all registered resource providers to synchronize tenant subscriptions and resources. 
         [0066]    In additional embodiments of the system, the resource provider exposes resources and subscription information. 
         [0067]    In additional embodiments of the system, the central service tags recovered resources for review by a service provide or a tenant. 
         [0068]    In additional embodiments of the system, during the failure recovery, the central service is synchronized with a billing system that approves subscription creation. 
         [0069]    Additional embodiments of the system comprise a data store comprising user subscription and resource information. 
         [0070]    Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.