1 什么是DevOps
DevOps (a clipped compound of "development" and "operations") is a software development process that emphasizes communication and collaboration between product management, software development, and operations professionals. DevOps also automates the process of software integration, testing, deployment and infrastructure changes.[1][2] It aims to establish a culture and environment where building, testing, and releasing software can happen rapidly, frequently, and more reliably.
https://en.wikipedia.org/wiki/DevOps
DevOps是强调产品管理,软件开发和运营专业人员之间沟通和协作的软件开发过程。DevOps还可以自动化软件集成,测试,部署和基础设施变更过程。DevOps旨在建立一套快速、频繁、稳定地进行构建,测试,发布软件的文化与环境。
https://en.wikipedia.org/wiki/DevOps
2 DevOp工具链
Code — Code development and review, version control tools, code merging
Build — Continuous integration tools, build status
Test — Continuous testing tools that provide feedback on business risks
Package — Artifact repository, application pre-deployment staging
Release — Change management, release approvals, release automation
Configure — Infrastructure configuration and management, Infrastructure as Code tools
Monitor — Applications performance monitoring, end–user experience
https://en.wikipedia.org/wiki/DevOps#DevOps_toolchain
3 Devops is About CAMS
- Culture
People and process first. If you don’t have culture, all automation attempts will be fruitless.
- Automation
This is one of the places you start once you understand your culture. At this point, the tools can start to stitch together an automation fabric for Devops. Tools for release management, provisioning, configuration management, systems integration, monitoring and control, and orchestration become important pieces in building a Devops fabric.
- Measurement
If you can’t measure, you can’t improve. A successful Devops implementation will measure everything it can as often as it can… performance metrics, process metrics, and even people metrics.
- Sharing
Sharing is the loopback in the CAMS cycle. Creating a culture where people share ideas and problems is critical. Jody Mulkey, the CIO at Shopzilla, told me that they get in the war room the developers and operations teams describe the problem as the enemy, not each other. Another interesting motivation in the Devops movement is the way sharing Devops success stories helps others. First, it attracts talent, and second, there is a belief that by exposing ideas you can create a great open feedback that in the end helps them improve.
4 Conclusion
DevOps provides organizations with a set of practices based on lean and agile methods. With these methods, organizations reduce the risk developing software that does not meet requirements, and increases the effectiveness and efficiency of software development and deployment. Organizations can deliver innovations to their customers in a timely manner and rapidly apply customer feedback to enhance the innovations being delivered. Most organizations rely on their capability to deliver software to address their customers' needs, balancing stability of the business capabilities that customers need with the innovations that the market demands. DevOps provides organizations with the capabilities to achieve this balance.
https://www.supinfo.com/articles/single/3652-what-is-devops
5 The DevOps body of knowledge
- Disciplined Agile
- Continuous Delivery
- IT service management
- TPS (Lean) concept as foundation
6 Patrick Debois:DevOps, Improve from Collobration
DevOps 起源
1、DevOps切入点
1.1 怎么落地DevOps?
1.2 DevOps从什么地方开始?
2、DevOps四大改进方向
1)端到端交付
2)持续反馈
3)开发向运维
4)运维向开发
3、DevOps实践场景
3.1 配置管理
3.2 环境管理
3.3 监控与度量
3.4 On-Call
3.5 Chaos-Monkey
3.6 ChatOps
3.7 事故分析
3.8 游戏日
4、DevOps实施的五级精进
5、DevOps实施常见问题
1)我该如何开始
1. 和其他的转型没有太大的区别
2. 不要花费太多的时间在反对者身上,专注于寻找志同道合的盟友
3. 不要过于自负,要寻求管理支持,个人影响力有限,我们要与管理层进行非常好的合作
4. 选一个小的项目并达成目标,成功最建立信心和信任的最佳方式。
5. 要选的第一件事情是一个大家都比较关注的痛点,做一些有意义的事情,但是一定要比较小,这样你自己就可以用有限的资源完成。这会提示大家改变的意愿
6. 开始动手做,不需要做过多的解释,动手做就可以了。
7. 做了再说
8. 做出成果之后要及时沟通,可以有效建立信任
9. 度量改进效果
10. 持续改进
2)我们应该设置独立的DevOps团队吗?
3)如何衡量DevOps的效果
4)DevOps宣言是什么?
5)DevOps和ITIL的关系?
6、常用实践与工具
1. 沟通你承诺的状态并监控
2. 监控服务并暴露度量信息(API)
3. 暴露内部信息(API)
4. 关心其他人
5. 暴露日志
6. 明确错误信息
7. 备份外部数据
8. 更快的反馈
9. 让内外部依赖更清晰
10. 主动让别人保持承诺
11. 让别人了解变更
12. 建立技术博客
13. 去大会演讲
14. 让别人很方便的使用服务
15. 给别人反馈
16. 表达你在关注外部对你的依赖
17. 告诉别人你在参与改进
18. 告诉别人你的工程师们不怕与人交谈
19. 对访问请求负责
20. 让其他人参与进来
https://mp.weixin.qq.com/s/sIMsequUo--op1m9FtK86g
7 Jenkins 创始人:持续交付的 What、Why 及 How
主要内容
1、流程线已经改变过一次世界
2、软件正在吞噬世界
3、头号需求:业务连续性(不停机)
4、持续交付框架分析
5、生存还是毁灭,你可以选择
6、现状和方向
7、工程实践
7.1 架构与实现技术
7.2 基于Jenkins的CD/DevOps生态系统
DevOps转型策略
- 识别试点项目
- 组建跨职能团队
- 采用统一的技术
- 基于可度量的KPI和里程碑制定计划
- Go
- 度量,文档化,改进
- 规模化实践
参考文献:
https://en.wikipedia.org/wiki/DevOps
https://www.supinfo.com/articles/single/3652-what-is-devops
https://blog.chef.io/2010/07/16/what-devops-means-to-me/
相关人物:
Patrick Debois
John Willis
Jez Humble
Kohsuke Kawaguchi