Background: on the 23-24 day of May, the Tencent “cloud + future” summit was held in Guangzhou. The leaders of government agencies at all levels in Guangdong, academic experts at home and abroad, industry big cafes and technical cattle were on the scene to discuss the innovation and development of cloud computing and digital industry. Tencent cloud PaaS product generalIn the “developer special of the cloud + future” summit of the Tencent, jou Zou has shared the theme of “the best practice of the new era operation and maintenance Tencent Hub”, and some ideas and ideas for the design of DevOps products.

The following content is arranged from the speech:

Because of the working relationship, I will deal with many enterprises and operation personnel in my daily work and cooperate with them in doing some work of containerization and DevOps. In the process, we found that there is still some doubt about the value of DevOps and how to achieve DevOps. So it’s simple todayIntroduce why we want to do DevOps and how to do DevOps.

From a technical point of view, with the development of business, more and more business scenes, more and more complex, our system architecture will become more and more huge, more and more developers will be, at the same time, the stability requirements of the system will be more and more high. So these scenarios have spawned changes in our technological architecture.It brings about the concept of micro service architecture design. But micro service architecture design concept can solve these problems, but micro services also bring a lot of problems. Micro services lead to more and more system modules, and the complexity of these modules will increase, and micro service will make our development speed.Increased, our developers will have an obvious appeal for the efficiency of our release. Therefore, there are contradictions between the operation and maintenance personnel on the quality of the system and the pursuit of the efficiency of the system by the developers. This is some of the problems we need to solve in DevOps, which has caused the birth of DevOps.

So DevOps is actually the sameWe need to ensure quality through DevOps while balancing the efficiency of development.，In essence, DevOps is actually a process and tooling process that solidify the process through tools to ensure the quality of delivery and development through the process, at the same time, reduce the malfunction caused by misoperation in manual operation, and improve the efficiency of the whole research and development. So based on this,How to achieve our DevOps is actually very clear, becauseDevOpsIt is a process specification and tool automation process.，So as DevOps, I think the key lies in the two step:

1、Carding our process clear，Some of the steps in our software development process, what are the steps we have, such as we have code submission, release testing, static scanning, and sort out the process of our research and development. We also need to sort out the relationship between our team, which includes development, testing, operation and maintenance.Some managers need to know which steps need to be audited, and which steps need to be notified. Then we need to progress second steps;

2、The process of automatization of the combing process is realized through tooling.。How to choose a suitable DevOps tool system and automate the process specification is the key point I share today to share with you the practice of our Tencent cloud in the DevOps tool system.

The whole Tencent cloud in DevOps actually launched a tool called Tencent Hub.Tencent HubIt is the first tool system that covers the whole system of DevOps.，It is mainly divided into three parts, from the code development stage to the code construction stage, until the code release stage. In the development phase of the code, we can provide TAPD development platform, we also launched a Tgait code warehouse, based on this build component, we are very convenient to take the entire DThe evOps process is strung together, and also provides a comprehensive warehouse in which we can store any code, a storage of any DevOps, and eventually we will work with some of the services in the running environment to support various releases and provide various kinds of inspection. thisIt is a system diagram of the whole Tencent cloud in Tencent hub as a whole.

In the CD link, we have a core component called Work Flow. We can simply understand that it is a factory assembly line. Through this assembly line, we can develop, test, publish, and automatically test the DevOps link, all of which are simply linked together.Because different companies have different R & D processes, and with the development of business, the process may be constantly changing, so when we design the Work Flow component, one of the core considerations is whether it can quickly adapt to a variety of process systems, and quickly adapt to the changes in the process..

Based on this, when we use Work Flow, we divide Work Flow into three pieces, one is Engine environment, one is plug-in layer, and one is Work Flow plug-in library, which is mainly management scheduling function. The real implementation of the task is in the following WoThe RK Flow plug-in implements this function.

In the Work Flow Engine layer we can see that it is also divided into multiple stages, and we split a complete phase of a DevOps into a number of different, these serial executions, and can be executed in parallel. We can define any DevOps process and in the execution process.We can also pause the stage and start the stage, and after completing it, we can also define the process as to whether it should go on, or whether it should be terminated, according to the feedback results. When we finished building the code, we sent it to the automated test system for testing, and found an automatic.The test runs hard, and at this time we can design a terminating link and then bring the system to the development and maintenance personnel, or the testers. At the same time, Work Flow Engine, at the same time, write sub code files, and import the complete process into Engine.This is some of our design and thinking in Engine.

At this level, we can do a scheduling method, you can see this picture, the first way of scheduling is.EngineYou can mobilize tasks through AP, and the Engine layer can execute a specified task, and actually define and run the plug-in in the way of container performance.，It’s also a relatively big innovation we made in Work Flow. Why do you say that? Because we found that it would have a lot of benefits to introduce the container into the DevOps, and first of all, there would be a variety of tasks in my DevOps process, if the task was passed through the container.Solidify, we can easily spread through the performance of the container, at this time you may not see the Engine related plug-in, but a container performance. Once the plug-in is loaded into the container, our company can according to everyone’s preferences and professionalism, according to its own one.I like to develop a container. This is our implementation mechanism in the Work Flow plug-in.

In addition, if the user wants to customize its own plug-in and complete some functions, it only needs to define simple input and output, the input value can be obtained from any previous process, the essential output parameters can be formulated, and the output parameters can be back back for use in the back surface process. The user can also be very simpleTo comply with this input and output specification, develop your own performance plug-in.

In addition, in addition to Work Flow, just mentioned Registry, we found that in Work Flow there are many intermediate products, such as I build a Zaar program, or publish some configuration files, where the configuration files are published, including releaseThe mechanism, the place where it exists or the place where the final performance exists, and so on, we find that all kinds of intermediate products are produced in the DevOps link, and these intermediate products are often stored in different places and are obtained by different protocols.

We also provide some common plug-in libraries for common language libraries and processes, such as the internal code inspection and construction, which can be obtained on this level. This is some of our design ideas in Work Flow.

Based on this, we have developed a general warehouse called Registry, which can be used for general storage. The use of this general storage can easily manage intermediate products and intermediate products in the DevOps.

RegistryAlso provides multi-layer management mechanisms, from the organization to the user team, to the individual, such a hierarchical management mechanism, through the means of authority to statistics, but also provide a variety of diaries, static scanning functions, so that users can more convenient use of these Registry functions. This is RegistryHere are some of the designs.

In addition, in fact, we also put some of the R & D practice within the Tencent to developers through service, so that developers can not only use Work Flow, use established plug-ins, but also use some of the better experience within the Tencent to support their DevOp better.S, such as our automated operation and maintenance, code trusteeship, automated testing, and a recent Android platform that we have launched, followed by a test platform developed on the basis of APP.

For more information, please click the link below to get: Zou Hui: new era operation and maintenance heavy device Tencent Hub best practices.Pdf

Question and answer How to look at the structure optimization of the spring transport ticket system?Related reading Zhang Hao: daily scheduling trillion times, micro service framework TSF large-scale application DevOpsThe past life of the present life How to use log to boost air travel to pay for intelligent operation and maintenance upgrade

This article has been authorized by the author to publish the Tencent cloud + community. The original link is https://cloud.tencent.com/developer/article/1139567? FromSource=waitui.

Welcome to Tencent cloud + community or pay attention to WeChat community (QcloudCommunity).