ci-Continuous Integration (1)-Software industry "pipelining" overview

Source: Internet
Author: User

ci-Continuous Integration (1)-Software industry "pipelining" Overview 1 overview

Continuous integration (continuous integration) is a software development practice in which team development members often integrate their work, with each member being integrated at least once a day, which means that multiple integrations may occur on a daily basis. [1] Each integration is validated with automated builds (including compilation, release, automated testing) to identify integration errors early.

Continuous Integration is equivalent to applying the idea of a conventional industrial assembly line operation to the modern software industry . The difference is that the industrial pipeline eventually comes out as a product replicator, but the software pipeline ultimately comes out of a generation of newer iterations, but the common denominator is that the efficiency of the overall output will be greatly increased.

First of all, the CI solves the problem:

    • Product iterations for small steps

    • High-frequency version release

    • System integration anytime, anywhere

    • Stable System Evolution Roadmap

These are the goals that are required in modern agile Software engineering theory.

[1] Baidu Encyclopedia. Continuous integration. 2015
2 Development model changes

The various roles of the traditional development collaboration model:


    • Engage in functional development of software products

    • Writing Unit Test scripts

    • Functional validation in a simple development phase

    • Development staff



    • Writing test Cases

    • Comprehensive functional verification in the integration phase

    • Build a test environment with developer deliverables

    • Perform functional testing

    • Some automated tests

    • Test personnel



    • Maintain the relevant configuration of the publication

    • The software deliverables that are tested are posted to the server according to the process

    • Release people



    • Monitor and keep service 7*24h on the server running properly

    • Operation and maintenance personnel


And in the traditional process, there are the following characteristics:

    • In addition to the developer, the other roles are largely manual or mostly manual , with low transaction efficiency

    • Development and communication basically by word of mouth or mail/qq, communication cost is big

    • Most practitioners always do repetitive and tedious work, without the technical growth of

    • The lack of accumulation of practical activities, each time is the same from the beginning of the same artificial repetition

After the introduction of the Continuous integration of engineering ideas, the following changes will occur:


      • Writing development-related code

      • Developer



      • Set up automated publishing scenarios

      • Writing automation publishing related code

      • Release staff



    • UL class= "First last simple List-paddingleft-2" style= "List-style-type:square;" >
    • Set up automation operation plan

    • Write automation operations related code

    • Ops staff


In other words, all the characters have to be first a developer and then a person in the xx field . This model in the current IT intelligence-intensive internet industry is particularly obvious, in some major online recruitment platform can see big Internet company recruitment information is basically:

    • Test Development Engineer

    • Release Development Engineer

    • Operations Development Engineer

And then the pay treatment is the developer's treatment, and even now many of the company's staffing is part of the developer's list.

In the Internet industry, the software development model has changed from the traditional software engineering to the Agile Software Engineering , the corresponding method of realizing this thought also changes, so the skill requirements of the corresponding practitioners should be changed.

In other words:the field of IT industry positions, must master the development skills, if not to make some changes and promotion, then the next phenomenon is the development of the entire group of people began to occupy the field of it class positions .

3 Continuous Integration practices

The typical tool for continuous integration is the open source system Jenkins. Through the research on the application of Jenkins Tools, a full-line software development diagram is drawn, as follows:

650) this.width=650; "Src=" http://images2015.cnblogs.com/blog/111649/201512/111649-20151228202150417-682257350. PNG "style=" margin:0px;padding:0px;border:0px; "/>

Pre- CI Environment Preparation:


    • Feature developers develop good product feature codes

    • Publishers develop automated build and release code

    • Testers develop automated test code.

    • Developers have developed the appropriate code


Combine these toolchain with the Jenkins tool to successfully debug your pipeline and build all your environments.

The above is equivalent to the establishment of the CI system, there will be a certain amount of technical input, but the subsequent iterative process, is to recover these costs.

Post-Iteration Workflow:

    1. The developer specifies a branch to the GIT server to submit new code

    2. The webhook of a git server receives a commit event and initiates a request to the Jenkins server to specify an interface to execute the build script


    • Synchronizing code from a git server

    • Execute an automated build script to generate deliverables

    • Automatic test Environment Setup

    • Jenkins Server sequence execution build script


Jenkins executes automated test scripts Jenkins initiates a request to an automated release system to automate the publishing system for automatic grayscale publishing triggering automated test systems to be released gradually throughout the network

Basically, the above steps can be fully automated unattended completion. The whole process is efficient and error-prone, compared to the manual production mode, the continuous integration means will greatly reduce the cycle of each iteration, ensure that the overall project can be at a very small pace and very high frequency of steady evolution.

4 Stage Summary

This article as the beginning of the series of continuous integration , there are some emphasis on the theoretical part, in order to let everyone understand the overall structure, but also to establish a modern software engineering overall concept.

The following sections will focus on the environment and the development of the corresponding environment code, and finally can form a complete set of continuous integration system to provide productivity.


ci-Continuous Integration (1)-Software industry "pipelining" overview

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.