WO2017041649A1 - Application deployment method and device - Google Patents

Application deployment method and device Download PDF

Info

Publication number
WO2017041649A1
WO2017041649A1 PCT/CN2016/097492 CN2016097492W WO2017041649A1 WO 2017041649 A1 WO2017041649 A1 WO 2017041649A1 CN 2016097492 W CN2016097492 W CN 2016097492W WO 2017041649 A1 WO2017041649 A1 WO 2017041649A1
Authority
WO
WIPO (PCT)
Prior art keywords
application
application server
configuration information
deployment
server
Prior art date
Application number
PCT/CN2016/097492
Other languages
French (fr)
Chinese (zh)
Inventor
阚俊宝
Original Assignee
阿里巴巴集团控股有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 阿里巴巴集团控股有限公司 filed Critical 阿里巴巴集团控股有限公司
Publication of WO2017041649A1 publication Critical patent/WO2017041649A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles

Definitions

  • the present application relates to the field of computers, and in particular, to an application deployment method and device.
  • cloud computing enables enterprises to obtain services on the network in an on-demand and easy-to-expand manner, eliminating the troubles and costs of software purchase, operation and maintenance, and reducing enterprise management costs. It is gradually shifting to cloud computing.
  • An important feature of cloud computing is that it is easy to expand, that is, the flexibility of computing power.
  • the system can allocate more computing resources to the user.
  • the general operation is as follows: the server is allocated to the user in a cluster manner. When the computing resource of the service requirement is greater than the current computing capability, the system adds more servers to the cluster to supplement, and likewise, when the service When the amount is reduced, the system reduces the number of servers in the cluster.
  • FIG. 1 is a schematic diagram of an application deployment solution in the prior art.
  • the application deployment process is as follows: the application deployment device 110 reads a local configuration file, and sequentially establishes a connection with each application server in the application cluster according to the local configuration file.
  • the application deployment device 110 uploads the installation configuration package to the application server 1 and deploys the application on the application server 1; the application deployment device 110 performs application deployment on the remaining application servers 2 to N in the manner of the previous step. After the completion of the application, the application deployment device 110 processes the result and feeds back to the user; if the application server needs to be added to the application cluster, the user must modify the configuration file of the application deployment device or obtain a preset configuration file, and repeat the foregoing steps to re-apply the application. deploy.
  • the network architecture of the existing application deployment solution is relatively fixed. If an application server is dynamically added to the application cluster, the deployment and upgrade of the application must be modified accordingly, so the application deployment The method is not flexible enough to be deployed flexibly.
  • the purpose of the application is to provide an application deployment method and device to solve the problem that the application deployment mode in the prior art is not flexible enough to be flexibly deployed.
  • an application deployment method including:
  • the online configuration information includes an application server to be deployed determined according to current requirements of the application;
  • the application server is deployed to the newly added application server, and updated according to the online configuration information.
  • the local configuration information where the local configuration information includes an application server that has been deployed by an application.
  • the method further includes:
  • the local configuration information is updated according to the online configuration information.
  • obtaining online configuration information includes:
  • application deployment to the newly added application server includes:
  • application deployment to the newly added application server includes:
  • application deployment to the newly added application server includes:
  • the installation configuration package of the application is sent to a plurality of application servers of a type corresponding to the type of the application, and the application server is simultaneously deployed according to the installation configuration package;
  • the installation configuration package of the application is sequentially sent to multiple application servers of a type corresponding to the type of the application, and the application server is sequentially applied to the application server according to the installation configuration package. Department.
  • the application deployment of the application server is performed according to the installation configuration package, including:
  • application deployment to the newly added application server includes:
  • the login user name of the application server is obtained according to one of the following priority order:
  • the user name of the local device is obtained as the login user name of the application server.
  • the login password of the application server is obtained according to one of the following priority order:
  • the password entered by the user from the local device is obtained as the login password of the application server.
  • an application deployment device comprising:
  • Configuring the obtaining device configured to obtain online configuration information, where the online configuration information includes an application server to be deployed determined according to current requirements of the application;
  • a deployment device if the online configuration information is different from the local configuration information, and the new application server is included in the online configuration information, applying the application to the newly added application server, and according to the The online configuration information updates the local configuration information, where the local configuration information includes an application server that has been deployed by the application.
  • the deployment device is further configured to: if the online configuration information is different from the local configuration information, and there is no new application server in the online configuration information, update the information according to the online configuration information. Local configuration information.
  • the configuration obtaining means is configured to send a query request to the elastic extension service platform, and receive online configuration information sent by the elastic extension service platform according to the query request, where the elastic extension platform root Determine the application server to be deployed according to the needs of the application; or
  • the deployment device is configured to send an installation configuration package of the application to an application server of a type corresponding to the application type when the application deployment is performed on the newly added application server, and according to the installation configuration.
  • the package performs application deployment on the application server.
  • the deployment device is configured to send the installation configuration package of the application to a plurality of newly added application servers when the application deployment is performed on the newly added application server, and simultaneously perform the installation according to the installation configuration package.
  • the application server is used for application deployment.
  • the deployment device when the application is deployed to the newly added application server, the deployment device is configured to send the installation configuration package of the application to a type corresponding to the type of the application, if the application can be executed concurrently. a plurality of application servers, and performing application deployment on the application server according to the installation configuration package; and if the applications are not executable concurrently, sequentially sending the installation configuration package of the application to a type corresponding to the application A plurality of application servers of a type, and application deployment of the application server in sequence according to the installation configuration package.
  • the deployment device is configured to create a sub-process for each application server when the application deployment is performed on the application server according to the installation configuration package, and control the sub-process according to the installation configuration package pair respectively.
  • the application server performs application deployment; and obtains an application deployment result of each application server sent by the sub-process.
  • the deployment device is configured to acquire a login user name and a login password of the application server, and log in to the application server according to the login user name and a login password;
  • the login user name of the application server is obtained according to one of the following priority order:
  • the user name of the local device is obtained as the login user name of the application server.
  • the login password of the application server is obtained according to one of the following priority order:
  • the password entered by the user from the local device is obtained as the login password of the application server.
  • the technical solution of the present application can dynamically obtain the online configuration information of the application server to be deployed determined according to the current needs of the application, and compare with the local configuration information to find a new one. After the application server needs to be deployed, apply the application deployment to these new application servers to implement flexible application deployment, improve the flexibility of the deployment solution, and update the original local configuration information through online configuration information.
  • the application server that has been deployed by the application is recorded to ensure the accuracy of subsequent application deployment.
  • FIG. 1 is a schematic diagram of a principle of an application deployment solution in the prior art
  • FIG. 2 is a flowchart of an application deployment method according to an embodiment of the present application.
  • FIG. 3 is a schematic diagram of a typical implementation manner of related devices involved in application deployment in an embodiment of the present application
  • FIG. 4 is a flowchart of processing when an application deployment device is deployed in an application according to an embodiment of the present application
  • FIG. 5(a) is a schematic diagram showing the principle of application deployment in a sequential execution manner
  • Figure 5 (b) is a schematic diagram of the principle of application deployment in a concurrent deployment manner
  • FIG. 6 is a flowchart of a process in which an application deployment manner according to an application server type is combined with a concurrent deployment manner according to an embodiment of the present application;
  • FIG. 7 is a flowchart of a process for concurrently deploying applications in a multi-threaded manner according to an embodiment of the present application
  • FIG. 8( a ) is a flowchart of a process for obtaining a login user name in the embodiment of the present application
  • FIG. 8(b) is a flowchart of processing for obtaining a login password in the embodiment of the present application.
  • FIG. 9 is a schematic structural diagram of an application deployment device according to an embodiment of the present disclosure.
  • the terminal, the device of the service network, and the trusted party each include one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
  • processors CPUs
  • input/output interfaces network interfaces
  • memory volatile and non-volatile memory
  • the memory may include non-persistent memory, random access memory (RAM), and/or non-volatile memory in a computer readable medium, such as read only memory (ROM) or flash memory.
  • RAM random access memory
  • ROM read only memory
  • Memory is computer readable A qualitative example.
  • Computer readable media includes both permanent and non-persistent, removable and non-removable media.
  • Information storage can be implemented by any method or technology.
  • the information can be computer readable instructions, data structures, modules of programs, or other data.
  • Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read only memory. (ROM), electrically erasable programmable read only memory (EEPROM), flash memory or other memory technology, compact disk read only memory (CD-ROM), digital versatile disk (DVD) or other optical storage,
  • computer readable media does not include non-transitory computer readable media, such as modulated data signals and carrier waves.
  • FIG. 2 shows an application deployment method provided by an embodiment of the present application, where the method includes the following steps:
  • Step S201 acquiring online configuration information, where the online configuration information includes an application server to be deployed determined according to current requirements of the application;
  • Step S202 if the online configuration information is different from the local configuration information, and the new configuration server is included in the online configuration information, the application deployment is performed on the newly added application server, and according to the online The configuration information updates the local configuration information, where the local configuration information includes an application server that has been deployed by the application.
  • the method is especially applicable to the scenario where the initial deployment of the application has been completed, and the dynamic elastic adjustment is performed in the subsequent operation and maintenance process. If the initial deployment of the application is required, the information of the application server that needs to be deployed by the application and the corresponding installation configuration package are provided by the user, and the initial deployment of the application server is completed. For application servers that have been deployed for application during initial deployment, they can be saved as local configuration information.
  • the online configuration information of the application server to be deployed determined according to the current requirements of the application can be dynamically obtained, and compared with the local configuration information, after the application server is found to be deployed, The application server is deployed to implement the application deployment, so that the application can be flexibly deployed, and the flexibility of the deployment solution can be improved.
  • the local configuration information is updated through the online configuration information, and the application server that has been deployed by the application is recorded to ensure that the application server is deployed. The accuracy of subsequent application deployments.
  • the execution body of the above application deployment method may include, but is not limited to, a user equipment, a network device, or a device formed by integrating a user equipment and a network device through a network.
  • the user equipment includes, but is not limited to, a personal computer, a touch terminal, and the like;
  • the network device includes, but is not limited to, a network host, a single network server, a plurality of network server sets, or a cloud computing-based computer set.
  • the cloud is composed of a large number of hosts or network servers based on Cloud Computing, where cloud computing is a distributed meter.
  • a type of virtual computer consisting of a group of loosely coupled computers.
  • FIG. 3 shows an exemplary implementation of a related device involved in the application deployment method, including an application deployment device 310, an application cluster 320 including multiple application servers, an elastic extension service platform 330, and a user local working device 340.
  • the application deployment device 310 is configured to execute the application deployment method, and apply the application deployment to the application server.
  • the application server is configured to run the related application after the application deployment is completed.
  • the user local working device 340 is a device for the user to interact with the application deployment device 310, and is used for providing the user with the installation configuration package, related information during initial deployment, and the like.
  • the flexible telescopic service platform 330 can adjust the computing resources in the cloud resource pool, and allocate the servers in the cloud resource pool to the application according to the current needs of the application, so that the application server to be deployed can be determined, thereby obtaining online configuration information, and The obtained online configuration information is provided to the application deployment device 310 for flexible deployment.
  • the specific implementation of the elastic scalability service platform 330 may be determined by a service provider, such as an ESS (Elastic Scaling Service) provided by the Facebook Cloud platform.
  • the obtaining the online configuration information includes: sending an inquiry request to the elastic extension service platform, and receiving online configuration information sent by the elastic extension service platform according to the query request, wherein the elastic extension platform is based on the application The requirement determines the application server to be deployed currently; or receives a push message sent by the elastic extension service platform that includes the online configuration information.
  • the application deployment device may receive the push message by using the elastic extension service platform, where the push message includes online configuration information, and the push message can be obtained by parsing the push message.
  • On-line configuration information is used for application deployment.
  • the application deployment device does not use the push service, you can send a query request to the elastic extension service platform periodically (for example, every two seconds) to query the online configuration information. Feedback, get online configuration information. According to different application scenarios, online configuration information can be obtained in different ways to improve the versatility of the solution.
  • the information about the five application servers will be stored in the local configuration information, including the IP of the application server and the number of application servers. .
  • the load of the server will be significantly increased due to more viewers, which may cause the server to crash and affect the user's viewing experience. Therefore, the application needs to be deployed on other new application servers to share the load of the current application server. For example, a total of seven application servers are required to meet the current load requirements, and an online line containing information about the seven application servers is obtained. Configuration information. By comparing with the local configuration information, the newly added application server is deployed to meet the current requirements of the application, and the content in the local configuration information is updated to the related content of the seven application servers.
  • the following situation may also exist.
  • the number of viewers may be reduced.
  • using 7 application servers may cause waste of computing resources. So according to this time
  • the application needs reduce the number of application servers and increase the utilization of computing resources.
  • the foregoing remote application configuration method after the online configuration information is acquired, if the online configuration information is different from the local configuration information, and there is no new application server in the online configuration information, according to the online configuration The information updates the local configuration information.
  • the number of application servers to be deployed determined according to the current needs of the application is compared with the current The number of application servers deployed by the application is reduced. For the application deployment device, only the local configuration information needs to be updated according to the online configuration information.
  • Step S401 Acquire initial configuration information of the application and a corresponding installation configuration package install.tgz, and thereby complete initial deployment of the application server. For information about the application server that has been deployed for the initial deployment, you can save the file topo.conf as local configuration information.
  • step S402 it is determined whether to use the push service. If the push service is used, step S403 is performed; if the push server is not used, step 404 is performed.
  • Step S403 receiving the elastic extension service platform push message, and obtaining the online configuration information from the push message, and then performing step S405.
  • Step S404 the query request is sent to the elastic extension service platform, and the online configuration information is obtained according to the feedback, and then step S405 is performed.
  • step S405 the online configuration information is compared with the local configuration information. If the two are the same, the device waits for the set time, and then returns to step S402. If the two are different, step S406 is performed.
  • Step S406 determining whether there is a new application server in the online configuration information, and if yes, executing step S407; if not, executing step S408.
  • step S407 the application deployment is performed on the newly added application server by using the installation configuration package install.tgz, and then step S408 is performed.
  • Step S408 updating the file topo.conf storing the local configuration information according to the online configuration information, and then returning to step S402.
  • the application deployment of the newly added application server includes: sending the installation configuration package of the application to an application server of a type corresponding to the application type, and according to the The installation configuration package performs application deployment on the application server.
  • Different server clusters can be defined by defining different types of application servers, so that different applications can be deployed in different server clusters.
  • the application is integrated into the corresponding type of application server to facilitate the management of the server cluster.
  • the cluster of the application server and the application server are respectively defined using roledefs and roles.
  • the specific format is:
  • Roledefs ⁇ 'apphosts':[‘host1','host2','host3'],'webhosts':['host3','host4'] ⁇
  • cluster 1 "apphosts”, which contains three application servers host1, host2, and host3.
  • Task 1 (task1) is executed on the application server belonging to the "apphosts” cluster.
  • the specific task is to install the app.
  • Application run('/root/install_app.sh)
  • cluster 2 "apphosts", which contains two application servers host3 and host4, and performs task 2 (task2) on the application server belonging to the "webhosts” cluster.
  • the specific task is to install the web.
  • Application run('/root/install_web.sh')
  • the application deployment device uploads the installation configuration package to the application server 1, and deploys the application on the application server 1, and then the application deployment device sequentially goes to the remaining application servers 2 to N according to the previous step.
  • the time for application deployment to N application servers is T ⁇ N, where T is the time required for application deployment to one server. Since the application deployment process between application servers is independent of each other, concurrent application deployment to all application servers does not adversely affect the entire application deployment process, and theoretically, an application is deployed concurrently on N application servers.
  • the application deployment of the newly added application server includes: sending the installation configuration package of the application to a plurality of newly added application servers, and performing application deployment on the application server according to the installation configuration package.
  • FIG. 5(a) and FIG. 5(b) are schematic diagrams showing the deployment manner and the concurrent deployment mode of the foregoing sequence.
  • the deployment task task1 of application 1 deploys application 1 in host1, host2, and host3 in turn.
  • the task2 will deploy application 2 in host1, host2, and host3 in turn, assuming that application 1 and application 2 are deployed on each application server for the same time, both are T.
  • the total deployment time requires 6T.
  • the deployment task task1 of application 1 deploys application 1 in host1, host2, and host3 at the same time.
  • the deployment task task2 of application 2 is also on host1.
  • Application 2 is deployed on host2 and host3. Therefore, the total deployment time of this method is 2T, and the deployment efficiency is significantly improved.
  • the foregoing manner of deploying an application according to an application server type may be combined with a manner of concurrent deployment, and a logical processing flow thereof is shown in FIG. 6.
  • the roles variable in the configuration information can be used to determine whether the corresponding type is set. If there is a roles variable, the application server of the corresponding type can be determined according to the roles variable, and then according to the parallel variable in the configuration information of the application. To determine if the deployment of the application can proceed concurrently.
  • the installation configuration package of the application is simultaneously sent to multiple application servers of a type corresponding to the type of the application, And performing application deployment on the application server according to the installation configuration package, that is, sending the installation configuration package of the application to the host1, host2, and host3 at the same time, and simultaneously installing the configuration package on the host1, the host2, and the host3 according to the installation configuration package. Apply for application deployment. If the application is not executable concurrently (that is, the parallel variable is not enabled), the installation configuration package of the application is sequentially sent to multiple application servers of a type corresponding to the type of the application, and sequentially according to the installation configuration package.
  • the application server performs application deployment, that is, the installation configuration package of the application is sent to the host1, and the application configuration is performed according to the installation configuration package, and then the installation configuration package is sent to the host2 and the application deployment is performed on the host2. Finally, send the configuration package to host3 and deploy the application to host3.
  • the roles variable does not exist, it means that the application needs to be deployed on an application server of an undefined type.
  • the application server defined by the hosts variable represents the application server. Therefore, if there is no roles variable, and the application can be executed concurrently, the installation configuration package of the application is simultaneously sent to the application server defined by the plurality of hosts variables, and the installation configuration package is sequentially performed according to the installation configuration package.
  • the application server is used for application deployment. If the roles variable does not exist, and the application is not executable concurrently, the installation configuration package of the application is sequentially sent to an application server defined by multiple hosts variables, and the application server is sequentially performed according to the installation configuration package. Application deployment.
  • a multi-process approach can be adopted. And performing the application deployment on the application server according to the installation configuration package, specifically: creating a child process for each application server, and controlling the child process to respectively apply the application according to the installation configuration package
  • the server performs application deployment; and obtains an application deployment result of each application server sent by the child process.
  • the application process of the three application servers in the "apphosts" cluster is as shown in Figure 7. If the application process is deployed, the main process in the application deployment device determines that the application can be executed concurrently.
  • Each sub-process is responsible for application deployment, management and control of the corresponding application server, and different sub-processes do not affect each other.
  • the main process indicates that the sub-process 1, sub-process 2, and sub-process 3 are deployed on the host1, host2, and host3.
  • the sub-process sends the application deployment result to the main process.
  • the main process collects the application deployment results of all the sub-processes, the results are summarized and sent to the local working device to complete the feedback to the user.
  • the application deployment of the newly added application server includes: obtaining the login user name and the login password of the application server, logging in to the application server according to the login user name and the login password; and instructing the application server to be installed.
  • the installation configuration package of the application When the application server is deployed for application, you can log in to the corresponding application server by using the login user name and login password to obtain the permission to install the configuration package of the related application on the application server, thereby ensuring the security of the network environment.
  • the number of application servers included in the cluster is large. Therefore, there are many login user names and login password input requirements during the deployment process.
  • the difficulty is that the login user name of the application server is obtained according to one of the following priority order in the embodiment of the present application. For details, refer to FIG. 8( a ):
  • the login user name of the application server from the preset file.
  • the priority of the method is lower than the login user name of the application server obtained by the input information of the command line, where the preset file may be a configuration description file in the installation configuration package, or may be the user during the initial configuration process.
  • the login user name of the application server can be saved by a related variable in the preset file.
  • the login user name is saved by two variables in the preset file, respectively, a user variable and a hosts variable, where hosts
  • the variables respectively define different login user names for different application servers, and may be in the form of a correspondence table between the identifier of the application server (for example, an IP address) and the login user name of the application server.
  • the hosts variable exists, the application server is acquired.
  • the user variable uniformly defines a login user name.
  • the hosts variable does not exist or the application server in the hosts variable is not online at present, the login user name is extracted from the user variable, so the priority of the user variable is lower than the hosts variable. .
  • the local device may be a device that the user interacts with the application deployment device.
  • the local device is the user local working device 340.
  • the login password of the application server is obtained according to one of the following priority sequences. For details, refer to FIG. 8(b):
  • the login password of the application server can also be saved by the relevant variable in the preset file.
  • Set two variables in the file to save the login password which are passwords and password variables respectively.
  • the passwords variable respectively define different login passwords for different application servers, which can be the application server identifier (such as IP address) and application server.
  • the password variable defines a login password. When the password variable does not exist or the application server in the passwords variable is not online, the login password is extracted from the password variable. Therefore, the priority of the password variable is lower than the password variable.
  • the login password of the application server is obtained by the cache of the local device. Similar to when the login user name is obtained, when the login password is not obtained from the command line, and the password variable and the password variable are not present, the password is obtained from the cache of the local device as the login password of the application server.
  • the login user name and the login password are all entered with the command line as the highest priority, which is in accordance with the user's usage habits.
  • the general user will record the commonly used login user name and login password in the default file. Manual input via the local device is only possible in a small number of special cases. Therefore, the way to obtain the login user name and password in this way can satisfy the user's use requirements to the greatest extent, and provides convenient and efficient application deployment.
  • FIG. 9 shows an application deployment device provided by an embodiment of the present application, where the device includes a configuration acquisition device 910 and a deployment device 920.
  • the configuration obtaining apparatus 910 is configured to acquire online configuration information, where the online configuration information includes an application server to be deployed determined according to an current requirement of the application; and the deployment apparatus 920 is configured to If the configuration information is different from the local configuration information, and the new configuration server is added to the online configuration information, the application deployment is performed on the newly added application server, and the local configuration information is updated according to the online configuration information.
  • the local configuration information includes an application server that has been deployed by the application.
  • the device is especially suitable for the scenario where the initial deployment of the application has been completed and the dynamic elastic adjustment is performed during the subsequent operation and maintenance. If the initial deployment of the application is required, the configuration obtaining device 910 obtains information about the application server that needs to be deployed by the user and the corresponding installation configuration package, and completes the application server by the deployment device 920. Initial deployment. For application servers that have been deployed for application during initial deployment, they can be saved as local configuration information.
  • the configuration obtaining device 910 can dynamically obtain the online configuration information of the application server to be deployed determined according to the current requirement of the application, and compare with the local configuration information to find that the new application server needs to be deployed. Afterwards, the application device 920 deploys the application servers to implement the flexible deployment of the application, and the flexibility of the deployment solution is improved. At the same time, the original local configuration information is updated through the online configuration information, and the current application is applied. The deployed application server records to ensure the accuracy of subsequent application deployment.
  • the above application deployment device may include, but is not limited to, a user equipment, a network device, or a device formed by integrating a user equipment and a network device through a network.
  • the user equipment includes, but is not limited to, a personal computer, a touch terminal, and the like;
  • the network device includes, but is not limited to, a network host, a single network server, a plurality of network server sets, or a cloud computing-based computer set.
  • the cloud is composed of a large number of host or network servers based on Cloud Computing, which is a kind of distributed computing, a virtual computer composed of a group of loosely coupled computers.
  • FIG. 3 shows an exemplary implementation of a related device involved in the application deployment of the application deployment device, including an application deployment device 310, an application cluster 320 including multiple application servers, an elastic extension service platform 330, and a user local.
  • Work equipment 340 The application deployment device 310 is configured to perform application deployment on the application server according to the configuration information.
  • the application server is configured to run the related application after the application deployment is completed.
  • User The ground working device 340 is a device for the user to interact with the application deployment device 310, and is used for providing the user with the installation configuration package, related information during initial deployment, and the like.
  • the elastic extension service platform 330 can determine the application server to be deployed according to the current needs of the application, and obtain the online configuration information, and provide the obtained online configuration information to the application deployment device 310 for flexible deployment.
  • the specific implementation of the elastic scalability service platform 330 may be determined by a service provider, such as an ESS (Elastic Scaling Service) provided by the Facebook Cloud platform.
  • ESS Elastic Scaling Service
  • the configuration obtaining device 910 is specifically configured to send a query request to the elastic scalability service platform, and receive online configuration information sent by the elastic extension service platform according to the query request, where the elastic scalability platform is used according to an application.
  • the requirement determines the application server to be deployed currently; or receives a push message sent by the elastic extension service platform that includes the online configuration information.
  • the application deployment device may receive the push message by using the elastic extension service platform, where the push message includes online configuration information, and the push message can be obtained by parsing the push message.
  • On-line configuration information is used for application deployment.
  • the application deployment device does not use the push service, you can send a query request to the elastic extension service platform periodically (for example, every two seconds) to query the online configuration information. Feedback, get online configuration information. According to different application scenarios, online configuration information can be obtained in different ways to improve the versatility of the solution.
  • the information about the five application servers will be stored in the local configuration information, including the IP of the application server and the number of application servers. .
  • the load of the server will be significantly increased due to more viewers, which may cause the server to crash and affect the user's viewing experience. Therefore, the application needs to be deployed on other new application servers to share the load of the current application server. For example, a total of seven application servers are required to meet the current load requirements, and an online line containing information about the seven application servers is obtained. Configuration information. By comparing with the local configuration information, the newly added application server is deployed to meet the current requirements of the application, and the content in the local configuration information is updated to the related content of the seven application servers.
  • the deployment device 920 is further configured to: if the online configuration information is different from the local configuration information, and the online configuration information is not added. The application server updates the local configuration information according to the online configuration information.
  • the online configuration information is different from the local configuration information, and there is no new application server in the online configuration information, the number of application servers to be deployed determined according to the current needs of the application is compared with the current The number of application servers deployed by the application is reduced, for the application department The device only needs to update the local configuration information according to the online configuration information.
  • Step S401 the configuration obtaining device acquires initial configuration information of the application and the corresponding installation configuration package install.tgz, and thereby completes initial deployment of the application server. For information about the application server that has been deployed for the initial deployment, you can save the file topo.conf as local configuration information.
  • step S402 the configuration obtaining means determines whether to use the push service. If the push service is used, step S403 is performed; if the push server is not used, step 404 is performed.
  • Step S403 the configuration obtaining device receives the elastic extension service platform push message, and obtains the online configuration information from the push message, and then performs step S405.
  • Step S404 the configuration obtaining device sends a query request to the elastic scalability service platform, and obtains online configuration information according to the feedback, and then performs step S405.
  • step S405 the configuration obtaining device compares the online configuration information with the local configuration information. If the two are the same, after waiting for the set time, the process returns to step S402. If the two are different, step S406 is performed.
  • Step S406 the configuration obtaining means determines whether there is a new application server in the online configuration information, and if so, executing step S407; if not, executing step S408.
  • step S407 the deployment device deploys the application to the newly added application server by using the installation configuration package install.tgz, and then performs step S408.
  • Step S408 the configuration obtaining device updates the file topo.conf that saves the local configuration information according to the online configuration information, and then returns to step S402.
  • the deployment device 920 is specifically configured to send an installation configuration package of the application to a type of the application when the application deployment is performed on the newly added application server.
  • the cluster of the application server and the application server are respectively defined using roledefs and roles.
  • the specific format is:
  • Roledefs ⁇ 'apphosts':[‘host1','host2','host3'],'webhosts':['host3','host4'] ⁇
  • cluster 1 "apphosts”, which contains three application servers host1, host2, and host3.
  • Task 1 (task1) is executed on the application server belonging to the "apphosts” cluster.
  • the specific task is to install the app.
  • Application run('/root/install_app.sh)
  • cluster 2 "apphosts", which contains two application servers host3 and host4, and performs task 2 (task2) on the application server belonging to the "webhosts” cluster.
  • the specific task is to install the web.
  • Application run('/root/install_web.sh')
  • the application deployment device uploads the installation configuration package to the application server 1 , and deploys the application on the application server 1 , and then the application deployment device sequentially runs on the remaining application servers 2 to N according to the previous step.
  • the time for application deployment to N application servers is T ⁇ N, where T is the time required for application deployment to one server. Since the application deployment process between application servers is independent of each other, concurrent application deployment to all application servers does not adversely affect the entire application deployment process, and theoretically, an application is deployed concurrently on N application servers.
  • the required deployment time is only T, which can save (N-1)/N time compared to the sequential execution deployment mode, which will greatly improve the efficiency of application deployment.
  • the deployment device 920 is configured to send an installation configuration package of the application to a plurality of newly added application servers when the application deployment is performed on the newly added application server, and simultaneously perform the installation according to the installation configuration package.
  • the application server is used for application deployment.
  • FIG. 5(a) and FIG. 5(b) are schematic diagrams showing the deployment manner and the concurrent deployment mode of the foregoing sequence.
  • the deployment task task1 of application 1 deploys application 1 in host1, host2, and host3 in turn.
  • the task2 After executing the deployment task task2 of the application 2, the task2 will deploy the application 2 in the host1, the host2, and the host3 in turn, assuming that the application 1 and the application 2 are deployed on each application server for the same time, both are T.
  • the total deployment time of the mode requires 6T.
  • the deployment task task1 of application 1 deploys application 1 in host1, host2, and host3 at the same time.
  • the deployment task task2 of application 2 is also on host1.
  • Application 2 is deployed on host2 and host3. Therefore, the total deployment time of this mode is 2T. Significantly improved.
  • the foregoing manner of deploying an application according to an application server type may be combined with a manner of concurrent deployment, and a logical processing flow thereof is shown in FIG. 6.
  • the roles variable in the configuration information can be used to determine whether the corresponding type is set. If there is a roles variable, the application server of the corresponding type can be determined according to the roles variable, and then according to the parallel variable in the configuration information of the application. To determine if the deployment of the application can proceed concurrently.
  • the application device 920 deploys the application to the newly added application server, specifically: if the roles variable is 'apphosts', and the application can be executed concurrently (ie, the parallel variable is enabled), Sending the installation configuration package of the application to a plurality of application servers of a type corresponding to the type of the application, and performing application deployment on the application server according to the installation configuration package, that is, simultaneously installing the configuration package of the application Send to the host1, host2, and host3, and deploy the application to the host1, host2, and host3 according to the installation configuration package; if the application cannot be executed concurrently (that is, the parallel variable is not enabled), the application is sequentially The installation configuration package is sent to a plurality of application servers of a type corresponding to the type of the application, and the application server is deployed in the application according to the installation configuration package, that is, the installation configuration package of the application is sent to the host1, and according to After the installation configuration package is applied to the host1, the installation configuration package is sent to the host2 and the application deployment is performed on the host2, and
  • the application server defined by the hosts variable represents the application server. Therefore, when the application device 920 deploys the application to the newly added application server, if the role variable is not present, and the application can be executed concurrently, the installation configuration package of the application is sent at the same time. And in the application server defined by the plurality of hosts variables, and applying the application to the application server according to the installation configuration package; if there is no roles variable, and the application cannot be executed concurrently, the application is sequentially The installation configuration package is sent to an application server defined by multiple hosts variables, and the application server is deployed in an application according to the installation configuration package.
  • the deployment device 920 is specifically configured to create a sub-process for each application server when the application is deployed to the application server according to the installation configuration package, and the sub-process is controlled according to the installation configuration package.
  • the application server is used for application deployment; and the application deployment result of each application server sent by the child process is obtained.
  • the processing flow of the application server 920 in the application deployment device is determined by the process of deploying the application in the application deployment device.
  • the application can execute concurrently, obtain the information of the newly added application server in the online configuration information and complete the preparation of installing the configuration package; then create a corresponding sub-process for each application server, for example, three applications for the "apphosts" cluster.
  • the server host1, host2, and host3 create sub-process 1, sub-process 2, and sub-process 3, respectively.
  • Each sub-process is responsible for application deployment, management and control of the corresponding application server, and different sub-processes do not affect each other.
  • the main process indicates that the sub-process 1, sub-process 2, and sub-process 3 are deployed on the host1, host2, and host3.
  • the sub-process sends the application deployment result to the main process.
  • the main process collects the application deployment results of all the sub-processes, the results are summarized and sent to the local working device to complete the feedback to the user.
  • the deployment device is configured to acquire a login user name and a login password of the application server, and log in to the application according to the login user name and login password.
  • a server instructing the application server to install an installation configuration package of the application.
  • the number of application servers included in the cluster is large. Therefore, there are many login user names and login password input requirements during the deployment process.
  • the login user name of the application server in the embodiment of the present application is obtained according to one of the following priority order:
  • the login user name of the application server from the preset file.
  • the priority of the method is lower than the login user name of the application server obtained by the input information of the command line, where the preset file may be a configuration description file in the installation configuration package, or may be the user during the initial configuration process.
  • the login user name of the application server can be saved by a related variable in the preset file.
  • the login user name is saved by two variables in the preset file, respectively, a user variable and a hosts variable, where hosts
  • the variables respectively define different login user names for different application servers, and may be in the form of a correspondence table between the identifier of the application server (for example, an IP address) and the login user name of the application server.
  • the hosts variable exists, the application server is acquired.
  • the login user name and determine whether the application server currently exists.
  • the login user name of the application server is extracted from the hosts variable.
  • the user variable uniformly defines a login user name.
  • the hosts variable does not exist or the application server in the hosts variable is not currently online, it is used by the user.
  • the login user name is extracted from the variable, so the user variable has a lower priority than the hosts variable.
  • the local device may be a device that the user interacts with the application deployment device.
  • the local device is the user local working device 340.
  • the login password of the application server is obtained according to one of the following priority order:
  • the login password of the application server can also be saved by the relevant variable in the preset file.
  • Set two variables in the file to save the login password which are passwords and password variables respectively.
  • the passwords variable respectively define different login passwords for different application servers, which can be the application server identifier (such as IP address) and application server.
  • the password variable defines a login password. When the password variable does not exist or the application server in the passwords variable is not online, the login password is extracted from the password variable. Therefore, the priority of the password variable is lower than the password variable.
  • the login password of the application server is obtained by the cache of the local device. Similar to when the login user name is obtained, when the login password is not obtained from the command line, and the password variable and the password variable are not present, the password is obtained from the cache of the local device as the login password of the application server.
  • the login user name and the login password are all entered with the command line as the highest priority, which is in accordance with the user's usage habits.
  • the general user will record the commonly used login user name and login password in the default file, and only manually input through the local device in a small number of special cases. Therefore, the way to obtain the login user name and password in this way can satisfy the user's use requirements to the greatest extent, and provides convenient and efficient application deployment.
  • the technical solution of the present application can dynamically obtain the online configuration information of the application server to be deployed determined according to the current needs of the application, and compare with the local configuration information to find that there is a new one. After the application server needs to be deployed, apply the application deployment to these new application servers to implement flexible deployment of the application, improve the flexibility of the deployment solution, and update the original local configuration information through online configuration information.
  • the application server that performs application deployment records to ensure the accuracy of subsequent application deployment.
  • the present application can be implemented in software and/or a combination of software and hardware, for example, using an application specific integrated circuit (ASIC), a general purpose computer, or any other similar hardware device.
  • the software program of the present application can be executed by a processor to implement the steps or functions described above.
  • the software programs (including related data structures) of the present application can be stored in a computer readable recording medium such as a RAM memory, a magnetic or optical drive or a floppy disk and the like.
  • some of the steps or functions of the present application may be implemented in hardware, for example, as a circuit that cooperates with a processor to perform various steps or functions.
  • a portion of the present application can be applied as a computer program product, such as computer program instructions, which, when executed by a computer, can invoke or provide a method and/or technical solution in accordance with the present application.
  • the program instructions for invoking the method of the present application may be stored in a fixed or removable recording medium, and/or transmitted by a data stream in a broadcast or other signal bearing medium, and/or stored in a The working memory of the computer device in which the program instructions are run.
  • an embodiment in accordance with the present application includes a device including a memory for storing computer program instructions and a processor for executing program instructions, wherein when the computer program instructions are executed by the processor, triggering
  • the apparatus operates based on the aforementioned methods and/or technical solutions in accordance with various embodiments of the present application.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)

Abstract

The purpose of the present invention is to provide an application deployment method and device. Specifically, the method comprises: acquiring online configuration information; if the online configuration information is different from local configuration information, and a newly added application server exists in the online configuration information, application deployment is carried out on the newly added application server, and the local configuration information is updated according to the online configuration information. Compared with the prior art, the technical solution of the present application can dynamically acquire online configuration information of an application server which is to be deployed and determined according to the current demand of an application; and by comparison with local configuration information, when it is discovered that a newly added application server needs application deployment, application deployment is carried out on the newly added application server, thereby realizing the elastic deployment of an application and improving the flexibility of the deployment solution; and at the same time, the original local configuration information is updated by the online configuration information, and the application server which has been subjected to application deployment is recorded, so as to ensure the accuracy of subsequent application deployment.

Description

一种应用部署方法及设备Application deployment method and device
本申请要求2015年09月09日递交的申请号为201510570723.X、发明名称为“一种应用部署方法及设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。The present application claims priority to Chinese Patent Application Serial No. No. No. No. No. No. No. No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No
技术领域Technical field
本申请涉及计算机领域,尤其涉及一种应用部署方法及设备。The present application relates to the field of computers, and in particular, to an application deployment method and device.
背景技术Background technique
云计算作为一种新的计算服务提供方式,能让企业通过网络以按需、易扩展的方式获得服务,免除软件购买、运维和维护的困扰和费用,降低企业管理成本,现在的商业应用正在逐渐向云计算转移。云计算的一个重要特点是易扩展,即计算能力的弹性伸缩,当业务需要更多的计算能力的时候,系统能分配更多的计算资源给用户。在具体的提供方式上一般操作是:以集群方式把服务器分配给用户,当业务需求的计算资源大于当前的计算能力时,系统会向集群中添加更多的服务器以作补充,同样,当业务量减少时,系统会减少集群中服务器的数量。As a new way of providing computing services, cloud computing enables enterprises to obtain services on the network in an on-demand and easy-to-expand manner, eliminating the troubles and costs of software purchase, operation and maintenance, and reducing enterprise management costs. It is gradually shifting to cloud computing. An important feature of cloud computing is that it is easy to expand, that is, the flexibility of computing power. When the business needs more computing power, the system can allocate more computing resources to the user. The general operation is as follows: the server is allocated to the user in a cluster manner. When the computing resource of the service requirement is greater than the current computing capability, the system adds more servers to the cluster to supplement, and likewise, when the service When the amount is reduced, the system reduces the number of servers in the cluster.
随着网络技术的应用,应用部署作为运维开发的重要环节也得到了深入发展,应用部署的质量直接影响了应用程序的功能和用户体验。传统的应用部署方式大都是运维人员手工操作完成,即使使用自动化部署方式实现的部署方案,也在易用性、集群化、可伸缩等方面存在诸多不足,很难满足当前云计算环境的应用部署需求。图1示出了现有技术中应用部署方案的示意图,其进行应用部署的过程如下:应用部署设备110读取本地的配置文件,根据本地的配置文件依次与应用集群中的各个应用服务器建立连接,协商通信机制;应用部署设备110上传安装配置包到应用服务器1,并在应用服务器1进行应用部署;应用部署设备110按照上一步骤的方式依次在其余的应用服务器2~N上进行应用部署;全部完成后,应用部署设备110处理结果,并反馈给用户;如果应用集群中需要增加应用服务器,必须由用户修改应用部署设备的配置文件或者获取预先设置的配置文件,重复前述步骤重新进行应用部署。With the application of network technology, application deployment as an important part of operation and maintenance development has also been further developed. The quality of application deployment directly affects the function and user experience of the application. The traditional application deployment methods are mostly done manually by the operation and maintenance personnel. Even if the deployment solution implemented by the automated deployment method has many shortcomings in terms of ease of use, clustering, and scalability, it is difficult to meet the application of the current cloud computing environment. Deployment requirements. FIG. 1 is a schematic diagram of an application deployment solution in the prior art. The application deployment process is as follows: the application deployment device 110 reads a local configuration file, and sequentially establishes a connection with each application server in the application cluster according to the local configuration file. The application deployment device 110 uploads the installation configuration package to the application server 1 and deploys the application on the application server 1; the application deployment device 110 performs application deployment on the remaining application servers 2 to N in the manner of the previous step. After the completion of the application, the application deployment device 110 processes the result and feeds back to the user; if the application server needs to be added to the application cluster, the user must modify the configuration file of the application deployment device or obtain a preset configuration file, and repeat the foregoing steps to re-apply the application. deploy.
由此可知,现有的应用部署方案中其网络架构是相对固定的,如果要向应用集群中动态添加一台应用服务器,则应用的部署、升级都要相应修改部署方案,因此应用部署 方式不够灵活,无法进行弹性部署。Therefore, the network architecture of the existing application deployment solution is relatively fixed. If an application server is dynamically added to the application cluster, the deployment and upgrade of the application must be modified accordingly, so the application deployment The method is not flexible enough to be deployed flexibly.
发明内容Summary of the invention
本申请的目的是提供一种应用部署方法及设备,以解决现有技术中应用部署方式不够灵活,无法进行弹性部署的问题。The purpose of the application is to provide an application deployment method and device to solve the problem that the application deployment mode in the prior art is not flexible enough to be flexibly deployed.
为实现上述目的,本申请提供了一种应用部署方法,该方法包括:To achieve the above objective, the present application provides an application deployment method, including:
获取线上配置信息,其中所述线上配置信息包含根据应用的当前需求确定的待部署的应用服务器;Obtaining online configuration information, where the online configuration information includes an application server to be deployed determined according to current requirements of the application;
若所述线上配置信息与本地配置信息不同,且所述线上配置信息中有新增的应用服务器,则对所述新增的应用服务器进行应用部署,并根据所述线上配置信息更新所述本地配置信息,其中所述本地配置信息包含当前已进行应用部署的应用服务器。If the online configuration information is different from the local configuration information, and the online application information has a new application server, the application server is deployed to the newly added application server, and updated according to the online configuration information. The local configuration information, where the local configuration information includes an application server that has been deployed by an application.
进一步地,获取线上配置信息之后,还包括:Further, after obtaining the online configuration information, the method further includes:
若所述线上配置信息与本地配置信息不同,且所述线上配置信息中无新增的应用服务器,则根据所述线上配置信息更新所述本地配置信息。If the online configuration information is different from the local configuration information, and there is no new application server in the online configuration information, the local configuration information is updated according to the online configuration information.
进一步地,获取线上配置信息,包括:Further, obtaining online configuration information includes:
向弹性伸缩服务平台发送查询请求,并接收所述弹性伸缩服务平台根据所述查询请求发送的线上配置信息,其中所述弹性伸缩平台根据应用的需求确定当前待部署的应用服务器;或Sending a query request to the elastic extension service platform, and receiving the online configuration information sent by the elastic extension service platform according to the query request, where the elastic extension platform determines the application server to be deployed according to the application requirement; or
接收弹性伸缩服务平台发送的包含所述线上配置信息的推送消息。Receiving a push message sent by the elastic extension service platform that includes the online configuration information.
进一步地,对新增的应用服务器进行应用部署,包括:Further, application deployment to the newly added application server includes:
将所述应用的安装配置包发送至与该应用的类型对应类型的应用服务器,并根据所述安装配置包对所述应用服务器进行应用部署。And sending an installation configuration package of the application to an application server of a type corresponding to the type of the application, and performing application deployment on the application server according to the installation configuration package.
进一步地,对新增的应用服务器进行应用部署,包括:Further, application deployment to the newly added application server includes:
将所述应用的安装配置包发送至多个新增的应用服务器,并根据所述安装配置包同时对所述应用服务器进行应用部署。Sending the installation configuration package of the application to a plurality of newly added application servers, and performing application deployment on the application server according to the installation configuration package.
进一步地,对新增的应用服务器进行应用部署,包括:Further, application deployment to the newly added application server includes:
若所述应用可并发执行,则同时将所述应用的安装配置包发送至与该应用的类型对应类型的多个应用服务器,并根据所述安装配置包同时对所述应用服务器进行应用部署;If the application can be executed concurrently, the installation configuration package of the application is sent to a plurality of application servers of a type corresponding to the type of the application, and the application server is simultaneously deployed according to the installation configuration package;
若所述应用不可并发执行,则依次将所述应用的安装配置包发送至与该应用的类型对应类型的多个应用服务器,并根据所述安装配置包依次对所述应用服务器进行应用部 署。If the application is not executable concurrently, the installation configuration package of the application is sequentially sent to multiple application servers of a type corresponding to the type of the application, and the application server is sequentially applied to the application server according to the installation configuration package. Department.
进一步地,根据所述安装配置包同时对所述应用服务器进行应用部署,包括:Further, the application deployment of the application server is performed according to the installation configuration package, including:
创建针对每个应用服务器的子进程,控制所述子进程分别根据所述安装配置包对所述应用服务器进行应用部署;Creating a child process for each application server, and controlling the child process to perform application deployment on the application server according to the installation configuration package;
获取所述子进程发送的每个应用服务器的应用部署结果。Obtain the application deployment result of each application server sent by the child process.
进一步地,对新增的应用服务器进行应用部署,包括:Further, application deployment to the newly added application server includes:
获取所述应用服务器的登录用户名和登录密码,根据所述登录用户名和登录密码登录所述应用服务器;Obtaining a login user name and a login password of the application server, and logging in to the application server according to the login user name and a login password;
指示所述应用服务器安装所述应用的安装配置包。Instructing the application server to install an installation configuration package of the application.
进一步地,所述应用服务器的登录用户名根据以下优先级顺序的其中一种方式获取:Further, the login user name of the application server is obtained according to one of the following priority order:
由命令行的输入信息获取所述应用服务器的登录用户名;Obtaining, by the input information of the command line, the login user name of the application server;
由预设文件中获取所述应用服务器的登录用户名;Obtaining a login user name of the application server from a preset file;
获取本地设备的用户名作为所述应用服务器的登录用户名。The user name of the local device is obtained as the login user name of the application server.
进一步地,所述应用服务器的登录密码根据以下优先级顺序的其中一种方式获取:Further, the login password of the application server is obtained according to one of the following priority order:
由命令行的输入信息获取所述应用服务器的登录密码;Obtaining a login password of the application server by using input information of the command line;
由预设文件中获取所述应用服务器的登录密码;Obtaining a login password of the application server from a preset file;
由本地设备的缓存获取所述应用服务器的登录密码;Obtaining a login password of the application server by a cache of the local device;
获取用户由本地设备输入的密码作为所述应用服务器的登录密码。The password entered by the user from the local device is obtained as the login password of the application server.
基于本申请的另一方面,还提供了一种应用部署设备,该设备包括:According to another aspect of the present application, an application deployment device is further provided, the device comprising:
配置获取装置,用于获取线上配置信息,其中所述线上配置信息包含根据应用的当前需求确定的待部署的应用服务器;Configuring the obtaining device, configured to obtain online configuration information, where the online configuration information includes an application server to be deployed determined according to current requirements of the application;
部署装置,用于若所述线上配置信息与本地配置信息不同,且所述线上配置信息中有新增的应用服务器,则对所述新增的应用服务器进行应用部署,并根据所述线上配置信息更新所述本地配置信息,其中所述本地配置信息包含当前已进行应用部署的应用服务器。a deployment device, if the online configuration information is different from the local configuration information, and the new application server is included in the online configuration information, applying the application to the newly added application server, and according to the The online configuration information updates the local configuration information, where the local configuration information includes an application server that has been deployed by the application.
进一步地,所述部署装置,还用于若所述线上配置信息与本地配置信息不同,且所述线上配置信息中无新增的应用服务器,则根据所述线上配置信息更新所述本地配置信息。Further, the deployment device is further configured to: if the online configuration information is different from the local configuration information, and there is no new application server in the online configuration information, update the information according to the online configuration information. Local configuration information.
进一步地,所述配置获取装置,用于向弹性伸缩服务平台发送查询请求,并接收所述弹性伸缩服务平台根据所述查询请求发送的线上配置信息,其中所述弹性伸缩平台根 据应用的需求确定当前待部署的应用服务器;或Further, the configuration obtaining means is configured to send a query request to the elastic extension service platform, and receive online configuration information sent by the elastic extension service platform according to the query request, where the elastic extension platform root Determine the application server to be deployed according to the needs of the application; or
接收弹性伸缩服务平台发送的包含所述线上配置信息的推送消息。Receiving a push message sent by the elastic extension service platform that includes the online configuration information.
进一步地,所述部署装置在对所述新增的应用服务器进行应用部署时,用于将所述应用的安装配置包发送至与该应用的类型对应类型的应用服务器,并根据所述安装配置包对所述应用服务器进行应用部署。Further, the deployment device is configured to send an installation configuration package of the application to an application server of a type corresponding to the application type when the application deployment is performed on the newly added application server, and according to the installation configuration. The package performs application deployment on the application server.
进一步地,所述部署装置在对所述新增的应用服务器进行应用部署时,用于将所述应用的安装配置包发送至多个新增的应用服务器,并根据所述安装配置包同时对所述应用服务器进行应用部署。Further, the deployment device is configured to send the installation configuration package of the application to a plurality of newly added application servers when the application deployment is performed on the newly added application server, and simultaneously perform the installation according to the installation configuration package. The application server is used for application deployment.
进一步地,所述部署装置在对所述新增的应用服务器进行应用部署时,用于若所述应用可并发执行,则同时将所述应用的安装配置包发送至与该应用的类型对应类型的多个应用服务器,并根据所述安装配置包同时对所述应用服务器进行应用部署;以及若所述应用不可并发执行,则依次将所述应用的安装配置包发送至与该应用的类型对应类型的多个应用服务器,并根据所述安装配置包依次对所述应用服务器进行应用部署。Further, when the application is deployed to the newly added application server, the deployment device is configured to send the installation configuration package of the application to a type corresponding to the type of the application, if the application can be executed concurrently. a plurality of application servers, and performing application deployment on the application server according to the installation configuration package; and if the applications are not executable concurrently, sequentially sending the installation configuration package of the application to a type corresponding to the application A plurality of application servers of a type, and application deployment of the application server in sequence according to the installation configuration package.
进一步地,所述部署装置在根据所述安装配置包同时对所述应用服务器进行应用部署时,用于创建针对每个应用服务器的子进程,控制所述子进程分别根据所述安装配置包对所述应用服务器进行应用部署;以及获取所述子进程发送的每个应用服务器的应用部署结果。Further, the deployment device is configured to create a sub-process for each application server when the application deployment is performed on the application server according to the installation configuration package, and control the sub-process according to the installation configuration package pair respectively. The application server performs application deployment; and obtains an application deployment result of each application server sent by the sub-process.
进一步地,所述部署装置在对所述新增的应用服务器进行应用部署时,用于获取所述应用服务器的登录用户名和登录密码,根据所述登录用户名和登录密码登录所述应用服务器;Further, the deployment device is configured to acquire a login user name and a login password of the application server, and log in to the application server according to the login user name and a login password;
指示所述应用服务器安装所述应用的安装配置包。Instructing the application server to install an installation configuration package of the application.
进一步地,所述应用服务器的登录用户名根据以下优先级顺序的其中一种方式获取:Further, the login user name of the application server is obtained according to one of the following priority order:
由命令行的输入信息获取所述应用服务器的登录用户名;Obtaining, by the input information of the command line, the login user name of the application server;
由预设文件中获取所述应用服务器的登录用户名;Obtaining a login user name of the application server from a preset file;
获取本地设备的用户名作为所述应用服务器的登录用户名。The user name of the local device is obtained as the login user name of the application server.
进一步地,所述应用服务器的登录密码根据以下优先级顺序的其中一种方式获取:Further, the login password of the application server is obtained according to one of the following priority order:
由命令行的输入信息获取所述应用服务器的登录密码;Obtaining a login password of the application server by using input information of the command line;
由预设文件中获取所述应用服务器的登录密码;Obtaining a login password of the application server from a preset file;
由本地设备的缓存获取所述应用服务器的登录密码;Obtaining a login password of the application server by a cache of the local device;
获取用户由本地设备输入的密码作为所述应用服务器的登录密码。 The password entered by the user from the local device is obtained as the login password of the application server.
与现有技术相比,本申请的技术方案在完成初始部署之后,能够动态获取根据应用的当前需求确定的待部署的应用服务器的线上配置信息,通过与本地配置信息比较,在发现有新增的应用服务器需要进行应用部署后,对这些新增的应用服务器进行应用部署,从而实现应用的弹性部署,提高部署方案的灵活性,同时通过线上配置信息更新原有的本地配置信息,对当前已进行应用部署的应用服务器进行记录,保证后续应用部署的准确性。Compared with the prior art, after completing the initial deployment, the technical solution of the present application can dynamically obtain the online configuration information of the application server to be deployed determined according to the current needs of the application, and compare with the local configuration information to find a new one. After the application server needs to be deployed, apply the application deployment to these new application servers to implement flexible application deployment, improve the flexibility of the deployment solution, and update the original local configuration information through online configuration information. The application server that has been deployed by the application is recorded to ensure the accuracy of subsequent application deployment.
附图说明DRAWINGS
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:Other features, objects, and advantages of the present application will become more apparent from the detailed description of the accompanying drawings.
图1为现有技术中应用部署方案的原理示意图;1 is a schematic diagram of a principle of an application deployment solution in the prior art;
图2为本申请实施例提供的一种应用部署方法的流程图;2 is a flowchart of an application deployment method according to an embodiment of the present application;
图3为本申请实施例中进行应用部署时所涉及的相关设备的典型实现方式图;3 is a schematic diagram of a typical implementation manner of related devices involved in application deployment in an embodiment of the present application;
图4为本申请实施例中应用部署设备进行应用部署时的处理流程图;4 is a flowchart of processing when an application deployment device is deployed in an application according to an embodiment of the present application;
图5(a)为采用顺序执行的方式进行应用部署的原理示意图;FIG. 5(a) is a schematic diagram showing the principle of application deployment in a sequential execution manner;
图5(b)为采用并发部署的方式进行应用部署的原理示意图;Figure 5 (b) is a schematic diagram of the principle of application deployment in a concurrent deployment manner;
图6为本申请实施例中将根据应用服务器类型进行应用部署的方式与并发部署的方式结合的处理流程图;FIG. 6 is a flowchart of a process in which an application deployment manner according to an application server type is combined with a concurrent deployment manner according to an embodiment of the present application;
图7为本申请实施例中采用多线程的方式进行并发的应用部署的处理流程图;FIG. 7 is a flowchart of a process for concurrently deploying applications in a multi-threaded manner according to an embodiment of the present application;
图8(a)为本申请实施例中获取登录用户名的处理流程图;FIG. 8( a ) is a flowchart of a process for obtaining a login user name in the embodiment of the present application;
图8(b)为本申请实施例中获取登录密码的处理流程图;FIG. 8(b) is a flowchart of processing for obtaining a login password in the embodiment of the present application;
图9为本申请实施例提供的一种应用部署设备的结构示意图;FIG. 9 is a schematic structural diagram of an application deployment device according to an embodiment of the present disclosure;
附图中相同或相似的附图标记代表相同或相似的部件。The same or similar reference numerals in the drawings denote the same or similar components.
具体实施方式detailed description
下面结合附图对本申请作进一步详细描述。The present application is further described in detail below with reference to the accompanying drawings.
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。In a typical configuration of the present application, the terminal, the device of the service network, and the trusted party each include one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介 质的示例。The memory may include non-persistent memory, random access memory (RAM), and/or non-volatile memory in a computer readable medium, such as read only memory (ROM) or flash memory. Memory is computer readable A qualitative example.
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。Computer readable media includes both permanent and non-persistent, removable and non-removable media. Information storage can be implemented by any method or technology. The information can be computer readable instructions, data structures, modules of programs, or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read only memory. (ROM), electrically erasable programmable read only memory (EEPROM), flash memory or other memory technology, compact disk read only memory (CD-ROM), digital versatile disk (DVD) or other optical storage, A magnetic tape cartridge, magnetic tape storage or other magnetic storage device or any other non-transportable medium that can be used to store information that can be accessed by a computing device. As defined herein, computer readable media does not include non-transitory computer readable media, such as modulated data signals and carrier waves.
图2示出了本申请实施例提供的一种应用部署方法,该方法包括以下步骤:FIG. 2 shows an application deployment method provided by an embodiment of the present application, where the method includes the following steps:
步骤S201,获取线上配置信息,其中所述线上配置信息包含根据应用的当前需求确定的待部署的应用服务器;Step S201, acquiring online configuration information, where the online configuration information includes an application server to be deployed determined according to current requirements of the application;
步骤S202,若所述线上配置信息与本地配置信息不同,且所述线上配置信息中有新增的应用服务器,则对所述新增的应用服务器进行应用部署,并根据所述线上配置信息更新所述本地配置信息,其中所述本地配置信息包含当前已进行应用部署的应用服务器。Step S202, if the online configuration information is different from the local configuration information, and the new configuration server is included in the online configuration information, the application deployment is performed on the newly added application server, and according to the online The configuration information updates the local configuration information, where the local configuration information includes an application server that has been deployed by the application.
该方法尤其适用于已经完成应用的初始部署,在后续运维过程中进行动态弹性调整的场景。若需要对应用进行初始部署,可以采用传统的方式,由用户提供需要进行应用部署的应用服务器的信息以及对应的安装配置包,并由此完成对应用服务器的初始部署。对于初始部署时已进行应用部署的应用服务器,可以保存为本地配置信息。The method is especially applicable to the scenario where the initial deployment of the application has been completed, and the dynamic elastic adjustment is performed in the subsequent operation and maintenance process. If the initial deployment of the application is required, the information of the application server that needs to be deployed by the application and the corresponding installation configuration package are provided by the user, and the initial deployment of the application server is completed. For application servers that have been deployed for application during initial deployment, they can be saved as local configuration information.
在完成初始部署之后,能够动态获取根据应用的当前需求确定的待部署的应用服务器的线上配置信息,通过与本地配置信息比较,在发现有新增的应用服务器需要进行应用部署后,对这些新增的应用服务器进行应用部署,从而实现应用的弹性部署,提高部署方案的灵活性,同时通过线上配置信息更新原有的本地配置信息,对当前已进行应用部署的应用服务器进行记录,保证后续应用部署的准确性。After the initial deployment is completed, the online configuration information of the application server to be deployed determined according to the current requirements of the application can be dynamically obtained, and compared with the local configuration information, after the application server is found to be deployed, The application server is deployed to implement the application deployment, so that the application can be flexibly deployed, and the flexibility of the deployment solution can be improved. At the same time, the local configuration information is updated through the online configuration information, and the application server that has been deployed by the application is recorded to ensure that the application server is deployed. The accuracy of subsequent application deployments.
在此,本领域技术人员应当理解,上述应用部署方法的执行主体可以包括但不限于用户设备、网络设备或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备包括但不限于个人计算机、触控终端等实现;所述网络设备包括但不限于如网络主机、单个网络服务器、多个网络服务器集或基于云计算的计算机集合等实现。在此,云由基于云计算(Cloud Computing)的大量主机或网络服务器构成,其中,云计算是分布式计 算的一种,由一群松散耦合的计算机集组成的一个虚拟计算机。Here, those skilled in the art should understand that the execution body of the above application deployment method may include, but is not limited to, a user equipment, a network device, or a device formed by integrating a user equipment and a network device through a network. The user equipment includes, but is not limited to, a personal computer, a touch terminal, and the like; the network device includes, but is not limited to, a network host, a single network server, a plurality of network server sets, or a cloud computing-based computer set. Here, the cloud is composed of a large number of hosts or network servers based on Cloud Computing, where cloud computing is a distributed meter. A type of virtual computer consisting of a group of loosely coupled computers.
图3示出了一种采用上述应用部署方法时所涉及的相关设备的典型实现方式,包括应用部署设备310、包含多个应用服务器的应用集群320、弹性伸缩服务平台330以及用户本地工作设备340。其中,应用部署设备310用于执行上述应用部署方法,对应用服务器进行应用部署;所述应用服务器用于在应用部署完成后,运行相关应用。用户本地工作设备340为用户与应用部署设备310进行交互的设备,用于用户提供安装配置包、初始部署时的相关信息等。弹性伸缩服务平台330能够调整云资源池中的计算资源,根据应用的当前需求将云资源池中的服务器分配给该应用使用,因此能够确定待部署的应用服务器,从而获取线上配置信息,并将获取的线上配置信息提供给应用部署设备310以进行弹性部署。在实际应用中,弹性伸缩服务平台330的具体实现可以由服务提供商决定,例如阿里云平台提供的ESS(Elastic Scaling Service,弹性伸缩服务)。FIG. 3 shows an exemplary implementation of a related device involved in the application deployment method, including an application deployment device 310, an application cluster 320 including multiple application servers, an elastic extension service platform 330, and a user local working device 340. . The application deployment device 310 is configured to execute the application deployment method, and apply the application deployment to the application server. The application server is configured to run the related application after the application deployment is completed. The user local working device 340 is a device for the user to interact with the application deployment device 310, and is used for providing the user with the installation configuration package, related information during initial deployment, and the like. The flexible telescopic service platform 330 can adjust the computing resources in the cloud resource pool, and allocate the servers in the cloud resource pool to the application according to the current needs of the application, so that the application server to be deployed can be determined, thereby obtaining online configuration information, and The obtained online configuration information is provided to the application deployment device 310 for flexible deployment. In an actual application, the specific implementation of the elastic scalability service platform 330 may be determined by a service provider, such as an ESS (Elastic Scaling Service) provided by the Alibaba Cloud platform.
优选地,获取线上配置信息,具体包括:向弹性伸缩服务平台发送查询请求,并接收所述弹性伸缩服务平台根据所述查询请求发送的线上配置信息,其中所述弹性伸缩平台根据应用的需求确定当前待部署的应用服务器;或接收弹性伸缩服务平台发送的包含所述线上配置信息的推送消息。以本申请实施例中提供的方案为例,如果应用部署设备使用了推送服务,则可以接收弹性伸缩服务平台发送推送消息,该推送消息中包含了线上配置信息,通过解析推送消息,可以获取线上配置信息进行应用部署;若应用部署设备未使用推送服务,那么可以定时(例如每隔两秒)向弹性伸缩服务平台发送一次查询请求,进行线上配置信息的查询,通过弹性伸缩服务平台反馈,获取线上配置信息。根据不同的应用场景,可以采用不同的方式获取线上配置信息,以提高本方案的通用性。Preferably, the obtaining the online configuration information includes: sending an inquiry request to the elastic extension service platform, and receiving online configuration information sent by the elastic extension service platform according to the query request, wherein the elastic extension platform is based on the application The requirement determines the application server to be deployed currently; or receives a push message sent by the elastic extension service platform that includes the online configuration information. For example, if the application deployment device uses the push service, the application deployment device may receive the push message by using the elastic extension service platform, where the push message includes online configuration information, and the push message can be obtained by parsing the push message. On-line configuration information is used for application deployment. If the application deployment device does not use the push service, you can send a query request to the elastic extension service platform periodically (for example, every two seconds) to query the online configuration information. Feedback, get online configuration information. According to different application scenarios, online configuration information can be obtained in different ways to improve the versatility of the solution.
以某一视频播放的应用为例,若当前部署有该应用的应用服务器为5台,该5台应用服务器的相关信息会保存在本地配置信息中,包括应用服务器的IP、应用服务器的数量等。每当有热门节目播放时,由于观看者较多服务器的负载会显著增加,容易造成服务器宕机,影响用户观看体验。因此需要在其它新的应用服务器上部署该应用以分担当前应用服务器的负载,例如一共需要7台应用服务器才可以满足当前的负载要求,此时会获取包含该7台应用服务器相关信息的线上配置信息。通过与本地配置信息比较,会对新增加的2台应用服务器进行应用部署,以满足应用的当前要求,同时将本地配置信息中的内容更新为所述7台应用服务器的相关内容。For example, if an application is played by a certain video, if the number of application servers for which the application is currently deployed is five, the information about the five application servers will be stored in the local configuration information, including the IP of the application server and the number of application servers. . Whenever there is a popular program to play, the load of the server will be significantly increased due to more viewers, which may cause the server to crash and affect the user's viewing experience. Therefore, the application needs to be deployed on other new application servers to share the load of the current application server. For example, a total of seven application servers are required to meet the current load requirements, and an online line containing information about the seven application servers is obtained. Configuration information. By comparing with the local configuration information, the newly added application server is deployed to meet the current requirements of the application, and the content in the local configuration information is updated to the related content of the seven application servers.
此外,在前述场景中还可能存在以下情形,当热门节目播放完后,观看者的数量可能随之减少,此时仍然使用7台应用服务器会造成计算资源的浪费。因此可以根据此时 应用的需求,减少应用服务器的数量,提高计算资源的利用率。对于前述远程应用配置方法,在获取线上配置信息之后,若所述线上配置信息与本地配置信息不同,且所述线上配置信息中无新增的应用服务器,则根据所述线上配置信息更新所述本地配置信息。当所述线上配置信息与本地配置信息不同,且所述线上配置信息中无新增的应用服务器,即表示根据应用的当前需求确定的待部署的应用服务器的数量相较于当前已进行应用部署的应用服务器的数量是减少的,对于应用部署设备,仅需要根据所述线上配置信息更新所述本地配置信息即可。In addition, in the foregoing scenario, the following situation may also exist. When the popular program is played, the number of viewers may be reduced. At this time, using 7 application servers may cause waste of computing resources. So according to this time The application needs reduce the number of application servers and increase the utilization of computing resources. For the foregoing remote application configuration method, after the online configuration information is acquired, if the online configuration information is different from the local configuration information, and there is no new application server in the online configuration information, according to the online configuration The information updates the local configuration information. When the online configuration information is different from the local configuration information, and there is no new application server in the online configuration information, the number of application servers to be deployed determined according to the current needs of the application is compared with the current The number of application servers deployed by the application is reduced. For the application deployment device, only the local configuration information needs to be updated according to the online configuration information.
在实际应用中,某一应用部署设备进行应用部署的具体处理步骤如图4所示,包括以下步骤:In the actual application, the specific processing steps of an application deployment device for application deployment are as shown in FIG. 4, and the following steps are included:
步骤S401,获取应用的初始配置信息以及对应的安装配置包install.tgz,并由此完成对应用服务器的初始部署。对于初始部署时已进行应用部署的应用服务器的相关信息,可以保存为本地配置信息的文件topo.conf。Step S401: Acquire initial configuration information of the application and a corresponding installation configuration package install.tgz, and thereby complete initial deployment of the application server. For information about the application server that has been deployed for the initial deployment, you can save the file topo.conf as local configuration information.
步骤S402,确定是否使用推送服务,若使用了推送服务,则执行步骤S403;若未使用推送服务器,则执行步骤404。In step S402, it is determined whether to use the push service. If the push service is used, step S403 is performed; if the push server is not used, step 404 is performed.
步骤S403,接收弹性伸缩服务平台推送消息,并由推送消息中获取线上配置信息,然后执行步骤S405。Step S403, receiving the elastic extension service platform push message, and obtaining the online configuration information from the push message, and then performing step S405.
步骤S404,向弹性伸缩服务平台发送查询请求,并根据反馈获取线上配置信息,然后执行步骤S405。Step S404, the query request is sent to the elastic extension service platform, and the online configuration information is obtained according to the feedback, and then step S405 is performed.
步骤S405,将所述线上配置信息与本地配置信息进行比较,若两者相同,则等待设定时间后,返回执行步骤S402;若两者不同,则执行步骤S406。In step S405, the online configuration information is compared with the local configuration information. If the two are the same, the device waits for the set time, and then returns to step S402. If the two are different, step S406 is performed.
步骤S406,判断所述线上配置信息中是否有新增的应用服务器,若是,则执行步骤S407;若否,则执行步骤S408。Step S406, determining whether there is a new application server in the online configuration information, and if yes, executing step S407; if not, executing step S408.
步骤S407,使用安装配置包install.tgz对所述新增的应用服务器进行应用部署,然后执行步骤S408。In step S407, the application deployment is performed on the newly added application server by using the installation configuration package install.tgz, and then step S408 is performed.
步骤S408,根据所述线上配置信息更新保存所述本地配置信息的文件topo.conf,然后返回执行步骤S402。Step S408, updating the file topo.conf storing the local configuration information according to the online configuration information, and then returning to step S402.
作为本申请实施例的一种优选的实施方式,对新增的应用服务器进行应用部署,具体包括:将所述应用的安装配置包发送至与该应用的类型对应类型的应用服务器,并根据所述安装配置包对所述应用服务器进行应用部署。通过对应用服务器定义不同的类型,来划分不同的服务器集群,这样即可以在不同的服务器集群部署不同的应用,将同一类 应用整合至相应类型的应用服务器,便于服务器集群的管理。在本实施例中,使用roledefs和roles分别对应用服务器的集群以及应用服务器进行定义。具体格式为:As a preferred implementation manner of the embodiment of the present application, the application deployment of the newly added application server includes: sending the installation configuration package of the application to an application server of a type corresponding to the application type, and according to the The installation configuration package performs application deployment on the application server. Different server clusters can be defined by defining different types of application servers, so that different applications can be deployed in different server clusters. The application is integrated into the corresponding type of application server to facilitate the management of the server cluster. In this embodiment, the cluster of the application server and the application server are respectively defined using roledefs and roles. The specific format is:
roledefs={'apphosts':[‘host1','host2','host3'],'webhosts':['host3','host4']}Roledefs={'apphosts':[‘host1','host2','host3'],'webhosts':['host3','host4']}
$roles('apphosts')$roles('apphosts')
@task1@task1
run('/root/install_app.sh)Run('/root/install_app.sh)
$roles('webhosts')$roles('webhosts')
@task2@task2
run('/root/install_web.sh')Run('/root/install_web.sh')
通过上述方式定义了两个应用服务器的集群:集群1“apphosts”,包含三个应用服务器host1、host2、host3,在属于“apphosts”集群的应用服务器执行任务1(task1),具体任务是安装app应用(run('/root/install_app.sh));集群2“apphosts”,包含两个应用服务器host3、host4,在属于“webhosts”集群的应用服务器执行任务2(task2),具体任务是安装web应用(run('/root/install_web.sh'))。通过对应用服务器进行集群化管理,可以同时在不同类型的应用服务器上部署不同类型应用,这种实现方式更加符合云计算的复杂应用场景。The cluster of two application servers is defined in the above manner: cluster 1 "apphosts", which contains three application servers host1, host2, and host3. Task 1 (task1) is executed on the application server belonging to the "apphosts" cluster. The specific task is to install the app. Application (run('/root/install_app.sh)); cluster 2 "apphosts", which contains two application servers host3 and host4, and performs task 2 (task2) on the application server belonging to the "webhosts" cluster. The specific task is to install the web. Application (run('/root/install_web.sh')). By clustering the application servers, you can deploy different types of applications on different types of application servers at the same time. This implementation is more suitable for complex application scenarios of cloud computing.
在实际应用中,若需要一次对数量较大的应用服务器进行应用部署时,如果采用顺序执行的部署方式,将非常消耗时间资源。例如,图1所示的方法中应用部署设备上传安装配置包到应用服务器1,并在应用服务器1进行应用部署,然后应用部署设备按照上一步骤的方式依次在其余的应用服务器2~N上进行应用部署,此时对N个应用服务器进行应用部署所使用的时间为T×N,其中T为对一个服务器进行应用部署所需要的时间。由于应用服务器之间的应用部署过程是相互独立的,因此对所有应用服务器进行并发的应用部署不会对整个应用部署过程带来负面影响,并且理论上一个应用在N个应用服务器进行并发部署所需要的部署时间仅为T,与顺序执行的部署方式相比,其能够节约(N-1)/N的时间,这将大大提高应用部署的效率。具体地,对新增的应用服务器进行应用部署,具体包括:将所述应用的安装配置包发送至多个新增的应用服务器,并根据所述安装配置包同时对所述应用服务器进行应用部署。In actual applications, if you need to deploy applications to a large number of application servers at once, if you use sequential deployment, it will consume time resources. For example, in the method shown in FIG. 1, the application deployment device uploads the installation configuration package to the application server 1, and deploys the application on the application server 1, and then the application deployment device sequentially goes to the remaining application servers 2 to N according to the previous step. For application deployment, the time for application deployment to N application servers is T×N, where T is the time required for application deployment to one server. Since the application deployment process between application servers is independent of each other, concurrent application deployment to all application servers does not adversely affect the entire application deployment process, and theoretically, an application is deployed concurrently on N application servers. The required deployment time is only T, which can save (N-1)/N time compared to the sequential execution deployment mode, which will greatly improve the efficiency of application deployment. Specifically, the application deployment of the newly added application server includes: sending the installation configuration package of the application to a plurality of newly added application servers, and performing application deployment on the application server according to the installation configuration package.
图5(a)和图5(b)分别为前述顺序执行的部署方式以及并发部署方式的原理示意图。在图5(a)中,以两个应用分别对三个应用服务器进行应用部署的两个部署任务为例,应用1的部署任务task1会依次在host1、host2和host3中部署应用1,完成之后在 执行应用2的部署任务task2,该task2会依次在在host1、host2和host3中部署应用2,假设应用1和应用2在每个应用服务器上完成部署的时间相同,均为T,则此种方式的总部署时间需要6T。而在5(b)所示的并发执行的场景下,应用1的部署任务task1会同时在host1、host2和host3中部署应用1,待task1完成后,应用2的部署任务task2会同时在host1、host2和host3中部署应用2,因此此种方式的总部署时间为2T,部署效率明显提高。FIG. 5(a) and FIG. 5(b) are schematic diagrams showing the deployment manner and the concurrent deployment mode of the foregoing sequence. In Figure 5(a), two deployment tasks for application deployment of three application servers are used as an example. The deployment task task1 of application 1 deploys application 1 in host1, host2, and host3 in turn. In Execute the deployment task task2 of application 2. The task2 will deploy application 2 in host1, host2, and host3 in turn, assuming that application 1 and application 2 are deployed on each application server for the same time, both are T. The total deployment time requires 6T. In the scenario of concurrent execution shown in 5(b), the deployment task task1 of application 1 deploys application 1 in host1, host2, and host3 at the same time. After task1 is completed, the deployment task task2 of application 2 is also on host1. Application 2 is deployed on host2 and host3. Therefore, the total deployment time of this method is 2T, and the deployment efficiency is significantly improved.
作为一种更优选的实施方式,可以将前述根据应用服务器类型进行应用部署的方式与并发部署的方式结合,其逻辑处理流程如图6所示。在实际应用中,可以通过配置信息中的roles变量来确定是否设置了对应的类型,如果存在roles变量,则可以根据roles变量来确定对应类型的应用服务器,然后根据应用的配置信息中的parallel变量来确定该应用的部署是否可以并发进行。若所述roles变量为'apphosts',且所述应用可并发执行(即parallel变量使能),则同时将所述应用的安装配置包发送至与该应用的类型对应类型的多个应用服务器,并根据所述安装配置包同时对所述应用服务器进行应用部署,即同时将所述应用的安装配置包发送至与host1、host2和host3,并根据所述安装配置包同时对host1、host2和host3进行应用部署。若所述应用不可并发执行(即parallel变量不使能),则依次将所述应用的安装配置包发送至与该应用的类型对应类型的多个应用服务器,并根据所述安装配置包依次对所述应用服务器进行应用部署,即将所述应用的安装配置包发送至与host1,并根据所述安装配置包对host1进行应用部署之后,再将安装配置包发送至与host2并对host2进行应用部署,最后将装配置包发送至与host3并对host3进行应用部署。As a more preferred implementation manner, the foregoing manner of deploying an application according to an application server type may be combined with a manner of concurrent deployment, and a logical processing flow thereof is shown in FIG. 6. In practical applications, the roles variable in the configuration information can be used to determine whether the corresponding type is set. If there is a roles variable, the application server of the corresponding type can be determined according to the roles variable, and then according to the parallel variable in the configuration information of the application. To determine if the deployment of the application can proceed concurrently. If the roles variable is 'apphosts', and the application can be executed concurrently (ie, the parallel variable is enabled), the installation configuration package of the application is simultaneously sent to multiple application servers of a type corresponding to the type of the application, And performing application deployment on the application server according to the installation configuration package, that is, sending the installation configuration package of the application to the host1, host2, and host3 at the same time, and simultaneously installing the configuration package on the host1, the host2, and the host3 according to the installation configuration package. Apply for application deployment. If the application is not executable concurrently (that is, the parallel variable is not enabled), the installation configuration package of the application is sequentially sent to multiple application servers of a type corresponding to the type of the application, and sequentially according to the installation configuration package. The application server performs application deployment, that is, the installation configuration package of the application is sent to the host1, and the application configuration is performed according to the installation configuration package, and then the installation configuration package is sent to the host2 and the application deployment is performed on the host2. Finally, send the configuration package to host3 and deploy the application to host3.
对于不存在roles变量的情形,即表示该应用需要在未定义类型的应用服务器上进行部署,本实施例中,hosts变量定义的应用服务器即表示该种应用服务器。因此,若不存在roles变量,且所述应用可并发执行,则在同时将所述应用的安装配置包发送至与多个hosts变量定义的应用服务器中,并根据所述安装配置包依次对所述应用服务器进行应用部署。若不存在roles变量,且所述应用不可并发执行,则依次将所述应用的安装配置包发送至与多个hosts变量定义的应用服务器,并根据所述安装配置包依次对所述应用服务器进行应用部署。In the case where the roles variable does not exist, it means that the application needs to be deployed on an application server of an undefined type. In this embodiment, the application server defined by the hosts variable represents the application server. Therefore, if there is no roles variable, and the application can be executed concurrently, the installation configuration package of the application is simultaneously sent to the application server defined by the plurality of hosts variables, and the installation configuration package is sequentially performed according to the installation configuration package. The application server is used for application deployment. If the roles variable does not exist, and the application is not executable concurrently, the installation configuration package of the application is sequentially sent to an application server defined by multiple hosts variables, and the application server is sequentially performed according to the installation configuration package. Application deployment.
此外,考虑到多线程安全问题,在对多个应用服务器进行并发部署时,可以采用多进程的方式。根据所述安装配置包同时对所述应用服务器进行应用部署,具体包括:创建针对每个应用服务器的子进程,控制所述子进程分别根据所述安装配置包对所述应用 服务器进行应用部署;获取所述子进程发送的每个应用服务器的应用部署结果。仍以在“apphosts”集群的三个应用服务器并发部署应用为例,其处理流程如图7所示,若在进行应用部署时,若应用部署设备中的主进程确定所述应用可并发执行,则获取线上配置信息中新增的应用服务器的信息并完成安装配置包的准备;然后针对每个应用服务器创建一个对应的子进程,例如针对“apphosts”集群的三个应用服务器host1、host2和host3则分别创建子进程1、子进程2和子进程3,每个子进程专门负责对应应用服务器的应用部署、管控等工作,不同的子进程之间相互不影响。创建完子进程后,主进程指示子进程1、子进程2和子进程3分别在host1、host2和host3进行应用部署,各个子进程在完成应用部署后,会将应用部署结果发送到主进程。主进程收集完所有子进程的应用部署结果时,对结果进行汇总后发送给用户本地工作设备,以完成向用户的信息反馈。In addition, considering the multi-thread security problem, when concurrently deploying multiple application servers, a multi-process approach can be adopted. And performing the application deployment on the application server according to the installation configuration package, specifically: creating a child process for each application server, and controlling the child process to respectively apply the application according to the installation configuration package The server performs application deployment; and obtains an application deployment result of each application server sent by the child process. For example, as shown in Figure 7, the application process of the three application servers in the "apphosts" cluster is as shown in Figure 7. If the application process is deployed, the main process in the application deployment device determines that the application can be executed concurrently. Obtain the information of the newly added application server in the online configuration information and complete the preparation of the installation configuration package; then create a corresponding sub-process for each application server, for example, three application servers host1, host2 for the "apphosts" cluster and Host3 creates sub-process 1, sub-process 2, and sub-process 3, respectively. Each sub-process is responsible for application deployment, management and control of the corresponding application server, and different sub-processes do not affect each other. After the sub-process is created, the main process indicates that the sub-process 1, sub-process 2, and sub-process 3 are deployed on the host1, host2, and host3. After the application is deployed, the sub-process sends the application deployment result to the main process. When the main process collects the application deployment results of all the sub-processes, the results are summarized and sent to the local working device to complete the feedback to the user.
在实际应用中,对新增的应用服务器进行应用部署,具体包括:获取所述应用服务器的登录用户名和登录密码,根据所述登录用户名和登录密码登录所述应用服务器;指示所述应用服务器安装所述应用的安装配置包。在对应用服务器进行应用部署时,可以通过登录用户名和登录密码来登录到对应的应用服务器来取得在该应用服务器安装相关应用的安装配置包的权限,由此可以保证网络环境的安全性。对于集群规模较大的场景,其内包含的应用服务器数量较大,因此在部署过程中会有非常多的登录用户名和登录密码的输入需求,为了降低用户管理应用服务器的登录用户名和登录密码的难度,在本申请实施例中所述应用服务器的登录用户名根据以下优先级顺序的其中一种方式获取,具体可参考图8(a):In the actual application, the application deployment of the newly added application server includes: obtaining the login user name and the login password of the application server, logging in to the application server according to the login user name and the login password; and instructing the application server to be installed. The installation configuration package of the application. When the application server is deployed for application, you can log in to the corresponding application server by using the login user name and login password to obtain the permission to install the configuration package of the related application on the application server, thereby ensuring the security of the network environment. For a scenario with a large cluster size, the number of application servers included in the cluster is large. Therefore, there are many login user names and login password input requirements during the deployment process. In order to reduce the login user name and login password of the user management application server. The difficulty is that the login user name of the application server is obtained according to one of the following priority order in the embodiment of the present application. For details, refer to FIG. 8( a ):
1、由命令行的输入信息获取所述应用服务器的登录用户名。由命令行输入的用户名为优先级最高的获取方式,当检测到用户由命令行输入登录用户名时,则直接由命令行提取登录用户名,并使用该登录用户名尝试登录应用服务器。1. Obtain the login user name of the application server from the input information of the command line. The user name entered by the command line is the highest priority. When it is detected that the user enters the login user name from the command line, the login user name is extracted directly from the command line, and the login user name is used to try to log in to the application server.
2、由预设文件中获取所述应用服务器的登录用户名。此种方式的优先级低于由命令行的输入信息获取所述应用服务器的登录用户名,其中所述预设文件可以是安装配置包中的配置描述文件,也可以是用户在初始配置过程中向应用部署设备上传的初始配置信息中的内容。所述应用服务器的登录用户名一般可以由预设文件中的相关变量保存,例如本实施例中,通过预设文件中的两个变量保存登录用户名,分别为user变量和hosts变量,其中hosts变量分别对不同的应用服务器定义不同的登录用户名,其形式可以是应用服务器的标识(例如IP地址)与应用服务器的登录用户名的对应关系表的形式,当存在hosts变量时,获取应用服务器的登录用户名,同时确定该应用服务器当前是否存在, 此时从hosts变量中提取应用服务器的登录用户名。而user变量则统一定义了一个登录用户名,当不存在hosts变量时或者hosts变量中的应用服务器当前不在线时,才由user变量中提取登录用户名,因此user变量的优先级低于hosts变量。2. Obtain the login user name of the application server from the preset file. The priority of the method is lower than the login user name of the application server obtained by the input information of the command line, where the preset file may be a configuration description file in the installation configuration package, or may be the user during the initial configuration process. The content in the initial configuration information uploaded to the app deployment device. The login user name of the application server can be saved by a related variable in the preset file. For example, in this embodiment, the login user name is saved by two variables in the preset file, respectively, a user variable and a hosts variable, where hosts The variables respectively define different login user names for different application servers, and may be in the form of a correspondence table between the identifier of the application server (for example, an IP address) and the login user name of the application server. When the hosts variable exists, the application server is acquired. Login user name, and determine whether the application server currently exists, At this point, the login user name of the application server is extracted from the hosts variable. The user variable uniformly defines a login user name. When the hosts variable does not exist or the application server in the hosts variable is not online at present, the login user name is extracted from the user variable, so the priority of the user variable is lower than the hosts variable. .
3、获取本地设备的用户名作为所述应用服务器的登录用户名。没有从命令行获取到登录用户名、并且不存在hosts变量以及user变量时,才会默认获取本地设备的用户名作为所述应用服务器的登录用户名。其中,所述本地设备可以是用户与应用部署设备进行交互的设备,例如在图3的典型实现方式中,本地设备即为用户本地工作设备340。3. Obtain the username of the local device as the login user name of the application server. If the login user name is not obtained from the command line, and the hosts variable and the user variable are not present, the user name of the local device is obtained as the login user name of the application server by default. The local device may be a device that the user interacts with the application deployment device. For example, in the typical implementation of FIG. 3, the local device is the user local working device 340.
当应用部署设备通过前述任意一种方式获取到登录用户名之后,会继续获取登录密码。其中,所述应用服务器的登录密码根据以下优先级顺序的其中一种方式获取,具体可参考图8(b):After the application deployment device obtains the login user name by any of the foregoing methods, it will continue to obtain the login password. The login password of the application server is obtained according to one of the following priority sequences. For details, refer to FIG. 8(b):
1、由命令行的输入信息获取所述应用服务器的登录密码。由命令行输入的密码为优先级最高的获取方式,当检测到用户由命令行输入登录密码时,则直接由命令行提取登录密码,并配合之前获取到的登录用户名尝试登录应用服务器。1. Obtain the login password of the application server from the input information of the command line. The password entered by the command line is the highest priority. When it is detected that the user enters the login password from the command line, the login password is directly extracted by the command line, and the login user name is used to log in to the application server.
2、由预设文件中获取所述应用服务器的登录密码。此种方式的优先级低于由命令行的输入信息获取所述应用服务器的登录密码,所述应用服务器的登录密码同样可以由预设文件中的相关变量保存,例如本实施例中,通过预设文件中的两个变量保存登录密码,分别为passwords变量和password变量,其中passwords变量分别对不同的应用服务器定义不同的登录密码,其形式可以是应用服务器的标识(例如IP地址)与应用服务器的登录密码的对应关系表的形式,当存在passwords变量时,获取应用服务器的登录密码,同时确定该应用服务器当前是否存在,此时从passwords变量中提取应用服务器的登录密码。而password变量则统一定义了一个登录密码,当不存在passwords变量时或者passwords变量中的应用服务器当前不在线时,才由password变量中提取登录密码,因此password变量的优先级低于passwords变量。2. Obtain the login password of the application server from the preset file. The priority of the method is lower than the login password of the application server obtained by the input information of the command line. The login password of the application server can also be saved by the relevant variable in the preset file. For example, in this embodiment, Set two variables in the file to save the login password, which are passwords and password variables respectively. The passwords variable respectively define different login passwords for different application servers, which can be the application server identifier (such as IP address) and application server. In the form of the correspondence table of the login password, when the password variable exists, the login password of the application server is obtained, and it is determined whether the application server currently exists. At this time, the login password of the application server is extracted from the passwords variable. The password variable defines a login password. When the password variable does not exist or the application server in the passwords variable is not online, the login password is extracted from the password variable. Therefore, the priority of the password variable is lower than the password variable.
3、由本地设备的缓存获取所述应用服务器的登录密码。与获取登录用户名时类似,当没有从命令行获取到登录密码、并且不存在passwords变量以及password变量时,才会由本地设备的缓存中获取密码作为所述应用服务器的登录密码。3. The login password of the application server is obtained by the cache of the local device. Similar to when the login user name is obtained, when the login password is not obtained from the command line, and the password variable and the password variable are not present, the password is obtained from the cache of the local device as the login password of the application server.
4、获取用户由本地设备输入的密码作为所述应用服务器的登录密码。当本地设备的缓存中也未保存任何密码时,作为优先级最低的方式,会需要用户由本地设备输入密码。4. Obtain a password input by the local device as the login password of the application server. When no password is saved in the cache of the local device, the user with the lowest priority will require the user to enter the password from the local device.
本实施例中登录用户名、登录密码都以命令行的输入作为最高的优先级,这符合用户的使用习惯。此外,一般用户都会将常用的登录用户名和登录密码记录在预设文件里, 只有在少量的特殊情况下才会通过本地设备进行手动输入。因此通过此种方式获取登录用户名和密码的方式最大限度的满足用户的使用需求,为应用部署的高效进行提供了便捷。In this embodiment, the login user name and the login password are all entered with the command line as the highest priority, which is in accordance with the user's usage habits. In addition, the general user will record the commonly used login user name and login password in the default file. Manual input via the local device is only possible in a small number of special cases. Therefore, the way to obtain the login user name and password in this way can satisfy the user's use requirements to the greatest extent, and provides convenient and efficient application deployment.
图9示出了本申请实施例提供的一种应用部署设备,该设备包括配置获取装置910和部署装置920。具体地,所述配置获取装置910用于获取线上配置信息,其中所述线上配置信息包含根据应用的当前需求确定的待部署的应用服务器;所述部署装置920用于若所述线上配置信息与本地配置信息不同,且所述线上配置信息中有新增的应用服务器,则对所述新增的应用服务器进行应用部署,并根据所述线上配置信息更新所述本地配置信息,其中所述本地配置信息包含当前已进行应用部署的应用服务器。FIG. 9 shows an application deployment device provided by an embodiment of the present application, where the device includes a configuration acquisition device 910 and a deployment device 920. Specifically, the configuration obtaining apparatus 910 is configured to acquire online configuration information, where the online configuration information includes an application server to be deployed determined according to an current requirement of the application; and the deployment apparatus 920 is configured to If the configuration information is different from the local configuration information, and the new configuration server is added to the online configuration information, the application deployment is performed on the newly added application server, and the local configuration information is updated according to the online configuration information. The local configuration information includes an application server that has been deployed by the application.
该设备尤其适用于已经完成应用的初始部署,在后续运维过程中进行动态弹性调整的场景。若需要对应用进行初始部署,可以采用传统的方式,配置获取装置910获取用户提供的需要进行应用部署的应用服务器的信息以及对应的安装配置包,并由部署装置920完成对所述应用服务器的初始部署。对于初始部署时已进行应用部署的应用服务器,可以保存为本地配置信息。The device is especially suitable for the scenario where the initial deployment of the application has been completed and the dynamic elastic adjustment is performed during the subsequent operation and maintenance. If the initial deployment of the application is required, the configuration obtaining device 910 obtains information about the application server that needs to be deployed by the user and the corresponding installation configuration package, and completes the application server by the deployment device 920. Initial deployment. For application servers that have been deployed for application during initial deployment, they can be saved as local configuration information.
在完成初始部署之后,配置获取装置910能够动态获取根据应用的当前需求确定的待部署的应用服务器的线上配置信息,通过与本地配置信息比较,在发现有新增的应用服务器需要进行应用部署后,由部署装置920对这些新增的应用服务器进行应用部署,从而实现应用的弹性部署,提高部署方案的灵活性,同时通过线上配置信息更新原有的本地配置信息,对当前已进行应用部署的应用服务器进行记录,保证后续应用部署的准确性。After the initial deployment is completed, the configuration obtaining device 910 can dynamically obtain the online configuration information of the application server to be deployed determined according to the current requirement of the application, and compare with the local configuration information to find that the new application server needs to be deployed. Afterwards, the application device 920 deploys the application servers to implement the flexible deployment of the application, and the flexibility of the deployment solution is improved. At the same time, the original local configuration information is updated through the online configuration information, and the current application is applied. The deployed application server records to ensure the accuracy of subsequent application deployment.
在此,本领域技术人员应当理解,上述应用部署设备可以包括但不限于用户设备、网络设备或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备包括但不限于个人计算机、触控终端等实现;所述网络设备包括但不限于如网络主机、单个网络服务器、多个网络服务器集或基于云计算的计算机集合等实现。在此,云由基于云计算(Cloud Computing)的大量主机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟计算机。Here, those skilled in the art should understand that the above application deployment device may include, but is not limited to, a user equipment, a network device, or a device formed by integrating a user equipment and a network device through a network. The user equipment includes, but is not limited to, a personal computer, a touch terminal, and the like; the network device includes, but is not limited to, a network host, a single network server, a plurality of network server sets, or a cloud computing-based computer set. Here, the cloud is composed of a large number of host or network servers based on Cloud Computing, which is a kind of distributed computing, a virtual computer composed of a group of loosely coupled computers.
图3示出了一种采用上述应用部署设备进行应用部署时所涉及的相关设备的典型实现方式,包括应用部署设备310、包含多个应用服务器的应用集群320、弹性伸缩服务平台330以及用户本地工作设备340。其中,应用部署设备310用于根据配置信息对应用服务器进行应用部署;所述应用服务器用于在应用部署完成后,运行相关应用。用户本 地工作设备340为用户与应用部署设备310进行交互的设备,用于用户提供安装配置包、初始部署时的相关信息等。弹性伸缩服务平台330能够根据应用的当前需求确定待部署的应用服务器,从而获取线上配置信息,并将获取的线上配置信息提供给应用部署设备310以进行弹性部署。在实际应用中,弹性伸缩服务平台330的具体实现可以由服务提供商决定,例如阿里云平台提供的ESS(Elastic Scaling Service,弹性伸缩服务)。FIG. 3 shows an exemplary implementation of a related device involved in the application deployment of the application deployment device, including an application deployment device 310, an application cluster 320 including multiple application servers, an elastic extension service platform 330, and a user local. Work equipment 340. The application deployment device 310 is configured to perform application deployment on the application server according to the configuration information. The application server is configured to run the related application after the application deployment is completed. User The ground working device 340 is a device for the user to interact with the application deployment device 310, and is used for providing the user with the installation configuration package, related information during initial deployment, and the like. The elastic extension service platform 330 can determine the application server to be deployed according to the current needs of the application, and obtain the online configuration information, and provide the obtained online configuration information to the application deployment device 310 for flexible deployment. In an actual application, the specific implementation of the elastic scalability service platform 330 may be determined by a service provider, such as an ESS (Elastic Scaling Service) provided by the Alibaba Cloud platform.
优选地,所述配置获取装置910,具体用于向弹性伸缩服务平台发送查询请求,并接收所述弹性伸缩服务平台根据所述查询请求发送的线上配置信息,其中所述弹性伸缩平台根据应用的需求确定当前待部署的应用服务器;或接收弹性伸缩服务平台发送的包含所述线上配置信息的推送消息。以本申请实施例中提供的方案为例,如果应用部署设备使用了推送服务,则可以接收弹性伸缩服务平台发送推送消息,该推送消息中包含了线上配置信息,通过解析推送消息,可以获取线上配置信息进行应用部署;若应用部署设备未使用推送服务,那么可以定时(例如每隔两秒)向弹性伸缩服务平台发送一次查询请求,进行线上配置信息的查询,通过弹性伸缩服务平台反馈,获取线上配置信息。根据不同的应用场景,可以采用不同的方式获取线上配置信息,以提高本方案的通用性。Preferably, the configuration obtaining device 910 is specifically configured to send a query request to the elastic scalability service platform, and receive online configuration information sent by the elastic extension service platform according to the query request, where the elastic scalability platform is used according to an application. The requirement determines the application server to be deployed currently; or receives a push message sent by the elastic extension service platform that includes the online configuration information. For example, if the application deployment device uses the push service, the application deployment device may receive the push message by using the elastic extension service platform, where the push message includes online configuration information, and the push message can be obtained by parsing the push message. On-line configuration information is used for application deployment. If the application deployment device does not use the push service, you can send a query request to the elastic extension service platform periodically (for example, every two seconds) to query the online configuration information. Feedback, get online configuration information. According to different application scenarios, online configuration information can be obtained in different ways to improve the versatility of the solution.
以某一视频播放的应用为例,若当前部署有该应用的应用服务器为5台,该5台应用服务器的相关信息会保存在本地配置信息中,包括应用服务器的IP、应用服务器的数量等。每当有热门节目播放时,由于观看者较多服务器的负载会显著增加,容易造成服务器宕机,影响用户观看体验。因此需要在其它新的应用服务器上部署该应用以分担当前应用服务器的负载,例如一共需要7台应用服务器才可以满足当前的负载要求,此时会获取包含该7台应用服务器相关信息的线上配置信息。通过与本地配置信息比较,会对新增加的2台应用服务器进行应用部署,以满足应用的当前要求,同时将本地配置信息中的内容更新为所述7台应用服务器的相关内容。For example, if an application is played by a certain video, if the number of application servers for which the application is currently deployed is five, the information about the five application servers will be stored in the local configuration information, including the IP of the application server and the number of application servers. . Whenever there is a popular program to play, the load of the server will be significantly increased due to more viewers, which may cause the server to crash and affect the user's viewing experience. Therefore, the application needs to be deployed on other new application servers to share the load of the current application server. For example, a total of seven application servers are required to meet the current load requirements, and an online line containing information about the seven application servers is obtained. Configuration information. By comparing with the local configuration information, the newly added application server is deployed to meet the current requirements of the application, and the content in the local configuration information is updated to the related content of the seven application servers.
此外,在前述场景中还可能存在以下情形,当热门节目播放完后,观看者的数量可能随之减少,此时仍然使用7台应用服务器会造成计算资源的浪费。因此可以根据此时应用的需求,减少应用服务器的数量,提高计算资源的利用率。对于前述远程应用配置设备,在配置获取装置910获取线上配置信息之后,部署装置920还用于若所述线上配置信息与本地配置信息不同,且所述线上配置信息中无新增的应用服务器,则根据所述线上配置信息更新所述本地配置信息。当所述线上配置信息与本地配置信息不同,且所述线上配置信息中无新增的应用服务器,即表示根据应用的当前需求确定的待部署的应用服务器的数量相较于当前已进行应用部署的应用服务器的数量是减少的,对于应用部 署设备,仅需要根据所述线上配置信息更新所述本地配置信息即可。In addition, in the foregoing scenario, the following situation may also exist. When the popular program is played, the number of viewers may be reduced. At this time, using 7 application servers may cause waste of computing resources. Therefore, the number of application servers can be reduced according to the requirements of the application at this time, and the utilization of computing resources can be improved. For the foregoing remote application configuration device, after the configuration obtaining device 910 obtains the online configuration information, the deployment device 920 is further configured to: if the online configuration information is different from the local configuration information, and the online configuration information is not added. The application server updates the local configuration information according to the online configuration information. When the online configuration information is different from the local configuration information, and there is no new application server in the online configuration information, the number of application servers to be deployed determined according to the current needs of the application is compared with the current The number of application servers deployed by the application is reduced, for the application department The device only needs to update the local configuration information according to the online configuration information.
在实际应用中,某一应用部署设备进行应用部署的具体处理步骤如图4所示,包括以下步骤:In the actual application, the specific processing steps of an application deployment device for application deployment are as shown in FIG. 4, and the following steps are included:
步骤S401,配置获取装置获取应用的初始配置信息以及对应的安装配置包install.tgz,并由此完成对应用服务器的初始部署。对于初始部署时已进行应用部署的应用服务器的相关信息,可以保存为本地配置信息的文件topo.conf。Step S401, the configuration obtaining device acquires initial configuration information of the application and the corresponding installation configuration package install.tgz, and thereby completes initial deployment of the application server. For information about the application server that has been deployed for the initial deployment, you can save the file topo.conf as local configuration information.
步骤S402,配置获取装置确定是否使用推送服务,若使用了推送服务,则执行步骤S403;若未使用推送服务器,则执行步骤404。In step S402, the configuration obtaining means determines whether to use the push service. If the push service is used, step S403 is performed; if the push server is not used, step 404 is performed.
步骤S403,配置获取装置接收弹性伸缩服务平台推送消息,并由推送消息中获取线上配置信息,然后执行步骤S405。Step S403, the configuration obtaining device receives the elastic extension service platform push message, and obtains the online configuration information from the push message, and then performs step S405.
步骤S404,配置获取装置向弹性伸缩服务平台发送查询请求,并根据反馈获取线上配置信息,然后执行步骤S405。Step S404, the configuration obtaining device sends a query request to the elastic scalability service platform, and obtains online configuration information according to the feedback, and then performs step S405.
步骤S405,配置获取装置将所述线上配置信息与本地配置信息进行比较,若两者相同,则等待设定时间后,返回执行步骤S402;若两者不同,则执行步骤S406。In step S405, the configuration obtaining device compares the online configuration information with the local configuration information. If the two are the same, after waiting for the set time, the process returns to step S402. If the two are different, step S406 is performed.
步骤S406,配置获取装置判断所述线上配置信息中是否有新增的应用服务器,若是,则执行步骤S407;若否,则执行步骤S408。Step S406, the configuration obtaining means determines whether there is a new application server in the online configuration information, and if so, executing step S407; if not, executing step S408.
步骤S407,部署装置使用安装配置包install.tgz对所述新增的应用服务器进行应用部署,然后执行步骤S408。In step S407, the deployment device deploys the application to the newly added application server by using the installation configuration package install.tgz, and then performs step S408.
步骤S408,配置获取装置根据所述线上配置信息更新保存所述本地配置信息的文件topo.conf,然后返回执行步骤S402。Step S408, the configuration obtaining device updates the file topo.conf that saves the local configuration information according to the online configuration information, and then returns to step S402.
作为本申请实施例的一种优选的实施方式,所述部署装置920在对所述新增的应用服务器进行应用部署时,具体用于将所述应用的安装配置包发送至与该应用的类型对应类型的应用服务器,并根据所述安装配置包对所述应用服务器进行应用部署。通过对应用服务器定义不同的类型,来划分不同的服务器集群,这样即可以在不同的服务器集群部署不同的应用,将同一类应用整合至相应类型的应用服务器,便于服务器集群的管理。在本实施例中,使用roledefs和roles分别对应用服务器的集群以及应用服务器进行定义。具体格式为:As a preferred implementation manner of the application, the deployment device 920 is specifically configured to send an installation configuration package of the application to a type of the application when the application deployment is performed on the newly added application server. Corresponding types of application servers, and applying applications to the application servers according to the installation configuration package. By defining different types of application servers to divide different server clusters, different applications can be deployed in different server clusters, and the same type of applications can be integrated into corresponding types of application servers to facilitate management of server clusters. In this embodiment, the cluster of the application server and the application server are respectively defined using roledefs and roles. The specific format is:
roledefs={'apphosts':[‘host1','host2','host3'],'webhosts':['host3','host4']}Roledefs={'apphosts':[‘host1','host2','host3'],'webhosts':['host3','host4']}
$roles('apphosts')$roles('apphosts')
@task1 @task1
run('/root/install_app.sh)Run('/root/install_app.sh)
$roles('webhosts')$roles('webhosts')
@task2@task2
run('/root/install_web.sh')Run('/root/install_web.sh')
通过上述方式定义了两个应用服务器的集群:集群1“apphosts”,包含三个应用服务器host1、host2、host3,在属于“apphosts”集群的应用服务器执行任务1(task1),具体任务是安装app应用(run('/root/install_app.sh));集群2“apphosts”,包含两个应用服务器host3、host4,在属于“webhosts”集群的应用服务器执行任务2(task2),具体任务是安装web应用(run('/root/install_web.sh'))。通过对应用服务器进行集群化管理,可以同时在不同类型的应用服务器上部署不同类型应用,这种实现方式更加符合云计算的复杂应用场景。The cluster of two application servers is defined in the above manner: cluster 1 "apphosts", which contains three application servers host1, host2, and host3. Task 1 (task1) is executed on the application server belonging to the "apphosts" cluster. The specific task is to install the app. Application (run('/root/install_app.sh)); cluster 2 "apphosts", which contains two application servers host3 and host4, and performs task 2 (task2) on the application server belonging to the "webhosts" cluster. The specific task is to install the web. Application (run('/root/install_web.sh')). By clustering the application servers, you can deploy different types of applications on different types of application servers at the same time. This implementation is more suitable for complex application scenarios of cloud computing.
在实际应用中,若需要一次对数量较大的应用服务器进行应用部署时,如果采用顺序执行的部署方式,将非常消耗时间资源。例如,图1所示的方案中应用部署设备上传安装配置包到应用服务器1,并在应用服务器1进行应用部署,然后应用部署设备按照上一步骤的方式依次在其余的应用服务器2~N上进行应用部署,此时对N个应用服务器进行应用部署所使用的时间为T×N,其中T为对一个服务器进行应用部署所需要的时间。由于应用服务器之间的应用部署过程是相互独立的,因此对所有应用服务器进行并发的应用部署不会对整个应用部署过程带来负面影响,并且理论上一个应用在N个应用服务器进行并发部署所需要的部署时间仅为T,与顺序执行的部署方式相比,其能够节约(N-1)/N的时间,这将大大提高应用部署的效率。具体地,所述部署装置920在对所述新增的应用服务器进行应用部署时用于将所述应用的安装配置包发送至多个新增的应用服务器,并根据所述安装配置包同时对所述应用服务器进行应用部署。In actual applications, if you need to deploy applications to a large number of application servers at once, if you use sequential deployment, it will consume time resources. For example, in the solution shown in FIG. 1 , the application deployment device uploads the installation configuration package to the application server 1 , and deploys the application on the application server 1 , and then the application deployment device sequentially runs on the remaining application servers 2 to N according to the previous step. For application deployment, the time for application deployment to N application servers is T×N, where T is the time required for application deployment to one server. Since the application deployment process between application servers is independent of each other, concurrent application deployment to all application servers does not adversely affect the entire application deployment process, and theoretically, an application is deployed concurrently on N application servers. The required deployment time is only T, which can save (N-1)/N time compared to the sequential execution deployment mode, which will greatly improve the efficiency of application deployment. Specifically, the deployment device 920 is configured to send an installation configuration package of the application to a plurality of newly added application servers when the application deployment is performed on the newly added application server, and simultaneously perform the installation according to the installation configuration package. The application server is used for application deployment.
图5(a)和图5(b)分别为前述顺序执行的部署方式以及并发部署方式的原理示意图。在图5(a)中,以两个应用分别对三个应用服务器进行应用部署的两个部署任务为例,应用1的部署任务task1会依次在host1、host2和host3中部署应用1,完成之后在执行应用2的部署任务task2,该task2会依次在在host1、host2和host3中部署应用2,假设应用1和应用2在每个应用服务器上完成部署的时间相同,均为T,则此种方式的总部署时间需要6T。而在5(b)所示的并发执行的场景下,应用1的部署任务task1会同时在host1、host2和host3中部署应用1,待task1完成后,应用2的部署任务task2会同时在host1、host2和host3中部署应用2,因此此种方式的总部署时间为2T,部署效率 明显提高。FIG. 5(a) and FIG. 5(b) are schematic diagrams showing the deployment manner and the concurrent deployment mode of the foregoing sequence. In Figure 5(a), two deployment tasks for application deployment of three application servers are used as an example. The deployment task task1 of application 1 deploys application 1 in host1, host2, and host3 in turn. After executing the deployment task task2 of the application 2, the task2 will deploy the application 2 in the host1, the host2, and the host3 in turn, assuming that the application 1 and the application 2 are deployed on each application server for the same time, both are T. The total deployment time of the mode requires 6T. In the scenario of concurrent execution shown in 5(b), the deployment task task1 of application 1 deploys application 1 in host1, host2, and host3 at the same time. After task1 is completed, the deployment task task2 of application 2 is also on host1. Application 2 is deployed on host2 and host3. Therefore, the total deployment time of this mode is 2T. Significantly improved.
作为一种更优选的实施方式,可以将前述根据应用服务器类型进行应用部署的方式与并发部署的方式结合,其逻辑处理流程如图6所示。在实际应用中,可以通过配置信息中的roles变量来确定是否设置了对应的类型,如果存在roles变量,则可以根据roles变量来确定对应类型的应用服务器,然后根据应用的配置信息中的parallel变量来确定该应用的部署是否可以并发进行。所述部署装置920在对所述新增的应用服务器进行应用部署时,具体用于:若所述roles变量为'apphosts',且所述应用可并发执行(即parallel变量使能),则同时将所述应用的安装配置包发送至与该应用的类型对应类型的多个应用服务器,并根据所述安装配置包同时对所述应用服务器进行应用部署,即同时将所述应用的安装配置包发送至与host1、host2和host3,并根据所述安装配置包同时对host1、host2和host3进行应用部署;若所述应用不可并发执行(即parallel变量不使能),则依次将所述应用的安装配置包发送至与该应用的类型对应类型的多个应用服务器,并根据所述安装配置包依次对所述应用服务器进行应用部署,即将所述应用的安装配置包发送至与host1,并根据所述安装配置包对host1进行应用部署之后,再将安装配置包发送至与host2并对host2进行应用部署,最后将装配置包发送至与host3并对host3进行应用部署。As a more preferred implementation manner, the foregoing manner of deploying an application according to an application server type may be combined with a manner of concurrent deployment, and a logical processing flow thereof is shown in FIG. 6. In practical applications, the roles variable in the configuration information can be used to determine whether the corresponding type is set. If there is a roles variable, the application server of the corresponding type can be determined according to the roles variable, and then according to the parallel variable in the configuration information of the application. To determine if the deployment of the application can proceed concurrently. When the application device 920 deploys the application to the newly added application server, specifically: if the roles variable is 'apphosts', and the application can be executed concurrently (ie, the parallel variable is enabled), Sending the installation configuration package of the application to a plurality of application servers of a type corresponding to the type of the application, and performing application deployment on the application server according to the installation configuration package, that is, simultaneously installing the configuration package of the application Send to the host1, host2, and host3, and deploy the application to the host1, host2, and host3 according to the installation configuration package; if the application cannot be executed concurrently (that is, the parallel variable is not enabled), the application is sequentially The installation configuration package is sent to a plurality of application servers of a type corresponding to the type of the application, and the application server is deployed in the application according to the installation configuration package, that is, the installation configuration package of the application is sent to the host1, and according to After the installation configuration package is applied to the host1, the installation configuration package is sent to the host2 and the application deployment is performed on the host2, and finally the installation is performed. The configuration package is sent to and host3 and application deployment is performed on host3.
对于不存在roles变量的情形,即表示该应用需要在未定义类型的应用服务器上进行部署,本实施例中,hosts变量定义的应用服务器即表示该种应用服务器。因此,所述部署装置920在对所述新增的应用服务器进行应用部署时,还用于若不存在roles变量,且所述应用可并发执行,则在同时将所述应用的安装配置包发送至与多个hosts变量定义的应用服务器中,并根据所述安装配置包依次对所述应用服务器进行应用部署;若不存在roles变量,且所述应用不可并发执行,则依次将所述应用的安装配置包发送至与多个hosts变量定义的应用服务器,并根据所述安装配置包依次对所述应用服务器进行应用部署。In the case where the roles variable does not exist, it means that the application needs to be deployed on an application server of an undefined type. In this embodiment, the application server defined by the hosts variable represents the application server. Therefore, when the application device 920 deploys the application to the newly added application server, if the role variable is not present, and the application can be executed concurrently, the installation configuration package of the application is sent at the same time. And in the application server defined by the plurality of hosts variables, and applying the application to the application server according to the installation configuration package; if there is no roles variable, and the application cannot be executed concurrently, the application is sequentially The installation configuration package is sent to an application server defined by multiple hosts variables, and the application server is deployed in an application according to the installation configuration package.
此外,考虑到多线程安全问题,在对多个应用服务器进行并发部署时,可以采用多进程的方式。所述部署装置920在根据所述安装配置包同时对所述应用服务器进行应用部署时,具体用于创建针对每个应用服务器的子进程,控制所述子进程分别根据所述安装配置包对所述应用服务器进行应用部署;获取所述子进程发送的每个应用服务器的应用部署结果。仍以在“apphosts”集群的三个应用服务器并发部署应用为例,其处理流程如图7所示,若在进行应用部署时,若应用部署设备中部署装置920的主进程确定所述 应用可并发执行,则获取线上配置信息中新增的应用服务器的信息并完成安装配置包的准备;然后针对每个应用服务器创建一个对应的子进程,例如针对“apphosts”集群的三个应用服务器host1、host2和host3则分别创建子进程1、子进程2和子进程3,每个子进程专门负责对应应用服务器的应用部署、管控等工作,不同的子进程之间相互不影响。创建完子进程后,主进程指示子进程1、子进程2和子进程3分别在host1、host2和host3进行应用部署,各个子进程在完成应用部署后,会将应用部署结果发送到主进程。主进程收集完所有子进程的应用部署结果时,对结果进行汇总后发送给用户本地工作设备,以完成向用户的信息反馈。In addition, considering the multi-thread security problem, when concurrently deploying multiple application servers, a multi-process approach can be adopted. The deployment device 920 is specifically configured to create a sub-process for each application server when the application is deployed to the application server according to the installation configuration package, and the sub-process is controlled according to the installation configuration package. The application server is used for application deployment; and the application deployment result of each application server sent by the child process is obtained. For example, the processing flow of the application server 920 in the application deployment device is determined by the process of deploying the application in the application deployment device. The application can execute concurrently, obtain the information of the newly added application server in the online configuration information and complete the preparation of installing the configuration package; then create a corresponding sub-process for each application server, for example, three applications for the "apphosts" cluster. The server host1, host2, and host3 create sub-process 1, sub-process 2, and sub-process 3, respectively. Each sub-process is responsible for application deployment, management and control of the corresponding application server, and different sub-processes do not affect each other. After the sub-process is created, the main process indicates that the sub-process 1, sub-process 2, and sub-process 3 are deployed on the host1, host2, and host3. After the application is deployed, the sub-process sends the application deployment result to the main process. When the main process collects the application deployment results of all the sub-processes, the results are summarized and sent to the local working device to complete the feedback to the user.
在实际应用中,所述部署装置在对所述新增的应用服务器进行应用部署时,具体用于获取所述应用服务器的登录用户名和登录密码,根据所述登录用户名和登录密码登录所述应用服务器;指示所述应用服务器安装所述应用的安装配置包。在对应用服务器进行应用部署时,可以通过登录用户名和登录密码来登录到对应的应用服务器来取得在该应用服务器安装相关应用的安装配置包的权限,由此可以保证网络环境的安全性。对于集群规模较大的场景,其内包含的应用服务器数量较大,因此在部署过程中会有非常多的登录用户名和登录密码的输入需求,为了降低用户管理应用服务器的登录用户名和登录密码的难度,在本申请实施例中所述应用服务器的登录用户名根据以下优先级顺序的其中一种方式获取:In an actual application, the deployment device is configured to acquire a login user name and a login password of the application server, and log in to the application according to the login user name and login password. a server; instructing the application server to install an installation configuration package of the application. When the application server is deployed for application, you can log in to the corresponding application server by using the login user name and login password to obtain the permission to install the configuration package of the related application on the application server, thereby ensuring the security of the network environment. For a scenario with a large cluster size, the number of application servers included in the cluster is large. Therefore, there are many login user names and login password input requirements during the deployment process. In order to reduce the login user name and login password of the user management application server. Difficulty, the login user name of the application server in the embodiment of the present application is obtained according to one of the following priority order:
1、由命令行的输入信息获取所述应用服务器的登录用户名。由命令行输入的用户名为优先级最高的获取方式,当检测到用户由命令行输入登录用户名时,则直接由命令行提取登录用户名,并使用该登录用户名尝试登录应用服务器。1. Obtain the login user name of the application server from the input information of the command line. The user name entered by the command line is the highest priority. When it is detected that the user enters the login user name from the command line, the login user name is extracted directly from the command line, and the login user name is used to try to log in to the application server.
2、由预设文件中获取所述应用服务器的登录用户名。此种方式的优先级低于由命令行的输入信息获取所述应用服务器的登录用户名,其中所述预设文件可以是安装配置包中的配置描述文件,也可以是用户在初始配置过程中向应用部署设备上传的初始配置信息中的内容。所述应用服务器的登录用户名一般可以由预设文件中的相关变量保存,例如本实施例中,通过预设文件中的两个变量保存登录用户名,分别为user变量和hosts变量,其中hosts变量分别对不同的应用服务器定义不同的登录用户名,其形式可以是应用服务器的标识(例如IP地址)与应用服务器的登录用户名的对应关系表的形式,当存在hosts变量时,获取应用服务器的登录用户名,同时确定该应用服务器当前是否存在,此时从hosts变量中提取应用服务器的登录用户名。而user变量则统一定义了一个登录用户名,当不存在hosts变量时或者hosts变量中的应用服务器当前不在线时,才由user 变量中提取登录用户名,因此user变量的优先级低于hosts变量。2. Obtain the login user name of the application server from the preset file. The priority of the method is lower than the login user name of the application server obtained by the input information of the command line, where the preset file may be a configuration description file in the installation configuration package, or may be the user during the initial configuration process. The content in the initial configuration information uploaded to the app deployment device. The login user name of the application server can be saved by a related variable in the preset file. For example, in this embodiment, the login user name is saved by two variables in the preset file, respectively, a user variable and a hosts variable, where hosts The variables respectively define different login user names for different application servers, and may be in the form of a correspondence table between the identifier of the application server (for example, an IP address) and the login user name of the application server. When the hosts variable exists, the application server is acquired. The login user name, and determine whether the application server currently exists. At this time, the login user name of the application server is extracted from the hosts variable. The user variable uniformly defines a login user name. When the hosts variable does not exist or the application server in the hosts variable is not currently online, it is used by the user. The login user name is extracted from the variable, so the user variable has a lower priority than the hosts variable.
3、获取本地设备的用户名作为所述应用服务器的登录用户名。没有从命令行获取到登录用户名、并且不存在hosts变量以及user变量时,才会默认获取本地设备的用户名作为所述应用服务器的登录用户名。其中,所述本地设备可以是用户与应用部署设备进行交互的设备,例如在图3的典型实现方式中,本地设备即为用户本地工作设备340。3. Obtain the username of the local device as the login user name of the application server. If the login user name is not obtained from the command line, and the hosts variable and the user variable are not present, the user name of the local device is obtained as the login user name of the application server by default. The local device may be a device that the user interacts with the application deployment device. For example, in the typical implementation of FIG. 3, the local device is the user local working device 340.
当应用部署设备通过前述任意一种方式获取到登录用户名之后,会继续获取登录密码。其中,所述应用服务器的登录密码根据以下优先级顺序的其中一种方式获取:After the application deployment device obtains the login user name by any of the foregoing methods, it will continue to obtain the login password. The login password of the application server is obtained according to one of the following priority order:
1、由命令行的输入信息获取所述应用服务器的登录密码。由命令行输入的密码为优先级最高的获取方式,当检测到用户由命令行输入登录密码时,则直接由命令行提取登录密码,并配合之前获取到的登录用户名尝试登录应用服务器。1. Obtain the login password of the application server from the input information of the command line. The password entered by the command line is the highest priority. When it is detected that the user enters the login password from the command line, the login password is directly extracted by the command line, and the login user name is used to log in to the application server.
2、由预设文件中获取所述应用服务器的登录密码。此种方式的优先级低于由命令行的输入信息获取所述应用服务器的登录密码,所述应用服务器的登录密码同样可以由预设文件中的相关变量保存,例如本实施例中,通过预设文件中的两个变量保存登录密码,分别为passwords变量和password变量,其中passwords变量分别对不同的应用服务器定义不同的登录密码,其形式可以是应用服务器的标识(例如IP地址)与应用服务器的登录密码的对应关系表的形式,当存在passwords变量时,获取应用服务器的登录密码,同时确定该应用服务器当前是否存在,此时从passwords变量中提取应用服务器的登录密码。而password变量则统一定义了一个登录密码,当不存在passwords变量时或者passwords变量中的应用服务器当前不在线时,才由password变量中提取登录密码,因此password变量的优先级低于passwords变量。2. Obtain the login password of the application server from the preset file. The priority of the method is lower than the login password of the application server obtained by the input information of the command line. The login password of the application server can also be saved by the relevant variable in the preset file. For example, in this embodiment, Set two variables in the file to save the login password, which are passwords and password variables respectively. The passwords variable respectively define different login passwords for different application servers, which can be the application server identifier (such as IP address) and application server. In the form of the correspondence table of the login password, when the password variable exists, the login password of the application server is obtained, and it is determined whether the application server currently exists. At this time, the login password of the application server is extracted from the passwords variable. The password variable defines a login password. When the password variable does not exist or the application server in the passwords variable is not online, the login password is extracted from the password variable. Therefore, the priority of the password variable is lower than the password variable.
3、由本地设备的缓存获取所述应用服务器的登录密码。与获取登录用户名时类似,当没有从命令行获取到登录密码、并且不存在passwords变量以及password变量时,才会由本地设备的缓存中获取密码作为所述应用服务器的登录密码。3. The login password of the application server is obtained by the cache of the local device. Similar to when the login user name is obtained, when the login password is not obtained from the command line, and the password variable and the password variable are not present, the password is obtained from the cache of the local device as the login password of the application server.
4、获取用户由本地设备输入的密码作为所述应用服务器的登录密码。当本地设备的缓存中也未保存任何密码时,作为优先级最低的方式,会需要用户由本地设备输入密码。4. Obtain a password input by the local device as the login password of the application server. When no password is saved in the cache of the local device, the user with the lowest priority will require the user to enter the password from the local device.
本实施例中登录用户名、登录密码都以命令行的输入作为最高的优先级,这符合用户的使用习惯。此外,一般用户都会将常用的登录用户名和登录密码记录在预设文件里,只有在少量的特殊情况下才会通过本地设备进行手动输入。因此通过此种方式获取登录用户名和密码的方式最大限度的满足用户的使用需求,为应用部署的高效进行提供了便捷。 In this embodiment, the login user name and the login password are all entered with the command line as the highest priority, which is in accordance with the user's usage habits. In addition, the general user will record the commonly used login user name and login password in the default file, and only manually input through the local device in a small number of special cases. Therefore, the way to obtain the login user name and password in this way can satisfy the user's use requirements to the greatest extent, and provides convenient and efficient application deployment.
综上所述,本申请的技术方案在完成初始部署之后,能够动态获取根据应用的当前需求确定的待部署的应用服务器的线上配置信息,通过与本地配置信息比较,在发现有新增的应用服务器需要进行应用部署后,对这些新增的应用服务器进行应用部署,从而实现应用的弹性部署,提高部署方案的灵活性,同时通过线上配置信息更新原有的本地配置信息,对当前已进行应用部署的应用服务器进行记录,保证后续应用部署的准确性。In summary, after completing the initial deployment, the technical solution of the present application can dynamically obtain the online configuration information of the application server to be deployed determined according to the current needs of the application, and compare with the local configuration information to find that there is a new one. After the application server needs to be deployed, apply the application deployment to these new application servers to implement flexible deployment of the application, improve the flexibility of the deployment solution, and update the original local configuration information through online configuration information. The application server that performs application deployment records to ensure the accuracy of subsequent application deployment.
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。It should be noted that the present application can be implemented in software and/or a combination of software and hardware, for example, using an application specific integrated circuit (ASIC), a general purpose computer, or any other similar hardware device. In one embodiment, the software program of the present application can be executed by a processor to implement the steps or functions described above. Likewise, the software programs (including related data structures) of the present application can be stored in a computer readable recording medium such as a RAM memory, a magnetic or optical drive or a floppy disk and the like. In addition, some of the steps or functions of the present application may be implemented in hardware, for example, as a circuit that cooperates with a processor to perform various steps or functions.
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。In addition, a portion of the present application can be applied as a computer program product, such as computer program instructions, which, when executed by a computer, can invoke or provide a method and/or technical solution in accordance with the present application. The program instructions for invoking the method of the present application may be stored in a fixed or removable recording medium, and/or transmitted by a data stream in a broadcast or other signal bearing medium, and/or stored in a The working memory of the computer device in which the program instructions are run. Herein, an embodiment in accordance with the present application includes a device including a memory for storing computer program instructions and a processor for executing program instructions, wherein when the computer program instructions are executed by the processor, triggering The apparatus operates based on the aforementioned methods and/or technical solutions in accordance with various embodiments of the present application.
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。 It is obvious to those skilled in the art that the present application is not limited to the details of the above-described exemplary embodiments, and the present invention can be implemented in other specific forms without departing from the spirit or essential characteristics of the present application. Therefore, the present embodiments are to be considered as illustrative and not restrictive, and the scope of the invention is defined by the appended claims instead All changes in the meaning and scope of equivalent elements are included in this application. Any reference signs in the claims should not be construed as limiting the claim. In addition, it is to be understood that the word "comprising" does not exclude other elements or steps. A plurality of units or devices recited in the device claims may also be implemented by a unit or device by software or hardware.

Claims (20)

  1. 一种应用部署方法,其中,该方法包括:An application deployment method, wherein the method includes:
    获取线上配置信息,其中所述线上配置信息包含根据应用的当前需求确定的待部署的应用服务器;Obtaining online configuration information, where the online configuration information includes an application server to be deployed determined according to current requirements of the application;
    若所述线上配置信息与本地配置信息不同,且所述线上配置信息中有新增的应用服务器,则对所述新增的应用服务器进行应用部署,并根据所述线上配置信息更新所述本地配置信息,其中所述本地配置信息包含当前已进行应用部署的应用服务器。If the online configuration information is different from the local configuration information, and the online application information has a new application server, the application server is deployed to the newly added application server, and updated according to the online configuration information. The local configuration information, where the local configuration information includes an application server that has been deployed by an application.
  2. 根据权利要求1所述的方法,其中,获取线上配置信息之后,还包括:The method of claim 1, wherein after obtaining the online configuration information, the method further comprises:
    若所述线上配置信息与本地配置信息不同,且所述线上配置信息中无新增的应用服务器,则根据所述线上配置信息更新所述本地配置信息。If the online configuration information is different from the local configuration information, and there is no new application server in the online configuration information, the local configuration information is updated according to the online configuration information.
  3. 根据权利要求1或2所述的方法,其中,获取线上配置信息,包括:The method according to claim 1 or 2, wherein obtaining online configuration information comprises:
    向弹性伸缩服务平台发送查询请求,并接收所述弹性伸缩服务平台根据所述查询请求发送的线上配置信息,其中所述弹性伸缩平台根据应用的需求确定当前待部署的应用服务器;或Sending a query request to the elastic extension service platform, and receiving the online configuration information sent by the elastic extension service platform according to the query request, where the elastic extension platform determines the application server to be deployed according to the application requirement; or
    接收弹性伸缩服务平台发送的包含所述线上配置信息的推送消息。Receiving a push message sent by the elastic extension service platform that includes the online configuration information.
  4. 根据权利要求1至3中任一项所述的方法,其中,对新增的应用服务器进行应用部署,包括:The method according to any one of claims 1 to 3, wherein the application deployment of the newly added application server comprises:
    将所述应用的安装配置包发送至与该应用的类型对应类型的应用服务器,并根据所述安装配置包对所述应用服务器进行应用部署。And sending an installation configuration package of the application to an application server of a type corresponding to the type of the application, and performing application deployment on the application server according to the installation configuration package.
  5. 根据权利要求1至3中任一项所述的方法,其中,对新增的应用服务器进行应用部署,包括:The method according to any one of claims 1 to 3, wherein the application deployment of the newly added application server comprises:
    将所述应用的安装配置包发送至多个新增的应用服务器,并根据所述安装配置包同时对所述应用服务器进行应用部署。Sending the installation configuration package of the application to a plurality of newly added application servers, and performing application deployment on the application server according to the installation configuration package.
  6. 根据权利要求1至3中任一项所述的方法,其中,对新增的应用服务器进行应用部署,包括:The method according to any one of claims 1 to 3, wherein the application deployment of the newly added application server comprises:
    若所述应用可并发执行,则同时将所述应用的安装配置包发送至与该应用的类型对应类型的多个应用服务器,并根据所述安装配置包同时对所述应用服务器进行应用部署;If the application can be executed concurrently, the installation configuration package of the application is sent to a plurality of application servers of a type corresponding to the type of the application, and the application server is simultaneously deployed according to the installation configuration package;
    若所述应用不可并发执行,则依次将所述应用的安装配置包发送至与该应用的类型对应类型的多个应用服务器,并根据所述安装配置包依次对所述应用服务器进行应用部 署。If the application is not executable concurrently, the installation configuration package of the application is sequentially sent to multiple application servers of a type corresponding to the type of the application, and the application server is sequentially applied to the application server according to the installation configuration package. Department.
  7. 根据权利要求5或6所述的方法,其中,根据所述安装配置包同时对所述应用服务器进行应用部署,包括:The method according to claim 5 or 6, wherein the application deployment of the application server is performed according to the installation configuration package, including:
    创建针对每个应用服务器的子进程,控制所述子进程分别根据所述安装配置包对所述应用服务器进行应用部署;Creating a child process for each application server, and controlling the child process to perform application deployment on the application server according to the installation configuration package;
    获取所述子进程发送的每个应用服务器的应用部署结果。Obtain the application deployment result of each application server sent by the child process.
  8. 根据权利要求4至7任一项所述的方法,其中,对新增的应用服务器进行应用部署,包括:The method according to any one of claims 4 to 7, wherein the application deployment of the newly added application server comprises:
    获取所述应用服务器的登录用户名和登录密码,根据所述登录用户名和登录密码登录所述应用服务器;Obtaining a login user name and a login password of the application server, and logging in to the application server according to the login user name and a login password;
    指示所述应用服务器安装所述应用的安装配置包。Instructing the application server to install an installation configuration package of the application.
  9. 根据权利要求8所述的方法,其中,所述应用服务器的登录用户名根据以下优先级顺序的其中一种方式获取:The method of claim 8, wherein the login user name of the application server is obtained according to one of the following priority order:
    由命令行的输入信息获取所述应用服务器的登录用户名;Obtaining, by the input information of the command line, the login user name of the application server;
    由预设文件中获取所述应用服务器的登录用户名;Obtaining a login user name of the application server from a preset file;
    获取本地设备的用户名作为所述应用服务器的登录用户名。The user name of the local device is obtained as the login user name of the application server.
  10. 根据权利要求8或9所述的方法,其中,所述应用服务器的登录密码根据以下优先级顺序的其中一种方式获取:The method according to claim 8 or 9, wherein the login password of the application server is obtained according to one of the following priority order:
    由命令行的输入信息获取所述应用服务器的登录密码;Obtaining a login password of the application server by using input information of the command line;
    由预设文件中获取所述应用服务器的登录密码;Obtaining a login password of the application server from a preset file;
    由本地设备的缓存获取所述应用服务器的登录密码;Obtaining a login password of the application server by a cache of the local device;
    获取用户由本地设备输入的密码作为所述应用服务器的登录密码。The password entered by the user from the local device is obtained as the login password of the application server.
  11. 一种应用部署设备,其中,该设备包括:An application deployment device, wherein the device includes:
    配置获取装置,用于获取线上配置信息,其中所述线上配置信息包含根据应用的当前需求确定的待部署的应用服务器;Configuring the obtaining device, configured to obtain online configuration information, where the online configuration information includes an application server to be deployed determined according to current requirements of the application;
    部署装置,用于若所述线上配置信息与本地配置信息不同,且所述线上配置信息中有新增的应用服务器,则对所述新增的应用服务器进行应用部署,并根据所述线上配置信息更新所述本地配置信息,其中所述本地配置信息包含当前已进行应用部署的应用服务器。a deployment device, if the online configuration information is different from the local configuration information, and the new application server is included in the online configuration information, applying the application to the newly added application server, and according to the The online configuration information updates the local configuration information, where the local configuration information includes an application server that has been deployed by the application.
  12. 根据权利要求11所述的设备,其中,所述部署装置,还用于若所述线上配置信 息与本地配置信息不同,且所述线上配置信息中无新增的应用服务器,则根据所述线上配置信息更新所述本地配置信息。The device according to claim 11, wherein the deployment device is further configured to: if the online configuration letter The information is different from the local configuration information, and there is no new application server in the online configuration information, and the local configuration information is updated according to the online configuration information.
  13. 根据权利要求11或12所述的设备,其中,所述配置获取装置,用于向弹性伸缩服务平台发送查询请求,并接收所述弹性伸缩服务平台根据所述查询请求发送的线上配置信息,其中所述弹性伸缩平台根据应用的需求确定当前待部署的应用服务器;或The device according to claim 11 or 12, wherein the configuration obtaining means is configured to send a query request to the elastic extension service platform, and receive online configuration information sent by the elastic extension service platform according to the query request, The elastic telescopic platform determines an application server to be deployed according to an application requirement; or
    接收弹性伸缩服务平台发送的包含所述线上配置信息的推送消息。Receiving a push message sent by the elastic extension service platform that includes the online configuration information.
  14. 根据权利要求11至13中任一项所述的设备,其中,所述部署装置在对所述新增的应用服务器进行应用部署时,用于将所述应用的安装配置包发送至与该应用的类型对应类型的应用服务器,并根据所述安装配置包对所述应用服务器进行应用部署。The device according to any one of claims 11 to 13, wherein the deployment device is configured to send an installation configuration package of the application to the application when the application deployment is performed on the newly added application server The type corresponds to the type of application server, and the application server is deployed according to the installation configuration package.
  15. 根据权利要求11至13中任一项所述的设备,其中,所述部署装置在对所述新增的应用服务器进行应用部署时,用于将所述应用的安装配置包发送至多个新增的应用服务器,并根据所述安装配置包同时对所述应用服务器进行应用部署。The device according to any one of claims 11 to 13, wherein the deployment device is configured to send an installation configuration package of the application to a plurality of newly added when the application deployment is performed on the newly added application server. And the application server deploys the application server according to the installation configuration package.
  16. 根据权利要求11至13中任一项所述的设备,其中,所述部署装置在对所述新增的应用服务器进行应用部署时,用于若所述应用可并发执行,则同时将所述应用的安装配置包发送至与该应用的类型对应类型的多个应用服务器,并根据所述安装配置包同时对所述应用服务器进行应用部署;以及若所述应用不可并发执行,则依次将所述应用的安装配置包发送至与该应用的类型对应类型的多个应用服务器,并根据所述安装配置包依次对所述应用服务器进行应用部署。The device according to any one of claims 11 to 13, wherein, when the application device deploys the application to the newly added application server, if the application can be executed concurrently, the The installation configuration package of the application is sent to a plurality of application servers of a type corresponding to the type of the application, and the application server is deployed to the application server according to the installation configuration package; and if the application cannot be concurrently executed, The installation configuration package of the application is sent to a plurality of application servers of a type corresponding to the type of the application, and the application server is deployed in the application according to the installation configuration package.
  17. 根据权利要求15或16所述的设备,其中,所述部署装置在根据所述安装配置包同时对所述应用服务器进行应用部署时,用于创建针对每个应用服务器的子进程,控制所述子进程分别根据所述安装配置包对所述应用服务器进行应用部署;以及获取所述子进程发送的每个应用服务器的应用部署结果。The device according to claim 15 or 16, wherein the deployment device is configured to create a child process for each application server when the application deployment is performed on the application server according to the installation configuration package, and the controlling The application process is performed on the application server according to the installation configuration package, and the application deployment result of each application server sent by the sub-process is obtained.
  18. 根据权利要求14至17任一项所述的设备,其中,所述部署装置在对所述新增的应用服务器进行应用部署时,用于获取所述应用服务器的登录用户名和登录密码,根据所述登录用户名和登录密码登录所述应用服务器;The device according to any one of claims 14 to 17, wherein the deployment device is configured to acquire a login user name and a login password of the application server when the application is deployed to the newly added application server, according to the Logging in to the application server by using a login user name and a login password;
    指示所述应用服务器安装所述应用的安装配置包。Instructing the application server to install an installation configuration package of the application.
  19. 根据权利要求18所述的设备,其中,所述应用服务器的登录用户名根据以下优先级顺序的其中一种方式获取:The device according to claim 18, wherein the login user name of the application server is obtained according to one of the following priority order:
    由命令行的输入信息获取所述应用服务器的登录用户名;Obtaining, by the input information of the command line, the login user name of the application server;
    由预设文件中获取所述应用服务器的登录用户名; Obtaining a login user name of the application server from a preset file;
    获取本地设备的用户名作为所述应用服务器的登录用户名。The user name of the local device is obtained as the login user name of the application server.
  20. 根据权利要求18或19所述的设备,其中,所述应用服务器的登录密码根据以下优先级顺序的其中一种方式获取:The device according to claim 18 or 19, wherein the login password of the application server is obtained according to one of the following priority order:
    由命令行的输入信息获取所述应用服务器的登录密码;Obtaining a login password of the application server by using input information of the command line;
    由预设文件中获取所述应用服务器的登录密码;Obtaining a login password of the application server from a preset file;
    由本地设备的缓存获取所述应用服务器的登录密码;Obtaining a login password of the application server by a cache of the local device;
    获取用户由本地设备输入的密码作为所述应用服务器的登录密码。 The password entered by the user from the local device is obtained as the login password of the application server.
PCT/CN2016/097492 2015-09-09 2016-08-31 Application deployment method and device WO2017041649A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201510570723.XA CN106533713B (en) 2015-09-09 2015-09-09 Application deployment method and device
CN201510570723.X 2015-09-09

Publications (1)

Publication Number Publication Date
WO2017041649A1 true WO2017041649A1 (en) 2017-03-16

Family

ID=58240584

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2016/097492 WO2017041649A1 (en) 2015-09-09 2016-08-31 Application deployment method and device

Country Status (2)

Country Link
CN (1) CN106533713B (en)
WO (1) WO2017041649A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110650033A (en) * 2018-06-27 2020-01-03 网宿科技股份有限公司 Distributed application configuration management method and distributed computing system
CN113126881A (en) * 2019-12-30 2021-07-16 阿里巴巴集团控股有限公司 System configuration method, device, equipment, readable storage medium and distributed storage system
CN113126881B (en) * 2019-12-30 2024-05-31 阿里巴巴集团控股有限公司 System configuration method, device, equipment, readable storage medium and distributed storage system

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107239340A (en) * 2017-04-27 2017-10-10 清华大学 A kind of numerical result reproducibility safeguards system
CN107908414A (en) * 2017-11-22 2018-04-13 中国银行股份有限公司 A kind of method, apparatus and system of the deployment of application server version
CN108521342B (en) * 2018-03-26 2021-08-13 北京奇艺世纪科技有限公司 Cluster management method and device
CN111190719A (en) * 2018-11-14 2020-05-22 北京京东尚科信息技术有限公司 Method, device, medium and electronic equipment for optimizing cluster resource allocation
CN109766174B (en) * 2018-12-24 2021-04-16 杭州数梦工场科技有限公司 Resource scheduling method, resource scheduling apparatus, and computer-readable storage medium
CN109814918A (en) * 2019-01-24 2019-05-28 深圳市多元世纪信息技术股份有限公司 Software deployment method and system, computer readable storage medium
CN112667350A (en) * 2020-12-23 2021-04-16 广州三七互娱科技有限公司 Configuration scheduling method, device and system
US11914980B2 (en) 2021-06-08 2024-02-27 Red Hat, Inc. Managing deployments of software programs to distributed computing environments
CN114020281B (en) * 2021-11-08 2022-10-14 中电金信软件有限公司 Database deployment method, application service deployment method and device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102377598A (en) * 2010-08-26 2012-03-14 中国移动通信集团公司 Internet application custody system, equipment and method
US20140075035A1 (en) * 2012-09-07 2014-03-13 Oracle International Corporation System and method for providing java cloud services for use with a cloud computing environment
CN103957237A (en) * 2014-04-03 2014-07-30 华南理工大学 Architecture of elastic cloud
CN104618164A (en) * 2015-02-12 2015-05-13 北京航空航天大学 Management method for rapid cloud computing platform application deployment

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102843419B (en) * 2012-07-03 2015-08-12 广东电网公司信息中心 A kind of service resource allocation method and system
US9906896B2 (en) * 2013-09-21 2018-02-27 Avaya Inc. Client location discovery
US9300552B2 (en) * 2013-12-16 2016-03-29 International Business Machines Corporation Scaling a cloud infrastructure

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102377598A (en) * 2010-08-26 2012-03-14 中国移动通信集团公司 Internet application custody system, equipment and method
US20140075035A1 (en) * 2012-09-07 2014-03-13 Oracle International Corporation System and method for providing java cloud services for use with a cloud computing environment
CN103957237A (en) * 2014-04-03 2014-07-30 华南理工大学 Architecture of elastic cloud
CN104618164A (en) * 2015-02-12 2015-05-13 北京航空航天大学 Management method for rapid cloud computing platform application deployment

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110650033A (en) * 2018-06-27 2020-01-03 网宿科技股份有限公司 Distributed application configuration management method and distributed computing system
CN110650033B (en) * 2018-06-27 2022-12-20 网宿科技股份有限公司 Distributed application configuration management method and distributed computing system
CN113126881A (en) * 2019-12-30 2021-07-16 阿里巴巴集团控股有限公司 System configuration method, device, equipment, readable storage medium and distributed storage system
CN113126881B (en) * 2019-12-30 2024-05-31 阿里巴巴集团控股有限公司 System configuration method, device, equipment, readable storage medium and distributed storage system

Also Published As

Publication number Publication date
CN106533713A (en) 2017-03-22
CN106533713B (en) 2019-12-10

Similar Documents

Publication Publication Date Title
WO2017041649A1 (en) Application deployment method and device
US11210204B2 (en) Agentless distributed monitoring of microservices through a virtual switch
US20190253367A1 (en) Automated failure recovery of subsystems in a management system
EP3276488B1 (en) Deployment system for multi-node applications
US9307019B2 (en) Apparatus, systems and methods for deployment and management of distributed computing systems and applications
CA3000422C (en) Workflow service using state transfer
US9582319B2 (en) Migrating virtual machines across network separated data centers
US10318273B2 (en) Updating software components through online stores
US9990238B2 (en) Event notification
US20140109095A1 (en) Seamless extension of local computing power
US11520609B2 (en) Template-based software discovery and management in virtual desktop infrastructure (VDI) environments
CN103118073A (en) Virtual machine data persistence storage system and method in cloud environment
CN110019059B (en) Timing synchronization method and device
US20120265879A1 (en) Managing servicability of cloud computing resources
Hao Edge Computing on Low Availability Devices with K3s in a Smart Home IoT System
US11210129B2 (en) Extended architecture as a service to integrate resource and transaction managers
US11853783B1 (en) Identifying hosts for dynamically enabling specified features when resuming operation of a virtual compute instance
US9501528B2 (en) Efficient response of common information model (CIM) server
US11907747B2 (en) Method for deploying product applications within virtual machines onto on-premises and public cloud infrastructures
US20230418805A1 (en) Tenantification of database management systems
WO2023154655A1 (en) Reentrant service deployments
Gupta et al. Improving scope of Cloud technology under Open SourceTools
CN115904478A (en) Cloud platform resource management method and system and electronic equipment
Chapke Auto Provisioning Portal
JP2009211688A (en) Method, system, and computer program for migrating file

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16843587

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16843587

Country of ref document: EP

Kind code of ref document: A1