(https://www.bilibili.com/video/BV1A7411M76m?from=search&seid=14855796811647434253)
From a development point of view, I will finish writing the code. The rest can be executed automatically.
Combination of conceptual tools and processes
It is mainly a solution for communication and cooperation between developers and testers.
Build, test, release, deploy, operation and maintenance monitoring.
Tool diagram
Others’ devops workflow is not necessarily suitable for you
Purpose of devops
Time and quality
Devops error case
Correct case
devops: traditional application delivery
devops: standard container delivery
classic container delivery process
Summary of devops concept
Why is there more and more attention to devops recently?
Mainly because of microservices and containers.
Let's talk about microservice characteristics first
Advantages of microservices
Microservices perfectly match Devops conceptually
Disadvantages of microservices
The difference between Docker and traditional virtualization lies in the loss of virtualization.
Understand docker in three minutes
How docker solves the shortcomings of microservices
Difficulties and problems of container delivery
How to solve the shortcomings of containers
The relationship between microservices, containers, and devops
complement each other
Reduce personnel involvement and improve delivery quality assurance
How to form a fast and high-quality delivery
How to quickly carry out quality application container migration
Division of the container delivery process
First understand the dockerfile in the container
The origin of dockerfile, theoretical basis
Look at the dockerfile syntax again
How to generate image from dockerfile
From the above layered structure, the process of optimizing the dockerfile is derived
Optimized
The first optimization merges multiple RUN commands into one RUN command. The
second optimization The
third optimization The
fourth optimization
Another optimization method: multi-stage construction
Dockerfile optimization summary
Orchestration template kubernetes
Look at kubernetes from design ideas
The most important abstraction of k8s, abstracting out some delivery essentials
What does each abstraction defined here do?
k8s yaml file example
k8s summary
Among them, kompose is used to solve the migration from swarm to k8s
Other k8s migration tools
Alibaba Cloud migration tool Derrick
3. What is CI\CD Build CI\CD from scratch
Commonly used jenkins architecture, master slave
Build jenkins system-install docker -ce
Second step
jenkins summary
Comparison of Alibaba Cloud's software CodePipeline and jenkins
Fourth, cloud-native container application delivery practices
1. How to get started using kubernetes,
use: minikube
https://minikube.sigs.k8s.io/docs/start/
or visit Alibaba Cloud's cloud kubernetes
Five, release mode
First understand the network model,
container network model one
Simple routing service in Swarm
Implementation of the network model in kubernetes (2) L3 Flat
Implementation of the network model in kubernetes (three)-LoadBalancer and NodePort
Network model (four)-ClusterIP
Network model (5) Ingress
service mesh
After the network model is over, let’s look at common publishing strategies.
Common publishing strategies
Blue-green release, advantage: zero downtime update, disadvantage: high resource consumption during release
The difference between blue and green releases of different nodes
Canary release, advantages: to achieve functional verification with minimal cost, disadvantages: relatively single-oriented scenario, high requirements for developers
The difference with gray release is canary release if there is no distinction between access layer traffic. If the traffic of node A must go to the newly released instance, and node B must not be able to access the new instance, it is a gray release.
Canary release example
Grayscale release, gradually long and smooth switching from one version to another
A/B Test is very similar to Grayscale release, but A/B Test uses online feedback from [different versions] to decide which version to prefer.
Make these releases through k8s
Release in batches, unlike gray release, there is no resource consumption problem of gray release. (Batch release is a strategy)
To release in batches, the nodes are divided into small batches, and then the first batch is released for quick verification. If the verification is ok, continue to release the second batch and the third batch. It can save resources.
If the above is implemented using k8s, it will be more complicated. Need to judge whether to apply or roll back. K8s cannot realize a process.
CRD may be another answer.
CRD
https://www.kubernetes.org.cn/tags/crd
CRD topological relationship diagram
Relevant information addresses (... The screenshots were released at the end of a long time)
Six, open source frameworks and container cloud services
Tool chain
Derrick 生成dockerfile,jenkins file
https://github.com/alibaba/derrick
kompose generates kubernetes files
Kubernetes + Compose
https://github.com/kubernetes/kompose
helm [kubernetes 的 package manager]
The basic architecture of helm
Introduction to microservices
No language restrictions.
Combine services like unix applications, with high cohesion and low coupling.
service mesh
lst
Sidecar mode (I don’t actually understand what this is)
7. Testing and tuning of containerized applications
It is difficult to have some standardized models for tuning. Tuning is basically to analyze the problem for the problem.
The following are some representative scenarios and problems for tuning.
c10k problem
Performance test method
After using the container, the performance will be very different from before. Under normal circumstances, there will be a 5% loss.
Surprising comparison of virtualization technology performance
Virtualization in the hyper mode will result in a loss of 20% in performance, while the loss of container technology will be within 5%.
Understanding the container kernel
Ten performance tuning tools
Pressure measurement tool
.
Alibaba Cloud University[https://www.bilibili.com/video/BV1A7411M76m?from=search&seid=14855796811647434253]