Agile Development 2.0

Preface

Agile development: Continuous Integration (CI), Continuous Delivery (CD) and Continuous Deployment are introduced to conduct agile development more efficiently, namely Agile Development 2.0.

Continuous integration and continuous delivery

Continuous integration and continuous delivery involve all aspects of software development. It is not only a decision on project architecture, but also needs to consider how to test, how to configure different environment variables and deal with exceptions. Therefore, we must consider the program architecture, automated testing, coupling relationships, packaging and deployment, and fault-tolerance mechanisms at the beginning. Through continuous integration and continuous delivery, the team's capabilities in all aspects of software development can be continuously improved.

DevOps

DevOps cannot only focus on development and operation and maintenance, but should also focus on products, development, testing, operation and maintenance, and even understand customer needs. Agile development 2.0 requires splitting large and comprehensive projects into small and relatively independent services. From the beginning, we should not only focus on automated deployment, but also pay attention to whether the entire project has an automated, rapidly scalable, and complete fault-tolerant mechanism. , as well as zero downtime and convenient monitoring and management.

Implementing agile development 2.0

In order to achieve agile development 2.0, we need to adopt three technical solutions: continuous deployment, microservices and containers.

  • Continuous deployment: It can continuously and automatically feedback the submission status of the application, reducing errors, etc.; at the same time, it provides quality assurance for product delivery and can be quickly put into the market.
  • Microservices: Make technology selection and system architecture more free; development is faster and cycle is shorter; services are easier to expand
  • Containers: Make it easier to deploy hundreds or thousands of microservices and make the system more stable

continuous integration

Commit code to the code base

Continuous integration tools can monitor the code warehouse. Once a user submits code, the new code will be checked out immediately and the Pipeline process will run.
Insert image description here

static code analysis

Static code analysis is to scan the code without running the code through lexical analysis, syntax analysis, control flow, data flow analysis and other technologies to verify whether the code meets the specifications, security, reliability, maintainability and other indicators. A code analysis technique.
Insert image description here

Unit testing before deployment

Pre-deployment testing is breathless, unlike static code analysis which is optional, it is a test that can be run directly without deploying the code, such as unit tests.
Pre-deployment unit testing varies depending on the system architecture, programming language, and framework used.
Insert image description here

Package and deploy to test environment

First, packaging is required. Different languages ​​and architectures have different packaging methods.
We can use containers to package the program and related dependencies in the container, and finally publish it to the test service for deployment and submit for QA testing.
Insert image description here

Pre-production environment testing

This stage mainly includes functional testing, integration testing and performance testing. If all tests in the pre-production environment pass, then the entire continuous integration process is completed, and then comes the continuous delivery and continuous deployment stages.

Continuous delivery and continuous deployment

The process of continuous delivery and the process of continuous integration are similar. The biggest difference lies in the recognition of the results after the entire process is completed: continuous integration only requires passing the final inspection, while continuous delivery requires that all expectations be perfectly realized and ready to be deployed and launched at any time.
Insert image description here
Continuous deployment is a more advanced stage than continuous delivery. It can fully automatically deploy every code that passes compilation and testing directly to the production environment. It is a complete automated process.
Insert image description here

Supongo que te gusta

Origin blog.csdn.net/yiyu20180729/article/details/129955101
Recomendado
Clasificación