The present invention relates generally to IT (Information Technology) and, more particularly, to deployment of IT systems stably and agilely.
There are growing needs for deploying new IT systems (applications and IT resources) agilely to adapt to rapid changes on businesses. It is important to shorten the time required to start new systems. At the same time, existing system must be run stably to avoid loss of business opportunities. Such systems must be carefully designed, implemented, and validated. Current technologies are available to automate provisioning of IT resources and deploying applications to enable agile deployment of new systems. These technologies suffer from certain problems.
There is a trade-off when deploying a new system related to existing system(s) agilely. If the new system is deployed after validating impacts to the existing system(s), it takes a long time. If the new system is deployed without validating impacts to the existing system(s), there are risks that it will cause unexpected problems for the existing system(s).
U.S. Patent Application Publication No. 2013/0232498 discloses a system to generate a deployment plan for a cloud infrastructure according to logical, multi-tier application blueprint. A deployment system enables a developer to generate a deployment plan according to a logical, multi-tier application blueprint defined by application architects. The deployment plan includes tasks to be executed for deploying application components on virtual computing resource provided in a cloud infrastructure. The deployment plan includes time dependencies that determine an execution order of the tasks according to dependencies between application components specified in the application blueprint. The deployment plan enables system administrators to view the application blueprint as an ordered workflow view that facilitates collaboration between system administrators and application architects.
Exemplary embodiments of the invention provide method and apparatus for deploying new systems agilely without preventing stable operation of existing IT systems. When a management program deploys new system(s), it judges whether impact validation to existing system(s) is necessary and whether impact validation can be done immediately. If impact validation is necessary but cannot be done immediately, the management program creates constraint(s) and deploys the new system(s) after setting the created constraint(s). The management program monitors performance and failure of the newly deployed system(s). If a sufficient amount of data is retrieved, the management program estimates impacts to the existing system(s) with the assumption that the constraints are not applied. If the estimated impacts are acceptable for the existing system(s), the management program removes or eases the constraint(s) applied to the newly deployed system(s), which is/are deemed unnecessary or unnecessarily harsh. The management program also monitors changes on the newly deployed system(s). If there are changes on the newly deployed system(s), the management program creates constraint(s) again and re-applies the constraint(s) to the newly deployed system(s), since there might be other impacts not validated yet. As a result, new systems can be deployed agilely without preventing stable operation of existing IT system. Unnecessary constrains can be removed or eased after impact validation is done. It is possible to re-apply constraints when newly deployed systems are changed and there might be other impacts not validated yet. These features are not disclosed in US2013/0232498 discussed above.
An aspect of the present invention is directed to a management computer coupled to a first system. The management computer comprises a memory and a processor. The processor is configured, in receipt of a request to deploy a second system which will issue an access to the first system, to create a constraint which limits the access to the first system issued by the second system, and deploy the second system, to which the created constraint is set, to operate the second system with the created constraint.
In some embodiments, the processor is configured to: retrieve an impact validation level associated to the first system as a result of deploying the second system; determine whether impact validation is necessary for the first system based on the retrieved impact validation level; and if the impact validation is determined to be necessary and if the impact validation cannot be performed immediately, then create the constraint and deploy the second system to operate the second system with the created constraint.
In specific embodiments, the processor is configured, upon determining that impact validation is necessary, to determine whether performance impact validation is necessary based on the impact validation level and, if yes, then analyze spare performance of the first system; and create the constraint of resource usage of the second system being deployed based on the spare performance of the first system. The constraint of resource usage of the second system includes one or more of capping I/O (Input/Output) from the second system to the first system, limiting network bandwidth, setting a low priority to network packets transfer between the first and second systems, limiting CPU (Central Processing Unit) usage of the second system, or limiting memory usage of the second system.
In some embodiments, the processor is configured, upon determining that impact validation is necessary, to determine whether failure impact validation is necessary based on the impact validation level and, if yes, then create the constraint of access pattern from the second system being deployed to the first system. The constraint of access pattern includes one or more of limiting I/O access to read-only from the second system to the first system, allocating different I/O paths between the first system and the second system from I/O paths used by the first system, or limiting candidates of physical servers on which to deploy the second system.
In specific embodiments, the processor is configured to provide a graphical user interface to an administrator to associate impact validation levels to one or more systems including the first system as a result of deploying the second system. Each impact validation level indicates whether performance impact validation is necessary or not and, if necessary, specifies a period of time of running data for the performance impact validation. Each impact validation level indicates whether failure impact validation is necessary or not.
In some embodiments, the processor is configured to monitor performance and failure of the deployed second system and, upon collecting sufficient data from the monitoring, then estimate impact on the first system by deploying the second system assuming that the created constraint is not applied; and show the estimated impact to an administrator. The processor is configured, upon receiving instruction from the administrator that the estimated impact is acceptable, to remove or ease the created constraint applied to the deployed second system. The processor is configured to monitor change of the deployed second system and, upon detecting change of the deployed second system which has potential impact on the first system, to create another constraint which limits the access to the first system issued by the second system; and apply the created another constraint to the deployed second system to operate the second system with the created another constraint.
Another aspect of the invention is directed to a method of managing access to a first system which includes a first processor and a first memory. The method comprises, in receipt of a request to deploy a second system which will issue an access to the first system, creating a constraint which limits the access to the first system issued by the second system, and deploying the second system, to which the created constraint is set, to operate the second system with the created constraint.
Another aspect of this invention is directed to a non-transitory computer-readable storage medium storing a plurality of instructions for controlling a data processor to manage access to a first system which includes a first processor and a first memory. The plurality of instructions comprise instructions that cause the data processor to create a constraint which limits the access to the first system issued by the second system, and instructions that cause the data processor to deploy the second system, to which the created constraint is set, to operate the second system with the created constraint.
These and other features and advantages of the present invention will become apparent to those of ordinary skill in the art in view of the following detailed description of the specific embodiments.
In the following detailed description of the invention, reference is made to the accompanying drawings which form a part of the disclosure, and in which are shown by way of illustration, and not of limitation, exemplary embodiments by which the invention may be practiced. In the drawings, like numerals describe substantially similar components throughout the several views. Further, it should be noted that while the detailed description provides various exemplary embodiments, as described below and as illustrated in the drawings, the present invention is not limited to the embodiments described and illustrated herein, but can extend to other embodiments, as would be known or as would become known to those skilled in the art. Reference in the specification to “one embodiment,” “this embodiment,” or “these embodiments” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention, and the appearances of these phrases in various places in the specification are not necessarily all referring to the same embodiment. Additionally, in the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to one of ordinary skill in the art that these specific details may not all be needed to practice the present invention. In other circumstances, well-known structures, materials, circuits, processes and interfaces have not been described in detail, and/or may be illustrated in block diagram form, so as to not unnecessarily obscure the present invention.
Furthermore, some portions of the detailed description that follow are presented in terms of algorithms and symbolic representations of operations within a computer. These algorithmic descriptions and symbolic representations are the means used by those skilled in the data processing arts to most effectively convey the essence of their innovations to others skilled in the art. An algorithm is a series of defined steps leading to a desired end state or result. In the present invention, the steps carried out require physical manipulations of tangible quantities for achieving a tangible result. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals or instructions capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, instructions, or the like. It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise, as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing,” “computing,” “calculating,” “determining,” “displaying,” or the like, can include the actions and processes of a computer system or other information processing device that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system's memories or registers or other information storage, transmission or display devices.
The present invention also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may include one or more general-purpose computers selectively activated or reconfigured by one or more computer programs. Such computer programs may be stored in a computer-readable storage medium including non-transitory medium, such as, but not limited to optical disks, magnetic disks, read-only memories, random access memories, solid state devices and drives, or any other types of media suitable for storing electronic information. The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs and modules in accordance with the teachings herein, or it may prove convenient to construct a more specialized apparatus to perform desired method steps. In addition, the present invention is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein. The instructions of the programming language(s) may be executed by one or more processing devices, e.g., central processing units (CPUs), processors, or controllers.
Exemplary embodiments of the invention, as will be described in greater detail below, provide apparatuses, methods and computer programs for deployment of IT systems stably and agilely.
The first embodiment discloses how the management program agilely deploys a new IT system with constraints not to prevent stable operation of existing IT system.
Each row (255) shows the end-to-end mapping between applications and storage volumes. For example, row 255B shows that application 2 has name of “Web-C,” is created from image catalog 4, and is running on virtual server 03 whose name is “WebDB.” Also, two storage volumes 052 and 055 are assigned to the virtual server 03 for the application. The storage volume 052 of storage array 02 is assigned to the virtual server 03 through port B of the storage array and port A of the virtual server. The storage volume 055 of storage array 01 is assigned to the virtual server 03 through port A of the storage array and port A of the virtual server.
This table is created in the memory 2500 by management program 2410. Column 2581 shows identifications of impact validation levels. Column 2582 shows necessity of performance impact validation. Column 2583 shows necessity of failure impact validation. Each row (258) shows an impact validation level. For example, row 258A shows impact validation level 0 which requires no performance impact validation and no failure impact validation. Row 258B shows impact validation level 1 which requires performance impact validation based on running data of 2 weeks but does not require failure impact validation.
Field 1650-C is calculated total cost of the application. According to a unit price 2438 of VM template table 2430, Unit cost of one “High I/O” VM is 90. The number of “High I/O” VM allocated for this application is 2. Therefore, the total cost of this application is 180. The total cost can include costs of storage volumes. If Confirm button 1660-C is clicked, management program 2410 executes the application deployment process. If Cancel button 1670-C is clicked, management program 2410 cancels the deployment process. If Back button 1680-C is clicked, management program 2410 redisplays the provisioning GUI 1600-B of the self-service portal 1600.
In step 10050, the management program 2410 judges whether impact validation can be done immediately or not. Assuming that impact validation level 1 is associated to an existing system, if the management program 2410 has performance data of a system being deployed for more than 2 weeks, then it determines that impact validation can be done immediately, for instance. The management program 2410 may use performance data measured in testing environments for this purpose. If the result is “Yes” then the process proceeds to step 10080. If the result is “No” then the process proceeds to step 10060.
In step 10060, the management program 2410 invokes a sub-sequence of creating constraints. The procedure of this sub-sequence is described herein below (
In step 20050, the management program 2410 judges whether failure impact validation is necessary or not based on the impact validation level associated to the existing system potentially being affected. If the result is “Yes” then the process proceeds to step 20060. If the result is “No” then the process proceeds to step 20070. In step 20060, the management program 2410 creates constraints of access pattern from the system being deployed to the existing system. Examples of such constraints include limiting I/O access read-only, allocating different I/O paths between the system being deployed and the existing system from the ones used by the existing system, and limiting candidates of physical servers on which the new system is being deployed. In step 20070, the management program 2410 quits the sub-sequence.
In this embodiment, when the management program deploys new systems, it judges whether impact validation to existing systems can be done immediately. If impact validation is necessary but cannot be done immediately, it creates constraints and deploys new systems after setting the created constraints. By doing this, new systems can be deployed agilely without preventing stable operation of existing IT system.
The second embodiment discloses how the management program eases constraints set to newly deployed systems or re-applies constraints to the systems.
In step 30040, the management program 2410 estimates impacts to the existing system which is potentially being affected by the newly deployed system with the assumption that the constraints are not applied. In step 30050, the management program 2410 shows estimated impacts to the system administrator of the affected system. In step 30060, the system administrator decides whether the estimated impacts are acceptable or not. In step 30070, if the estimated impacts are acceptable then the process proceeds to step 30080. Otherwise the process proceeds to step 30100. In step 30080, the management program 2410 removes or eases the constraints applied to the newly deployed system. In step 30090, the management program 2410 notifies the administrator of the affected system and the administrator of the newly deployed system that the constraints are removed or eased. In step 30100, the management program 2410 quits the sequence.
In this embodiment, the management program monitors performance and failure of newly deployed systems. If enough amount of data is retrieved, it estimates impacts to existing systems with the assumption that the constraints are not applied. If the estimated impacts are acceptable for the existing systems, it removes or eases the constraints applied to the newly deployed system. The management program also monitors changes on the newly deployed systems. If there are changes on them, it creates constraints again and re-applies them to the newly applied systems. By doing this, unnecessary constrains can be removed or eased after impact validation is done. It becomes able to re-apply constraints when newly deployed systems are changed and there might be other impacts not validated yet.
This invention discloses how to deploy a new IT system agilely without preventing stable operation of existing IT system(s). When management program deploys new systems it judges whether impact validation to existing systems can be done immediately. If impact validation is necessary but cannot be done immediately, it creates constraints and deploys new systems after setting the created constraints.
Of course, the system configurations illustrated in
In the description, numerous details are set forth for purposes of explanation in order to provide a thorough understanding of the present invention. However, it will be apparent to one skilled in the art that not all of these specific details are required in order to practice the present invention. It is also noted that the invention may be described as a process, which is usually depicted as a flowchart, a flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged.
As is known in the art, the operations described above can be performed by hardware, software, or some combination of software and hardware. Various aspects of embodiments of the invention may be implemented using circuits and logic devices (hardware), while other aspects may be implemented using instructions stored on a machine-readable medium (software), which if executed by a processor, would cause the processor to perform a method to carry out embodiments of the invention. Furthermore, some embodiments of the invention may be performed solely in hardware, whereas other embodiments may be performed solely in software. Moreover, the various functions described can be performed in a single unit, or can be spread across a number of components in any number of ways. When performed by software, the methods may be executed by a processor, such as a general purpose computer, based on instructions stored on a computer-readable medium. If desired, the instructions can be stored on the medium in a compressed and/or encrypted format.
From the foregoing, it will be apparent that the invention provides methods, apparatuses and programs stored on computer readable media for deploying new systems agilely without preventing stable operation of existing IT systems. Additionally, while specific embodiments have been illustrated and described in this specification, those of ordinary skill in the art appreciate that any arrangement that is calculated to achieve the same purpose may be substituted for the specific embodiments disclosed. This disclosure is intended to cover any and all adaptations or variations of the present invention, and it is to be understood that the terms used in the following claims should not be construed to limit the invention to the specific embodiments disclosed in the specification. Rather, the scope of the invention is to be determined entirely by the following claims, which are to be construed in accordance with the established doctrines of claim interpretation, along with the full range of equivalents to which such claims are entitled.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US15/29605 | 5/7/2015 | WO | 00 |