Method and system for deploying a production system in a virtualized environment

Example implementations relate to system and method of determining readiness of a datacenter environment for deploying a production system in a virtualized environment of the datacenter environment. The method includes receiving a parameter data of a device controller, and a first configuration data of computing devices from the device controller that manages deployment and configuration of the virtualization environment, and a second configuration data of networking switches. Further, the method includes validating the parameter data, and the first and second configuration data by comparing against a predetermined data required for deploying the production system. The method further includes performing connectivity test among the computing devices. Further, the method includes generating report having the parameter data, the first and second configuration data, results of the connectivity test, and one of an error information or a warning information based on results of validation, for deploying the production system by the device controller.

BACKGROUND

A datacenter may include computing devices for hosting one or more workloads (application) of customer. An increased demand for datacenter services has resulted in increased complexity and size of datacenters. Virtualizing the computing devices in datacenters has simplified the operation of datacenter, scaled up the capacity of the datacenter to meet the increased demand, and reduced the size of the datacenter. For example, a virtualization software deployed on each computing device of the datacenter, may allow the corresponding computing device to be virtualized into one or more virtual machines. Thus, each virtual machine may function like a physical computing device having its own operating system for hosting the one or more workloads of the customer in the virtualized environment of the datacenter.

It is emphasized that, in the drawings, various features are not drawn to scale. In fact, in the drawings, the dimensions of the various features have been arbitrarily increased or reduced for clarity of discussion.

DETAILED DESCRIPTION

As used herein, the term “production system” is a mission-critical system deployable in a virtualized environment of a datacenter environment that is configured such that a plurality of computing devices is clustered together using high-speed fabrics and integrated with a storage device and a plurality of networking switches. In other words, the term “mission-critical system” may be referred to a fault tolerant system that is configured to operate even when one or more of its components fail to operate, thus providing an interrupted production platform for hosting one or more workloads, such as a mission-critical workload (or application), or the like. Accordingly, the mission-critical system may use one or more backup components that may automatically take the place of one or more failed components, ensuring no loss of services provided by the mission-critical workload hosted on the mission-critical system.

As used herein the term “mission-critical workload” may refer to an uninterrupted production workload (that is made available by the mission-critical system) for seamlessly providing intended services to one or more users connected to the mission-critical workload. Examples of the mission-critical workload may include a stock market application, a navigational support application for a spacecraft, or the like.

As used herein the term “virtualized environment” may refer to a compute environment deployed on each of a plurality of computing devices of the datacenter environment, to enable creation of one or more virtual machines on a corresponding computing device, where each virtual machine may exist independently by using compute resources (physical resource) of the corresponding computing device. The virtualized environment may be deployed by implementing a virtualization software on each of the plurality of computing devices. As used herein, the term “device controller” may refer to a centralized management unit that is communicatively coupled to the plurality of computing devices for managing the process of deployment and configuration of the virtualization environment and/or the production system in the virtualized environment.

For purposes of explanation the present disclosure, certain examples are described with reference to the components illustrated inFIGS.1-5. The functionality of the illustrated components may overlap, however, and may be present in a fewer or greater number of elements and components. Further, all or part of the functionality of illustrated elements may co-exist or be distributed among several geographically dispersed locations. Moreover, the disclosed examples may be implemented in various environments and are not limited to the illustrated examples. Further, the sequence of operations described in connection withFIGS.1and4-5is an example and is not intended to be limiting. Additional or fewer operations or combinations of operations may be used or may vary without departing from the scope of the disclosed examples. Thus, the present disclosure merely sets forth examples of implementations, and many variations and modifications may be made to the described examples. Such modifications and variations are intended to be included within the scope of this disclosure and protected by the following claims.

A datacenter environment includes a plurality of computing devices for hosting one or more workloads of customer. Due to increased demand for datacenter services over a period of time, the datacenter environment is virtualized in order to fulfil such increased demand, and also to reduce complexity and size of the datacenter environment. For example, a virtualization software, such as a hypervisor may be deployed on each of the plurality of computing devices to virtualize the datacenter environment into a virtualization environment. Further, one or more virtual machines may be created on the virtualization environment deployed on each computing device. The one or more virtual machines may be customized based on the customer's requirement for deploying a production system in the virtualized environment. In such examples, the production system may then host (or execute) the one or more workloads (or application) of the customer to meet service demand of the datacenter environment.

However, the datacenter environment may need to have certain required configurations that are imperative for deploying a particular type of production system, for example, a mission-critical system in the virtualized environment of the datacenter environment. The required configurations may include, for example, specific hardware, software or firmware versions, network, storage, connectivity among the computing systems via networking switches, or the like in order to make the mission-critical system highly available (e.g., fault tolerant) for hosting the one or more workloads, such as a mission-critical workload (or application), or the like to seamlessly provide services to the connected users.

A datacenter environment that lacks the required configurations may compel an administrator of the datacenter, to perform additional tasks during an actual deployment of the mission-critical system in the virtualized environment. Thus, delaying the deployment activity of the mission-critical system, and hosting the one or more workloads on such mission-critical system. In some examples, the additional tasks may include performing troubleshooting activities on the datacenter environment for identifying issues in the configurations of the datacenter environment and connectivity among the computing devices via the network switches, and fixing the identified configuration and connectivity issues.

A viable technical solution to the aforementioned problems may include determining readiness of a datacenter environment for deploying a production environment, such as a mission-critical system in a virtualized environment of the datacenter environment. In other words, the technical solution may include performing pre-deployment activities, such as validating the datacenter environment for required configurations to deploy the mission-critical system, even before attempting an actual deployment of the mission-critical system in the virtualized environment. Accordingly, performing the pre-deployment activities may result in identifying configuration issues in the datacenter environment upfront, and fixing the identified configuration issues in the datacenter environment before the actual deployment. Hence, the pre-deployment activities performed upfront may reduce the complexity during the actual deployment of the mission-critical system, and overall time spent on the actual deployment of the mission-critical system. In some non-limiting examples, fixing the identified configuration issues may include, for example, adding hardware, upgrading software or firmware versions, adding storage device, fixing network issues, correcting network interfaces for connectivity issues among the computing systems, or the like.

Accordingly, the present disclosure describes example implementations of a system and method for determining readiness of a datacenter for deploying a production system, such as a mission-critical system in a virtualized environment of a plurality of computing devices in the datacenter environment. The method includes receiving a parameter data of a device controller, and a first configuration data of the plurality of computing devices from the device controller that manages deployment and configuration of the virtual environment. The method further includes receiving a second configuration data of a plurality of networking switches connected to the plurality of computing devices. Further, the method includes validating the parameter data, the first and second configuration data by comparing against a pre-determined data required for deploying the mission-critical system. The method further includes performing a connectivity test among the plurality of computing devices. Further, the method includes generating a report having the parameter data, the first and second configuration data, results of the connectivity test, and at least one of an error information or a warning information based on results of validation, for deploying the production system by the device controller. The method further includes assessing the report to determine readiness of the plurality of computing devices and the plurality of networking switches for deploying the production system in the virtualized environment.

FIG.1depicts a block diagram of a readiness analyzer engine100communicatively coupled to a datacenter environment102and a plurality of networking switches108in accordance to some examples of the present disclosure. The datacenter environment102includes a device controller104and a plurality of computing devices106. In some examples, the datacenter environment102may additionally include an external storage device (not shown) connected to one or more device of the plurality of computing devices106. In one or more examples, the plurality of computing devices106may be clustered together and integrated via high-speed fabrics110extending through the plurality of networking switches108in order to create a private network (production system) in the datacenter environment102. In some examples, an administrator114of the datacenter environment102may select the plurality of computing devices106for deploying the production system. For example, the administrator114may select different types of hardware component manufactured from particular vendor and particular numbers of hardware components in each computing device106so as to enable the datacenter environment102to be compatible for deploying the production system. For example, the administrator114may select a network interface card (NIC) card manufactured by a particular vendor “AAA”, and may choose to include at least two numbers of the NIC cards in each computing device106.

The device controller104is a centralized management unit implemented using a hardware device (e.g., electronic circuitry, logic, or processors) or any combination of hardware and programming (e.g., instructions stored on the machine-readable medium). In some examples, the device controller104is connected to the plurality of computing devices106via the high-speed fabrics110, and communicatively coupled to the readiness analyzer engine100via a network112. In one or more examples, the network112may be a TCP/IP (Transmission Control Protocol/Internet Protocol) network, which is a suite of communication protocols used to interconnect network devices on internet.

The device controller104may manage i) deploying of a virtualization environment150on the datacenter environment102, ii) configuration of the plurality of computing devices106in the virtualization environment150, and iii) enable connectivity among the plurality of computing devices106for deployment of the production system in the virtualized environment150. The steps involved in i) deployment of the virtualization environment150, ii) configuring the plurality of computing devices106, and iii) connecting the plurality of computing devices106to one another are discussed in greater details below. In one or more examples, the virtualized environment150may be a cloud infrastructure environment, a hypervisor infrastructure environment, or the like without deviating from the scope of the present disclosure. In some examples, the hypervisor infrastructure environment may be a VMware environment. In some other examples, the cloud infrastructure environment may be an Azure environment, an Amazon Web Service (AWS) environment, or the like without deviating from the scope of the present disclosure.

In some examples, the device controller104may include a management unit and a workflow automation unit for managing deployment and configuration of the i) virtualized environment150, and ii) the production system in the virtualized environment150. In some examples, the management unit may be a vCenter server, and the workflow automation unit may be a vRealize orchestrator. In one or more examples, the production system is a mission-critical system. For example, the mission-critical system may refer to a fault tolerant system (or an uninterrupted production platform) deployed in the virtualized environment150for hosting workload to seamlessly provide intended services to one or more users connected to the workload.

The device controller104may have a parameter data that are recorded in a management inventory list stored in a storage drive of the device controller104. In some examples, the parameter data may include resource information, such as i) general attributes of the device controller104, ii) types of deployment engine used for deploying the mission-critical system, and iii) user privileges in the device controller104. The sample parameter data of the device controller104is represented below in Table-1 for reference purpose.

TABLE 1Management unit current version - 111.General attributes ofWorkflow automation unit current version -the device controllerABC.Management unit connectivity with theworkflow automation unit.User privileges inDetails of users and their roles defined inthe device controllerthe device controller.Types ofOperating system of one or more virtualdeployment enginemachines in each host device that is neededto deploy the mission-critical systemconfiguration tool.

Referring to Table-1, the user privileges may refer to details of users, and their roles defined in the device controller104. For example, the roles includes an administrator role, a user role, or the like that is defined in the management unit of the device controller104.

In some examples, the device controller104may deploy the virtualization software on each of the plurality of computing devices106in order to virtualize the datacenter environment102into the virtualization environment150. This may allow each computing device106to function as a host device152in the virtualized environment150. In some examples, the virtualization software is a hypervisor, such as EXSi, type-1 hypervisor. In one or more examples, each host device152may access a plurality of compute resources (or resource information) belonging to the corresponding computing device106. In some non-limiting examples, the plurality of compute resources or resource information may include: i) general attributes of each host device152, ii) network resources of each host device152, iii) fabric pairs in each host device152for clustering with another host device152, iv) protocol driver/software/firmware versions installed in each host device152, v) storage drive mapped to each host device152, vi) a storage adaptor of each host device152, vii) a basic input output system (BIOS) of each host device152, or the like.

Further, the device controller104may configure the plurality of compute resources of each host device152(or each computing device106) to enable each host device152for the deployment of the mission-critical system in the virtualized environment150. In particular, the administrator114may configure each host device152using the device controller104. In some examples, the administrator114may configure a port group and switches details of each host device152based on the NIC card been plugged into a particular port in the corresponding host device152. Similarly, the administrator114may install a firmware manufactured from a particular vendor and a specific version of the firmware based on the requirement (recommendation) for deploying the production system. Accordingly, the device controller104may store the configuration data of the resource information in each host device152in the management inventory list. It may be noted herein, that the configuration data of the resource information in each host device152(or each computing device106) may also be referred to as “a first configuration data”. In other words, the first configuration data, as discussed herein, may include the resource information, which may be grouped together as a hardware configuration data, a network configuration data, and a storage configuration data of each computing device106. The sample first configuration data of each computing device106(or host device152) is represented below in Tables-2-8 for reference purpose.

For example, the general attributes of each host device152that is configured by the device controller104are shown below in Table-2 for reference.

The network resources of each host device152that is configured by the device controller104is shown below in Table-3 for reference.

The fabric pairs configured in each host device152for clustering with other host device152in the datacenter environment102is shown below in Table-4 for reference.

The protocol driver/software/firmware versions installed in each host device152that is needed to communicate with other host device152is shown below in Table-5 for reference.

The storage drive mapped to each host device152by the device controller104is shown below in Table-6 for reference.

The storage adaptor of the host device152that is configured in the datacenter environment102by the device controller104is shown below in Table-7 for reference.

The BIOS of the host device152that is configured by the device controller104is shown below in Table-8 for reference.

The first configuration data corresponding to each computing device106stored in the device controller104may be accessible by a valid/authenticated user(s) of the device controller104, post completion of tasks related to deployment of the virtualized environment150on each computing device106, and configuration of the host device152in the virtualized environment150.

The readiness analyzer engine100may be a utility engine implemented on a computing system116located outside the datacenter environment102. By way of example, the readiness analyzer engine100may be implemented using hardware devices (e.g., electronic circuitry, logic, or processors) or any combination of hardware and programming (e.g., instructions stored on the machine-readable medium) to implement various functionalities described herein.

The readiness analyzer engine100may be configured for determining readiness of the plurality of computing devices106of the datacenter environment102, and the plurality of networking switches108for deploying the mission-critical system in the virtualized environment150. For example, the readiness analyzer engine100may retrieve configuration data of the computing devices106and networking switches108, validate the retrieved configuration data, and generate a report with inventory along with gaps (or mismatch) it identifies in the retrieved configuration data against a pre-determined configuration data. The steps involved in retrieving the configuration data of the computing devices106, and the networking switches108, validating the retrieved configuration data, performing the connectivity test, and generating the reports are discussed in greater details below.

Further, the readiness analyzer engine100may perform a connectivity test among the plurality of computing devices106and generate the report with connectivity test results. The retrieved configuration data analysis and connectivity test results in the form of reports may help the administrator114to take corrective actions upfront, thereby reducing the deployment complexity and overall time. This may also enhance the overall customer experience in deploying the mission-critical system in the virtualized environment150and use it for their business needs.

The readiness analyzer engine100may have a command line interface118or a graphical user interface (GUI)120. Thus, the administrator114may run a specific command through the command line interface118or select an option from the GUI120, to retrieve and validate the parameter and/or configuration data from the datacenter environment102.

In some examples, the administrator124may enter user credentials via the command line interface118or the GUI120, to allow the readiness analyzer engine100to establish connection with the device controller104. For example, the readiness analyzer engine100may establish connection with the management unit (for example, vCenter server) of the device controller104. In such examples, the device controller104may first validate the user credentials and later allow the readiness analyzer engine100to establish the connection with the device controller104based on the verification of the user credentials.

Further, the readiness analyzer engine100may query the management unit of the device controller104, to obtain the parameter data of the device controller104, and the first configuration data of the plurality of computing devices106(or plurality of host devices152) from the device controller104. It may be noted herein that the readiness analyzer engine100may receive the parameter data as shown in Table-1 and the first configuration data as shown in Tables-2-8 from the device controller104. The readiness analyzer engine100may later create a utility inventory list having i) parameter data and ii) the first configuration data of each of the plurality of computing devices106. The utility inventory list may be stored in a memory of the readiness analyzer engine100.

The readiness analyzer engine100may simultaneously establish connection with the plurality of networking switches108. In some examples, readiness analyzer engine100may use secure shell to establish connection with the plurality of networking switches108. Subsequently, the readiness analyzer engine100may run specific commands based on the operating system (OS), such as Onyx or Comware running on each of the plurality of networking switches108to obtain a second configuration data from each of the plurality of networking switches108. In some examples, the second configuration data may include resource information of the plurality of networking switches, such as configuration status of network interfaces for one or more networking protocols in each of the plurality of networking switches108. The sample second configuration data is shown in Table-9 for reference.

In some examples, the second configuration data as shown in Table-9, of each of the plurality of networking switches108may be updated in the utility inventory list stored in the memory of the readiness analyzer engine100.

The readiness analyzer engine100may further obtain a pre-determined data that is required (or recommended) for deploying the mission-critical system in the virtualized environment150from a manufacturer of a mission-critical system software. In such examples, the pre-determined data obtained from the manufacturer may be stored in a storage drive of the readiness analyzer engine100. In some examples, the pre-determined data is a pre-determined inventory list. In some examples, the pre-determined data includes pre-determined resource information criteria for deploying the mission-critical system. In some examples, the pre-determined resource information criteria may include i) recommended parameter data and ii) recommended configuration data, such as a recommended first configuration data and a recommended second configuration data, that are suitable for deploying the mission-critical system in the virtualized environment150.

In some examples, the recommended parameter data may include pre-determined resource information corresponding to a recommended device controller and its configurations that are suitable for deploying the mission-critical system. Similarly, the recommended first configuration data may include pre-determined resource information corresponding to a plurality of recommended computing devices and its configuration details that are suitable for deploying the mission-critical system. Further, the recommended second configuration data may include pre-determined resource information corresponding to a plurality of recommended networking switches and its configuration details that are suitable for deploying the mission-critical system.

Even though the recommended parameter data and the recommended first and second configuration data as discussed hereinabove are not shown, it may be noted that such data may be provided by the manufacturer of the mission-critical system software in a data format/framework that is substantially similar to a data format/framework that is used to represent the parameter data (refer to Table-1), the first configuration data (refer to Tables-2-8), and the second configuration data (refer to Table-9).

The readiness analyzer engine100may then validate the parameter data (as shown in Table-1), the first configuration data (as shown in Tables-2-8), and the second configuration data (as shown in Table-9) by comparing against the pre-determined data (as discussed hereinabove) required (or recommended) for deploying the mission-critical system in the virtualized environment150. For example, the readiness analyzer engine100may retrieve the pre-determined inventory list from the storage drive and compare with the utility inventory list stored in the memory for determining an error information or a warning information based on the comparison of both inventory lists.

In one or more examples, validating may include processing the resource information in the parameter data, and the first and second configuration data to determine whether the resource information meets the pre-determined resource information criteria to generate the error information and/or the warning information. In such examples, the error information may include an indicator that the resource information does not meet the pre-determined resource information criteria.

In some examples, referring to the resource information in the parameter data (as shown in Table-1), the management unit has current version as “111” and the workflow automation unit has current version as “ABC”. However, the pre-determined resource information criteria in the recommended parameter data may have a recommended management unit version as “111” and a recommended workflow automation unit version as “XYZ”. Further, the pre-determined resource information criteria in the recommended parameter data may recommend that the workflow automation unit versions “XYZ” or “AAA” are compatible with the management unit version “111” to ensure the workflows for system deployment to run. In such examples, the readiness analyzer engine100may compare the parameter data and the recommended parameter data, and determine the error information in the work automation unit current version and the compatibility mismatch/discrepancy between the work automation unit current version and the management unit current version. For example, the error information may include the indicator that the work automation unit current version does not meet the pre-determined work automation unit version criteria. Further, the error information may include the indicator that the compatibility between the work automation unit current version and the management unit current version does not meet the pre-determined compatibility criteria between the work automation unit and management unit.

In some other examples, referring to the first configuration data as shown in Table-3, the network resource (or the resource information) in one of the computing device106may have “1” number of NIC card. However, the recommended first configuration data may have a recommendation to have “2” numbers of NIC cards in each computing device. In such examples, the readiness analyzer engine100may compare the first configuration data and the recommended first configuration data and determine the error information in one of the computing device106do not have the required number of NIC cards. For example, the error information may include the indicator that the network resource does not meet the pre-determined network resource criteria.

In some other examples, referring to the first configuration data as shown in Table-8, the BIOS in one of the computing device106may not have a logical drive. However, the recommended first configuration data may have a recommendation that BIOS of each computing device should have a logical drive. In such examples, the readiness analyzer engine100may compare the first configuration data and the recommended first configuration data and determine the error information in one of the computing device106do not have the logical drive in the BIOS. For example, the error information may include the indicator that the BIOS resource does not meet the pre-determined BIOS resource criteria.

In some examples, referring to the second configuration data as shown in Table-9, the spanning tree protocol settings status is enabled. However, the recommended second configuration data may have a recommendation that spanning tree protocol settings status to be disabled. In such examples, the readiness analyzer engine100may compare the second configuration data and the recommended second configuration data, and determine the error information in one of the networking switches108to have the spanning tree protocol settings status as enabled, which may need to be disabled. For example, the error information may include the indicator that the network switches protocol setting does not meet the pre-determined protocol setting criteria.

In one or more examples, the warning information may represent the resource information of the plurality of computing devices106that is unessential for deploying the production system in the virtualized environment150. In other words, the warning information may include another indicator that the resource information is unessential for deploying the production system in the virtualized environment.

In some examples, referring to the first configuration data as shown in Table-8, the BIOS in one of the computing device106may not have a raid value as “0”. However, the recommended first configuration data may have a recommendation that the BIOS of each computing device should have a raid value set as “1”. In such examples, the readiness analyzer engine100may compare the first configuration data and the recommended first configuration data, and determine the warning information in one of the computing device106based on the current raid value that is set as “0”, as against the value “1” per the recommendation. For example, the warning information may include the indicator that the BIOS raid value set as “O” is unessential for deploying the production system in the virtualized environment.

In some other examples, the network resource in one of the computing device106may have “3” numbers of NIC cards. However, the recommended first configuration data may have a recommendation to have “2” numbers of NIC cards in each computing device. In such examples, the readiness analyzer engine100may compare the first configuration data and the recommended first configuration data, and determine the warning information in one of the computing device106to have the more than required number of NIC cards. For example, the warning information may include the indicator that the three numbers of the network cards are unessential for deploying the production system in the virtualized environment. In such examples, the administrator114may remove or de-configure such resource information based on the warning information from the readiness analyzer engine100.

The readiness analyzer engine100may generate a sub-report including the parameter data, the first configuration data, and the second configuration data, and at least one of an error information, a warning information based on results of validation for deploying the production system by the device controller.

Further, the readiness analyzer engine100may initiate connectivity test among the plurality of computing devices106. For example, the readiness analyzer engine100may perform interconnect validation among the plurality of computing devices106that is configured in the datacenter environment102. In one or more examples, deploying the mission-critical system in the virtualized environment140may need the plurality of computing devices106to be clustered together using redundant high-speed fabrics110and integrated with storage device and networking switches108. To ensure the plurality of computing devices106are clustered together, the readiness analyzer engine100may request the device controller104to deploy at least one virtual test-computing machine154in the virtualized environment150on each computing device106. For example, the device controller104may deploy at least one virtual test-computing machine154for each fabric pair configured in the corresponding host device152. Later, the device controller104may power-on each virtual test-computing machine154.

Further, the readiness analyzer engine100may request the device controller104to configure network interfaces on each virtual test-computing machine154among a plurality of virtual test-computing machines. For example, the device controller104may configure network interfaces such as “eth0”, “ibx”, and “iby” on each virtual test-computing machine154. In some examples, the network interfaces “eth0” is configured to validate connectivity among host devices152through maintenance network. Similarly, the network interfaces “ibx” and “iby” are configured to validate connectivity among the host devices152through switch network. Since, deploying the mission-critical system may require the host devices152to be interconnected via redundant networking switches108to achieve fault tolerance, one of the networking switch108is configured for the networking interface “ibx”, while the other networking switch108is configured for the networking interface “iby”.

Further, the readiness analyzer engine100may perform the connectivity test among the plurality of virtual test-computing machines154through the plurality of networking switches108. In some examples, the connectivity test is performed using a ping test. For example, performing the ping tests include pinging from each network interface (“eth0”, “ibx”, and “iby”) of one virtual test-computing machine154A belonging to a host device152A to each network interfaces of other virtual test-computing machine154B belonging to another host device152B in the datacenter environment102. The goal of the ping tests are to validate connectivity among the virtual test-computing machines154, and detect any inadvertent cross-connections there between. For example, the “ibx” network interface of one virtual test-computing machine154A should not be able to ping the “iby” interface of other virtual test-computing machine154B, whereas, the “ibx” network interface of one virtual test-computing machine154A should be able to ping the “ibx” interface of other virtual test-computing machine154B. The readiness analyzer engine100may identify one or more failed or passed results based on the ping tests. Accordingly, the readiness analyzer engine100may generate another sub-report including connectivity test results based on the ping tests, for examples.

The sample connectivity test results is shown in Table-10 for reference.

In one or more examples, the readiness analyzer engine100may consolidate the results obtained by the validation of the parameter data, the first configuration data, the second configuration data, and the connectivity test results, as discussed herein above, and generate a consolidated report (or report). In some examples, the consolidated report may include the parameter data, the first configuration data, the second configuration data, results of the connectivity test, and at least one of the error information or the warning information based on results of validation. It may be noted herein that a sample consolidated report is not shown for ease of illustration purpose, which should not be construed as a limitation of the present disclosure.

The readiness analyzer engine100may further determine readiness of the plurality of computing devices106and the plurality of networking switches108for deploying the production system in the virtualized environment, based on the consolidated report. For example, the readiness analyzer engine100may execute a data analysis algorithm on the consolidated report and communicate the error and warning information, and the connectivity test failed information to the administrator114. In some other examples, the readiness analyzer engine100may make the consolidated report available for the administrator114for review and analysis. In all such examples, the administrator114may refer to the error information and/or the connectivity test failed information and easily fix the errors in the plurality of computing devices106, the plurality of networking switches108, or connectivity issues among the plurality of computing devices106. After the errors and/or the connectivity issues are fixed (or addressed) by the administrator114, the readiness analyzer engine100may re-validate at least one of the parameter data, the first configuration data, the second configuration data, and the connectivity test results in order to determine the readiness of the datacenter environment102for deploying the mission-critical system in the virtualized environment150.

After determining that the datacenter environment102is ready for deploying the mission-critical system, the device controller104may use the virtualization software to deploy one or more virtual machines (not shown) on each host device152in order to deploy the mission-critical system in the virtualized environment150. In such examples, the device controller104may further configure each virtual machine to deploy the mission-critical system in the virtualized environment150. In some examples, the mission-critical system is formed by clustering the plurality of computing devices106(or virtual machines) together using high-speed fabrics110and integrated with the storage device (not shown—connected to the one or more computing device106) and the plurality of networking switches108. The mission-critical system in the virtualized environment150, may then facilitate to host (execute or run) one or more workloads (i.e., application software), such as a mission-critical workload of a customer for delivering intended services to the connected users. In some non-limiting examples, the mission-critical workload may include a stock market application, a navigational support application for a spacecraft, or the like.

FIG.2depicts a block diagram of a readiness analyzer engine200including a processing resource250and a machine readable medium260storing executable program instructions. It should be noted herein that the readiness analyzer engine200referred to inFIG.2may be same or similar to a readiness analyzer engine100described inFIG.1. In some examples, the processing resource250is operably coupled to the machine readable medium260. The processing resource250may be a physical processor. In some examples, the physical processor may be a microprocessor suitable for performing the functionality described in relation toFIG.1. In some examples, the machine readable medium260is non-transitory and is alternatively referred to as a non-transitory machine readable medium. The processing resource250executes one or more program instructions (e.g., processing resource executable program instructions) to perform one or more functions described inFIG.1.

The processing resource250may execute program instructions for receiving a parameter data of a device controller, and a first configuration data of a plurality of computing devices from the device controller. In one or more examples, the readiness analyzer engine is communicatively coupled to the device controller. Further, the device controller is connected to the plurality of computing devices of a datacenter environment. The device controller manages deployment and configuration of a virtualized environment on the datacenter environment. In some examples, the parameter data includes at least one of general attributes of the device controller, types of deployment engine, or user privileges in the device controller. The first configuration data includes at least one of a hardware configuration data, a network configuration data, or a storage configuration data of each of the plurality of computing devices.

Further, the processing resource250may later execute the one or more program instructions for receiving a second configuration data of a plurality of networking switches connected to the plurality of computing devices. In one or more examples, the readiness analyzer engine is further communicatively coupled to the plurality of networking switches. The second configuration data includes configuration status of network interfaces for one or more networking protocols in each of the plurality of networking switches.

The processing resource250may further execute the one or more program instructions for validating the parameter data, the first configuration data, and the second configuration data by comparing against a pre-determined data required for deploying a production system in the virtualized environment. In some examples, the pre-determined data may be provided by a manufacturer of a mission-critical system software. The pre-determined data may include a recommended parameter data, a recommended first configuration data, and a recommended second configuration data for deploying the mission-critical system in the virtualized system.

The processing resource250may further execute the one or more program instructions for generating a sub-report including the parameter data, the first configuration data, and the second configuration data, and at least one of an error information, a warning information based on results of validation for deploying the production system by the device controller. In such examples, the readiness analyzer engine may then determine if the sub-report includes any error information, based on the analysis of the sub-report. If it is determined that the sub-report does not include error information or in other words, if it is determined that the parameter data, the first configuration data, and the second configuration data are configured as per the requirement configuration (or recommendation configuration) based on analysis of the sub-report. Then, the readiness analyzer engine may proceed with executing the one or more program instructions for performing a connectivity test among the plurality of computing devices. In some examples, performing the connectivity test includes executing program instructions to instruct the device controller to deploy a virtual test-computing machine in the virtualized environment on each of the plurality of computing devices, and configure network interfaces on each virtual test-computing machine among a plurality of virtual test-computing machines. Further, performing the connectivity test includes executing program instructions to check connectivity between the plurality of virtual test-computing machines through the plurality of networking switches, and generating another sub-report including the results of the connectivity test.

The processing resource250may further execute the one or more program instructions for generating a report (combination of the sub-report and other sub-report) including the parameter data, the first configuration data, the second configuration data, results of the connectivity test, and at least one of an error information or a warning information based on results of validation, for deploying the production system by the device controller. In such examples, administrator of the datacenter environment may review the report and fix the errors in the datacenter environment to make it ready for deploying the mission-critical system in the virtualized environment.

FIG.3depicts a block diagram300of a processing resource350and a machine readable medium360encoded with example instructions executable by a readiness analyzer engine for validating readiness of computing devices of a datacenter environment and networking switches for deploying a production system in a virtualized environment of the datacenter environment. It should be noted herein that the readiness analyzer engine referred to inFIG.3may be same or similar to readiness analyzer engine100,200described inFIGS.1-2respectively. The machine readable medium360is non-transitory and is alternatively referred to as a non-transitory machine readable medium. In some examples, the machine readable medium360may be accessed by the processing resource350. In some examples, the machine readable medium360stores the program instructions corresponding to functionality of the readiness analyzer engine, as discussed inFIGS.1-2. The machine readable medium360may be encoded with example first, second, third, fourth, and fifth instructions302,304,306,308, and310respectively.

The first instruction302, when executed by the processing resource350may implement aspects of receiving a parameter data of a device controller, and a first configuration data of a plurality of computing devices from the device controller. In one or more examples, the readiness analyzer engine is communicatively coupled to the device controller. Further, the device controller is connected to the plurality of computing devices of a datacenter environment, where the device controller manages deployment and configuration of a virtualized environment on the datacenter environment. The step of receiving the parameter data, the first configuration data are described in details inFIG.1.

The second instruction304when executed by the processing resource350may implement aspects of receiving a second configuration data of a plurality of networking switches connected to the plurality of computing devices. In one or more examples, the readiness analyzer engine is communicatively coupled to the plurality of networking switches. The step of receiving the second configuration data is described in details inFIG.1.

The third instruction306, when executed by the processing resource350may implement aspects of validating the parameter data, the first configuration data, and the second configuration data by comparing against a pre-determined data required for deploying a production system in the virtualized environment. In some examples, the pre-determined data may be provided by a manufacturer of a mission-critical system software. The pre-determined data may include a recommended parameter data, a recommended first configuration data, and a recommended second configuration data for deploying the mission-critical system in the virtualized system. The step of validating the parameter data, the first and second configuration data is described in details inFIG.1. In some examples, the third instruction, may also result in generating a sub-report including a sub-report including the parameter data, the first configuration data, and the second configuration data, and at least one of an error information, a warning information based on results of validation for deploying the production system by the device controller.

The fourth instruction308, when executed by the processing resource350may implement aspects of performing a connectivity test among the plurality of computing devices. In some examples, performing the connectivity test includes executing program instructions to instruct the device controller to deploy a virtual test-computing machine in the virtualized environment on each of the plurality of computing devices, and configure network interfaces on each virtual test-computing machine among a plurality of virtual test-computing machines. Further, performing the connectivity test includes executing program instructions to check connectivity between the plurality of virtual test-computing machines through the plurality of networking switches, and generating another report including the results of the connectivity test. The step of performing the connectivity test among the plurality of computing devices is described in details inFIG.1.

The fifth instruction310, when executed by the processing resource350may implement aspects of generating a consolidated report (or report) including the parameter data, the first configuration data, the second configuration data, results of the connectivity test, and at least one of the error information or the warning information based on results of validation, for deploying the production system by the device controller. In such examples, administrator of the datacenter environment may review the consolidated report and fix the errors in the datacenter environment to make it ready for deploying the mission-critical system in the virtualized environment. The step of generating the report (or consolidated report) is described in details inFIG.1.

FIG.4is a flow diagram depicting a method400for validating readiness of computing devices and networking switches for deploying a production system in a virtualized environment of a datacenter environment. It should be noted herein that the method400is described in conjunction withFIG.1. In one or more examples, a plurality of steps discussed herein in the method400is performed by a readiness analyzer engine.

The method400starts at block402and continues to block404. At block404, the method400includes receiving a parameter data of a device controller and a first configuration data of a plurality of computing devices in a datacenter environment from the device controller, as described inFIG.1. In one or more examples, the device controller manages deployment and configuration of a virtualized environment on the datacenter environment. In such examples, the device controller may store a management utility list of the parameter data and the first configuration data in a storage drive of the device controller after the deployment and configuration of the virtualized environment on the datacenter environment. In such examples, the device controller may access the parameter data and the first configuration data stored in the storage drive of the device controller on receipt of request from the readiness analyzer engine, and transfer a copy of the parameter data and the first parameter data to the readiness analyzer engine. The method400continues to block406.

At block406, the method400includes receiving a second configuration data from a plurality of networking switches, as described inFIG.1. In one or more examples, network interfaces for one or more networking protocols in each of the plurality of networking switches may have been configured by the administrator. In such examples, the second configuration file having such configuration details may be stored in a storage drive of corresponding network switch. Hence, when the plurality of networking switches receives the request from the readiness analyzer engine for the second configuration data, each networking switch may transfer a copy of the second configuration file to the readiness analyzer engine. The method400continues to block408.

At block408, the method400includes validating the parameter data, and the first configuration data received from the device controller, and the second configuration data received from the plurality of networking switches by comparing against a pre-determined data required for deploying a production system in the virtualized environment, as described inFIG.1. For example, validating may include processing the resource information in the parameter data, and the first and second configuration data to determine whether the resource information meets the pre-determined resource information criteria to generate an error information and/or a warning information. In some examples, the pre-determined data may be provided by a manufacturer of a mission-critical system software. The pre-determined data may include a recommended parameter data, a recommended first configuration data, and a recommended second configuration data, which are suitable (or recommended) for deploying the mission-critical system in the virtualized system. The method400, continues to block410.

At block410, the method400includes generating a report (a sub-report) including the parameter data, the first and second configuration data, at least one of the error information or the warning information based on the validation of the parameter data, the first configuration data, and the second configuration data, as described inFIG.1. In some examples, the error information may include an indicator that the resource information does not meet the pre-determined resource information criteria. Similarly, the warning information may include another indicator that the resource information is unessential for deploying the production system in the virtualized environment.

At block412, the method400includes determining readiness of the datacenter environment based on the sub-report, as described inFIG.1. In some examples, the readiness analyzer engine may run a data analytics algorithm to determine if the sub-report includes the error information. If the sub-report includes the error information, the readiness analyzer engine may provide the error information details to the administrator of the datacenter environment to fix the errors in the corresponding computing device and/or the networking switch. In some other examples, the readiness analyzer engine may provide the sub-report to the administrator for analysis. After, the administrator fixes the errors in the corresponding computing device and/or the networking switch, the administrator may instruct the readiness analyzer engine to re-validate the readiness of the plurality of computing devices and the networking switches for deploying the mission-critical system. Accordingly, the readiness analyzer engine may reinitiate the validation process i.e., “no” at block412, of determining readiness of the computing systems and networking switches. In particular, the readiness analyzer engine may repeat the steps recited in blocks404to410to re-determine the readiness of the computing devices and the networking switches.

At block412, if the readiness analyzer engine determines that the sub-report do not include error information, i.e., “yes” at block412, the method400continues to block414, where the readiness analyzer engine may proceed with the step of performing connectivity test among the plurality of computing devices to further determine the readiness of the datacenter environment for deploying the mission-critical system in the virtualized environment. The method400ends at block416.

FIG.5is a flow diagram depicting a method500of performing connectivity test among computing devices through networking switches for deploying a production system in a virtualized environment of a datacenter environment, in accordance with embodiments of the present disclosure. It should be noted herein that the method500is described in conjunction withFIGS.1and4. In one or more examples, a plurality of steps discussed herein in the method500is performed by a combination of a device controller and the readiness analyzer engine.

The method500starts at block502and continues to block504. At block504, the method500includes the readiness analyzer engine to instruct the device controller to deploy a virtual test-computing machine in the virtualized environment on each of the plurality of computing devices, as discussed inFIG.1. In some examples, the device controller may create the virtual test-computing machine on each host device deployed on a corresponding computing device in the virtualized environment. The method of deploying and configuring the virtualization environment on each computing device to form the host device is discussed in greater details inFIG.1. The method500continues to block506.

At block506, the method500includes the readiness analyzer engine instructing the device control to further configure network interfaces on each virtual test-computing machine among a plurality of virtual test-computing machines, as discussed inFIG.1. For example, the device controller may configure network interfaces such as “eth0”, “ibx”, and “iby” on each virtual test-computing machine. In some examples, the network interfaces “eth0” is configured to validate connectivity among host device through maintenance network. Similarly, the network interfaces “ibx” and “iby” are configured to validate connectivity among the host device through the switch network. The method500continues to block508.

At block508, the method500includes the readiness analyzer engine checking the connectivity among the plurality of computing devices through the plurality of networking switches, as discussed inFIG.1. For example, the readiness analyzer engine may perform the ping test to validate connectivity and detect any inadvertent cross-connections there between. The method500continues to block510.

At block510, the method500includes the readiness analyzer engine to generate another report (another sub-report) including results of the connectivity test, as discussed inFIG.1. The method continues to block512.

Further, at block512, the method500includes determining readiness of the datacenter environment based on the other sub-report, as described inFIG.1. In some examples, the readiness analyzer engine may run a data analytics algorithm to determine if the other sub-report includes at least one test failed (as shown in Table-10). If the report includes the test failed details, the readiness analyzer engine may provide the test failed details to the administrator of the datacenter environment to fix the network interfaces, which caused the test to fail in the corresponding networking switch. In some other examples, the readiness analyzer engine may provide the other sub-report including the connectivity test results to the administrator for analysis. After, the administrator fixes the network interfaces based on the failed test results in the corresponding networking switch, the administrator may instruct the readiness analyzer engine to re-validate the connectivity among the plurality of computing devices for deploying the mission-critical system. Accordingly, the readiness analyzer engine may reinitiate the connectivity test process i.e., “no” at block512among the plurality of computing devices. In particular, the readiness analyzer engine may repeat the steps recited in blocks504to510to re-determine readiness of the computing devices and the networking switches based on the connectivity among the plurality of computing devices via the plurality of networking switches.

At block512, if the readiness analyzer engine determines that the other sub-report does not include test failed, i.e., “yes” at block512, the method continues to block514, where the readiness analyzer engine may generate a consolidated report (or report—combination of the sub-report and other sub-report) and provide the consolidated report based on the results of validation and results of the connectivity test, to the administrator. In such examples, the administrator may review the consolidated report and perform one or more steps for deploying the mission-critical system in the virtualized environment, as discussed inFIG.1. The method500ends at block516.

Various features as illustrated in the examples described herein may be implemented to perform pre-deployment activities, such as validating the datacenter environment for required configuration for deploying the mission-critical system, even before attempting an actual deployment of the mission-critical system in the virtualized environment. Accordingly, performing the pre-deployment activities may result in identifying configuration issues in the datacenter environment upfront, and fixing the identified configuration issues in the datacenter environment before the actual deployment. Thus, reducing the complexity during the actual deployment of the mission-critical system, and overall time spent on the actual deployment of the mission-critical system.