Introduction to the
DevOps= Development + Operations. DevOps breaks down barriers between Development and Operations, and promotes communication and collaboration between Development, Operations, and QA departments, so that products can be developed and deployed in a small-scale, rapid and iterative manner, and quickly respond to changes in customer needs. It emphasizes the integration of development operation and maintenance, strengthens communication and rapid feedback between teams, and achieves the purpose of fast product delivery and improved delivery quality.
DevOps is not a new toolset, but an idea, a culture, a set of best practices that transform traditional development operations. The general approach is to implement the idea of DevOps through tools and processes that automate CI/CD (Continuous integration, continuous deployment), pipelining the way traditional developers and testers release software. With the popularization of Docker and Kubernetes (k8S) and other technologies, container cloud platform infrastructure is becoming more and more perfect, accelerating the integration of development and operation and maintenance roles, making cloud native DevOps practice a trend in the future.
Emphasize organizational communication and collaboration
Continuous integration
CONTINUOUS INTEGRATION (CI) refers to the frequent (multiple times a day) consolidation of all developer work into the trunk by developers. These new commits need to be verified through compilation and automated test flows before they are finally merged into the main line, to ensure that all commits are of quality after merging into the main line and to provide early warning of possible problems. The core of continuous integration is to ensure that the new code integrates correctly with the original code.
Continuous integration process diagram
The benefits of continuous integration are:
• Easy to locate errors
• Easy to control the development process
• Easy to Code Review
• Easy to reduce unnecessary work
Continuous delivery
Continuous delivery means constantly releasing new features to users without affecting their use of the service, which is very, very hard to do. We now have a version every two weeks, and every time we go online, it will affect different users to different degrees.
It represents more of a software delivery capability. For example, please refer to the figure:
Continuous deployment
CONTINUOUS DEPLOYMENT refers to the frequent delivery of software functions by means of automated DEPLOYMENT. In contrast to continuous delivery and continuous integration, continuous deployment emphasizes the integration of new software functions through automated deployment. Continuous integration differs from continuous delivery in the automation of production. The entire process from developer submission to compilation, testing, and deployment requires no human intervention and is completely automated. This strategy speeds up code submission to feature live and ensures that new features are deployed to production and used as soon as possible.
Cloud native DevOps features
DevOps is a key function module in PaaS platform, which includes the following important capabilities: supporting code cloning, compiling code, running scripts, building release images, deploying YAML files and deploying Helm applications. Support rich pipeline Settings, such as resource quota, pipeline running number, push code and push image trigger pipeline running, providing users with end-to-end efficient pipeline capabilities in different environments; Provide out-of-the-box mirror warehouse centers; Provide pipeline cache function, you can freely configure the entire pipeline or each step of the running cache, in the code cloning, compiling code, building image and other steps can use the cache to greatly shorten the running time, improve the execution efficiency. The specific function list is as follows:
- Cache acceleration: developed the cache technology of containerized pipeline by ourselves, and sped up the pipeline 3-5 times on average through the cache reuse of code compilation and image construction;
- Fine-grained cache configuration: Any stage or step can control whether cache is enabled and the cache path;
- Support for temporary configuration: users can run temporary configuration without submitting, avoiding frequent submission of configuration files to pollute the code repository.
- Mirror warehouse out of the box;
- Provide complete logging function;
- Visual editing interface, flexible configuration pipeline;
- Support multiple code repository authorization: GitHub, GitLab, Bitbucket, etc.
- Multiple pipeline trigger methods: code warehouse trigger, mirror push trigger, etc.
- Network optimization to speed up the download of images or dependent packages;
- From the business decision based on Gate (Charter/DCP) business decision, to OBP based periodic review;
- In terms of service-oriented organization, support E2E full-function team, integrate development operation and maintenance, and fully authorize the team;
- Decoupled services from the architecture, support independent delivery of service packages; From the development and operation and maintenance process, strengthen the coordination between development and operation and maintenance, support shorter cycle, faster feedback;
- In terms of IT tool environment, reuse existing mature tools, introduce advanced open source and commercial software, and realize lightweight end-to-end DevOps tool chain;
- From the service process, support service independent delivery, automatic environment deployment