In-Depth Analysis of Devops Series--Introduction

Source: Internet
Author: User
Keywords attributes of devops devops simple definition devops automation meaning
I have read a lot of articles about DevOps recently, some of them are very interesting, and I have different opinions on Devops. Today, where efficiency and quality are increasingly important, Devops has become a hot topic, because there are many opinions about Devops in the industry, and Devops is still a relatively abstract concept system. So I want to make a series and do a detailed analysis of the entire DevOps system.

This article will lead you into the world of Devops together from the simplest theoretical basis of Devops.

Who should care about Devops: If your work is related to building software systems, and your organization intends to increase product quality and shorten the time to market for new features, then you should pay attention to Devops.

1. What is Devops
DevOps, literally Develop+Operation, and their inextricable connections.

At present, there are 4 concepts in the mainstream of the definition of Devops:

1. DevOps is a role: When Devops becomes a mainstream, many people will tend to find people who are "Devops" and hope to improve their organization's Devops ability, so they set up something called "Devops Engineer" Positions and roles are mainly as follows, but many are not a perfect definition:

• Ops as Dev (Operation Engineer who can develop skills): Ignore the professionalism and difference of development and operation and maintenance

• Dev as Ops (development engineer with operational skills): (same as above)

• Infrastructure Development Engineer: Infrastructure Developer (Infrastructure Developer) or Cloud Computing Engineer (CloudEngineer)

• Full-stack engineer: DevOps is a team attribute, not a one-person attribute. It cannot guarantee that the entire organization is full-stack engineer and can handle everything.

2. DevOps is a set of technologies/practices: when we mention Devops, we cannot avoid mentioning the use of tools, Jenkins, GitHub, Sonar... etc. Of course, good tool selection and organizational structure can promote engineers Solve problems in a more efficient and elegant way. However, just a simple combination of tools may be counterproductive. If you can't have an intuitive understanding, you can imagine "killing you 3000" in the Xingchi movie next week. Here are some topics of high frequency search of Devops:

•   High-frequency deployment: DevOps is by no means sacrificing software quality and business value, or even security measures, to increase deployment frequency. In other words, DevOps is not a balance and compromise on quality, it is a global improvement. The overall improvement means that the relevant indicators measured by value as the highest principle cannot be reduced.

• Continuous delivery: One of the core practices of DevOps, because if you don’t practice continuous delivery. Then it cannot be called DevOps at all.

Cloud computing/virtualization technology: The common cloud high-availability architecture design and its natural IaaS/PaaS/SaaS layer service advantages provide Devops with strong support.

• Infrastructure as code: In addition to tools, infrastructure as code is also a communication medium between Dev and Ops, which enables developers and operations personnel to understand each other. Therefore, infrastructure as code is undoubtedly one of the core practices of DevOps.

Docker   Docker: It solves the problems of infrastructure and code and virtualization in practice more easily, further enhances the automation capability to improve efficiency, and is very friendly to developers and operators.

• Automated operation and maintenance: Although an important feature in DevOps is "automation", having automated operation and maintenance does not mean that you are practicing DevOps. It is likely that you have only improved the efficiency of the operation and maintenance department, but not from the overall perspective. From the perspective of improving efficiency and end-to-end value flow between development and operation and maintenance. Therefore, only automated operation and maintenance is not enough to be called DevOps.

3. DevOps is a way of working: it is closer to the definition of DevOps goals, but one-sided understanding and mechanical imitation will bring unnecessary waste or loss of resources to the organization. DevOps works in the following four common ways understanding:

• Use the Dev method to do Ops: Develop dominates, Operation is still a tasteless position

• Changed name of the Ops team: Operation dominates, and all problems are thrown to the operation and maintenance team

• A Dev team with Ops: Ops and Dev form a team, but if Ops and Dev are still separate, efficiency will be greatly reduced

• A Dev and Ops team:

This is what DevOps has to achieve. It is not an attribute of a person, but an attribute of a team. It allows stakeholders to sit together and solve problems instead of dumping each other's pots. However, the definition of "cooperation" is simple and vague, making it difficult for "cooperation" to land. DevOps cooperation methods:

• Joint architecture design and technical decision-making

• Establishment of continuous delivery pipeline

• Common Pair and Review code and environment configuration

• Participate in retrospective meetings together

• Increase mutual understanding through regular internal sessions

• Cooperate with the operation and maintenance issues

From the perspective of project management, Dev and Ops must treat each other as important stakeholders in the project, and must communicate and share any design and decision-making.

4. DevOps is an organizational culture

Culture includes organizational process assets and career environment factors. Devops culture may be different from your current organizational culture, but it is a healthy and positive factor:

    • trust each other

• Effective communication

    • study together

• Share/Share

• Don’t blame

Summary: In general, Devops is a set of practical methods, a working method, and an organizational culture. Under the premise of ensuring high quality, shorten the time from system changes from submission to deployment to production environment, and here A good organizational structure, communication method and responsibility sharing model formed during the process.

Two. DevOps life cycle
Understand the concept of Devops, let's look at its life cycle from the perspective of practical methods:


Devops capability ring

1.Plan: In the demand stage, whether the demand comes from a new customer demand or a bug fix, this is the starting point for triggering the entire Devops process. Therefore, as the Devops team, the development team needs to regard the operation and maintenance team as the primary stakeholder before developing. Obtain their opinions, for example, the operation and maintenance personnel may suggest the type and structure of the log file.

2. Build: development/build phase, which requires developers to maintain close communication with the development and operation and maintenance team. Operation and maintenance personnel such as development progress, execution of unit tests, use of construction tools, and continuous integration are also required. Understand

3. Test: In the test phase, the planning of the test plan, what test tools are used, whether to use automated testing, etc. (there is a new Taas service that proposes testing as a basic service), all need to communicate with development and operation and maintenance.

4. Release: This stage is mainly a series of preparations for the launch of the new version. For example, before the release, you need to confirm the version of the platform supported by the version, confirm the test results, and verify the reports such as security checks to ensure the last one before going online Completeness of formalities

5. Deploy: The deployment stage, the use of deployment tools, the formulation of deployment plans (A/B deployment, canary deployment, etc.), and the confirmation of rollback plans to ensure that the new version can be successfully implemented without affecting the service release.

6. Operation / Monitor: During the operation and maintenance phase, perform a series of performance monitoring (CPU, Memory, etc.) for the services that have been launched, log analysis, perform routine audits of the system and software, perform backups, update the operating system and update patches , Optimize system performance, etc., and find problems in the monitoring process in time, and collect a list of problems from customers, and use this as the need for the next version update.

Summary: The Devops life cycle is a ring structure. It will not end with the project going online, but will constantly collect the needs from customers to continuously update and optimize the entire software service. This structure requires the entire process of Devops Efficiency.

3. A case of using DevOps:
IMVU is an entertainment and social company whose products allow to connect to each other with a 3D Avatar-style experience. IMVU uses continuous integration (CI):

1. Developers submit early and often

2. After the submission is completed, the execution of the test suite will be triggered

3. IMVU has thousands of test files. In order to maintain performance, these test files are distributed on more than 30 machines. It takes 9 minutes to execute all cases.

4. After passing all the tests, the deployment will be implemented automatically, which takes 6 minutes

5. The code is moved to hundreds of machines in the cluster, and a canary deployment scheme is used to test performance

6. Sampling canary results, if there is a large number of regressions, a rollback operation will be performed, otherwise other machines in the cluster will be enabled with the latest version.

This case mainly explains the current mainstream DevOps technology/practice. The next chapter will explain in detail from this perspective the current popular technologies/tools used in various stages of the DevOps life cycle.

Someone once proudly talked to me about their devops system, their Devops system will release more than 500 new versions every day. I asked him, are there really so many new needs to be developed? Have you analyzed how many of these more than 500 releases are due to code changes caused by the failure of automated tests, or even the most basic static code inspection failed?

Therefore, the operation and maintenance of a complete Devops system cannot be a reason to ignore quality. After all, quality is everything in a product~
Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.