当前位置:网站首页>Several key tools for cloud native implementation

Several key tools for cloud native implementation

2022-06-24 03:29:00 Common_ youmen

1 brief introduction

Cloud native technology can help us deliver software products faster , At the same time reduce IT Operating costs . This article describes how to implement cloud native , And some cloud native projects that can be used .

In the past decade , There has been a huge growth in Cloud Computing . according to Gartner forecast ,2020 The global public cloud service market will grow in 17%, The total amount will reach 2664 Billion dollars , Far above 2019 Year of 2278 Billion dollars . Cloud computing has enabled some of the world's largest companies to reshape and dominate their industries . The products of these companies are based on cloud services , And use cloud native technology to be faster than competitors , More adaptable . Many enterprises adopt cloud native technology , And introduce the concept into its on-site deployment application .

Understanding and choosing the right cloud native technology can improve the development speed 、 Reducing development and maintenance tools and infrastructure is critical . This article describes cloud native technologies that are worth learning about , It also recommends cloud native tools that can be used .

1.1 What is Yunyuan ?

Cloud native is about speed and agility , It's about the advantages of the cloud , Address business challenges faster and reduce IT cost .CNCF Provides an official definition of :

Cloud native technology is good for organizations in the public cloud 、 In new dynamic environments such as private and hybrid clouds , Build and run scalable applications . Representative technologies of cloud Nativity include containers 、 Service Grid 、 Microservices 、 Immutable infrastructure and declarative API.

These technologies can build good fault tolerance 、 A loosely coupled system that is easy to manage and easy to observe . Combined with reliable automation means , Cloud native technology makes it easy for engineers to make frequent and predictable major changes to the system .

In short , The goal of cloud native is based on business needs , Deliver software products quickly to users or customers .

Cloud native technology has the following advantages :

  • Speed : Rapid development and deployment of cloud native applications , Shorten time to market . Many clouds use cloud native components , To easily host applications .
  • Scalability and availability : Handle 100 Cloud native applications for customers can be seamlessly extended to serve millions of customers . Resources can always adapt to the needs , Compared with traditional static extension resources , This undoubtedly saves money . Besides , Technologies such as automatic fail over and blue-green deployment have also been embedded in cloud native tools .
  • quality : Keep immutability in mind when developing cloud native applications (immutability) And decoupling , This improves application robustness and ease of maintenance , So as to improve the software quality . Because cloud native technology is open source , And by the CNCF Support , Therefore, the company can avoid supplier lock-in , And benefit from community maintenance and development .

2 How to realize cloud native

To migrate to the cloud native system , We need a structured approach like this :

  • The longitudinal : Choose a service that is not critical , Then turn it on , Move to cloud native technology .
  • The transverse : Focus on a single cloud native function , For example, continuous integration (CI) Or continuous delivery (CD), And deploy it in all existing services .

Choosing non mission critical systems reduces risk , At the same time, maximize the probability of successful migration .

3 Cloud native tools

Here is a list of cloud native tools , Companies that use a full range of tools usually have faster 、 Less resistance and lower development and maintenance costs ;

3.1 Microservices (Microservice)

Microservices divide product functions into units that can be deployed separately ;

for example , In traditional deployment , Usually there is only one website service to manage API Interact with customers . Using microservices , We can break down the site into multiple services , Such as checkout service and user service , And then develop separately 、 Deploy and extend these services .

Besides , Microservices are usually stateless , Use twelve factors to apply (twelve-factor application) Take advantage of the flexibility provided by cloud native tools .

Recommended technology : Node.js

Alternative technology : Kotlin,Golang

3.2 Continuous integration , Continuous deployment (CI/CD)

CI/CD It's the infrastructure component , It supports automatic test execution ( And optional deployment ), In response to version control events ( For example, pull requests and merge );

CI/CD To enable the company to carry out quality inspection , For example, unit testing 、 Static analysis or safety analysis .CI/CD It's the basic tool in the cloud native ecosystem , It can improve engineering efficiency and reduce errors .

Recommended technology : Gitlab CI/CD

Alternative technology : Github Actions

3.3 Containers

The core of the cloud is the cloud ecosystem , Speed and quality can be improved by simplifying the operation of developers ;

By linking the container with something like Docker Use them together , Teams can specify their system dependencies , At the same time, it provides a unified and universal execution layer . This layer enables the infrastructure team to operate on a single infrastructure , For example, container choreographer ( Such as Kubernetes). The team can store the container image in the container registry , Most of the time , The registry also provides vulnerability analysis and fine-grained access control .

Recommended technology : Docker

Alternative technology : Podmain,LXD

3.4 Container arrangement

Container choreography tools are used to start and manage a large number of containers and eliminate deployment strategies for a specific language or team ;

They allow the user to specify the container image 、 Mirror group and some configuration . The choreographer takes these specifications and transforms them into a running workload . Container choreography tools enable infrastructure teams to maintain a single infrastructure component , This component can perform any compliance with OCI Standard containers .

Recommended technology : kubernetes

Alternative technology : Google Cloud Run

3.5 Infrastructure is code (Infrastructure as Code)

Infrastructure as code is a strategy to put cloud configuration under version control ;

Companies usually manually manage cloud resources through the management panel , But manually configured tracking changes is very difficult . Infrastructure is code, which solves this problem by defining cloud resources as code and putting them under version control . Make changes to the infrastructure configuration in your code , And make changes through the company's deployment process , This can include peer review (peer review)、CI/CD. Version control provides an audit log , The log shows who changed the resource 、 What resources have been changed and when .

Recommended technology : Terraform

Alternative technology : Pulumi

3.6 Secret

Secret Management is critical to cloud native solutions , But it's often overlooked when it's small .

Secret It can be anything private , For example, password 、 Private key and API voucher .Secret It should be encrypted and stored in the configuration .

The mature solution is to issue temporary database credentials or rotation certificates , So that Secret Management is safer . Find the right one Secret Management solutions are critical for cloud native applications , Because containerized services can scale horizontally , And scheduling on many different machines .

Ignore Secret Managed organizations increase the risk of credential leakage .

Recommended technology :Vault

Alternative technology :Sealed Secrets

3.7 certificate

adopt TLS Secure communication is an essential best practice , This is particularly important in container based solutions , Because many different services may run on the same physical computer , If you don't encrypt , An attacker can gain access to the host network , Read all traffic between services . in addition , Manually updating certificates for cloud native deployment is not feasible , That's one reason automation solutions are needed ;

Recommended technology : cert-manager

Alternative technology : Google Escrow Certificate

3.8 API gateway

API Turn off is a reverse proxy , With a reverse agent that goes beyond the traditional ( for example Apache and Nginx) The function of ;

API Gateway support :

Such as gRPC,HTTP/2 and Websockets agreement ;

Dynamic configuration ;

mutual TLS;

route ;

Elastic primitives (Resiliency primitive), For example, speed limit and open circuit ;

Indicator visibility ;

Recommended technology : Kong

Alternative technology : Ambassador

3.9 journal

The journal is the foundation of observability .

The log is a place that the team is very familiar with and often visits , It's the key to observability . Logging is essential to understand what's going on in the system . Cloud native tools emphasize time series of metrics , Because they are more cost-effective than storing logs .

Recommended technology : EFK

Alternative technology : Loki

3.10 monitor

The monitoring system will store important events in time series . Monitoring data is aggregated , This means it doesn't store all the events , This makes the cloud native system need to consider the cost-effectiveness . in addition , Understanding the state of cloud native systems requires understanding the following issues :

How many operations are in progress ?

Results of operation ( success , Failure or status code ) What is it? ?

Operation How long does it take? ?

Important resources ( For example, queue depth or thread pool ) What's the count of ?

We can assign different dimensions to monitoring indicators , To learn more about individual computers , operating system , Version, etc ;

Recommended technology : Prometheus,Grafana

Alternative technology : Datadog

3.11 The alarm

Alarms make logs and metrics operational , System problems can be notified to the Administrator , And it can be paired with time series index . for example , When HTTP 500 When the status code increases or the request duration increases , The alarm function can inform the team of . Alerts are critical for cloud native systems , If there is no warning , We will not be informed of the incident , Then the company can't know that there's a problem ;

Recommended technology : Prometheus Alertmanager

Alternative technology : Grafana Alerts

3.12 track

Cloud native technology reduces the cost of starting and extending services , In this way, the team usually publishes more services than before the cloud . Tracking enables teams to monitor communication between services , And it can simply visualize the communication of the whole end-user and each stage of communication . When there is a performance problem , The team can see what service errors have occurred and how long each phase of the transaction took . Tracking is the next level of observation and debugging tool , Downtime can be significantly reduced by allowing the team to debug problems faster .

Recommended technology : Jaeger

Alternative technology : Zipkin

3.13 Service Grid

Service grid is like a powerful tool for cloud network management , They can provide dynamic routing , Dynamic load , Service discovery , Network strategy and resilience primitives , For example, circuit breaker , Retries and deadlines (deadline), Service grid is an extension of cloud native architecture in terms of load convergence ;

Recommended technology : istio

Alternative technology : Consul

author :Kentaro Wakayama translate :Bach

proofreading : Wenzai under the starry sky 、bot , source :K8sMeetup Community

原网站

版权声明
本文为[Common_ youmen]所创,转载请带上原文链接,感谢
https://yzsam.com/2021/10/20211003163811118v.html