The analysis of PAAs under cloud computing
PAAS is an acronym for Platform-as-a-service, meaning platform as a service. The business model of providing a server platform as a service. Services provided through the network are referred to as SaaS (software as a service), while the corresponding server platform or development environment in the cloud computing era becomes the PAAs (Platform as a services) as the provider. The so-called PAAs actually refers to the software development platform (the information is defined as the Business Foundation platform) as a service, in the SaaS mode to submit to the user. Therefore, PAAs is also an application of the SaaS model. However, the advent of PAAs can accelerate the development of SaaS, especially to speed up the development of SaaS applications.
IaaS (Infrastructure as a service), which is infrastructure as services.
The relationship with the distributed system?
PAAs Architecture Model
Core implementation-Configuration management first
Core implementations-Service discovery and registration
Core implementation-Resource allocation and scheduling
Core implementations-outward and inward elasticity
Core implementations-Compromise of cache localization and distribution
Core implementation-streaming logs
Core implementations-compile-time dependencies and run-time dependencies
Core implementation-Multi-tenant resource isolation
The cloud is characterized by pooling of resources, even opening up his own unique application resource space for each user, and isolating it from other applications. We
Called the "multi-tenancy mechanism," such as K8s's namespace is the implementation of this isolation mechanism.
How to achieve?
1) for IAAS,VM is a very good means of resource isolation, but relatively heavy.
2) LXC achieves OS-level resource isolation and evolves into an isolation method similar to Docker. But it is still a local quarantine measure.
3) need to combine 1-2 of local level isolation, in the PAAs upper layer of the resource allocation mechanism for processing, resource allocation will be the various resources
Aggregating into an isolated group and hooking up or registering to the "name" of an app requires support for configuration and metadata management.
When you assign resources later, other apps will not get the current app's resources, and if the current resource crashes, it won't affect
Other applications.
4) networks can also be isolated, such as Vxlan, or classified as private networks: computing networks, storage networks, management networks, etc.
Core implementation-full link tracking and analysis system
Core implementation-Link optimization
The heartbeat of monitoring cluster State is combined with the cluster command to optimize the load of the communication line.
Core implementation-Deployment automation-system level
Core implementation-Deployment Automation-application level
1. Deployment involves orchestration, which is the state in which the service should deploy which container or node, and its relationship to other nodes
Strategy: Blind Date and anti-blind date sex.
2. Deployment also involves issues of versioning, configuration management, continuous publishing, and continuous integration to better run the last kilometer of production.
However, during the development of the application, it is recommended that the validation be deployed frequently in the test environment, and you can find the problem as soon as possible and walkthrough the Deployment Strategy and program
Core implementation-local governance that cannot be overlooked
1. As a whole, part of the performance maximization is one of the most important factors to maximize the overall efficiency, and the overall effectiveness depends on the integration of each component and the design and implementation of the collaborative approach. First of all, to achieve a reasonable local governance, it is necessary to achieve things.
2.RPC performance, server threads and IO processing, buried point transparency, local monitoring, local caching, local call scheduling (Node Manager), local upgrade policies, and so on are all points of concern.
3. Lifecycle Management: The Node Manager must implement lifecycle management of the service instance and tightly integrate with the cluster manager to try to recover and pull up the service process or notify the upper cluster Manager to reschedule when the node service fails or crashes.
Core implementation-monitoring closed loop
Transplant Legacy system
1. The above content illustrates the three core elements of PAAs: Development facility automation, operations automation, and runtime Environment automation.
2. But such a situation directly leads to the migration of legacy systems, because the old system is often very "heavy", initially locked in heavy armor, another more embarrassing is the release of armor must modify the application code, which involves business, functional refactoring! That's why many companies are struggling to implement PAAs!
3. Specific situations:
A: The system service uses the independent cipher Library to authorize the communication, it is difficult to make the automation method open the strategy, realizes the automatic expansion and the scaling.
B: The old application code relies on the API of the application server, such as the very old system using the EJB schema. Makes it very difficult to adapt to the new PAAs!
C: The reason for the PAAs is also that the old system facing the environment from the internal to the outside, but the architect design system is based on the outside of the idea, such as focus on the trading module (because of the current offline activities in the mainstream), because the business development, the requirements of the system is increasingly high, to adapt to the requirements of the Internet environment , such as the amount of inquiry on the internet is much larger than the amount of transactions, and the original idea is the opposite, is from the outside, which makes the application architecture is very different, then the need to adjust to divide and conquer the architecture, then it is necessary to adjust and restructure.
D:..........
So there is no good way to minimize these problems? Because trouble means risk and cost.
Porting legacy systems-solving ideas
1. The general direction is to automation, introspection, elasticity and other efforts.
2. We can decide how to adjust your system by answering the following questions:
A: Local applications do not rely on local storage to persist data (can be temporary, but to risk the system), the log into a stream aggregation into the distributed log system, if you do not want to use storage, use a similar hdfs to save, your system depends on local storage?
B: If the app uploads files, how should these files be stored? Please refer to question one.
C: Is the multi-instance configuration file in the cluster fully decoupled from the underlying OS, and does the configuration file depend on host name and IP? (Can be solved by environment variable)
D: Does the app have a task type that takes a long time to process? (try to solve the problem in an asynchronous way)
E: Is the instance in the cluster built in an independent security authority? (need to be removed)
F: Is the hardware load balancing device used in the cluster? (Removal required)
G: How many parts of your app need to be dependent on the state of the service that needs to be stateless?
H: If you split the business system, is it business or user perspective? (A business perspective is recommended because hotspots are not predictable at all)
I: The principle of Business division is: to identify basic core business capabilities, business core competencies, top business capabilities, etc.
Application Architecture: CQRS
What is micro-service?
With the support of a distributed, cloud-based infrastructure, a loosely-coupled, well-defined transaction that evolves from SOA
Can be developed in parallel, simple to develop, simple or automated, and collaborate to form an organic whole and provide introspective governance for external applications
, uninterrupted, high-performance service system.
The above mentioned divide-and-conquer strategy of the Internet, large-scale distributed service system in the robust service governance, elastic expansion, disaster tolerance
and development cycle capabilities to become manageable, open tracking, high performance, high vitality. The basis of service is the stability of infrastructure!
As long as there is a rock solid infrastructure, service is a very feasible decision!
Set of dolls-software architecture
1. In the introduction of the core implementation of the section, it is mentioned that the configuration must be first, that is, to ensure the internal and external environment consistency.
2.Docker Although the internal small environment can be guaranteed consistency, such as CoreOS can guarantee OS-level version consistency, but the PAAs
Because it is a distributed system, its constituent components also need consistency assurance, otherwise it is difficult to guarantee the quality of service and continuity.
The problem can be solved by using redundant service + rolling upgrade method.
Don't focus on Docker alone!
In recent years, it has been seen that Docker is almost pervasive in a variety of systems, but Docker solves the internal environmental consistency of the app, solves the problem of traditional PAAs resiliency and disaster tolerance, benchmark image distribution, and so on, but from an architectural perspective,
It does not itself solve most of the other problems in app production, so when you just focus on Docker, you lose the ability to PAAs, k8s, Swarm, Mesos and so on to solve some of the automation problems, but not complete, just a mini Paas.
The relationship between micro-service and Docker
MicroServices are not inherently different in Tomcat or Docker, and the industry prefers to use Docker as the design and runtime basis for microservices because it has a lot of good things, like environmental consistency, which simplifies configuration management and simplifies PAAs
Life cycle management difficulty and so on, but in essence, microservices and Docker do not have strong relationship, but Docker is a lot of convenience, more suitable, so the use of Docker system is not necessarily micro-services, micro-service building system is not necessarily docker composition.
The future of PAAs
The increase in workload resulting from economic development and business development will facilitate the adoption of PAAs.
? IaaS providers move to the top of the stack, covering PAAs IT, and a large number of middleware is being cloud-oriented.
? Public PAAs will win the SME market because it provides out-of-the-box infrastructure.
? Public services will cede the big business market to private PAAs.
? The open source PAAs platform will flourish and form a booster.
? The open source PAAs platform will be available through popular Linux distributions, further simplifying the management complexity of PAAs.
? The proprietary PAAs will begin to act as an open-source product, as well as a willingness to standardize the industry.
? PAAs compatibility? More like the PAAs conflict, because of the various manufacturers in order to win in the competition, will be more in their own particularity to work hard, resulting in the non-uniform standard situation, but in the market driving force, the standard will be unified sooner or later.
? PAAs becomes a factory for the production of Internet products, becoming standard and integrated into the daily infrastructure.
--------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------
Hope to your software project development, operation and maintenance management, system architecture and research and development management system, information security and so helpful. Other articles you might be interested in:
A few examples of cloud computing reference architectures
Introduction to micro-services and Docker
Internet Live Platform Architecture case One
High-availability Architecture case One
The technical structure of an internet company advertisement platform
Practice of a large-scale electric clouds platform
A few examples of cloud computing reference architectures
Mobile app app testing and quality management one
Comprehensive Software Testing
An introduction to the SSO Single sign-on solution for well-known ERP vendors
Introduction to software project Risk management
Introduction of enterprise project management
One of intelligent Enterprise and informatization
From the basic qualities of entrepreneurs
Method and practice of quality assurance of agile software
Build efficient research and development and automated operation and maintenance
Introduction to it operation and maintenance monitoring solution
Quality management of it continuous integration
Talent company environment and corporate culture
The Balanced scorecard of enterprise performance management system
Corporate culture, team culture and knowledge sharing
High-Performance Team building
Food chain Company It informatization solution One
If you want to know more software development, system it integration, Enterprise informatization, project management, business management and other information, please follow my subscription number:
Petter Liu
Source: http://www.cnblogs.com/wintersun/
This article is copyright to the author and the blog Park, Welcome to reprint, but without the consent of the author must retain this paragraph, and in the article page obvious location to the original link, otherwise reserves the right to pursue legal responsibility.
The article was also published in my Independent blog-petter Liu blog.
The analysis of PAAs under cloud computing