【笔记】百度方法持续交付一(黎嘉豪)

互联网时代对软件交付的诉求

VUCA 
volatility(易变性),uncertainty(不确定性),complexity(复杂性),ambiguity(模糊性)

软件交付面临易变性,不确定性,复杂性,模糊性

软件交付两个指标:效率,质量

传统软件交付过程的问题分析:

人员,流程,技术被【墙】阻断,Throw it over the wall

过程中:

  1. 需求以文档传输,缺乏沟通
  2. 需求描述不清,且经常变更
  3. 测试反馈周期长,测试占研发比重大
  4. 自动化测试程度低,质量把控不完善
  5. 运维排期紧张,上线需要等待
  6. 手工运维繁琐,复杂,常出错

问题:

  • 效率低,存在浪费
  • 反馈慢,质量保证不全
  • 故障多,操作耗时

传统软件交付的困境:

代码合并,缺乏代码Review。

摆脱困境,解决问题:(使用相对应的管理后台,对开发版本,以及分支,历史版本,进行部署的控制)

  1. 缩短提交正式部署上线的时间,降低风险。
  2. 自动,快速提供反馈。
  3. 让软件在整个周期处于可部署状态。
  4. 按下按钮,可将任意版本,按照需求进行任意环境的部署。
  5. 能够让整个交付过程变成一种可靠,可预期,可视化的过程。

持续交付的思路:

需求拆分,小步快跑(Scrum)

尽早的,持续的测试(持续集成)

开发到运维流程打通(DevOps)

相关概念:

持续交付(Continuous Delivery)是一系列的开发时间方法,用来确保让代码能够快速,安全的部署到生产环境中。

DevOps (Development和Operations组合)是一组过程,方法与系统的统称,用于促进开发(应用程序/软件工程),技术运营和质量保障(QA)部门之间的沟通,协作与整合。

敏捷软件开发(Agile)是一种应对快速变化的需求的一种软件开发能力。

需求描述不清,且经常变更
Using Continuous Delivery, you can bring software into production more rapidly, with greater reliability. A Practical Guide to Continuous Delivery is a 100% practical guide to building Continuous Delivery pipelines that automate rollouts, improve reproducibility, and dramatically reduce risk. Eberhard Wolff introduces a proven Continuous Delivery technology stack, including Docker, Chef, Vagrant, Jenkins, Graphite, the ELK stack, JBehave, and Gatling. He guides you through applying these technologies throughout build, continuous integration, load testing, acceptance testing, and monitoring. Wolff’s start-to-finish example projects offer the basis for your own experimentation, pilot programs, and full-fledged deployments. A Practical Guide to Continuous Delivery is for everyone who wants to introduce Continuous Delivery, with or without DevOps. For managers, it introduces core processes, requirements, benefits, and technical consequences. Developers, administrators, and architects will gain essential skills for implementing and managing pipelines, and for integrating Continuous Delivery smoothly into software architectures and IT organizations. Understand the problems that Continuous Delivery solves, and how it solves them Establish an infrastructure for maximum software automation Leverage virtualization and Platform as a Service (PAAS) cloud solutions Implement build automation and continuous integration with Gradle, Maven, and Jenkins Perform static code reviews with SonarQube and repositories to store build artifacts Establish automated GUI and textual acceptance testing with behavior-driven design Ensure appropriate performance via capacity testing Check new features and problems with exploratory testing Minimize risk throughout automated production software rollouts Gather and analyze metrics and logs with Elasticsearch, Logstash, Kibana (ELK), and Graphite Manage the introduction of Continuous Delivery into your enterprise Architect software to facilitate Continuous Delivery of new capabilities Table of Contents Part I: Foundations Chapter 1: Continuous Delivery: What and How? Chapter 2: Providing Infrastructure Part II: The Continuous Delivery Pipeline Chapter 3: Build Automation and Continuous Integration Chapter 4: Acceptance Tests Chapter 5: Capacity Tests Chapter 6: Exploratory Testing Chapter 7: Deploy—The Rollout in Production Chapter 8: Operations Part III: Management, Organization, and Architecture for Continuous Delivery Chapter 9: Introducing Continuous Delivery into Your Enterprise Chapter 10: Continuous Delivery and DevOps Chapter 11: Continuous Delivery, DevOps, and Software Architecture Chapter 12: Conclusion: What Are the Benefits?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值