When it comes to DevOps, I’m sure many of you are familiar with the term.

As a hot concept, DevOps has been popping up in articles in the tech community and the media in recent years, attracting a lot of attention from industry heavyhitters and a lot of onlookers.

So what is DevOps?

Some say it is a method, some say it is a tool, and some say it is an idea. What is more, it is a philosophy.

The more said, the more mysterious, feeling to seal god! Is DevOps really that big a deal? What exactly is it for? Why is it so popular in the industry?

In today’s post, I want to talk about DevOps.

The origin of the conversation

In the 1940s, the world’s first computer was born. Since its birth, it is inseparable from the Program driver. The person responsible for writing programs is called a Programmer.

With the continuous development of human science and technology, PC and Internet have come out, we have entered the era of national embrace information. More and more companies are using computers as office tools to boost productivity. And ordinary individual users are beginning to use computers as entertainment tools to improve their quality of life.

Computer programming, then, began to become a business. Programs, gradually evolving into “software,” have become one of the most profitable products.

As we know, a piece of software from scratch to final delivery probably includes the following phases: planning, coding, construction, testing, release, deployment, and maintenance.

At first, the program is relatively simple, the workload is not much, the programmer can complete all phases of the work.

With the development and expansion of the software industry, the scale of software is also gradually becoming huge. Software complexity keeps climbing. A person has been unable to hold, began to appear a fine division of labor.

The ranks of code farmers expanded and the types of work increased. In addition to software development engineers, software testing engineers, software operation and maintenance engineers.

Software developers spend weeks and months writing code, then hand it over to QA (quality assurance) teams for testing, and then hand the final release over to operations for deployment. All three phases: development, testing, deployment.

The early software delivery model adopted is known as the “Waterfall model”.

The waterfall model, in a nutshell, is to wait for all work to be done in one stage before moving on to the next.

As time goes on, users’ demands on the system increase, but at the same time, users give fewer and fewer cycles. In this case, we found that cumbersome and slow waterfall development has been out of place.

Agile development, which was first noticed around 2000, is a software development capability that can cope with rapidly changing requirements. In simple terms, it means turning big projects into small projects, turning big time points into small time points, and then like this:

Two words that often come up with DevOps are CI and CD. CI stands for Continuous Integration, while CD stands for multiple English words, Continuous Delivery or Continuous Deployment.

It is called “Continuous”, but in fact, it means “accelerate — repeatedly — accelerate — repeatedly…” Like this.

Let me draw a picture that might make sense to you:

Agile development greatly improves the productivity of development teams, making it possible to update versions faster.

A lot of people might think, “Isn’t it riskier to update faster?”

Well, that’s not the case.

Agile development helps identify problems faster, products are delivered faster to users, and teams can get user feedback faster to respond faster. Furthermore, the version changes in the form of DevOps sprints are smaller and less risky (see figure below). If something does go wrong, it will be relatively easy to fix.

Operation and maintenance engineers and development engineers have completely different thinking logic. The motto of the operations team is simply “stability trumps everything”. The core appeal of operation and maintenance is no problem.

When is it most likely to go wrong? Problems are most likely to arise when changes are made. Therefore, operation and maintenance are very resistant to “change”.

And that’s where our DevOps came in.

What exactly is DevOps

DevOps is a portmanteau of Development and Operations. It’s pronounced /de’v – – ps/, similar to “Divoups”.

The Wikipedia definition of DevOps looks like this:

DevOps is a collective term for a set of processes, methods, and systems that facilitate communication, collaboration, and integration among development, technical operations, and quality assurance (QA) departments.

This position is a little abstract, but not hard to understand. It’s not the name of a particular software, tool, or platform.

Break tools

For many people, DevOps means Dev+Ops, merging the two teams or putting operations under development.

Notice, that’s not true. This is the main reason DevOps has struggled to get off the ground over the years.

The first thing you need to do to get DevOps off the ground is change your mind, or brainwashing. It’s not just operations, it’s development. Employees need to wash, but leaders need to wash even more.

DevOps is not just a change in organizational structure, but a change in corporate culture and mindset. If you can’t change your mindset, even putting people together won’t spark.

In addition to brainwashing, it’s about reorganizing the norms and standards of the whole process according to DevOps thinking.

Under DevOps, operations personnel are involved in the development process at the beginning of the project to understand the system architecture and technical roadmap used by the developers, so as to formulate an appropriate operation and maintenance plan. Developers also participate in system deployment at the initial stage of o&M and provide optimization suggestions for system deployment.

The implementation of DevOps facilitates communication between development and operations personnel and enhances mutual understanding.

As thinking and processes change, software and platform support are essential to fully embrace DevOps.

There is so much software out there that supports DevOps. Limited by space, I will not introduce one. On the other hand, all the hype around DevOps right now is due to the software and platforms that are selling it.

Of these key elements, technology (tools and platforms) is the easiest to implement, process the second, and mindset the hardest.

In other words, DevOps tests not just a company’s technology, but its management and culture.

Here’s a chart that illustrates more clearly where DevOps is and how valuable it is:

The state of DevOps

The term DevOps originated from the first DevOpsDays conference held in Ghent, Belgium in 2009, and was shortened to DevOps for easier Twitter spread.

Currently, DevOps is in a phase of high growth. Especially among large enterprises, DevOps is gaining popularity.

According to the 2018 survey, 74% of respondents have adopted DevOps, compared to 66% the year before.

The larger the organization, the more DevOps it likes. Companies including Adobe, Amazon, Apple, Airbnb, Ebay, Etsy, Facebook, LinkedIn, Netflix, NASA, Starbucks, Walmart, Sony, and others are adopting DevOps.

Today, DevOps is almost synonymous with software engineering.

DevOps has grown rapidly, and so have the salaries of the professionals involved.

According to the survey, the average annual salary of DevOps engineers in the US is $130,000, and the average annual salary in China is between $400,000 and $500,000.

The surge in salaries has led to a boom in IT engineers’ learning and certification.

The most popular DevOps certifications are the EXIN DevOps Master and EXIN DevOps Professional. These certifications are expensive, but still attract a lot of people to sign up.

EXIN DevOps certification system

DevOps and virtualization, containers, and microservices

What’s the connection between them?

It’s really simple.

Obviously it’s more convenient to break it up.

The so-called “micro service” is to split (decouple) the original black box of a whole product, from a whole providing a variety of services, into multiple individuals providing different services. As shown below:

Monolithic Architecture → Microservices

Under the microservices architecture, different engineers can handle the modules they are responsible for, such as development, testing, deployment and iteration.

Virtualization, in fact, is a kind of agile cloud computing services. In terms of hardware, it “divides” a system into multiple systems, which are isolated from each other to facilitate microservices.

Containers are more thorough. Instead of being divided into different operating systems, they are divided into different “runtime environments” (Containers) on top of the operating systems, consuming fewer resources and deploying faster.

See? Virtualization and containers, in fact, provide a good premise for DevOps. Both the development and deployment environments can be better isolated, reducing the impact of each other.

This is one of the main reasons why DevOps didn’t catch on in 2009 and is gaining momentum now.

The conversation and communication

As a communications engineer, He talked about DevOps and communications.

When I first started DevOps, I thought, like many people, that IT was purely AN IT concept and had nothing to do with our communication.

Later, as I learned more about DevOps, I realized that the concept had a lot to do with our communication. In fact, I’ve had the same problems with DevOps since I started more than a decade ago.

Stability and reliability were (and still are) Paramount in the telecoms industry back then (in the mid-2000s). So, software versions in the telecom industry are very slow to update. For such traditional giants as Lucent and Ericsson, it usually takes half a year to produce an official version. This version has been heavily censored and carefully crafted, so it’s very stable.

With the rise of 3G, operators around the world began to upgrade their networks. Huawei and ZTE are making inroads into the global operator market, trying to take a bite out of the global giants.

Apart from price, what is huawei zte’s biggest trump card? It’s the speed of response.

At that time, carrier customers were demanding telecom equipment hardware and software very frequently. In places like India, customers are particularly difficult to deal with, with new demands every day.

At that time, the response speed of several overseas equipment manufacturers was very slow and they never easily agreed to accept the demand. Even if it is accepted, it will be answered six months or even a year later. The client just freaked out.

Huawei and ZTE, on the other hand, have pre-sales marketing staff who are “generous” to customers’ needs and basically do whatever they want. (At that time, the after-sales colleagues will scold the pre-sales colleagues, but think it over, if you don’t agree, there is no opportunity to enter the market.)

How often did Huawei and ZTE release their versions at that time? At best, it’s a three-day version. There are even teams of developers stationed in customer offices for long periods of time, making changes on the spot and submitting “hot patches”.

This was 2006, and DevOps didn’t even exist. On the R&D side, agile seems to have just been introduced. Without the support of theoretical framework and tool platform, the rapid iteration of version was realized solely by manpower. Of course, the costs and risks are high.

Not only are the developers very tired very hard, the project service (engineering service) engineers, that is, technical support engineers, operation and maintenance engineers in this paper, are suffering unbearably. You think, a few months before a second, now a few days to rise a second, can not be hard?

But it is such hard work, just snatch market share from the mouth of the traditional giant, and finally become bigger and stronger step by step.

Then came the concept of agile development, and now DevOps, with all the tools and platforms available for rapid iteration.

DevOps is both an opportunity and a challenge for operations in the communications industry.

As mentioned earlier, containers, virtualization. The NFV virtualization technology adopted by the 5G core network isolates the functions of nes, greatly reducing the operation risks and difficulties for core network engineers. This is a positive change. However, DevOps has greatly increased the capabilities of operations engineers…

Communication software is an important branch of IT software and is closely related to DevOps. Communications engineers are advised to learn more about DevOps, upgrade their knowledge base, and build their skills.

The last word

With the development of modern times, customers’ demands are changing rapidly, and the direction of the market is difficult to predict. As a company, the only way to survive is to become faster. As an employee, we must make ourselves take a longer view and be more tolerant.