What is Continuous Delivery?

Continuous Delivery is the ability to get changes of all types—including new features, configuration changes, bug fixes and experiments—into production, or into the hands of users, safely and quickly in a sustainable way.

Our goal is to make deployments—whether of a large-scale distributed system, a complex production environment, an embedded system, or an app—predictable, routine affairs that can be performed on demand.

We achieve all this by ensuring our code is always in a deployable state, even in the face of teams of thousands of developers making changes on a daily basis. We thus completely eliminate the integration, testing and hardening phases that traditionally followed “dev complete”, as well as code freezes.

Why continuous delivery?

It is often assumed that if we want to deploy software more frequently, we must accept lower levels of stability and reliability in our systems. In fact, peer-reviewed research shows that this is not the case—high performance teams consistently deliver services faster and more reliably than their low performing competition. This is true even in highly regulated domains such as financial services and government. This capability provides an incredible competitive advantage for organizations that are willing to invest the effort to pursue it.

The practices at the heart of continuous delivery help us achieve several important benefits:

Low risk releases. The primary goal of continuous delivery is to make software deployments painless, low-risk events that can be performed at any time, on demand. By applying patterns such as blue-green deployments it is relatively straightforward to achieve zero-downtime deployments that are undetectable to users.

Faster time to market. It’s not uncommon for the integration and test/fix phase of the traditional phased software delivery lifecycle to consume weeks or even months. When teams work together to automate the build and deployment, environment provisioning, and regression testing processes, developers can incorporate integration and regression testing into their daily work and completely remove these phases. We also avoid the large amounts of re-work that plague the phased approach.

Higher quality. When developers have automated tools that discover regressions within minutes, teams are freed to focus their effort on user research and higher level testing activities such as exploratory testing, usability testing, and performance and security testing. By building a deployment pipeline, these activities can be performed continuously throughout the delivery process, ensuring quality is built in to products and services from the beginning.

Lower costs. Any successful software product or service will evolve significantly over the course of its lifetime. By investing in build, test, deployment and environment automation, we substantially reduce the cost of making and delivering incremental changes to software by eliminating many of the fixed costs associated with the release process.

Better products. Continuous delivery makes it economic to work in small batches. This means we can get feedback from users throughout the delivery lifecycle based on working software. Techniques such as A/B testing enable us to take a hypothesis-driven approach to product development whereby we can test ideas with users before building out whole features. This means we can avoid the 2/3 of features we build that deliver zero or negative value to our businesses.

Happier teams. Peer-reviewed research has shown continuous delivery makes releases less painful and reduces team burnout. Furthermore, when we release more frequently, software delivery teams can engage more actively with users, learn which ideas work and which don’t, and see first-hand the outcomes of the work they have done. By removing the low-value painful activities associated with software delivery, we can focus on what we care about most—continuously delighting our users.

If this sounds too good to be true, bear in mind: continuous delivery is not magic. It’s about continuous, daily improvement—the constant discipline of pursuing higher performance by following the heuristic “if it hurts, do it more often, and bring the pain forward.”

转载自添加链接描述

What is Continuous Delivery?相关推荐

  1. 《A Practical Guide to Continuous Delivery》作者访谈录

    \ 本文要点 \\ 持续交付(CD,Continuous Delivery)带来了快速的反馈循环,从而产生更简单的技术解决方案,它能得到更好的容错性,并且能够得到更简单的应用程序架构.\\t 对于新的 ...

  2. QAD1 持续交付 Continuous Delivery

    每小步验证 很久以前,工程本科生都要在最后一年做个毕业项目.导师建议尝试参考一些常用的语言发声算法,在专门做信号处理的芯片上写程序,读出一些英文字或句子(与现在不同,当时这技术还未成熟,很多大学还在研 ...

  3. Continuous Delivery

    原文:http://refcardz.dzone.com/refcardz/continuous-delivery-patterns 这篇文章基本上是continuous delivery的总结,浓缩 ...

  4. A Primer On GitOps And Why It’s Great for Continuous Delivery

    作者:禅与计算机程序设计艺术 1.简介 什么是GitOps?我在第五章节中已经给出了一套完整的GitOps体系架构图.通过这个图可以清晰地看到GitOps包含四个主要的角色: 1.应用程序开发人员(A ...

  5. 持续集成(Continuous integration)

    互联网软件的开发和发布,已经形成了一套标准流程,最重要的组成部分就是持续集成(Continuous integration,简称CI). 本文简要介绍持续集成的概念和做法. 一.概念 持续集成指的是, ...

  6. 持续集成(Continuous integration,简称CI)

    持续集成 持续集成是什么? 为什么要使用持续集成? 持续交付 为什么要交给质量团队或是用户呢? 持续部署 持续集成的流程 持续集成是什么? CI,是指在一段时间内(如:约定好的一天内或是一个上午),多 ...

  7. 敏捷宣言遵循的十二条原则

    敏捷宣言遵循的十二条原则Twelve Principles behind the Agile Manifesto 我们遵循以下原则: We follow these principles: 我们最重要 ...

  8. Jenkins简介及在Windows上的简单使用示例

    Jenkins是一款开源CI(Continuous Integration,持续集成)&CD(Continuous Delivery,持续交付)软件,用于自动化各种任务,包括构建.测试和部署软 ...

  9. 性能测试回归测试_自动网站性能回归测试

    性能测试回归测试 by Adam Henson 亚当·汉森(Adam Henson) 如何使用Foo自动执行网站性能回归测试 (How to automate website performance ...

最新文章

  1. Parallel Python实现程序的并行多cpu多核利用【pp模块】
  2. 网站商务通如何导出查看历史聊天纪录
  3. CTFshow php特性 web104
  4. 新建notebook时发现在notebook里的sys.path与电脑上不一样
  5. android拨打电话
  6. chromium关闭更新_你的Win10系统20H2了吗此乃Win10年度最靠谱的更新还有Win10优化大师助阵...
  7. Python使用Manager对象实现不同机器上的进程跨网络传输数据
  8. PhalApi-OSS--阿里云OSS包
  9. hbase1.3版本启动流程及优化
  10. Linux操作系统安装过程
  11. 笔录软件在linux系统,weblogic的在redhat linux下使用笔录
  12. Unity LitJson的读写使用
  13. thingjs这个3D js库怎么样?
  14. 计算机英语的四种变量,计算机英语:BASIC语言变量
  15. EXCEL身份证号码校验以及提取基本信息
  16. Java double value_Java Double doubleValue()用法及代码示例
  17. 手机相机好坏测试软件,专业相机测试 画质表现均为中上等_手机评测-中关村在线...
  18. 李宏毅机器学习Day03之误差
  19. 运动搜索算法之钻石搜索
  20. Python的内置函数(四十八)、setattr()函数

热门文章

  1. c语言编写excel程序,C语言写excel文件(csv格式)
  2. No property 属性名 found for type 类名
  3. 冲量在线入选北京市2022年第一批国家高新技术企业认定名单
  4. 《妙先生》--经典语录
  5. 【找工作资料】英文简历、面试常用词汇
  6. 【CodeForces】988E·Divisibility by 25
  7. Java——字符串类实验
  8. “北航学堂”M2阶段postmortem
  9. vue获取不到KeyCode,显示undefined,求指点
  10. Windows 8 Microsoft账户