This paper introduces some features of the public cloud computing environment, and then discusses the problems of how to automate deployment and horizontally scale (elastic calculation) of the application as a cloud user. Reading this article requires a certain knowledge of cloud computing, development operations and maintenance knowledge.
Advantages and characteristics of public cloud environment
The public cloud provides three services, basic services, application services, and operations services for enterprise users or individual users (collectively, the user).
Basic services, which saves users the cost of hardware such as server, network, storage, etc., and the operational costs associated with these hardware, enables users to use and manage their hardware resources through the public cloud service platform through the core technology of virtualization.
Application services, providing users with system-level solutions such as load balancing, intelligent DNS, CDN, etc., providing application-level solutions for applications such as file sharing, object storage, relational/non-relational databases, and more.
Operation and maintenance services, to provide users with security protection, monitoring alarm, virtual machine backup and other functions to ensure the confidentiality and security of user data.
According to the characteristics of these public clouds, it is very convenient and easy for users to deploy the application in public cloud, which can reduce hardware cost and operation cost, take advantage of various application services provided by cloud service provider, and block the specific details of the service to users ' users. Improved user experience and user satisfaction (not listed in detail).
What users want to do
The user wants the public cloud to provide services to the user or user. When users have a public cloud environment, the core of the problem to be addressed is how to maximize user experience and user satisfaction when minimizing costs.
Although the public cloud environment is fairly inexpensive compared to traditional computing and service models, when users reach a certain number of users, several cloud hosts are not enough to take on huge amounts of users, resulting in a sharp drop in user experience and user satisfaction, which requires a more rational software architecture and service delivery.
With regard to the system architecture, it is specified here that the hardware infrastructure is already determined by the chosen cloud computing environment and therefore is not analyzed for the time being.
Software architecture improvements include improving the availability and scalability of individual software or applications: the ability to choose the right model to host more services, but to consume fewer hardware and software resources, or to support a scale of scaling to serve more users.
Service delivery method, this is to say better deployment upgrade way, to users, product/service change upgrade becomes more seamless and delicate, for developers and operations personnel, more quickly and less effort development, deployment way.
Only the above both have the ability to do a good job and maintain a product.
The improvement of software architecture
Because it is an operational origin, only from the system architecture and operational aspects of the development of the software to provide some rationalization of the recommendations and requirements, nothing more than the above mentioned to improve the availability and scalability of individual software or applications themselves, which is the basis for the provision of services to users, but also the beginning of services.
Automation (deployment, upgrades, changes, etc.)
A set of products may be done jointly by multiple software or applications, which may be developed in different languages or tools, so the requirements for automated deployment may be higher, such as a set of automated deployment tools that may not meet the software and applications developed by different languages and development tools. The concept of virtual machine templates (mirroring) is presented for the automated cloud deployment of the operating system, and there is a natural concept of virtualization for applications, such as the recently Hot Docker Application Virtualization tool.
Introducing a summary of the previously summarized it architecture, "legacy patterns are physical hosts, operating systems, and business applications." When the technology of virtualization, clustering and high availability is mature, the traditional model has formed three kinds of evolution patterns. The first longitudinal development (layered decoupling), is typically the hierarchical technology of virtualization, the second lateral development (single-layer (individual) decoupling), typically stateless, stateless features that make scale-out and dynamic scaling easier, independent (non-dependent) and non-discriminatory (consistent) The third is hybrid development, both vertical and horizontal, such as the typical example of hardware using Cisco UCS in combination with VMware VSphere, and then combining an excellent software architecture to achieve a highly available business system. ”
In addition to layering, for example, the layered technology mentioned in virtualization should not forget the layered thinking of OSI and TCP. There is no doubt that the application layer is the top layer of the OSI and TCP, but what can be found above the application layer does not have a fixed standard and model to summarize. You can include enterprise managers, end users, developers, and ops people on top of your application. To get closer to the reality of the problem, consider the application layer as the basis for a variety of software and applications (such as the application layer for Software and application protocol), the software and applications can be taken to the application layer, and automated deployment to develop operations in the perspective of software and applications can be obtained.
Application virtualization can be said that the application layer of software and applications beyond a virtual layer, with the application of the virtual layer, all applications can be considered to be non-discriminatory to automated deployment, shielding the differences between software and applications, all software and applications are transparent to the deployment, This allows for automation of deployment, upgrades, and changes with a set of automated deployment tools that are simple to configure.
TODO: There should be a diagram here.
About Docker
There may be other application virtualization scenarios, but Docker can be thought of as providing tools for the most recent virtualization of software and applications.
Docker enables rapid deployment of multiple isolated applications in a single operating system, although these applications may need to hold different access ports.
Off-topic: if there is any way to implement the Docker container inside and the host host without a socket-like communication method, it may be more surprising or more unreasonable.
Tag: Differentiated automated deployment, it architecture summary, public cloud computing benefits and features, application Virtualization, Docker Automation deployment
--end--
This article is from "Communication, My Favorites" blog, please make sure to keep this source http://dgd2010.blog.51cto.com/1539422/1690176
Automated deployment and horizontal scaling of applications in public cloud environments