WO2017041649A1 - 一种应用部署方法及设备 - Google Patents

一种应用部署方法及设备 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
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/CN2016/097492
Other languages
English (en)
French (fr)
Inventor
阚俊宝
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of WO2017041649A1 publication Critical patent/WO2017041649A1/zh
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

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)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请的目的是提供一种应用部署方法及设备。具体地,获取线上配置信息;若线上配置信息与本地配置信息不同,且线上配置信息中有新增的应用服务器,则对新增的应用服务器进行应用部署,并根据线上配置信息更新本地配置信息。与现有技术相比,本申请的技术方案能够动态获取根据应用的当前需求确定的待部署的应用服务器的线上配置信息,通过与本地配置信息比较,在发现有新增的应用服务器需要进行应用部署后,对这些新增的应用服务器进行应用部署,从而实现应用的弹性部署,提高部署方案的灵活性,同时通过线上配置信息更新原有的本地配置信息,对当前已进行应用部署的应用服务器进行记录,保证后续应用部署的准确性。

Description

一种应用部署方法及设备
本申请要求2015年09月09日递交的申请号为201510570723.X、发明名称为“一种应用部署方法及设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机领域,尤其涉及一种应用部署方法及设备。
背景技术
云计算作为一种新的计算服务提供方式,能让企业通过网络以按需、易扩展的方式获得服务,免除软件购买、运维和维护的困扰和费用,降低企业管理成本,现在的商业应用正在逐渐向云计算转移。云计算的一个重要特点是易扩展,即计算能力的弹性伸缩,当业务需要更多的计算能力的时候,系统能分配更多的计算资源给用户。在具体的提供方式上一般操作是:以集群方式把服务器分配给用户,当业务需求的计算资源大于当前的计算能力时,系统会向集群中添加更多的服务器以作补充,同样,当业务量减少时,系统会减少集群中服务器的数量。
随着网络技术的应用,应用部署作为运维开发的重要环节也得到了深入发展,应用部署的质量直接影响了应用程序的功能和用户体验。传统的应用部署方式大都是运维人员手工操作完成,即使使用自动化部署方式实现的部署方案,也在易用性、集群化、可伸缩等方面存在诸多不足,很难满足当前云计算环境的应用部署需求。图1示出了现有技术中应用部署方案的示意图,其进行应用部署的过程如下:应用部署设备110读取本地的配置文件,根据本地的配置文件依次与应用集群中的各个应用服务器建立连接,协商通信机制;应用部署设备110上传安装配置包到应用服务器1,并在应用服务器1进行应用部署;应用部署设备110按照上一步骤的方式依次在其余的应用服务器2~N上进行应用部署;全部完成后,应用部署设备110处理结果,并反馈给用户;如果应用集群中需要增加应用服务器,必须由用户修改应用部署设备的配置文件或者获取预先设置的配置文件,重复前述步骤重新进行应用部署。
由此可知,现有的应用部署方案中其网络架构是相对固定的,如果要向应用集群中动态添加一台应用服务器,则应用的部署、升级都要相应修改部署方案,因此应用部署 方式不够灵活,无法进行弹性部署。
发明内容
本申请的目的是提供一种应用部署方法及设备,以解决现有技术中应用部署方式不够灵活,无法进行弹性部署的问题。
为实现上述目的,本申请提供了一种应用部署方法,该方法包括:
获取线上配置信息,其中所述线上配置信息包含根据应用的当前需求确定的待部署的应用服务器;
若所述线上配置信息与本地配置信息不同,且所述线上配置信息中有新增的应用服务器,则对所述新增的应用服务器进行应用部署,并根据所述线上配置信息更新所述本地配置信息,其中所述本地配置信息包含当前已进行应用部署的应用服务器。
进一步地,获取线上配置信息之后,还包括:
若所述线上配置信息与本地配置信息不同,且所述线上配置信息中无新增的应用服务器,则根据所述线上配置信息更新所述本地配置信息。
进一步地,获取线上配置信息,包括:
向弹性伸缩服务平台发送查询请求,并接收所述弹性伸缩服务平台根据所述查询请求发送的线上配置信息,其中所述弹性伸缩平台根据应用的需求确定当前待部署的应用服务器;或
接收弹性伸缩服务平台发送的包含所述线上配置信息的推送消息。
进一步地,对新增的应用服务器进行应用部署,包括:
将所述应用的安装配置包发送至与该应用的类型对应类型的应用服务器,并根据所述安装配置包对所述应用服务器进行应用部署。
进一步地,对新增的应用服务器进行应用部署,包括:
将所述应用的安装配置包发送至多个新增的应用服务器,并根据所述安装配置包同时对所述应用服务器进行应用部署。
进一步地,对新增的应用服务器进行应用部署,包括:
若所述应用可并发执行,则同时将所述应用的安装配置包发送至与该应用的类型对应类型的多个应用服务器,并根据所述安装配置包同时对所述应用服务器进行应用部署;
若所述应用不可并发执行,则依次将所述应用的安装配置包发送至与该应用的类型对应类型的多个应用服务器,并根据所述安装配置包依次对所述应用服务器进行应用部 署。
进一步地,根据所述安装配置包同时对所述应用服务器进行应用部署,包括:
创建针对每个应用服务器的子进程,控制所述子进程分别根据所述安装配置包对所述应用服务器进行应用部署;
获取所述子进程发送的每个应用服务器的应用部署结果。
进一步地,对新增的应用服务器进行应用部署,包括:
获取所述应用服务器的登录用户名和登录密码,根据所述登录用户名和登录密码登录所述应用服务器;
指示所述应用服务器安装所述应用的安装配置包。
进一步地,所述应用服务器的登录用户名根据以下优先级顺序的其中一种方式获取:
由命令行的输入信息获取所述应用服务器的登录用户名;
由预设文件中获取所述应用服务器的登录用户名;
获取本地设备的用户名作为所述应用服务器的登录用户名。
进一步地,所述应用服务器的登录密码根据以下优先级顺序的其中一种方式获取:
由命令行的输入信息获取所述应用服务器的登录密码;
由预设文件中获取所述应用服务器的登录密码;
由本地设备的缓存获取所述应用服务器的登录密码;
获取用户由本地设备输入的密码作为所述应用服务器的登录密码。
基于本申请的另一方面,还提供了一种应用部署设备,该设备包括:
配置获取装置,用于获取线上配置信息,其中所述线上配置信息包含根据应用的当前需求确定的待部署的应用服务器;
部署装置,用于若所述线上配置信息与本地配置信息不同,且所述线上配置信息中有新增的应用服务器,则对所述新增的应用服务器进行应用部署,并根据所述线上配置信息更新所述本地配置信息,其中所述本地配置信息包含当前已进行应用部署的应用服务器。
进一步地,所述部署装置,还用于若所述线上配置信息与本地配置信息不同,且所述线上配置信息中无新增的应用服务器,则根据所述线上配置信息更新所述本地配置信息。
进一步地,所述配置获取装置,用于向弹性伸缩服务平台发送查询请求,并接收所述弹性伸缩服务平台根据所述查询请求发送的线上配置信息,其中所述弹性伸缩平台根 据应用的需求确定当前待部署的应用服务器;或
接收弹性伸缩服务平台发送的包含所述线上配置信息的推送消息。
进一步地,所述部署装置在对所述新增的应用服务器进行应用部署时,用于将所述应用的安装配置包发送至与该应用的类型对应类型的应用服务器,并根据所述安装配置包对所述应用服务器进行应用部署。
进一步地,所述部署装置在对所述新增的应用服务器进行应用部署时,用于将所述应用的安装配置包发送至多个新增的应用服务器,并根据所述安装配置包同时对所述应用服务器进行应用部署。
进一步地,所述部署装置在对所述新增的应用服务器进行应用部署时,用于若所述应用可并发执行,则同时将所述应用的安装配置包发送至与该应用的类型对应类型的多个应用服务器,并根据所述安装配置包同时对所述应用服务器进行应用部署;以及若所述应用不可并发执行,则依次将所述应用的安装配置包发送至与该应用的类型对应类型的多个应用服务器,并根据所述安装配置包依次对所述应用服务器进行应用部署。
进一步地,所述部署装置在根据所述安装配置包同时对所述应用服务器进行应用部署时,用于创建针对每个应用服务器的子进程,控制所述子进程分别根据所述安装配置包对所述应用服务器进行应用部署;以及获取所述子进程发送的每个应用服务器的应用部署结果。
进一步地,所述部署装置在对所述新增的应用服务器进行应用部署时,用于获取所述应用服务器的登录用户名和登录密码,根据所述登录用户名和登录密码登录所述应用服务器;
指示所述应用服务器安装所述应用的安装配置包。
进一步地,所述应用服务器的登录用户名根据以下优先级顺序的其中一种方式获取:
由命令行的输入信息获取所述应用服务器的登录用户名;
由预设文件中获取所述应用服务器的登录用户名;
获取本地设备的用户名作为所述应用服务器的登录用户名。
进一步地,所述应用服务器的登录密码根据以下优先级顺序的其中一种方式获取:
由命令行的输入信息获取所述应用服务器的登录密码;
由预设文件中获取所述应用服务器的登录密码;
由本地设备的缓存获取所述应用服务器的登录密码;
获取用户由本地设备输入的密码作为所述应用服务器的登录密码。
与现有技术相比,本申请的技术方案在完成初始部署之后,能够动态获取根据应用的当前需求确定的待部署的应用服务器的线上配置信息,通过与本地配置信息比较,在发现有新增的应用服务器需要进行应用部署后,对这些新增的应用服务器进行应用部署,从而实现应用的弹性部署,提高部署方案的灵活性,同时通过线上配置信息更新原有的本地配置信息,对当前已进行应用部署的应用服务器进行记录,保证后续应用部署的准确性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为现有技术中应用部署方案的原理示意图;
图2为本申请实施例提供的一种应用部署方法的流程图;
图3为本申请实施例中进行应用部署时所涉及的相关设备的典型实现方式图;
图4为本申请实施例中应用部署设备进行应用部署时的处理流程图;
图5(a)为采用顺序执行的方式进行应用部署的原理示意图;
图5(b)为采用并发部署的方式进行应用部署的原理示意图;
图6为本申请实施例中将根据应用服务器类型进行应用部署的方式与并发部署的方式结合的处理流程图;
图7为本申请实施例中采用多线程的方式进行并发的应用部署的处理流程图;
图8(a)为本申请实施例中获取登录用户名的处理流程图;
图8(b)为本申请实施例中获取登录密码的处理流程图;
图9为本申请实施例提供的一种应用部署设备的结构示意图;
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介 质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
图2示出了本申请实施例提供的一种应用部署方法,该方法包括以下步骤:
步骤S201,获取线上配置信息,其中所述线上配置信息包含根据应用的当前需求确定的待部署的应用服务器;
步骤S202,若所述线上配置信息与本地配置信息不同,且所述线上配置信息中有新增的应用服务器,则对所述新增的应用服务器进行应用部署,并根据所述线上配置信息更新所述本地配置信息,其中所述本地配置信息包含当前已进行应用部署的应用服务器。
该方法尤其适用于已经完成应用的初始部署,在后续运维过程中进行动态弹性调整的场景。若需要对应用进行初始部署,可以采用传统的方式,由用户提供需要进行应用部署的应用服务器的信息以及对应的安装配置包,并由此完成对应用服务器的初始部署。对于初始部署时已进行应用部署的应用服务器,可以保存为本地配置信息。
在完成初始部署之后,能够动态获取根据应用的当前需求确定的待部署的应用服务器的线上配置信息,通过与本地配置信息比较,在发现有新增的应用服务器需要进行应用部署后,对这些新增的应用服务器进行应用部署,从而实现应用的弹性部署,提高部署方案的灵活性,同时通过线上配置信息更新原有的本地配置信息,对当前已进行应用部署的应用服务器进行记录,保证后续应用部署的准确性。
在此,本领域技术人员应当理解,上述应用部署方法的执行主体可以包括但不限于用户设备、网络设备或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备包括但不限于个人计算机、触控终端等实现;所述网络设备包括但不限于如网络主机、单个网络服务器、多个网络服务器集或基于云计算的计算机集合等实现。在此,云由基于云计算(Cloud Computing)的大量主机或网络服务器构成,其中,云计算是分布式计 算的一种,由一群松散耦合的计算机集组成的一个虚拟计算机。
图3示出了一种采用上述应用部署方法时所涉及的相关设备的典型实现方式,包括应用部署设备310、包含多个应用服务器的应用集群320、弹性伸缩服务平台330以及用户本地工作设备340。其中,应用部署设备310用于执行上述应用部署方法,对应用服务器进行应用部署;所述应用服务器用于在应用部署完成后,运行相关应用。用户本地工作设备340为用户与应用部署设备310进行交互的设备,用于用户提供安装配置包、初始部署时的相关信息等。弹性伸缩服务平台330能够调整云资源池中的计算资源,根据应用的当前需求将云资源池中的服务器分配给该应用使用,因此能够确定待部署的应用服务器,从而获取线上配置信息,并将获取的线上配置信息提供给应用部署设备310以进行弹性部署。在实际应用中,弹性伸缩服务平台330的具体实现可以由服务提供商决定,例如阿里云平台提供的ESS(Elastic Scaling Service,弹性伸缩服务)。
优选地,获取线上配置信息,具体包括:向弹性伸缩服务平台发送查询请求,并接收所述弹性伸缩服务平台根据所述查询请求发送的线上配置信息,其中所述弹性伸缩平台根据应用的需求确定当前待部署的应用服务器;或接收弹性伸缩服务平台发送的包含所述线上配置信息的推送消息。以本申请实施例中提供的方案为例,如果应用部署设备使用了推送服务,则可以接收弹性伸缩服务平台发送推送消息,该推送消息中包含了线上配置信息,通过解析推送消息,可以获取线上配置信息进行应用部署;若应用部署设备未使用推送服务,那么可以定时(例如每隔两秒)向弹性伸缩服务平台发送一次查询请求,进行线上配置信息的查询,通过弹性伸缩服务平台反馈,获取线上配置信息。根据不同的应用场景,可以采用不同的方式获取线上配置信息,以提高本方案的通用性。
以某一视频播放的应用为例,若当前部署有该应用的应用服务器为5台,该5台应用服务器的相关信息会保存在本地配置信息中,包括应用服务器的IP、应用服务器的数量等。每当有热门节目播放时,由于观看者较多服务器的负载会显著增加,容易造成服务器宕机,影响用户观看体验。因此需要在其它新的应用服务器上部署该应用以分担当前应用服务器的负载,例如一共需要7台应用服务器才可以满足当前的负载要求,此时会获取包含该7台应用服务器相关信息的线上配置信息。通过与本地配置信息比较,会对新增加的2台应用服务器进行应用部署,以满足应用的当前要求,同时将本地配置信息中的内容更新为所述7台应用服务器的相关内容。
此外,在前述场景中还可能存在以下情形,当热门节目播放完后,观看者的数量可能随之减少,此时仍然使用7台应用服务器会造成计算资源的浪费。因此可以根据此时 应用的需求,减少应用服务器的数量,提高计算资源的利用率。对于前述远程应用配置方法,在获取线上配置信息之后,若所述线上配置信息与本地配置信息不同,且所述线上配置信息中无新增的应用服务器,则根据所述线上配置信息更新所述本地配置信息。当所述线上配置信息与本地配置信息不同,且所述线上配置信息中无新增的应用服务器,即表示根据应用的当前需求确定的待部署的应用服务器的数量相较于当前已进行应用部署的应用服务器的数量是减少的,对于应用部署设备,仅需要根据所述线上配置信息更新所述本地配置信息即可。
在实际应用中,某一应用部署设备进行应用部署的具体处理步骤如图4所示,包括以下步骤:
步骤S401,获取应用的初始配置信息以及对应的安装配置包install.tgz,并由此完成对应用服务器的初始部署。对于初始部署时已进行应用部署的应用服务器的相关信息,可以保存为本地配置信息的文件topo.conf。
步骤S402,确定是否使用推送服务,若使用了推送服务,则执行步骤S403;若未使用推送服务器,则执行步骤404。
步骤S403,接收弹性伸缩服务平台推送消息,并由推送消息中获取线上配置信息,然后执行步骤S405。
步骤S404,向弹性伸缩服务平台发送查询请求,并根据反馈获取线上配置信息,然后执行步骤S405。
步骤S405,将所述线上配置信息与本地配置信息进行比较,若两者相同,则等待设定时间后,返回执行步骤S402;若两者不同,则执行步骤S406。
步骤S406,判断所述线上配置信息中是否有新增的应用服务器,若是,则执行步骤S407;若否,则执行步骤S408。
步骤S407,使用安装配置包install.tgz对所述新增的应用服务器进行应用部署,然后执行步骤S408。
步骤S408,根据所述线上配置信息更新保存所述本地配置信息的文件topo.conf,然后返回执行步骤S402。
作为本申请实施例的一种优选的实施方式,对新增的应用服务器进行应用部署,具体包括:将所述应用的安装配置包发送至与该应用的类型对应类型的应用服务器,并根据所述安装配置包对所述应用服务器进行应用部署。通过对应用服务器定义不同的类型,来划分不同的服务器集群,这样即可以在不同的服务器集群部署不同的应用,将同一类 应用整合至相应类型的应用服务器,便于服务器集群的管理。在本实施例中,使用roledefs和roles分别对应用服务器的集群以及应用服务器进行定义。具体格式为:
roledefs={'apphosts':[‘host1','host2','host3'],'webhosts':['host3','host4']}
$roles('apphosts')
@task1
run('/root/install_app.sh)
$roles('webhosts')
@task2
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'))。通过对应用服务器进行集群化管理,可以同时在不同类型的应用服务器上部署不同类型应用,这种实现方式更加符合云计算的复杂应用场景。
在实际应用中,若需要一次对数量较大的应用服务器进行应用部署时,如果采用顺序执行的部署方式,将非常消耗时间资源。例如,图1所示的方法中应用部署设备上传安装配置包到应用服务器1,并在应用服务器1进行应用部署,然后应用部署设备按照上一步骤的方式依次在其余的应用服务器2~N上进行应用部署,此时对N个应用服务器进行应用部署所使用的时间为T×N,其中T为对一个服务器进行应用部署所需要的时间。由于应用服务器之间的应用部署过程是相互独立的,因此对所有应用服务器进行并发的应用部署不会对整个应用部署过程带来负面影响,并且理论上一个应用在N个应用服务器进行并发部署所需要的部署时间仅为T,与顺序执行的部署方式相比,其能够节约(N-1)/N的时间,这将大大提高应用部署的效率。具体地,对新增的应用服务器进行应用部署,具体包括:将所述应用的安装配置包发送至多个新增的应用服务器,并根据所述安装配置包同时对所述应用服务器进行应用部署。
图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,部署效率明显提高。
作为一种更优选的实施方式,可以将前述根据应用服务器类型进行应用部署的方式与并发部署的方式结合,其逻辑处理流程如图6所示。在实际应用中,可以通过配置信息中的roles变量来确定是否设置了对应的类型,如果存在roles变量,则可以根据roles变量来确定对应类型的应用服务器,然后根据应用的配置信息中的parallel变量来确定该应用的部署是否可以并发进行。若所述roles变量为'apphosts',且所述应用可并发执行(即parallel变量使能),则同时将所述应用的安装配置包发送至与该应用的类型对应类型的多个应用服务器,并根据所述安装配置包同时对所述应用服务器进行应用部署,即同时将所述应用的安装配置包发送至与host1、host2和host3,并根据所述安装配置包同时对host1、host2和host3进行应用部署。若所述应用不可并发执行(即parallel变量不使能),则依次将所述应用的安装配置包发送至与该应用的类型对应类型的多个应用服务器,并根据所述安装配置包依次对所述应用服务器进行应用部署,即将所述应用的安装配置包发送至与host1,并根据所述安装配置包对host1进行应用部署之后,再将安装配置包发送至与host2并对host2进行应用部署,最后将装配置包发送至与host3并对host3进行应用部署。
对于不存在roles变量的情形,即表示该应用需要在未定义类型的应用服务器上进行部署,本实施例中,hosts变量定义的应用服务器即表示该种应用服务器。因此,若不存在roles变量,且所述应用可并发执行,则在同时将所述应用的安装配置包发送至与多个hosts变量定义的应用服务器中,并根据所述安装配置包依次对所述应用服务器进行应用部署。若不存在roles变量,且所述应用不可并发执行,则依次将所述应用的安装配置包发送至与多个hosts变量定义的应用服务器,并根据所述安装配置包依次对所述应用服务器进行应用部署。
此外,考虑到多线程安全问题,在对多个应用服务器进行并发部署时,可以采用多进程的方式。根据所述安装配置包同时对所述应用服务器进行应用部署,具体包括:创建针对每个应用服务器的子进程,控制所述子进程分别根据所述安装配置包对所述应用 服务器进行应用部署;获取所述子进程发送的每个应用服务器的应用部署结果。仍以在“apphosts”集群的三个应用服务器并发部署应用为例,其处理流程如图7所示,若在进行应用部署时,若应用部署设备中的主进程确定所述应用可并发执行,则获取线上配置信息中新增的应用服务器的信息并完成安装配置包的准备;然后针对每个应用服务器创建一个对应的子进程,例如针对“apphosts”集群的三个应用服务器host1、host2和host3则分别创建子进程1、子进程2和子进程3,每个子进程专门负责对应应用服务器的应用部署、管控等工作,不同的子进程之间相互不影响。创建完子进程后,主进程指示子进程1、子进程2和子进程3分别在host1、host2和host3进行应用部署,各个子进程在完成应用部署后,会将应用部署结果发送到主进程。主进程收集完所有子进程的应用部署结果时,对结果进行汇总后发送给用户本地工作设备,以完成向用户的信息反馈。
在实际应用中,对新增的应用服务器进行应用部署,具体包括:获取所述应用服务器的登录用户名和登录密码,根据所述登录用户名和登录密码登录所述应用服务器;指示所述应用服务器安装所述应用的安装配置包。在对应用服务器进行应用部署时,可以通过登录用户名和登录密码来登录到对应的应用服务器来取得在该应用服务器安装相关应用的安装配置包的权限,由此可以保证网络环境的安全性。对于集群规模较大的场景,其内包含的应用服务器数量较大,因此在部署过程中会有非常多的登录用户名和登录密码的输入需求,为了降低用户管理应用服务器的登录用户名和登录密码的难度,在本申请实施例中所述应用服务器的登录用户名根据以下优先级顺序的其中一种方式获取,具体可参考图8(a):
1、由命令行的输入信息获取所述应用服务器的登录用户名。由命令行输入的用户名为优先级最高的获取方式,当检测到用户由命令行输入登录用户名时,则直接由命令行提取登录用户名,并使用该登录用户名尝试登录应用服务器。
2、由预设文件中获取所述应用服务器的登录用户名。此种方式的优先级低于由命令行的输入信息获取所述应用服务器的登录用户名,其中所述预设文件可以是安装配置包中的配置描述文件,也可以是用户在初始配置过程中向应用部署设备上传的初始配置信息中的内容。所述应用服务器的登录用户名一般可以由预设文件中的相关变量保存,例如本实施例中,通过预设文件中的两个变量保存登录用户名,分别为user变量和hosts变量,其中hosts变量分别对不同的应用服务器定义不同的登录用户名,其形式可以是应用服务器的标识(例如IP地址)与应用服务器的登录用户名的对应关系表的形式,当存在hosts变量时,获取应用服务器的登录用户名,同时确定该应用服务器当前是否存在, 此时从hosts变量中提取应用服务器的登录用户名。而user变量则统一定义了一个登录用户名,当不存在hosts变量时或者hosts变量中的应用服务器当前不在线时,才由user变量中提取登录用户名,因此user变量的优先级低于hosts变量。
3、获取本地设备的用户名作为所述应用服务器的登录用户名。没有从命令行获取到登录用户名、并且不存在hosts变量以及user变量时,才会默认获取本地设备的用户名作为所述应用服务器的登录用户名。其中,所述本地设备可以是用户与应用部署设备进行交互的设备,例如在图3的典型实现方式中,本地设备即为用户本地工作设备340。
当应用部署设备通过前述任意一种方式获取到登录用户名之后,会继续获取登录密码。其中,所述应用服务器的登录密码根据以下优先级顺序的其中一种方式获取,具体可参考图8(b):
1、由命令行的输入信息获取所述应用服务器的登录密码。由命令行输入的密码为优先级最高的获取方式,当检测到用户由命令行输入登录密码时,则直接由命令行提取登录密码,并配合之前获取到的登录用户名尝试登录应用服务器。
2、由预设文件中获取所述应用服务器的登录密码。此种方式的优先级低于由命令行的输入信息获取所述应用服务器的登录密码,所述应用服务器的登录密码同样可以由预设文件中的相关变量保存,例如本实施例中,通过预设文件中的两个变量保存登录密码,分别为passwords变量和password变量,其中passwords变量分别对不同的应用服务器定义不同的登录密码,其形式可以是应用服务器的标识(例如IP地址)与应用服务器的登录密码的对应关系表的形式,当存在passwords变量时,获取应用服务器的登录密码,同时确定该应用服务器当前是否存在,此时从passwords变量中提取应用服务器的登录密码。而password变量则统一定义了一个登录密码,当不存在passwords变量时或者passwords变量中的应用服务器当前不在线时,才由password变量中提取登录密码,因此password变量的优先级低于passwords变量。
3、由本地设备的缓存获取所述应用服务器的登录密码。与获取登录用户名时类似,当没有从命令行获取到登录密码、并且不存在passwords变量以及password变量时,才会由本地设备的缓存中获取密码作为所述应用服务器的登录密码。
4、获取用户由本地设备输入的密码作为所述应用服务器的登录密码。当本地设备的缓存中也未保存任何密码时,作为优先级最低的方式,会需要用户由本地设备输入密码。
本实施例中登录用户名、登录密码都以命令行的输入作为最高的优先级,这符合用户的使用习惯。此外,一般用户都会将常用的登录用户名和登录密码记录在预设文件里, 只有在少量的特殊情况下才会通过本地设备进行手动输入。因此通过此种方式获取登录用户名和密码的方式最大限度的满足用户的使用需求,为应用部署的高效进行提供了便捷。
图9示出了本申请实施例提供的一种应用部署设备,该设备包括配置获取装置910和部署装置920。具体地,所述配置获取装置910用于获取线上配置信息,其中所述线上配置信息包含根据应用的当前需求确定的待部署的应用服务器;所述部署装置920用于若所述线上配置信息与本地配置信息不同,且所述线上配置信息中有新增的应用服务器,则对所述新增的应用服务器进行应用部署,并根据所述线上配置信息更新所述本地配置信息,其中所述本地配置信息包含当前已进行应用部署的应用服务器。
该设备尤其适用于已经完成应用的初始部署,在后续运维过程中进行动态弹性调整的场景。若需要对应用进行初始部署,可以采用传统的方式,配置获取装置910获取用户提供的需要进行应用部署的应用服务器的信息以及对应的安装配置包,并由部署装置920完成对所述应用服务器的初始部署。对于初始部署时已进行应用部署的应用服务器,可以保存为本地配置信息。
在完成初始部署之后,配置获取装置910能够动态获取根据应用的当前需求确定的待部署的应用服务器的线上配置信息,通过与本地配置信息比较,在发现有新增的应用服务器需要进行应用部署后,由部署装置920对这些新增的应用服务器进行应用部署,从而实现应用的弹性部署,提高部署方案的灵活性,同时通过线上配置信息更新原有的本地配置信息,对当前已进行应用部署的应用服务器进行记录,保证后续应用部署的准确性。
在此,本领域技术人员应当理解,上述应用部署设备可以包括但不限于用户设备、网络设备或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备包括但不限于个人计算机、触控终端等实现;所述网络设备包括但不限于如网络主机、单个网络服务器、多个网络服务器集或基于云计算的计算机集合等实现。在此,云由基于云计算(Cloud Computing)的大量主机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟计算机。
图3示出了一种采用上述应用部署设备进行应用部署时所涉及的相关设备的典型实现方式,包括应用部署设备310、包含多个应用服务器的应用集群320、弹性伸缩服务平台330以及用户本地工作设备340。其中,应用部署设备310用于根据配置信息对应用服务器进行应用部署;所述应用服务器用于在应用部署完成后,运行相关应用。用户本 地工作设备340为用户与应用部署设备310进行交互的设备,用于用户提供安装配置包、初始部署时的相关信息等。弹性伸缩服务平台330能够根据应用的当前需求确定待部署的应用服务器,从而获取线上配置信息,并将获取的线上配置信息提供给应用部署设备310以进行弹性部署。在实际应用中,弹性伸缩服务平台330的具体实现可以由服务提供商决定,例如阿里云平台提供的ESS(Elastic Scaling Service,弹性伸缩服务)。
优选地,所述配置获取装置910,具体用于向弹性伸缩服务平台发送查询请求,并接收所述弹性伸缩服务平台根据所述查询请求发送的线上配置信息,其中所述弹性伸缩平台根据应用的需求确定当前待部署的应用服务器;或接收弹性伸缩服务平台发送的包含所述线上配置信息的推送消息。以本申请实施例中提供的方案为例,如果应用部署设备使用了推送服务,则可以接收弹性伸缩服务平台发送推送消息,该推送消息中包含了线上配置信息,通过解析推送消息,可以获取线上配置信息进行应用部署;若应用部署设备未使用推送服务,那么可以定时(例如每隔两秒)向弹性伸缩服务平台发送一次查询请求,进行线上配置信息的查询,通过弹性伸缩服务平台反馈,获取线上配置信息。根据不同的应用场景,可以采用不同的方式获取线上配置信息,以提高本方案的通用性。
以某一视频播放的应用为例,若当前部署有该应用的应用服务器为5台,该5台应用服务器的相关信息会保存在本地配置信息中,包括应用服务器的IP、应用服务器的数量等。每当有热门节目播放时,由于观看者较多服务器的负载会显著增加,容易造成服务器宕机,影响用户观看体验。因此需要在其它新的应用服务器上部署该应用以分担当前应用服务器的负载,例如一共需要7台应用服务器才可以满足当前的负载要求,此时会获取包含该7台应用服务器相关信息的线上配置信息。通过与本地配置信息比较,会对新增加的2台应用服务器进行应用部署,以满足应用的当前要求,同时将本地配置信息中的内容更新为所述7台应用服务器的相关内容。
此外,在前述场景中还可能存在以下情形,当热门节目播放完后,观看者的数量可能随之减少,此时仍然使用7台应用服务器会造成计算资源的浪费。因此可以根据此时应用的需求,减少应用服务器的数量,提高计算资源的利用率。对于前述远程应用配置设备,在配置获取装置910获取线上配置信息之后,部署装置920还用于若所述线上配置信息与本地配置信息不同,且所述线上配置信息中无新增的应用服务器,则根据所述线上配置信息更新所述本地配置信息。当所述线上配置信息与本地配置信息不同,且所述线上配置信息中无新增的应用服务器,即表示根据应用的当前需求确定的待部署的应用服务器的数量相较于当前已进行应用部署的应用服务器的数量是减少的,对于应用部 署设备,仅需要根据所述线上配置信息更新所述本地配置信息即可。
在实际应用中,某一应用部署设备进行应用部署的具体处理步骤如图4所示,包括以下步骤:
步骤S401,配置获取装置获取应用的初始配置信息以及对应的安装配置包install.tgz,并由此完成对应用服务器的初始部署。对于初始部署时已进行应用部署的应用服务器的相关信息,可以保存为本地配置信息的文件topo.conf。
步骤S402,配置获取装置确定是否使用推送服务,若使用了推送服务,则执行步骤S403;若未使用推送服务器,则执行步骤404。
步骤S403,配置获取装置接收弹性伸缩服务平台推送消息,并由推送消息中获取线上配置信息,然后执行步骤S405。
步骤S404,配置获取装置向弹性伸缩服务平台发送查询请求,并根据反馈获取线上配置信息,然后执行步骤S405。
步骤S405,配置获取装置将所述线上配置信息与本地配置信息进行比较,若两者相同,则等待设定时间后,返回执行步骤S402;若两者不同,则执行步骤S406。
步骤S406,配置获取装置判断所述线上配置信息中是否有新增的应用服务器,若是,则执行步骤S407;若否,则执行步骤S408。
步骤S407,部署装置使用安装配置包install.tgz对所述新增的应用服务器进行应用部署,然后执行步骤S408。
步骤S408,配置获取装置根据所述线上配置信息更新保存所述本地配置信息的文件topo.conf,然后返回执行步骤S402。
作为本申请实施例的一种优选的实施方式,所述部署装置920在对所述新增的应用服务器进行应用部署时,具体用于将所述应用的安装配置包发送至与该应用的类型对应类型的应用服务器,并根据所述安装配置包对所述应用服务器进行应用部署。通过对应用服务器定义不同的类型,来划分不同的服务器集群,这样即可以在不同的服务器集群部署不同的应用,将同一类应用整合至相应类型的应用服务器,便于服务器集群的管理。在本实施例中,使用roledefs和roles分别对应用服务器的集群以及应用服务器进行定义。具体格式为:
roledefs={'apphosts':[‘host1','host2','host3'],'webhosts':['host3','host4']}
$roles('apphosts')
@task1
run('/root/install_app.sh)
$roles('webhosts')
@task2
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'))。通过对应用服务器进行集群化管理,可以同时在不同类型的应用服务器上部署不同类型应用,这种实现方式更加符合云计算的复杂应用场景。
在实际应用中,若需要一次对数量较大的应用服务器进行应用部署时,如果采用顺序执行的部署方式,将非常消耗时间资源。例如,图1所示的方案中应用部署设备上传安装配置包到应用服务器1,并在应用服务器1进行应用部署,然后应用部署设备按照上一步骤的方式依次在其余的应用服务器2~N上进行应用部署,此时对N个应用服务器进行应用部署所使用的时间为T×N,其中T为对一个服务器进行应用部署所需要的时间。由于应用服务器之间的应用部署过程是相互独立的,因此对所有应用服务器进行并发的应用部署不会对整个应用部署过程带来负面影响,并且理论上一个应用在N个应用服务器进行并发部署所需要的部署时间仅为T,与顺序执行的部署方式相比,其能够节约(N-1)/N的时间,这将大大提高应用部署的效率。具体地,所述部署装置920在对所述新增的应用服务器进行应用部署时用于将所述应用的安装配置包发送至多个新增的应用服务器,并根据所述安装配置包同时对所述应用服务器进行应用部署。
图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,部署效率 明显提高。
作为一种更优选的实施方式,可以将前述根据应用服务器类型进行应用部署的方式与并发部署的方式结合,其逻辑处理流程如图6所示。在实际应用中,可以通过配置信息中的roles变量来确定是否设置了对应的类型,如果存在roles变量,则可以根据roles变量来确定对应类型的应用服务器,然后根据应用的配置信息中的parallel变量来确定该应用的部署是否可以并发进行。所述部署装置920在对所述新增的应用服务器进行应用部署时,具体用于:若所述roles变量为'apphosts',且所述应用可并发执行(即parallel变量使能),则同时将所述应用的安装配置包发送至与该应用的类型对应类型的多个应用服务器,并根据所述安装配置包同时对所述应用服务器进行应用部署,即同时将所述应用的安装配置包发送至与host1、host2和host3,并根据所述安装配置包同时对host1、host2和host3进行应用部署;若所述应用不可并发执行(即parallel变量不使能),则依次将所述应用的安装配置包发送至与该应用的类型对应类型的多个应用服务器,并根据所述安装配置包依次对所述应用服务器进行应用部署,即将所述应用的安装配置包发送至与host1,并根据所述安装配置包对host1进行应用部署之后,再将安装配置包发送至与host2并对host2进行应用部署,最后将装配置包发送至与host3并对host3进行应用部署。
对于不存在roles变量的情形,即表示该应用需要在未定义类型的应用服务器上进行部署,本实施例中,hosts变量定义的应用服务器即表示该种应用服务器。因此,所述部署装置920在对所述新增的应用服务器进行应用部署时,还用于若不存在roles变量,且所述应用可并发执行,则在同时将所述应用的安装配置包发送至与多个hosts变量定义的应用服务器中,并根据所述安装配置包依次对所述应用服务器进行应用部署;若不存在roles变量,且所述应用不可并发执行,则依次将所述应用的安装配置包发送至与多个hosts变量定义的应用服务器,并根据所述安装配置包依次对所述应用服务器进行应用部署。
此外,考虑到多线程安全问题,在对多个应用服务器进行并发部署时,可以采用多进程的方式。所述部署装置920在根据所述安装配置包同时对所述应用服务器进行应用部署时,具体用于创建针对每个应用服务器的子进程,控制所述子进程分别根据所述安装配置包对所述应用服务器进行应用部署;获取所述子进程发送的每个应用服务器的应用部署结果。仍以在“apphosts”集群的三个应用服务器并发部署应用为例,其处理流程如图7所示,若在进行应用部署时,若应用部署设备中部署装置920的主进程确定所述 应用可并发执行,则获取线上配置信息中新增的应用服务器的信息并完成安装配置包的准备;然后针对每个应用服务器创建一个对应的子进程,例如针对“apphosts”集群的三个应用服务器host1、host2和host3则分别创建子进程1、子进程2和子进程3,每个子进程专门负责对应应用服务器的应用部署、管控等工作,不同的子进程之间相互不影响。创建完子进程后,主进程指示子进程1、子进程2和子进程3分别在host1、host2和host3进行应用部署,各个子进程在完成应用部署后,会将应用部署结果发送到主进程。主进程收集完所有子进程的应用部署结果时,对结果进行汇总后发送给用户本地工作设备,以完成向用户的信息反馈。
在实际应用中,所述部署装置在对所述新增的应用服务器进行应用部署时,具体用于获取所述应用服务器的登录用户名和登录密码,根据所述登录用户名和登录密码登录所述应用服务器;指示所述应用服务器安装所述应用的安装配置包。在对应用服务器进行应用部署时,可以通过登录用户名和登录密码来登录到对应的应用服务器来取得在该应用服务器安装相关应用的安装配置包的权限,由此可以保证网络环境的安全性。对于集群规模较大的场景,其内包含的应用服务器数量较大,因此在部署过程中会有非常多的登录用户名和登录密码的输入需求,为了降低用户管理应用服务器的登录用户名和登录密码的难度,在本申请实施例中所述应用服务器的登录用户名根据以下优先级顺序的其中一种方式获取:
1、由命令行的输入信息获取所述应用服务器的登录用户名。由命令行输入的用户名为优先级最高的获取方式,当检测到用户由命令行输入登录用户名时,则直接由命令行提取登录用户名,并使用该登录用户名尝试登录应用服务器。
2、由预设文件中获取所述应用服务器的登录用户名。此种方式的优先级低于由命令行的输入信息获取所述应用服务器的登录用户名,其中所述预设文件可以是安装配置包中的配置描述文件,也可以是用户在初始配置过程中向应用部署设备上传的初始配置信息中的内容。所述应用服务器的登录用户名一般可以由预设文件中的相关变量保存,例如本实施例中,通过预设文件中的两个变量保存登录用户名,分别为user变量和hosts变量,其中hosts变量分别对不同的应用服务器定义不同的登录用户名,其形式可以是应用服务器的标识(例如IP地址)与应用服务器的登录用户名的对应关系表的形式,当存在hosts变量时,获取应用服务器的登录用户名,同时确定该应用服务器当前是否存在,此时从hosts变量中提取应用服务器的登录用户名。而user变量则统一定义了一个登录用户名,当不存在hosts变量时或者hosts变量中的应用服务器当前不在线时,才由user 变量中提取登录用户名,因此user变量的优先级低于hosts变量。
3、获取本地设备的用户名作为所述应用服务器的登录用户名。没有从命令行获取到登录用户名、并且不存在hosts变量以及user变量时,才会默认获取本地设备的用户名作为所述应用服务器的登录用户名。其中,所述本地设备可以是用户与应用部署设备进行交互的设备,例如在图3的典型实现方式中,本地设备即为用户本地工作设备340。
当应用部署设备通过前述任意一种方式获取到登录用户名之后,会继续获取登录密码。其中,所述应用服务器的登录密码根据以下优先级顺序的其中一种方式获取:
1、由命令行的输入信息获取所述应用服务器的登录密码。由命令行输入的密码为优先级最高的获取方式,当检测到用户由命令行输入登录密码时,则直接由命令行提取登录密码,并配合之前获取到的登录用户名尝试登录应用服务器。
2、由预设文件中获取所述应用服务器的登录密码。此种方式的优先级低于由命令行的输入信息获取所述应用服务器的登录密码,所述应用服务器的登录密码同样可以由预设文件中的相关变量保存,例如本实施例中,通过预设文件中的两个变量保存登录密码,分别为passwords变量和password变量,其中passwords变量分别对不同的应用服务器定义不同的登录密码,其形式可以是应用服务器的标识(例如IP地址)与应用服务器的登录密码的对应关系表的形式,当存在passwords变量时,获取应用服务器的登录密码,同时确定该应用服务器当前是否存在,此时从passwords变量中提取应用服务器的登录密码。而password变量则统一定义了一个登录密码,当不存在passwords变量时或者passwords变量中的应用服务器当前不在线时,才由password变量中提取登录密码,因此password变量的优先级低于passwords变量。
3、由本地设备的缓存获取所述应用服务器的登录密码。与获取登录用户名时类似,当没有从命令行获取到登录密码、并且不存在passwords变量以及password变量时,才会由本地设备的缓存中获取密码作为所述应用服务器的登录密码。
4、获取用户由本地设备输入的密码作为所述应用服务器的登录密码。当本地设备的缓存中也未保存任何密码时,作为优先级最低的方式,会需要用户由本地设备输入密码。
本实施例中登录用户名、登录密码都以命令行的输入作为最高的优先级,这符合用户的使用习惯。此外,一般用户都会将常用的登录用户名和登录密码记录在预设文件里,只有在少量的特殊情况下才会通过本地设备进行手动输入。因此通过此种方式获取登录用户名和密码的方式最大限度的满足用户的使用需求,为应用部署的高效进行提供了便捷。
综上所述,本申请的技术方案在完成初始部署之后,能够动态获取根据应用的当前需求确定的待部署的应用服务器的线上配置信息,通过与本地配置信息比较,在发现有新增的应用服务器需要进行应用部署后,对这些新增的应用服务器进行应用部署,从而实现应用的弹性部署,提高部署方案的灵活性,同时通过线上配置信息更新原有的本地配置信息,对当前已进行应用部署的应用服务器进行记录,保证后续应用部署的准确性。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。

Claims (20)

  1. 一种应用部署方法,其中,该方法包括:
    获取线上配置信息,其中所述线上配置信息包含根据应用的当前需求确定的待部署的应用服务器;
    若所述线上配置信息与本地配置信息不同,且所述线上配置信息中有新增的应用服务器,则对所述新增的应用服务器进行应用部署,并根据所述线上配置信息更新所述本地配置信息,其中所述本地配置信息包含当前已进行应用部署的应用服务器。
  2. 根据权利要求1所述的方法,其中,获取线上配置信息之后,还包括:
    若所述线上配置信息与本地配置信息不同,且所述线上配置信息中无新增的应用服务器,则根据所述线上配置信息更新所述本地配置信息。
  3. 根据权利要求1或2所述的方法,其中,获取线上配置信息,包括:
    向弹性伸缩服务平台发送查询请求,并接收所述弹性伸缩服务平台根据所述查询请求发送的线上配置信息,其中所述弹性伸缩平台根据应用的需求确定当前待部署的应用服务器;或
    接收弹性伸缩服务平台发送的包含所述线上配置信息的推送消息。
  4. 根据权利要求1至3中任一项所述的方法,其中,对新增的应用服务器进行应用部署,包括:
    将所述应用的安装配置包发送至与该应用的类型对应类型的应用服务器,并根据所述安装配置包对所述应用服务器进行应用部署。
  5. 根据权利要求1至3中任一项所述的方法,其中,对新增的应用服务器进行应用部署,包括:
    将所述应用的安装配置包发送至多个新增的应用服务器,并根据所述安装配置包同时对所述应用服务器进行应用部署。
  6. 根据权利要求1至3中任一项所述的方法,其中,对新增的应用服务器进行应用部署,包括:
    若所述应用可并发执行,则同时将所述应用的安装配置包发送至与该应用的类型对应类型的多个应用服务器,并根据所述安装配置包同时对所述应用服务器进行应用部署;
    若所述应用不可并发执行,则依次将所述应用的安装配置包发送至与该应用的类型对应类型的多个应用服务器,并根据所述安装配置包依次对所述应用服务器进行应用部 署。
  7. 根据权利要求5或6所述的方法,其中,根据所述安装配置包同时对所述应用服务器进行应用部署,包括:
    创建针对每个应用服务器的子进程,控制所述子进程分别根据所述安装配置包对所述应用服务器进行应用部署;
    获取所述子进程发送的每个应用服务器的应用部署结果。
  8. 根据权利要求4至7任一项所述的方法,其中,对新增的应用服务器进行应用部署,包括:
    获取所述应用服务器的登录用户名和登录密码,根据所述登录用户名和登录密码登录所述应用服务器;
    指示所述应用服务器安装所述应用的安装配置包。
  9. 根据权利要求8所述的方法,其中,所述应用服务器的登录用户名根据以下优先级顺序的其中一种方式获取:
    由命令行的输入信息获取所述应用服务器的登录用户名;
    由预设文件中获取所述应用服务器的登录用户名;
    获取本地设备的用户名作为所述应用服务器的登录用户名。
  10. 根据权利要求8或9所述的方法,其中,所述应用服务器的登录密码根据以下优先级顺序的其中一种方式获取:
    由命令行的输入信息获取所述应用服务器的登录密码;
    由预设文件中获取所述应用服务器的登录密码;
    由本地设备的缓存获取所述应用服务器的登录密码;
    获取用户由本地设备输入的密码作为所述应用服务器的登录密码。
  11. 一种应用部署设备,其中,该设备包括:
    配置获取装置,用于获取线上配置信息,其中所述线上配置信息包含根据应用的当前需求确定的待部署的应用服务器;
    部署装置,用于若所述线上配置信息与本地配置信息不同,且所述线上配置信息中有新增的应用服务器,则对所述新增的应用服务器进行应用部署,并根据所述线上配置信息更新所述本地配置信息,其中所述本地配置信息包含当前已进行应用部署的应用服务器。
  12. 根据权利要求11所述的设备,其中,所述部署装置,还用于若所述线上配置信 息与本地配置信息不同,且所述线上配置信息中无新增的应用服务器,则根据所述线上配置信息更新所述本地配置信息。
  13. 根据权利要求11或12所述的设备,其中,所述配置获取装置,用于向弹性伸缩服务平台发送查询请求,并接收所述弹性伸缩服务平台根据所述查询请求发送的线上配置信息,其中所述弹性伸缩平台根据应用的需求确定当前待部署的应用服务器;或
    接收弹性伸缩服务平台发送的包含所述线上配置信息的推送消息。
  14. 根据权利要求11至13中任一项所述的设备,其中,所述部署装置在对所述新增的应用服务器进行应用部署时,用于将所述应用的安装配置包发送至与该应用的类型对应类型的应用服务器,并根据所述安装配置包对所述应用服务器进行应用部署。
  15. 根据权利要求11至13中任一项所述的设备,其中,所述部署装置在对所述新增的应用服务器进行应用部署时,用于将所述应用的安装配置包发送至多个新增的应用服务器,并根据所述安装配置包同时对所述应用服务器进行应用部署。
  16. 根据权利要求11至13中任一项所述的设备,其中,所述部署装置在对所述新增的应用服务器进行应用部署时,用于若所述应用可并发执行,则同时将所述应用的安装配置包发送至与该应用的类型对应类型的多个应用服务器,并根据所述安装配置包同时对所述应用服务器进行应用部署;以及若所述应用不可并发执行,则依次将所述应用的安装配置包发送至与该应用的类型对应类型的多个应用服务器,并根据所述安装配置包依次对所述应用服务器进行应用部署。
  17. 根据权利要求15或16所述的设备,其中,所述部署装置在根据所述安装配置包同时对所述应用服务器进行应用部署时,用于创建针对每个应用服务器的子进程,控制所述子进程分别根据所述安装配置包对所述应用服务器进行应用部署;以及获取所述子进程发送的每个应用服务器的应用部署结果。
  18. 根据权利要求14至17任一项所述的设备,其中,所述部署装置在对所述新增的应用服务器进行应用部署时,用于获取所述应用服务器的登录用户名和登录密码,根据所述登录用户名和登录密码登录所述应用服务器;
    指示所述应用服务器安装所述应用的安装配置包。
  19. 根据权利要求18所述的设备,其中,所述应用服务器的登录用户名根据以下优先级顺序的其中一种方式获取:
    由命令行的输入信息获取所述应用服务器的登录用户名;
    由预设文件中获取所述应用服务器的登录用户名;
    获取本地设备的用户名作为所述应用服务器的登录用户名。
  20. 根据权利要求18或19所述的设备,其中,所述应用服务器的登录密码根据以下优先级顺序的其中一种方式获取:
    由命令行的输入信息获取所述应用服务器的登录密码;
    由预设文件中获取所述应用服务器的登录密码;
    由本地设备的缓存获取所述应用服务器的登录密码;
    获取用户由本地设备输入的密码作为所述应用服务器的登录密码。
PCT/CN2016/097492 2015-09-09 2016-08-31 一种应用部署方法及设备 Ceased WO2017041649A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201510570723.X 2015-09-09
CN201510570723.XA CN106533713B (zh) 2015-09-09 2015-09-09 一种应用部署方法及设备

Publications (1)

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

Family

ID=58240584

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2016/097492 Ceased WO2017041649A1 (zh) 2015-09-09 2016-08-31 一种应用部署方法及设备

Country Status (2)

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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110650033A (zh) * 2018-06-27 2020-01-03 网宿科技股份有限公司 分布式应用配置管理的方法和分布式计算系统
CN113126881A (zh) * 2019-12-30 2021-07-16 阿里巴巴集团控股有限公司 系统配置方法、装置、设备、可读存储介质及分布式存储系统
CN116069376A (zh) * 2023-02-09 2023-05-05 平安壹钱包电子商务有限公司 一种应用服务器的管理方法、装置、设备及存储介质

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107239340A (zh) * 2017-04-27 2017-10-10 清华大学 一种数值计算结果可重现性保障系统
CN107908414A (zh) * 2017-11-22 2018-04-13 中国银行股份有限公司 一种应用服务器版本部署的方法、装置及系统
CN108521342B (zh) * 2018-03-26 2021-08-13 北京奇艺世纪科技有限公司 一种集群的管理方法及装置
CN111190719B (zh) * 2018-11-14 2024-06-18 北京京东尚科信息技术有限公司 优化集群资源分配的方法、装置、介质及电子设备
CN109766174B (zh) * 2018-12-24 2021-04-16 杭州数梦工场科技有限公司 资源调度方法、资源调度装置和计算机可读存储介质
CN109814918A (zh) * 2019-01-24 2019-05-28 深圳市多元世纪信息技术股份有限公司 软件部署方法和系统、计算机可读存储介质
CN112667350B (zh) * 2020-12-23 2024-09-27 广州三七互娱科技有限公司 配置调度方法、装置及系统
US11914980B2 (en) 2021-06-08 2024-02-27 Red Hat, Inc. Managing deployments of software programs to distributed computing environments
CN114020281B (zh) * 2021-11-08 2022-10-14 中电金信软件有限公司 一种数据库的部署方法、应用服务部署方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102377598A (zh) * 2010-08-26 2012-03-14 中国移动通信集团公司 一种互联网应用托管系统、设备和方法
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 (zh) * 2014-04-03 2014-07-30 华南理工大学 一种弹性云的体系结构
CN104618164A (zh) * 2015-02-12 2015-05-13 北京航空航天大学 云计算平台应用快速部署的管理方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102843419B (zh) * 2012-07-03 2015-08-12 广东电网公司信息中心 一种服务资源分配方法及系统
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 (zh) * 2010-08-26 2012-03-14 中国移动通信集团公司 一种互联网应用托管系统、设备和方法
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 (zh) * 2014-04-03 2014-07-30 华南理工大学 一种弹性云的体系结构
CN104618164A (zh) * 2015-02-12 2015-05-13 北京航空航天大学 云计算平台应用快速部署的管理方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110650033A (zh) * 2018-06-27 2020-01-03 网宿科技股份有限公司 分布式应用配置管理的方法和分布式计算系统
CN110650033B (zh) * 2018-06-27 2022-12-20 网宿科技股份有限公司 分布式应用配置管理的方法和分布式计算系统
CN113126881A (zh) * 2019-12-30 2021-07-16 阿里巴巴集团控股有限公司 系统配置方法、装置、设备、可读存储介质及分布式存储系统
CN113126881B (zh) * 2019-12-30 2024-05-31 阿里巴巴集团控股有限公司 系统配置方法、装置、设备、可读存储介质及分布式存储系统
CN116069376A (zh) * 2023-02-09 2023-05-05 平安壹钱包电子商务有限公司 一种应用服务器的管理方法、装置、设备及存储介质

Also Published As

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

Similar Documents

Publication Publication Date Title
WO2017041649A1 (zh) 一种应用部署方法及设备
US10931599B2 (en) Automated failure recovery of subsystems in a management system
US11210204B2 (en) Agentless distributed monitoring of microservices through a virtual switch
EP3276488B1 (en) Deployment system for multi-node applications
US9729612B2 (en) Distributed stream processing
US10033816B2 (en) Workflow service using state transfer
CN104765620A (zh) 一种程序模块部署的方法和系统
US20190258497A1 (en) Template-based software discovery and management in virtual desktop infrastructure (VDI) environments
US10728169B1 (en) Instance upgrade migration
CN103077034B (zh) 混合虚拟化平台java应用迁移方法与系统
US9710292B2 (en) Allowing management of a virtual machine by multiple cloud providers
US8849947B1 (en) IT discovery of virtualized environments by scanning VM files and images
US11210129B2 (en) Extended architecture as a service to integrate resource and transaction managers
CN114579250B (zh) 一种构建虚拟集群的方法、装置及存储介质
JP2025506018A (ja) リエントリサービスデプロイメント
Hao Edge computing on low availability devices with K3S in a smart home IoT system
CN110019059B (zh) 一种定时同步的方法和装置
CN103152380B (zh) 分布式的仿真通信框架和通信效能计算方法
CN113297158B (zh) 一种云安全产品管理方法、装置、设备及存储介质
CN112667393B (zh) 分布式任务计算调度框架搭建的方法、装置及计算机设备
WO2023250023A1 (en) Database as a service on cloud
US9501528B2 (en) Efficient response of common information model (CIM) server
US12596593B1 (en) User-configured multi-location service deployment and scaling
US12541730B1 (en) Adaptive throttling of calls to service endpoints from workflows by modifying workflow definitions
US11853783B1 (en) Identifying hosts for dynamically enabling specified features when resuming operation of a virtual compute instance

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