当前位置:网站首页>Cloud native architecture (04) -cncf

Cloud native architecture (04) -cncf

2022-06-23 05:28:00 Yanglinwei

01 introduction

Learning reference materials :《 Enterprise Cloud native architecture : technology 、 Service and practice )》

 Insert picture description here
Cloud native Computing Foundation (Cloud Native Computing Foundation, CNCF).

CNCF from Google On 2015 year 7 Launched in January , Affiliated to the Linux The foundation .

  • Its goal vision is “ Committed to making cloud native computing universal and sustainable , Maintain and integrate cloud native open source technologies , Build communities around a range of high-quality projects , Microservice architecture applications that support container choreography ”.
  • Its scope of responsibility is to promote the development of cloud native standards , Promote the development and evolution of ecosystems , Management project , Promote the development of cloud native communities .

02 CNCF Ecological blueprint

CNCF The cloud native related products involved at present 、 Technology and ecology are divided into 8 There are three main areas and directions , As follows .

2.1 Cloud infrastructure (cloud)

The cloud deployment location can be divided into Public cloud and Proprietary cloud ( Private cloud )

  • Public cloud : Refers to the deployment of cloud infrastructure on the Internet , Users can directly obtain cloud products and services provided by cloud manufacturers through Internet channels (IaaS、PaaS、SaaS). This greatly reduces the threshold for users to use cloud products , At the same time, it saves users' self construction IDC The initial one-time investment of the computer room , Open and use , Pay as you go .
  • Proprietary cloud ( Private cloud ): It means that the user is in his own IDC Computer room , Use cloud technology and products to build your own exclusive cloud platform environment . The proprietary cloud platform can use the cloud base provided by commercial cloud manufacturers , You can also use open source virtualization technology to build , Such as VMwareOpenStackZStackCloudStack etc. . The cost of building a proprietary cloud is high , But for the sake of data security and self-control , Some users will choose VPC .

2.2 The deployment environment (provisioning)

With physical machines and virtual machines , Before running the container service , We also need to prepare a standardized basic environment for containers , Such as : Automated deployment tools 、 Container mirroring tool 、 Security tools, etc , To support the operation and maintenance automation of infrastructure .

IaaS Layer provides the hardware network foundation , Environment deployment provides a software tool base , Both support the foundation of the vessel operation platform .

2.3 Runtime (runtime)

The runtime is the cloud native technology at the core of the container , Provide a virtualized and isolated operation support environment for container operation , Including virtualized computing resources 、 Virtualized storage resources 、 Virtualized network environment .

Cloud native computing Linux Container (LXC) Container is a kernel lightweight operating system layer virtualization technology , adopt Linux Of Namespace and Cgroup Two mechanisms to achieve resource isolation and restriction management , It provides a resource independent running environment for application software and its dependent components .2016 year 4 In June, the first open container standard was launched , Standards mainly include Runtime standards (runtime) And mirroring standards (image).

The introduction of standards helps bring stability to the growing market , So that enterprises can safely adopt container technology , The user is packing 、 After application deployment , You can freely choose different container runtime standards . meanwhile , Image packaging 、 establish 、 authentication 、 Deploy 、 The naming can also be carried out according to the unified standard .


Cloud native storage : The container fits the design concept of stateless service in microservices very well from the very beginning , So at the beginning, some people even got the impression that the container is only suitable for stateless services , But with the maturity of container technology and the change of user concept , The container has now fully entered the stateful service field . Because of the short life cycle of containers , So the state of the container ( Stored data ) Must be independent of the life cycle of the container , And that's why , The storage of containers becomes very important .


Cloud native network : Most cloud vendors provide users with virtual and proprietary cloud services (Virtual Private Cloud, VPC), It is convenient for users to build customizable virtual network solutions in cloud environment . The most important function of the network is to provide connectivity between different computing resources , With the development of virtualization and container technology , Traditional network solutions can no longer meet the rapid growth of cloud computing 、 Changing network requirements .

for example :Docker It will be automatically created on the host machine during installation 3 A network mode : host (host) Pattern 、 The bridge (bridge) Pattern 、 Containers (container) Pattern .


Arrange and manage (orchestration&management): When using containers in a production environment , Containers on a single host can no longer meet the requirements , Therefore, it is necessary to manage multi host container clusters , It also requires a tool to provide resource management 、 Container scheduling and service discovery , Ensure that the multi host container can work properly . so to speak , For cloud native systems , Container scheduling is the core .Kubernetes Is the world's most popular container orchestration platform and the first CNCF project , Help users build 、 Extend and manage applications and their dynamic lifecycles .


application layer (App definition and development): The container platform will eventually run the application , Of course, the main application is the business of each company , In addition, there are some general industrial applications , It can provide functions similar to the application market according to the demand .

Technologies and products provided by the application layer , Including basic products related to application development ( Such as a database 、 Message queue 、 cache 、 Stream computing, etc ), It also includes software process management related to application development ( Such as code base 、 Image libraries 、DevOps).


Platform services (platform): Platform service refers to a higher level of encapsulation based on container technology , For developers 、 Operation and maintenance personnel provide more friendly 、 Convenient 、 Container based application development capability , Get containers out of the box as an infrastructure service - Container as a service (Container as a Service, CaaS).

With Kubernetes Rapid development of , Many with Kubernetes Companies that manage container management platforms and applications came into being , Greatly reduce the user's use of Kubernetes Manage the threshold of the container . Container technology makes the concept of microservice hot , Then let Serverless The word appeared in front of the public . Since the container can shield the infrastructure , Let developers only care about the delivered applications ( Container mirror ), So can we go further , So that developers do not need to care about the delivered image , And only focus on the core logic of the business ? This is it. Serverless Ideas . The developer defines the business logic based on event triggering , Everything else is left to the platform , When the user makes a request or other events occur , The platform will automatically run the corresponding business logic code according to the previous configuration , So as to realize the real on-demand service . If containers are concerned with Applications , that Serverless What I care about is the function , This also gave birth to some new application development models , For example, function as a service development model (Functions as a Service, FaaS)、 Back end as a service development pattern (Backend as a Service, BaaS)、 Small program development mode, etc .


Monitoring analysis (observability&analysis): Monitor the operation health of the system , To ensure the stability and reliability of the business , The main content of operation and maintenance is . After the cloud based native application platform is established , We need to ensure that the entire platform can work properly , Ensure that the services running on it will not be unavailable due to platform errors , But also know the overall operation of the application , Give early warning of some possible mistakes in advance , Once an error occurs, it can provide appropriate information for debugging and repair , This is all monitoring (observability) And analysis (analysis) The work to be done .

Monitoring analysis includes operation monitoring ( Host monitoring 、 Container monitoring 、 Application monitoring )、 Distributed log ( Log collection 、 Real time flow calculation 、 Log analysis )、 Distributed tracking ( Full link tracking 、 Architecture awareness ) And so on . Monitoring and analysis is the top priority of container platform operation and maintenance , Cloud native construction reduces application deployment 、 upgrade 、 structure 、 The difficulty of the test , But sink the difficulty to the container platform , The original O & M tools and


03 CNCF The roadmap

3.1 Containerization

Containerization is the first step in cloud native , If the application is not containerized , You can't realize cloud native . A container is a standard software unit , It packages the code and all its dependencies , In this way, applications can move quickly from a computing environment 、 Run reliably to another computing environment .

As for the size and type of application , It doesn't matter .Docker Is the preferred platform for containerization , You can combine applications and dependencies of any size , Even some programs running on the simulator , It's all containerized .

Docker Container mirroring is a lightweight 、 Independent 、 Executable packages , Contains everything you need to run your application . as time goes on , You can also split applications , And write future functions as micro Services .

3.2 CI/CD

Set up CI/CD Environmental Science , So that any modification on the source code can be automatically compiled through the container 、 test , And deployed to the pre production environment , Even in the production environment , If there are any exceptions during deployment , You can easily and quickly roll back to the last stable version . The software development pattern starts from the original waterfall model , To the later agile development , And today's DevOps, This is what modern developers build Technical route of color products . With DevOps The rise of , There is CI/CD And new ways of continuous deployment , The traditional software development and delivery methods are rapidly becoming obsolete . Under the traditional development mode , Most companies release software every month 、 Every quarter or even every year , And in the DevOps Time , Once a week 、 It is normal to publish every day or even many times every day .

3.3 Application choreography

Container orchestration mainly manages the life cycle of containers , Especially in large-scale and complex production environment , Software teams use container orchestration to control and automate many tasks .

Kubernetes It is the most widely used tool in the field of application and arrangement in the market , There are other orchestration tools , Such as Docker swarm、Mesos etc. .Helm Charts Can be used to help application developers and publishers define 、 Install and upgrade Kubernetes Applications running on .

3.4 Monitoring and Analysis

In this step , Users need to choose monitoring for the platform 、 Logging and tracking tools .Kubernetes Provides detailed information about the resource usage of the application on the container cluster , It does not provide a solution for application operation monitoring , But we can integrate many existing cloud native products into Kubernetes In the cluster . for example , take Prometheus Used to monitor 、Fluentd For log 、Jaeger Used for tracing the whole application call chain . Through this information , We can evaluate the performance of the application , And eliminate bottlenecks , To improve overall performance .

原网站

版权声明
本文为[Yanglinwei]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/174/202206230332537862.html