The exploration and prospect of delivery automation

Source: Internet
Author: User

As Kurt Bittner says, if agile is just the beginning, then continuous delivery is the headline! (I prefer to understand it as a climax.)

"If Agile was the Opening act,continuous Delivery is the headliner!" --kurt Bittner

Modern enterprises require the software development process to maintain maximum efficiency, the traditional waterfall development has already fallen into a torrent of history, and even the Agile manifesto has been more than 10 years of history, software development has experienced agile development, continuous integration, is gradually entering into the era of continuous delivery .

Continuous delivery is an extension of continuous integration, emphasizing the faster delivery of products to customers with automated, visual means. An important measure of continuous delivery is the time it takes from code submission until the customer is able to use the feature, which can often be shortened from a few days and weeks to a few minutes by implementing continuous delivery. Of course, fast delivery does not mean unreliable.

So how do we implement our own continuous delivery? Take our actual project as an example, with you to conduct a discussion, summed up, in total, experienced the following 3 processes:

Build a continuous integration environment

650) this.width=650; "src=" http://s5.51cto.com/wyfs02/M02/89/B7/wKioL1ga0PjSy6HaAABI8OnXVVs564.jpg "style=" height : auto;vertical-align:middle;border:0px; "title=" 1.jpg "alt=" Wkiol1ga0pjsy6haaabi8onxvvs564.jpg "/>

Build a continuous integration platform with Jenkins as its core, and check out the latest code from the code base every day to compile and build. The build results are notified to the project team, and the developer only needs to focus on whether the integration results are green on a daily basis, and add test environment deployment and automated testing.

650) this.width=650; "src=" http://s4.51cto.com/wyfs02/M01/89/B7/wKioL1ga0QKAXZMDAACDT-RmBuo880.jpg "style=" height : auto;vertical-align:middle;border:0px; "title=" 2.jpg "alt=" Wkiol1ga0qkaxzmdaacdt-rmbuo880.jpg "/>

Figure 1: Automated deployment of test environments

650) this.width=650; "src=" http://s4.51cto.com/wyfs02/M00/89/BA/wKiom1ga0QryU-T7AABSltbdH90577.jpg "style=" height : auto;vertical-align:middle;border:0px; "title=" 3.jpg "alt=" Wkiom1ga0qryu-t7aabsltbdh90577.jpg "/>

Figure 2. Selenium Automatic test

The simple and unified style of the code is conducive to better understanding and conduct walk-through, and unit testing is for the early high-quality delivery.

650) this.width=650; "src=" http://s4.51cto.com/wyfs02/M00/89/B7/wKioL1ga0RLBXJoFAAAro6HG0ZE113.jpg "style=" height : auto;vertical-align:middle;border:0px; "title=" 4.jpg "alt=" Wkiol1ga0rlbxjofaaaro6hg0ze113.jpg "/>

Figure 3: Unit Test statistics

Through the introduction of Sonarqube+jacoco, it can conveniently locate the problematic code line and unit test situation.

650) this.width=650; "src=" http://s4.51cto.com/wyfs02/M01/89/BA/wKiom1ga0Rzwx8zGAAA6K4OFouo725.jpg "style=" height : auto;vertical-align:middle;border:0px; "title=" 5.jpg "alt=" Wkiom1ga0rzwx8zgaaa6k4ofouo725.jpg "/>

Figure 4: Problem positioning

Automated Test pipeline

Continuous delivery pay attention to automate almost everything automate all processes and reduce manual intervention. Here we have mainly joined the following links.

Automated interface and integration testing

The earlier the test enters, the lower the cost of the problem repair is found, and by introducing a test framework such as TESTNG, the interface and module integration are tested to effectively reduce the risk of the bug flowing into the subsequent links.

Test ratings

Split the test case into Smokingtest, alltest and other multi-sample sets, on the one hand, quickly feedback code updates may be caused by the risk, while ensuring effective coverage of the test, while the implementation of distributed cluster concurrency, and other ways to speed up the execution efficiency, and eventually formed the following pipeline.

650) this.width=650; "src=" http://s3.51cto.com/wyfs02/M02/89/BA/wKiom1ga0SiB-LcoAAApfK-irUk216.jpg "style=" height : auto;vertical-align:middle;border:0px; "title=" 6.jpg "alt=" Wkiom1ga0sib-lcoaaapfk-iruk216.jpg "/>

Figure 5: Pipeline assembly line

Automated delivery and full platform tool integration

In the traditional mode of development, testing, operations are often relatively independent, after the test is completed by the operation and maintenance personnel to deploy on-line, but due to the level of operation and maintenance personnel capabilities, the release of complex environment is often only a fixed number of people to make a set, resulting in the release cycle of the line has been stretched. Through self-built delivery automation tools, while integrating the platform to provide services to the external, eliminating the boundary between development, testing and operations, greatly reducing the threshold of automation operations, so that operational efficiency has greatly improved.

650) this.width=650; "src=" http://s4.51cto.com/wyfs02/M00/89/BA/wKiom1ga0TDDGqz-AABiyiy41xY175.jpg "style=" height : auto;vertical-align:middle;border:0px; "title=" 7.jpg "alt=" Wkiom1ga0tddgqz-aabiyiy41xy175.jpg "/>

Figure 6: Delivery Automation

Through the orchestration of the operation process, the sedimentation standardization work package, let the ordinary OPS personnel quickly realize the corresponding automation scripts, and through the integration of resources/environment, to provide resources for development testing, deployment and other services, speed up the validation of automated release, to avoid the issue in the official release.

Continuous feedback

The completion of the launch is not meant to end the delivery, today's society is a service-winning society, we deliver to the user is no longer a simple product, more should be the service. Through automated monitoring to get feedback from users to respond quickly and continuously improve our services to improve customer satisfaction and stickiness.

Summarize

Continuous delivery is a set of methodologies that are not necessarily suitable for the general purpose. Hope that this article only to do a primer, so that we find a suitable for their own continuous delivery of the road! Attach a tool set in the delivery process for your reference.

650) this.width=650; "src=" http://s1.51cto.com/wyfs02/M01/89/B7/wKioL1ga0TmQZ999AABqIQpkShs344.jpg "style=" height : auto;vertical-align:middle;border:0px; "title=" 8.jpg "alt=" Wkiol1ga0tmqz999aabqiqpkshs344.jpg "/>

Author Introduction

Ge Chengyuan , the 10 Test veteran, fell into the Ops field and couldn't extricate himself.

This article is from the "excellent cloud dual-state Operations" blog, please be sure to keep this source http://uyunopss.blog.51cto.com/12240346/1868899

The exploration and prospect of delivery automation

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.