Continuous Integration vs. Continuous Delivery vs. Continuous Deployment

后端 未结 14 2266
遇见更好的自我
遇见更好的自我 2020-12-04 04:25

What\'s the difference between these three terms? My university provides the following definitions:

Continuous Integration basically just means that

14条回答
  •  无人及你
    2020-12-04 05:03

    Neither the question nor the answers really fit my simple way of thinking about it. I'm a consultant and have synchronized these definitions with a number of Dev teams and DevOps people, but am curious about how it matches with the industry at large:

    Basically I think of the agile practice of continuous delivery like a continuum:

    Not continuous (everything manual) 0% ----> 100% Continuous Delivery of Value (everything automated)

    Steps towards continuous delivery:

    Zero. Nothing is automated when devs check in code... You're lucky if they have compiled, run, or performed any testing prior to check-in.

    1. Continuous Build: automated build on every check-in, which is the first step, but does nothing to prove functional integration of new code.

    2. Continuous Integration (CI): automated build and execution of at least unit tests to prove integration of new code with existing code, but preferably integration tests (end-to-end).

    3. Continuous Deployment (CD): automated deployment when code passes CI at least into a test environment, preferably into higher environments when quality is proven either via CI or by marking a lower environment as PASSED after manual testing. I.E., testing may be manual in some cases, but promoting to next environment is automatic.

    4. Continuous Delivery: automated publication and release of the system into production. This is CD into production plus any other configuration changes like setup for A/B testing, notification to users of new features, notifying support of new version and change notes, etc.

    EDIT: I would like to point out that there's a difference between the concept of "continuous delivery" as referenced in the first principle of the Agile Manifesto (http://agilemanifesto.org/principles.html) and the practice of Continuous Delivery, as seems to be referenced by the context of the question. The principle of continuous delivery is that of striving to reduce the Inventory waste as described in Lean thinking (http://www.miconleansixsigma.com/8-wastes.html). The practice of Continuous Delivery (CD) by agile teams has emerged in the many years since the Agile Manifesto was written in 2001. This agile practice directly addresses the principle, although they are different things and apparently easily confused.

提交回复
热议问题