Disaster recovery as a service using virtualization technique

Embodiments of the invention relate to recovering from a disaster associated with an information technology environment. An information technology environment is replicated to a service provider. A recovery plan is generated for the environment. The recovery plan includes two processes. In response to the service provider receiving a disaster recovery request associated with the environment, the service provider executes a disaster recovery protocol. The protocol includes simultaneously executes the first and second processes. The first process operates a workload in the form of one or more containers, and the second process is a background process that creates a replica of the environment. After completion of the replica creation, the workload is migrated to the replica.

BACKGROUND

The present invention relates to disaster recovery as a shared resource service. More specifically, the invention relates to employing at least two separate but parallel processes for supporting disaster recovery.

Disaster recovery as a service (DRaaS) is the replication and hosting of physical or virtual services by a thirty party to provide failover in the event of some form of a catastrophe. Typically, DRaaS requirements and expectations are document in a service level agreement (SLA), and the third party vendor provides failover to a cloud computing environment. Aspects of the SLA generally identify disaster recovery time and recovery point objectives. More specifically, the recovery time objective is the maximum tolerable length of time that a computer, system, network, or application can be down after a failure or disaster occurs. The recovery time objective is a function of the extent to which the interruption disrupts normal operations and the amount of revenue lost per unit time as a result of the disaster. The recovery time objective is an important consideration in disaster recovery planning. The recovery point object is the age of files that must be recovered from backup storage for normal operations to resume if a computer, system, or network goes down as a result of a hardware, program, or communications failure. Once the recovery point objective for a given computer, system, or network has been defined, it determines the minimum frequency with which backups must be made. Accordingly, the recovery time and recovery point objective assist with selection of optimal disaster recovery technologies and procedures.

When a disaster recovery is issued or declared, the DRaaS provider launches an exact copy of the client information technology environment per the terms identified in the SLA. More specifically, the recovery is a replication of the identified virtual machine and virtual disk configurations.

SUMMARY

The aspects described herein include a method, a system, and a computer program product for recovering from a disaster associated with an information technology environment.

According to one aspect, a method is provided for recovering from a disaster associated with an information technology environment. The method includes receiving a replication of an information technology environment. A recovery plan is generated for the environment. The recovery plan includes a first process and a second process. In response to receiving a disaster recovery request associated with the environment, a disaster recovery protocol is executed. The protocol includes simultaneously executing the first and second processes. The first process operates a workload associated with core applications, and the second process is a background process that creates a replica of the environment. After completion of the replica, the workload is migrated from the core workload associated with the first process to the replica created by the second process.

According to another aspect, a computer program product is provided to recover from a disaster associated with an information technology environment. The computer program product includes a computer-readable storage medium having program code embodied therewith. The program code is executable by a processing unit to receive a replication of an information technology environment. A recovery plan is generated for the environment. The recovery plan includes a first process and a second process. In response to receiving a disaster recovery request associated with the environment, a disaster recovery protocol is executed. The protocol includes simultaneously executing the first process and a second process. The first process operates a workload, and the second process is a background process that creates a replica of the environment. After completion of the replica, the workload is migrated to the replica.

According to yet another aspect, a system is provided to recover from a disaster associated with an information technology environment. The system includes processing unit operatively coupled to memory and one or more tools in communication with the processing unit. The tool receives a replication of an information technology environment. A recovery plan is generated for the environment. The recovery plan includes first and second processes. In response to receipt of a disaster recovery request associated with the environment, a disaster recovery protocol is executed. The protocol simultaneously executes the first process and the second process. The first process operates a workload, and the second process is a background process that creates a replica of the environment. After completion of the replica, the workload is migrated to the replica.

Other features and advantages will become apparent from the following detailed description of the presently preferred embodiment(s), taken in conjunction with the accompanying drawings.

DETAILED DESCRIPTION

The disaster recovery employs two sub-processes, including a background process and a foreground process. In one embodiment, the background and foreground processes take place simultaneously. The background process is configured to create a replica of an information technology (IT) environment associated with a client. In one embodiment, the background process includes replication of the client virtual machine(s) and virtual disk configurations as defined by recovery point objectives. The foreground process employs lightweight virtualization techniques to operate a workload of the client until such time as the background process concludes and the completed replica is available to support the workload. In one embodiment, operating the workload includes handling client-critical applications to support functionality and any critical IT requests.

The lightweight virtualization techniques employed by the foreground process may include creating one or more lightweight virtualization resources. In one embodiment, each lightweight virtualization resource is referred to as a container, and the foreground process creates a container-based environment comprising one or more containers to operate the workload while the background process is creating the replica. Container-based virtualization, also referred to herein as an operating system (OS) virtualization, is an approach to virtualization in which a virtualization layer runs as an application within the OS. The OS kernel runs on a hardware node with isolated guest virtual machines installed on the kernel. Each isolated guest is referred to as a container. The container-based virtualization mitigates overhead associated within each guest running a completely installed operating system. In one embodiment, one or more containers are provided to users as a service (“containers-as-a-service” or “CaaS”) from a cloud service provider. Specifically, the CaaS may include tools and resources for a user to upload, organize, run, call, manage, and stop containers using a service provider's application program interface call or web portal interface. Accordingly, the container based virtualization employs one operating system to manage multiple hardware calls.

Although the container-based environment is not equivalent in function or composition to the original IT environment, the container-based environment may be created to selectively serve one or more critical applications in the client environment. For example, a web service in the container may show that a client site is in maintenance, or may provide one or more links to an alternative web site while the client site is not operational.

Referring toFIG. 1, a flow chart (100) is provided illustrating a process of configuring and employing an efficient disaster recovery protocol. As shown, the first part of the process pertains to setting up the client's information technology (IT) environment. More specifically, the client contracts with or otherwise establishes a relationship with a service provider, such as a disaster recovery as a service (DRaaS) provider (102). Based on the terms of the relationship, a disaster recovery protocol initialization takes place (104). The initialization includes assessing an internal structure of the IT environment, such as the quantity of virtual machines and how they are connected. In one embodiment, the client provides the structural information directly to the DRaaS provider, and in another embodiment, the DRaaS provider may employ a discovery agent, or tool, to gather and assess the structural information. The disaster recovery protocol initialization includes identifying one or more core application of the client. Two recovery plans are generated, including a fast recovery plan which employs containers, and background process which employs recovery of the virtual machines associated with the client IT environment. The recovery plans are both generated based on the identified core applications. In one embodiment, generating the fast recovery plan includes identifying core application processes associated with the environment that need to be handled during the disaster recovery protocol, as will be described in detail below. Generating the fast recovery plan may include creating containerization and container launching plans for one or more containers corresponding to one or more core application processes.

For example, a client setup discovery may show a website service with two virtual machines. One of the virtual machines is configured for a Linux operating system with a web server (“web application”), and the other virtual machine is configured for a Windows operating system with a database server (“database application”). This configuration information can be provided by the client or obtained by the discovery agent or tool of the service provider. The DRaaS will use the configuration information provided by the client to calculate the fast recovery plan for use during disaster recovery. For example, in one embodiment, the client may direct the DRaaS that the web application and the database application are core applications, such that in the event of a disaster, the DRaaS will containerize the web and database applications to serve requests to these applications (i.e., to operate a workload). For example, the client may tell the DRaaS to containerize the web server to quickly start a web service in the corresponding container (e.g. by showing a site maintenance message), and may optionally containerize the database server. Accordingly, the foreground aspect of a disaster recovery protocol is either directly or indirectly dictated by the needs of the client to a service provider, e.g. DRaaS.

The fast recovery plan is established during setup and initialization. However, as the client platform remains functional and active, the structure and associated data of the environment may be subject to change. To ensure that the disaster recovery plan is up-to-date and properly maintained, the client platform is continuously or periodically replicated to the DRaaS provider (106). This replication pertains to changes to both configuration and data.

At such time as a disaster is discovered or declared to the DRaaS provider (108), two processes are simultaneously launched, including a background process (110) and a foreground process (112). The background process (110) creates a full replica of the client IT environment, which in one embodiment may be an exact copy of the virtual machine(s). The foreground process (112) operates the workload of the selected core applications, which in one embodiment includes creating and launching one or more containers of the containerization and container launching plans to serve future client traffic until such time as the background process is complete.

The background and foreground processes (110) and (112) are simultaneously launched so that the disaster is not visible, or if in one embodiment it is or becomes visible, the visibility of the disaster is substantially negligible. In one embodiment, the container launched in the foreground is a temporary service and does not support the complete functionality of the client. For example, in one embodiment, the launched container may be limited in application support, and may communicate a site maintenance message, link to an alternate website, or in one embodiment, may support a limited set of actions, such as client critical applications. Accordingly, the launched container provides limited support to core applications of the client IT environment.

Creation of the container(s) by the foreground process is significantly less than the replica virtual machine environment by the background process. As such, the disaster recovery switches the client to the container(s) created by the foreground process, while the background process continues the virtual machine replication (114). At such time as the background process is completed and the replica is operational, the workload is migrated or switched from the container(s) in the foreground to the virtual machine environment in the background (116). In one embodiment, the switch takes place based on a set of predetermined recovery policies, which in one embodiment are customizable policies. For example, in one embodiment, the set of recovery policies may require that a fixed period of time is allowed to lapse upon completion of the background process before the switch takes place. In one embodiment, after the migration of the workload, the containerization environment is cleaned up or otherwise removed (118). Accordingly, the foreground process is a temporary environment to support the client in a limited capacity until such time as the background process is completed and as such the transfer between the processes is completed.

There is a significant time differential associated with recovery of a container virtualization and the virtual machine environment. Specifically, the creation time of a lightweight virtualization resource, such as a container, is about 50 ms. A virtual machine boot up time is greater, and in one embodiment, requires about 100 seconds or more. Accordingly, launching the container virtualization as a form of a disaster recovery that allows for fast temporary recovery of critical functions, as compared with a virtual machine re-boot.

Referring toFIG. 2, a block diagram (200) is provided illustrating system components in support of disaster recovery. A Disaster Recovery-as-a-Service (DRaaS) provider (202) is shown in communication with clients (220), (240), and (260). Although three clients (220), (240), and (260) are shown and described, this quantity should not be considered limiting. In one embodiment, the quantity of clients in communication with the provider (202) may be greater than or less than the quantity shown and described herein. The DRaaS provider (202) is shown with a hardware processing unit, such as processor (204), in communication with memory (206) across a bus (208). The DRaaS provider (202) is shown with modules (210) in support of disaster recovery. As shown, the modules include an environmental analysis module (212), referred to herein as an analysis module, a fast response module (214), referred to herein as a response module, and a synchronization module (216). In the example shown herein, the modules (210) are located local to the DRaaS provider (202), although the location should not be considered limiting. For example, in one embodiment, one or more of the modules may be located remotely from the DRaaS provider (202), such as another provider in communication with the DRaaS provider (202). Accordingly, the modules in support of disaster recovery may be hosted local to a single DRaaS provider, or distributed among two or more DRaaS providers.

Three clients, (220), (240), and (260) are shown in communication with the DRaaS provider (202), although this quantity should not be considered limiting. For descriptive purposes, the functionality of the disaster support will be described with respect to client (220), and may be extended to each and any of the clients (240) and (260). The client (220) is shown herein configured with a network interface (228) to support communication with the DRaaS provider (202), and in one embodiment may support communication with multiple DRaaS providers. The client (220) is associated with a corresponding information technology (IT) environment. In one embodiment, the IT environment includes two or more virtual machines. As is known in the art, a virtual machine is an emulation of a computer system, and is backed by the physical resources of the host (e.g., client (220)). Each virtual machine may be comprised of a set of specification and configuration files.

As shown and described inFIG. 1, in support of disaster recovery the client (220) establishes a relationship with the DRaaS provider (202), which includes replication of the client IT environment (232) of client (220) to the DRaaS provider (202). The environment analysis module (212) functions to analyze the client IT environment and to produce a recovery protocol (234). As shown herein, the recovery protocol (234) is specific to Client0(220). In one embodiment, each client that is supported by the DRaaS provider (202) will have its own recovery protocol stored in memory (206). As shown herein, the recovery protocol (234) includes a foreground recovery plan (236) for supporting a client application workload that is determined to be core or critical (e.g., by containerization), and a background recovery plan (238) for replicating the client IT environment. As such, the recovery protocol is essentially bifurcated in foreground and background processes (236) and (238), respectively, with the foreground process (236) directed at containerization and the background process (238) directed at virtual machine replication and recovery. Further, the recovery plans (236) and (238) are generated locally with respect to the DRaaS provider (202), e.g. remote from the client (220), and are stored in the DRaaS provider memory (206).

As shown and described inFIG. 1, detection of a disaster of a client, such as client0(220), will activate both recovery plans, with the foreground recovery plan (236) functioning as a foreground process and the background recovery plan (238) as a background process. In one embodiment, both recovery plans are activated simultaneously or near-simultaneously. Similarly, in one embodiment, the activation of the background recovery plan (238) is a background process that replicates the virtual machine environment subject to the disaster. The effective rebuilding of the client virtual machine environment is not otherwise visible or available until the background plan has completed the rebuild, which is then provided to the DRaaS provider (202).

The client IT environment may be static or dynamic. In the case of a static environment, the environment analysis module (212) performs the client site evaluation and creates the recovery plans (236) and (238). However, in the case of a dynamic environment, also referred to herein as an environment subject to change that expands or contracts over time, the analysis module (212) may be called upon multiple times to create or update the recovery plans. For example, in one embodiment, the environment analysis module (212) may be activated in response to one or more specific changes to the client IT environment. Similarly, in one embodiment, the environment analysis module (212) may be activated on a periodic basis to evaluate the client IT environment, and in response to any detected changes or detected significant changes, to create or update the plans. Accordingly, the analysis module (212) maintains a current state of the client environment to support disaster recovery.

The fast response module (214) is shown in communication environmental analysis module (212). The fast response module (214) functions to institute a recovery according to the recovery protocol (234) generated by the environment analysis module (212). Specifically, the fast response module (214) instantiates the foreground recovery plan (236) in response to a disaster associated with a client IT environment. As articulated inFIG. 1, the foreground recovery plan operates a workload for selected core or critical applications associated with the client IT environment. In one embodiment, the foreground recovery plan (236) includes a containerization plan, or blueprint. At such time as a disaster is either detected or declared, the fast response module (214) functions to execute the foreground recovery plan and launch one or more containers as dictated by the plan (236). In one embodiment, the foreground recovery plan (236) includes a predefined order, which may be referred to as a container launching plan, in which to launch the containers. For example, the predefined order may be determined based on application criticality, with the most critical core application being launched first. In other words, the core applications associated with the client IT environment may be autonomously arranged in the container launching plan in descending order based on criticality. Alternatively, the container launching plan may be created manually, for example, by a user.

As shown and described herein, the recovery plans (236) and (238) are stored in the memory (206) of the DRaaS provider (202). In one embodiment, the foreground recovery plan (236), or a copy of the foreground recovery plan, is also stored local to the client (220). In the event of a disaster, the fast response module (214) accesses and executes the foreground recovery plan. Similarly, in one embodiment, activation of the foreground recovery plan (236) may be local to the DRaaS provider (202), with the containers directing or re-directing traffic from any prior addresses affected by the disaster to one or more addresses as dictated by the containers. For example, in one embodiment, the DRaaS provider (202) may be comprised of a plurality of servers at more than one location of shared resources. Accordingly, the foreground recovery plan (236) provides containerization service to support core applications of a client IT environment.

As further shown herein, the synchronization module (216) is in communication with the fast response module (214) to enable coordination of switching between the environments. More specifically, at such time as the background recovery process is complete and ready to be launched, the synchronization module (216) communicates with the fast response module (214) for the switchover of the client site from the container format to the recovered virtual machine format. The conditions in which the switchover may take place may vary. For example, in one embodiment, the synchronization module (216) may institute an immediate switchover once the background recovery plan (238) is complete. In one embodiment, the synchronization module (216) may allow a predefined period of time to lapse before the switchover. Similarly, in one embodiment, the synchronization module (216) may view traffic to the client containers, and execute the switchover responsive to a decrease in client traffic, or in one embodiment, a pause or gap in client traffic, thereby facilitating the transparency of the switchover. In one embodiment, the background recovery plan (238) may include one or more switchover policies, and the synchronization module (216) may follow the switchover policies to institute the switchover from the container format to the recovered virtual machine format.

As shown and described inFIG. 2, DRaaS provider (202) is in communication with a client site to support disaster recovery. The DRaaS provider (202) may be a service provider of a cloud computing environment, or other shared pool of configurable computer resources. Files in the cloud environment may be shared among users within multiple data centers, also referred to herein as data sites. A series of mechanisms are provided within the shared pool to provide decision making controls for access to one or more records based upon associated record access and inherent characteristics of privacy. Three knowledge bases are employed with respect to consent management, including importance, sensitivity, and relevance. Analytical techniques employ the knowledge bases to assist with making access control decisions.

With reference toFIG. 3, a block diagram (300) is provided illustrating an example of a computer system/server (302), hereinafter referred to as a host (302) of a cloud based support system, to implement the processes described above with respect toFIGS. 1-2. Host (302) is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, and/or configurations that may be suitable for use with host (302) include, but are not limited to, personal computer systems, server computer systems, thin clients, thick clients, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and file systems (e.g., distributed storage environments and distributed cloud computing environments) that include any of the above systems or devices, and the like.

Host (302) may be described in the general context of computer system-executable instructions, such as program modules, being executed by a computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, and so on that perform particular tasks or implement particular abstract data types. Host (302) may be practiced in distributed cloud computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed cloud computing environment, program modules may be located in both local and remote computer system storage media including memory storage devices.

As shown inFIG. 3, host (302) is shown in the form of a general-purpose computing device. The components of host (302) may include, but are not limited to, one or more processors or processing units (304), a system memory (306), and a bus (308) that couples various system components including system memory (306) to processor (304). Bus (308) represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnects (PCI) bus. Host (302) typically includes a variety of computer system readable media. Such media may be any available media that is accessible by host (302) and it includes both volatile and non-volatile media, removable and non-removable media.

Memory (306) can include computer system readable media in the form of volatile memory, such as random access memory (RAM) (312) and/or cache memory (314). Host (302) further includes other removable/non-removable, volatile/non-volatile computer system storage media. By way of example only, storage system (316) can be provided for reading from and writing to a non-removable, non-volatile magnetic media (not shown and typically called a “hard drive”). Although not shown, a magnetic disk drive for reading from and writing to a removable, non-volatile magnetic disk (e.g., a “floppy disk”), and an optical disk drive for reading from or writing to a removable, non-volatile optical disk such as a CD-ROM, DVD-ROM or other optical media can be provided. In such instances, each can be connected to bus (308) by one or more data media interfaces.

Program/utility (318), having a set (at least one) of program modules (320), may be stored in memory (306) by way of example, and not limitation, as well as an operating system, one or more application programs, other program modules, and program data. Each of the operating systems, one or more application programs, other program modules, and program data or some combination thereof, may include an implementation of a networking environment. Program modules (320) generally carry out the functions and/or methodologies of embodiments of disaster recovery as described herein. For example, the set of program modules (320) may include the analysis, response, and synchronization modules configured to implement the disaster recovery processes described above with reference toFIGS. 1-2, including.

Host (302) may also communicate with one or more external devices (340), such as a keyboard, a pointing device, etc.; a display (350); one or more devices that enable a user to interact with host (302); and/or any devices (e.g., network card, modem, etc.) that enable host (302) to communicate with one or more other computing devices. Such communication can occur via Input/Output (I/O) interface(s) (310). Still yet, host (302) can communicate with one or more networks such as a local area network (LAN), a general wide area network (WAN), and/or a public network (e.g., the Internet) via network adapter (330). As depicted, network adapter (330) communicates with the other components of host (302) via bus (308). In one embodiment, a plurality of nodes of a distributed file system (360) is in communication with the host (302) via the I/O interface (310) or via the network adapter (330). It should be understood that although not shown, other hardware and/or software components could be used in conjunction with host (302). Examples, include, but are not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archival storage systems, etc.

In this document, the terms “computer program medium,” “computer usable medium,” and “computer readable medium” are used to generally refer to media such as main memory (306), including RAM (312), cache (314), and storage system (316), such as a removable storage drive and a hard disk installed in a hard disk drive.

Computer programs (also called computer control logic) are stored in memory (306). Computer programs may also be received via a communication interface, such as network adapter (330). Such computer programs, when run, enable the computer system to perform the features of the present invention as discussed herein. In particular, the computer programs, when run, enable the processing unit (304) to perform the features of the computer system. Accordingly, such computer programs represent controllers of the computer system.

Service Models are as follows:

Deployment Models are as follows:

Referring now toFIG. 4, an illustrative cloud computing network (400). As shown, cloud computing network (400) includes a cloud computing environment (405) having one or more cloud computing nodes (410) with which local computing devices used by cloud consumers may communicate. Examples of these local computing devices include, but are not limited to, personal digital assistant (PDA) or cellular telephone (420), desktop computer (430), laptop computer (440), and/or automobile computer system (450). Individual nodes within nodes (410) may further communicate with one another. They may be grouped (not shown) physically or virtually, in one or more networks, such as Private, Community, Public, or Hybrid clouds as described hereinabove, or a combination thereof. This allows cloud computing environment (400) to offer infrastructure, platforms and/or software as services for which a cloud consumer does not need to maintain resources on a local computing device. It is understood that the types of computing devices (420)-(450) shown inFIG. 4are intended to be illustrative only and that the cloud computing environment (405) can communicate with any type of computerized device over any type of network and/or network addressable connection (e.g., using a web browser).

Referring now toFIG. 5, a set of functional abstraction layers provided by the cloud computing network ofFIG. 4is shown. It should be understood in advance that the components, layers, and functions shown inFIG. 5are intended to be illustrative only, and the embodiments are not limited thereto. As depicted, the following layers and corresponding functions are provided: hardware and software layer (510), virtualization layer (520), management layer (530), and workload layer (540). The hardware and software layer (510) includes hardware and software components. Examples of hardware components include mainframes, in one example IBM® zSeries® systems; RISC (Reduced Instruction Set Computer) architecture based servers, in one example IBM pSeries® systems; IBM xSeries® systems; IBM BladeCenter® systems; storage devices; networks and networking components. Examples of software components include network application server software, in one example IBM WebSphere® application server software; and database software, in one example IBM DB2® database software. (IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere, and DB2 are trademarks of International Business Machines Corporation registered in many jurisdictions worldwide).

Virtualization layer (520) provides an abstraction layer from which the following examples of virtual entities may be provided: virtual servers; virtual storage; virtual networks, including virtual private networks; virtual applications and operating systems; and virtual clients.

Workloads layer (540) provides examples of functionality for which the cloud computing environment may be utilized. Examples of workloads and functions which may be provided from this layer include, but are not limited to: mapping and navigation; software development and lifecycle management; virtual classroom education delivery; data analytics processing; transaction processing; and disaster recovery support within the cloud computing environment.

The embodiments described herein may be implemented in a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out the embodiments described herein.

The embodiments are described herein with reference to flow chart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products. It will be understood that each block of the flow chart illustrations and/or block diagrams, and combinations of blocks in the flow chart illustrations and/or block diagrams, can be implemented by computer readable program instructions.

It will be appreciated that, although specific embodiments have been described herein for purposes of illustration, various modifications may be made without departing from the spirit and scope of the specific embodiments described herein. Accordingly, the scope of protection is limited only by the following claims and their equivalents.

The server described above inFIG. 2has been labeled with tools in the form of modules, including the analysis module, the response module, and the synchronization module. The tools may be implemented in programmable hardware devices such as field programmable gate arrays, programmable array logic, programmable logic devices, or the like. The tools may also be implemented in software for execution by various types of processors. An identified functional unit of executable code may, for instance, comprise one or more physical or logical blocks of computer instructions which may, for instance, be organized as an object, procedure, function, or other construct. Nevertheless, the executable of the tools need not be physically located together, but may comprise disparate instructions stored in different locations which, when joined logically together, comprise the tools and achieve the stated purpose of the tool.

The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed.

Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated. Accordingly, the implementation of the disaster recovery provides temporary client support by launching a container to operate a workload of core client applications of a client IT environment until such time as the virtual machine format and/or infrastructure of the client IT environment is operational.

It will be appreciated that, although specific embodiments of the invention have been described herein for purposes of illustration, various modifications may be made without departing from the spirit and scope of the invention. Accordingly, the scope of protection of this invention is limited only by the following claims and their equivalents.