You may wake up in the morning to find the “like” pattern suddenly changed from solid to hollow, or start to have some colorful cool features (such as live broadcast, limited time feed.. Etc.), but can you imagine? Until a decade ago, most software updates were just an annual version of Office, but the new features may have added to the problem rather than addressing the pain points.

So in a time of rapid change, this feature of rapid and continuous release of new versions has become an indispensable rule for sexual survival. Can you imagine That Flicker has at least 10 service launches a day? What if, in traditional development, once a new feature is released, if the user experience is not good, you can fix it, but if there are bugs, you have to wait a month or a year to fix them?

So instead of the large-scale, low-frequency releases of traditional development methods, agile DevOps aims to increase the speed and efficiency of releases from “years” and “quarters” to “months,” “weeks,” and even “days.”

However, the concept of rapid Release is not a fast and compact way to achieve the pace of the “development team”, because the Release of each new version depends not only on the efforts of the development team, but also on the efforts of the “maintenance team” and “test team”, so as to complement each other. However, “development” and “maintenance” are usually subordinate to different departments in the company. The development goal is to bring forth the new, but the maintenance department cares about the stability and reliability of the system. In such a situation where the two are constantly in conflict, how to achieve the purpose of “fast” through integration?

Therefore, the DevOps development method mainly improves the relationship between the development team and the operations team, and enables delivery to achieve “transparency”, “sustainability” and “automation” through the Agile concept of “Agile development”.

About the conversation

Let’s start with DevOps. DevOps is a combination of two abbreviations from the words Development and Operations. Like Agile, DevOps does not use specific tools or technologies for solutions, but a combination of concepts with culture, philosophy, practice and tools. The main goal is to improve an organization’s ability to deliver applications and services quickly, even if it can develop and improve products more efficiently and provide more competitive services than a “waterfall” hypervisor using traditional software development.

However, many articles refer to DevOps as “fast delivery” and “continuous delivery”, but this is not entirely true. Because for the traditional end-to-end development process, each department has its own functions that can be cut independently. The development team focuses on software development, the maintenance team does software release (or software affiliates), and the test team does pre-launch and post-launch testing. When functions are obviously cut, the synchronization of messages between teams is bound to have an impact even if the company’s development process is followed. For example, when the software submitted by the development team does not conform to the deployment environment or the software specifications are changed due to functions, the maintenance team may return the delivery due to the information gap. Or, after the development team delivers the function to the test team, it causes the test vulnerability because it is not familiar with it. Of course, there is the possibility that the test in the development process fails, but the above cases will slow down the software delivery speed.

Therefore, the core concept of DevOps is to solve cross-department and cross-team conflicts, through the improvement of transparency and the introduction of some mechanisms, to make efficient integration, to achieve the purpose of increasing the speed limit. His core concept can be explained in terms of “CALMS”.

“C ulture – culture:

DevOps is not a skill or tool, but a culture of three departments aligned together. Through reciprocity of empathy, several people from other departments can think and start developing DevOps, which can not only solve the problem of information synchronization, but also solve the loss of time caused by the gap between departments. For example, the development team should design the program configuration file to be more manageable. And so on. Improving inter-departmental integration through consensus, understanding and communication is what the “C” stands for.

“A”utomation- Automation:

A is usually the most important problems for the development team, like the middle mentioned each cause Delay link, like testing and subordinates, and so on, if all can be done through automation scheduling, not only can reduce the communication gap between the problem, can let more demand on the development and integration of more rapid, imagine if the use of automated testing and automation deployment, Then the requirements after the completion of development can be immediately ready to go online, isn’t that the true meaning of “continuous delivery”?

“L” EAN – Lean Development:

Because DevOps is part of Agile development, it must also apply some of the principles of lean development, such as eliminating waste and delivering as faster as possible, to fit the Agile spirit.

“M”easurement- Data Analysis:

Continuous diligence is needed, and M is the focus of the reaction, on through the data for the team to improve the feedback and positive, such as new features after online decrease how much customer complaint, reducing how much homework time, etc., and even after each online BUG rate and repair rate and so on, are basic indicators can be measured, to reflect is proportional to the quantity and quality of the developers.

“S” hare – sharing:

Now that you have the data, you should share the results with all the participants in DevOps for the next review and improvement, and sharing is not only the root of the culture, but also a good way to increase team transparency. And the benefits of the enterprise, is the way through the CALMS, to improve the speed and reliability, and the feedback mechanism to improve through share, when these concepts together, to help organizations may have more quality and efficient delivery of products to customers, and in addition to martial arts center method, on the concept of practice and the following points:

1. Continuous delivery and integration:

Continuous integration is a software development practice, released in test automation and automation, after the establishment of mechanism through the automated process to allow the code to test/formal environment, so if the import enterprise development method of automated deployment, you can set the deployment environment by the development team, made automated deployment tools, reduce manual as well as the delivery time, It can avoid human error and improve software delivery quality. In addition, delivery operations can be effectively “continuous”, and through “continuous integration” to find and integrate errors more quickly, thus improving delivery quality.

2. Miniaturization of service:

If a product architecture is too big, not only hampered on a plate, are more likely to have signed the sniper and the condition of the body, and if the use of the concept of enterprise products, in order to continuous delivery and consolidation, usually cut the product division of labor is more subtle, longitudinal products into horizontal development, the products and services from multiple work orientation, Become a single service (or API), and the purpose of each service is as simple as possible. Going from big and long releases to small and fast depends on the task of miniaturizing services.

3. Infrastructure as Code:

Infrastructure as code is through the use of the code and the software development technology, for infrastructure deployment and management practices, such as through the import of the cloud service or API allows developers and the delivery personnel can through the way of programming, to interact with the product and infrastructure, to replace the manual setting of cumbersome procedures, thus achieve the goal of continuous integration. The advantage of this is that all definitions are coded to standardize the operation mode to achieve the goal of rapid deployment.

The biggest difference between DevOps and traditional development is that in practice, DevOps replaces the problems of harder releases, longer delays, and parallel organizational communication with a more nuanced division of work, a more consistent workflow, and more frequent releases. Through small but frequent improvements, there is an opportunity to bring the product closer to the user’s voice and voice, and to effectively grow the product. Automated imports can reduce deployment problems caused by communication gaps.

But remember, then multiple concepts and tools that are for the closing of the error in the history of information flow, and to strengthen inter-departmental working on integration, light only import mechanism is not enough, still must through periodic review and improvement, is there a way to complete for each organization or team mechanism, which is accord with the spirit of agile development is the most important.

Only “fast” is not enough, but to improve the efficiency of the entire production mechanism, is the only way to improve the team production efficiency.

Good rain clouds xDevOps

Good Cloud provides business-oriented DevOps workflow best practices, following the application-centric design concept, using container technology, microservice architecture and software definition series of technologies to decoupe server and application, clearly define the responsibilities between development and operation and maintenance, enterprise IT will be free to land DevOps workflow. Through the unique “application level” production panel and “business level” operation and maintenance panel, Haoyuyun focuses on business and completes the operation and maintenance of computing resources in automatic or self-service way, so as to achieve the purpose of cost reduction and efficiency improvement.

To learn more about good rain clouds DevOps: