background
This issue is about Platforming DevOps — DevOps Practices in cloud Computing and Cloud Native Mode. At present, DevOps is becoming more and more popular. With the transformation of infrastructure and application framework, more businesses prefer cloud and C-terminal scenarios, which promotes the development of DevOps. In this salon, Yu Pengfei, senior architect of Tencent Cloud CODING DevOps, introduced how to promote the construction and practice of DevOps under the two modes of cloud computing and cloud native.
Evolution of enterprise IT architecture
Prior to 2007, the concept of DevOps was not developed in the enterprise and was mostly based on physical machines. 2012-2014 was the first cloud boom, as companies moved from traditional physical hardware to virtual machine architectures. Since then, the development of containers has driven the transformation of applications, microservices have been more and more mentioned, and the concept of DevOps has been more and more respected. So the second wave of upcloud is the migration of business from the bottom layer to the cloud. The third wave is cloud native, in which the entire IT infrastructure, whether from the hardware side, middleware and dependent database and other resources, can provide services on the cloud. Based on this model, more attention should be paid to the sorting of the business needs of the whole software development itself and the operation of the whole business. At this stage, there are new improvements in the development state, operation state and service scheduling mode.
DevOps has always focused on how best to maintain the application lifecycle. In the DevOps 1.0 era, the basic resources were standardized, and the application architecture was more single or service bus architecture, and the corresponding mode was still virtualization. However, over the course of business development, DevOps 2.0 service management should be more oriented, and the overall application architecture and infrastructure architecture will change accordingly. Let’s take a look at how DevOps has been promoted and implemented under these two different management modes.
DevOps in the cloud
What does the cloud bring to the business? What problems do we need to solve? The following summed up a few aspects of the current industry more concerned about the point. Firstly, due to the explosive growth of infrastructure, it is more and more difficult to manage and maintain the environment configuration, and the nodes that need to be released at the continuous deployment level are more and more complex. In the era of virtualization infrastructure, the service architecture becomes more complex, and the deployment success rate and system stability decrease accordingly. In addition, due to the convenience brought by underlying cloud resources, the flexibility of resources and applications should be ensured in case of traffic impact. Finally, as business requests to IT become more frequent, there is a need to respond more quickly to requests across the business.
Therefore, the construction of the conversation is around the corner, from requirements to the on-line operation in the whole life cycle of the need for comprehensive improvement, such as the need to better and more standard requirements management tools, need through automated means fast management corresponding environment, can be set up through the automated test the quality, finally to better treatment in the operational phase of the accident. At this stage, the focus is more on automation and how DevOps can enhance automation processes. On the basis of the automation effect, standardization and versioning are accompanied. At the same time of automation, the corresponding quality built-in and DevOps process measurement should be done well, because only after the process measurement is good, the effect of DevOps construction can be evaluated. Quality built-in also ensures that the quality of software in the DevOps construction process can be well controlled.
From these objectives, the core indicators include production efficiency, software development efficiency, product quality in production control, and corresponding cost savings. In the software development process, reliable and repeatable pipeline can help us produce IT software or corresponding services more quickly and efficiently.
CODING DevOps pipelining practice
The figure below shows the DevOps pipeline practice that CODING currently promotes for customers.
Based on CODING platform, from the beginning of the code to pull, based on the built-in code static scan module to ensure static checking, contain code specification, defects, such as repetition rate of different dimensions, in addition, the cloud build environment to ensure that all sorts of different building compilation, combined with the infrastructure management can be automated deployment to the corresponding test environment, Help test quality management in the whole assembly line process, so that the quality in the whole assembly line process has a better guarantee. Finally, a single artifact source ensures independent storage of artifacts. In the production phase, we focused more on how to do grayscale and A/B Test deployment patterns based on business operations processes.
R&d specification
When building an assembly line, there are a number of r&d specifications that need to be followed.
These specifications need to be included in the process of pipelining. Pipelining is not just a packaging tool, it is not just a process of building code into artifacts, it is a process of standardizing the entire development process on the pipelining.
Knowing these norms, how should we actually land them? Building DevOps is often fraught with painful problems. For example, for a large number of existing systems in the financial industry, research and development management mode is not the same, too many norms how to manage? How are old and new systems and businesses compatible? How do you keep your team’s enthusiasm and discipline running as time, process urgency, and business pressure increase? Norms need corresponding personnel to support, the work scene is often quite complex, how to do a good job of standardization of norms? Based on previous experience, CODING developed a r&d standard product TCMS to address these pain points, defining the R&D management process corresponding to different R&D teams, so as to constrain the corresponding requirements, codes and pipeline management, and to make standardized constraints to improve the collaboration efficiency of the whole team.
R&d management has several components. Firstly, define the r&d workflow, which branches the code can pull out, which corresponding merge strategies are allowed, and each merge must have corresponding specifications and reasons; Second, different merging rules means the execution of different lines, at the time of combined development branch, developers made a local submission may only need development pipeline operation, only need to code quality, and do some constraints can be unit tests, when it comes to release branch or merge, MR means function confluence at this time, The flow line is associated based on the confluence rules, and the corresponding business rules of the confluence are constrained in the process of the flow line. Third, automated tools assist branch management. If you define a branch that can only be pulled out for a week and must be merged in within a week, you will also make some constraints. Fourth, the corresponding branches and requirements management associated, branches can be very clear when merging from requirements management to code development, from code development to the whole business merger, the whole life cycle management is controllable and easy to refer to.
The following figure shows the standardization pipeline of CODING:
Changes brought about by cloud native
In terms of the clients that CODING currently serves, one is mobile terminal business. Currently, more and more enterprises have attached importance to cloud native, and the development speed of mobile terminal can be better guaranteed based on cloud. The other is the financial industry, and some marketing services are more suitable for cloud native scenarios. Whether it is marketing or APP, the core challenge is that the business will be greatly restricted when there are too many C-end users, such as collecting more user data and getting feedback on users’ demands more quickly. This effect cannot be achieved only through pipeline construction, which can only help us realize the efficiency from code to construction to deployment more quickly. However, how to improve business value based on deployed applications later involves the process of value delivery. In current DevOps 2.0, operational and business analysis processes are integrated into the DevOps architecture to deliver value accordingly.
So how do you deliver value? The first step of CODING will be automation, and the second step will be agile. In terms of why agile has been prioritization over DevOps and automation, CODING has found that agile has not taken off as well as expected in China, particularly in large organizations and financial enterprises. Automation equipment that fails to do so is not sufficient to support too short and rapid iterations. Therefore, CODING firstly establishes an automated application delivery system through a reliable and repeatable pipeline to help codes go online faster. Then based on agile thinking and practice to do business requirements split and management, through iteration to do incremental development. In addition, with the increasingly high requirements for iteration, CODING is released every day, and agile is no longer enough to support the growth of business demand. Therefore, CODING team is more consistent with the Internet model to carry out micro-service transformation. After the change of application architecture, the application is smaller and finer, so that iteration can be realized faster. Finally, the process can be incorporated into the corresponding DevOps system once the business goes live.
The following figure shows the organizational structure transformation of CODING under the value delivery system:
In the value delivery system, CODING is classified from four aspects: organization, process, energy efficiency and tools. Assess the team’s DevOps efficiency based on the DevOps metrics and how to improve based on those metrics.
By building DevOps, organizations can reduce resource utilization and cost savings through containerized build and development environment management. CODING provides a pool of resources to build so that you don’t need to manage your own servers while developing. In addition, continuous delivery can be achieved through the construction of CODING pipeline. Coding-based implementation also helps build a measurement system that is consistent with DevOps culture; Standardized product management can manage product templates, flow and progression processes; Finally, constraints based on r&d specifications can make DevOps easier for the entire team to follow and improve development standardization. That’s CODING’s vision — to make development easier.
Q & A
Q: DevOps will inevitably face the problem of team maturity, including team technical level, agile awareness and ability. How to ensure that standardized products can be more flexibly adapted to each team? A: From A CODING perspective, there are two distinct roles for A specification, the maker of the specification and the person who uses the specification. Only people with a deep understanding of the business can create specifications. For less experienced students, just use the product based on the current specifications.
Q: In a small company, how do you balance cost control with DevOps landing? A: DevOps is cost-cutting in A way. CODING can provide virtual space resource pools for better utilization of development resources. The push for DevOps agility is also aimed at ensuring a more efficient collaborative approach to work. With the control of application quality, quality management can be carried out in the assembly line process, which can make the link of problem discovery more advanced and repair problems with less cost.
Click to watch the video and download the PPT