"DevOps" chatting about the operation and maintenance development in my mind

"DevOps" chatting about the operation and maintenance development in my mind


Before I joined the operation and maintenance department of the last company, the operation and maintenance engineer I worked for was just repairing computers, pulling network cables, and cloth machines.

As everyone knows, the knowledge and expertise involved in operation and maintenance is very wide, and the quality of employees is also very high. The importance of operation and maintenance in large Internet companies is no less important than business development. And there are many categories:

  1. Desktop Operation and Maintenance Engineer
  2. Business Operation and Maintenance Engineer
  3. DBA engineer
  4. Configuration engineer
  5. Operation and maintenance engineer
  6. And other...

Originally I was going to write an article about operation and maintenance development in the eyes of the front-end, and it happened that the former team leader wrote two articles about his own six or seven years of development experience. His article couldn’t be more appropriate. The following is from its submission.

1. The value of O&M development

From the perspective of job responsibilities: the work to be done in operation and maintenance development is:

  • Help the operation and maintenance to automate the operation and maintenance work through development skills. To put it bluntly, it is "assistance", or the arm of operation and maintenance. It is necessary to provide platform queries for problems encountered in operation and maintenance, or abstract some common repetitive operations into tools to reduce manual intervention in operation and maintenance.

Operation and maintenance services accompany and support the entire life cycle of business development.

The DevOpsupgrade implementation services for the operation and maintenance means more software engineered to reduce human flesh operations, DevOpsstressed automation, pull to improve the efficiency and quality of the delivery team.

The traditional operation and maintenance needs to seek technological transformation. It is no longer enough to focus only on the technology at the operating system level. It is also necessary to increase skills in software infrastructure such as program code performance tuning, continuous delivery, and containerization. Continue to pay attention to the life cycle management of the entire business, application, and service.

Simply put, it is to abandon the traditional black-box operation and maintenance thinking in the past and enter the era of white-box operation and maintenance. We must go deeper into the code and business operations to make the entire online service run in a more high-quality and efficient state.

2. What is O&M development?

To build O&M automation or practice DevOps, the participation of O&M development engineers is indispensable, but how can we better play the role of O&M development?

I have worked with various types of operation and maintenance development in the role of operation and maintenance development manager. Some of the teams originally engaged in operation and maintenance development, and some were originally engaged in the development of other businesses (e-commerce, platform) to assist in operation and maintenance. Team members, as well as those who were originally engaged in business operation and maintenance and then transformed into operation and maintenance development.

After working with them for a period of time, the overall feeling is as follows:

Operation and maintenance development is first of all a programmer, not an operation and maintenance engineer.

A good operation and maintenance development requires "operation and maintenance understanding" + "development ability":

  • The technical requirements for "development capabilities" are lower than other business forms (such as games, e-commerce, search, etc.).
  • The difficulty of understanding the operation and maintenance business will be lower than that of e-commerce, games and other business forms, that is, the requirement for "operation and maintenance understanding" is not high.
  • High degree of control required for operation and maintenance related technology stack, such as Python/PHP/Go/Shell, Linux, Git, Nginx, Zabbix, Docker, K8Sand so on.

To sum up, the operation and maintenance development is a professional branch that is not too deep. The reason why the demand for operation and maintenance development is now heated is mainly due to the limited R&D capabilities of the senior operation and maintenance of the older generation, and this is There are historical reasons. Wait until the industry made DevOpstime, they tend to have focused on the senior category team management, capacity planning, tuning the architecture, the quality of operation and maintenance services, so basically is unlikely to draw out large chunks of time to re-learn the coding and development of automated systems.

Therefore, when we have a need for the construction of an automated system, we need more professional programmers to assist. However, the systems made by general non-full-time operation and maintenance programmers are often not good for operation and maintenance. At this time, some young operation and maintenance engineers have upgraded their R&D skills, transformed operation and maintenance development, and made good operation. The maintenance system was completed and won the praise of the operation and maintenance team. Everyone praised the "operation and maintenance development".

Therefore, everyone equates "good operation and maintenance system" with "operation and maintenance development", thinking that as long as we invite an operation and maintenance development, then a perfect operation and maintenance platform will be born automatically. This is a big one. Misunderstanding.

3. To create the "crippled DevOpssystem."

In fact "crippled DevOpssystem" really is equivalent to "understand the operation and maintenance" + "development capacity" is the capacity of these two can be separated, not necessarily to impose development engineers in the operation and maintenance of a person's body.

Similar to the development process of other business forms, the two roles of product manager and programmer are required to be separated, and companies will not say that they have to recruit programmers who can write code and demand.

Therefore, when operation and maintenance can meticulously document the requirements of operation and maintenance automation, and establish the design and architecture of the automation system, this is the best "operation and maintenance understanding." At this time, give this reliable, easy-to-use, and detailed requirements document to a programmer with strong "development ability", and finally you can get a "good operation and maintenance system".

Of course, most companies do not have a "product manager" specifically for operation and maintenance development, so if the operation and maintenance development wants to go to advanced development, it can also replace the operation and maintenance requirements and upgrade to the operation and maintenance product manager, from the perspective of programmers to solve engineering efficiency and quality of operation and maintenance services, I think this is similar Googleadvocated SREculture.

3.1 DevOpsPlatform front-end functions

Editor's supplementary description

The picture shows the DevOpsapplication deployment interface of FIG.

We cook figure in the group DevOpssystem, the face is:

  • No product, no design, and demand are also verbal descriptions of business operations and development.

The core function: application deployment interface. After referring to other similar products, it is found that it is not suitable for business scenarios. Either the functions are too scattered, or it is only process control. So in the front-end function, we did these:

  • Distinguish packages in different environments to achieve orderly management.
  • The status of the application can be started and stopped through the interface, and tasks such as viewing the configuration can be done.
  • JenkinsService operations can be completed through the interface, simplifying the work of configuration engineers.
  • Interface of daily outsourcing of business operation and maintenance

At this time, an excellent operation and maintenance development requires the following skills: product planning, product design, object-oriented, demand models, domain models, design models, design principles, design patterns, product tools, and documentation capabilities.

Therefore, when the operation and maintenance requirements are understood and analyzed sufficiently, and after the operation and maintenance development has acquired the "product manager" ability, the operation and maintenance development is a common development branch, which can be coded according to the requirements document.

This article is my own shallow understanding of operation and maintenance development and its professional development. In general, operation and maintenance development is still a relatively interesting and well-developed professional branch. Although occasionally I have to be a scapegoat, more efforts are welcome. Smart and talented students join the operation and maintenance development industry.

4. Excellent operation and maintenance development

I have been engaged in DevOps platform development related work for six or seven years. I have summarized my own experience and feel that an excellent operation and maintenance development engineer should have the following abilities and qualities.

1. Improve operation and maintenance awareness.

From bottom to top, from top to bottom work must be done well, the value and gold content of the upper operation and maintenance work can be recognized, and our work can improve the efficiency and liberate the operation and maintenance. Operation and maintenance awareness is very important. It’s not that you are very skilled, and you have learned a lot of technologies. It does not mean that you don’t need operation and maintenance awareness. In fact, leaders value operation and maintenance awareness, such as whether backups are made, and permissions are assigned. , Platform testing conditions, failure response time, etc. These are all awareness, not that you have learned a lot of technology and think you are a big cow. If the platform finds a failure, you have nothing to do with it. You think that simple problems can be handled as you like, and you don’t need to. Give feedback to other departments. Leaders don't look at your skills, but your awareness of operation and maintenance. If you have no awareness of operation and maintenance, no matter how good the technology is, it will only cause people in other departments to disagree with you.

2. Understand the business scenario

The DevOps platform ultimately serves colleagues in the operation and maintenance department and the development and testing department. Therefore, only when you are familiar with the operation and maintenance scenarios of each business can you better design functions and code development. When you are familiar with business scenarios, you can consider all aspects and develop the code. In order to meet various scenarios and applications.

3. Reject repeated mistakes

People will inevitably make mistakes. This is unavoidable. We should summarize the reasons for making mistakes and how to prevent similar situations from recurring based on our existing experience in making mistakes. We can even share some typical mistakes in the team and share the mistakes of one person. The experience gained is spread throughout the team.

4. Everything has a backup and can be rolled back

There are often complicated operations such as release, migration, and backup in the operation and maintenance work. Therefore, when developing the DevOPs platform, a comprehensive operation plan must be made and the possible rollbacks and backups of each step must be considered.

5. Simplify platform operations as much as possible

The purpose of the DevOps platform is to improve the efficiency of operation and maintenance, and to liberate the operation and maintenance. Therefore, when designing and developing, you should keep the operation simple and don't make things too complicated. You can click it in place, and try not to make people point five It takes six times to complete the operation.

6. Focus on optimizing user experience

DevOps development is an iterative process. Although we often say that we focus on functional development, user experience is equally important. Just imagine, even if you develop many features, if the experience is not friendly, users will lose the desire to use it again. Users refused and resisted using the platform. No matter how versatile they were, they failed. Eventually, the platform promotion failed. Therefore, in the process of research and development, we should thoroughly experience the products we have developed, and treat ourselves as users to experience platform operations. Try to optimize the user experience as much as possible. This is what an excellent operation and maintenance engineer must understand.

5. Summary

In the process of design and development, we often encounter complex and cumbersome scenarios. At this time, we can easily lose patience. We must always remind ourselves that we must strictly perform our work responsibilities, correct our work attitude, and do one thing. Either don't do it, do it well if you do it: when you want to give up, think about why you started.

Author Nuggets Article Collection

If you need to repost it to the official account, just call me to add the whitelist.

  • "True® Full Stack Road" Back-end guide for web front-end development
  • "Vue Practice" A Vue CLI plug-in in 5 minutes
  • "Vue practice" arm your front-end project
  • "Intermediate and advanced front-end interview" JavaScript handwritten code invincible cheats
  • ``Learn from the source code'' Vue question answers that interviewers don't know
  • "Learn from the source code" JS Sao operation in Vue source code
  • "Learn from the source code" thoroughly understand the Vue option Props
  • The correct posture of the "Vue practice" project to upgrade vue-cli3
  • Why can't you understand the JavaScript scope chain?
Reference: https://cloud.tencent.com/developer/article/1488440 "DevOps" chatting about the operation and maintenance development in my heart-Cloud + Community-Tencent Cloud