17、光明的未来:CD与DevOps的无限可能

光明的未来:CD与DevOps的无限可能

1. 混沌猴子方法与终端用户自助服务

混沌猴子方法除了能证明平台的弹性外,还是分享平台整体运作知识的好方法。不过,故意破坏系统可能会惹恼客户,所以我们需要考虑如何让客户满意。其中一个方法就是实现终端用户自助服务。

以往,软件交付通常是单向地将软件推送到特定环境。但如果允许终端用户按需拉取软件呢?这在一些场景下是有必要的,比如测试团队需要测试不同场景和用例,或者安全运维团队需要进行深度安全扫描或DDoS场景测试。传统上,为这些团队搭建专用环境并安装所需软件是一项繁琐的工作。

而当引入持续交付(CD)和DevOps到工作方式中,就可以解决这个问题。借助可靠的工具来配置服务器、部署软件资产和进行深度监控,DevOps团队也乐于协作。开放诚实的文化让问题能得到公开讨论和调查,并且能快速修复和发布。这样一来,终端用户只需按下按钮,就能获得一个配置正确的完整环境,既减轻了运维和开发团队的负担,又让内部客户满意,还能建立信任。

2. CD和DevOps在移动世界的应用

CD和DevOps通常与基于服务器的解决方案交付相关,但实际上它们并不局限于此。由于CD和DevOps基于文化、行为和工作方式的提升,所以同样可以应用于移动应用的开发和交付。

不过,移动应用软件的交付与基于Web或服务器的软件交付有所不同:
- 每天无缝向Web平台发布软件10次且不影响终端用户是可行的,因为开发者完全控制基础设施和发布机制。但对于移动应用,如果每天向用户的智能手机推送10次应用,会对终端用户产生重大影响。
- 终端用户的智能手机或平板电脑中没有系统操作员,所以DevOps中的运维环节并不严格存在。

实际上,大多数移动应用通过应用商店分发,这类似于CD工具集中向服务器发送二进制文件的第三方二进制存储库。用户可以自行发起拉取和安装应用的过程,更新时也只需拉取二进制文件并安装。

将CD和DevOps应用于移动应用开发和交付是可行且有价值的。在组织内建立的协作、信任和诚实的工作模式可以应用到移动应用的开发、构建、测试和发布中。而且,移动应用可以使用与基于服务器的网站相同的技术,如HTML5,这意味着相同的代码库可以同时用于服务器和移动应用,使用相同的技术、工具和方法能让过程更加无缝。

需要注意的是,在CD方面需要进行一些微调。虽然可以每天发布应用10次来验证流程或进行严格的beta测试,但要考虑向应用商店发布的频率,以免终端用户被应用更新通知轰炸。

3. CD和DevOps在软件交付之外的扩展

CD和DevOps不应局限于软件或产品交付。其工具、流程和最佳实践可以扩展到传统IT之外的其他业务领域。

假设产品交付过程已经达到最优和高效,但在实际产品交付过程前后的某些业务功能开始出现问题,或者阻碍了高效的产品交付阶段。此时,可以使用之前提到的技术来解决更广泛的业务问题。

例如,可以将整个产品交付过程扩展到包括构思阶段(通常在产品交付过程之前,有时称为蓝图阶段)和客户反馈阶段(通常在产品交付之后)。这样做可以为企业带来更大的价值,让更多业务部门体会到CD和DevOps工作方式的巨大好处。CD和DevOps不仅仅是关于软件交付,其工作方式、协作模式、开放诚实的环境、基于信任的关系以及使用的语言等,都能让任何业务流程焕发生机。

4. 个人的选择与机遇

你在CD和DevOps方面积累的经验、技能和声誉,使你成为相关事务的关键人物。你有机会开启新的旅程,推动企业通过成熟强大的CD和DevOps文化实现变革。

如果你对此不感兴趣,也可以选择紧跟不断变化和发展的CD和DevOps领域,了解新的工作方式、工具、想法和见解。越来越多的企业意识到在软件和产品交付方面拥有倡导者的价值。

你还可以加入全球CD和DevOps社区,与他人分享和展示自己的经验,同时将他人的经验和知识带回企业。甚至可以将这些经验记录下来,发布在公共博客和论坛上,或者以书籍的形式出版。

无论你做出何种选择,都不会感到无聊,也无法回到过去的工作方式。你已经学到了宝贵的经验:CD和DevOps是更好的工作方式。

5. 回顾与总结

在采用和实施CD和DevOps之前,我们来回顾一下所学内容:
- CD和DevOps不仅仅关乎技术选择和工具,很大程度上,其成功建立在行为、文化和环境之上。
- 实施和采用CD和DevOps是一段旅程,一开始可能漫长而令人生畏,但一旦迈出第一步,就会发现进展顺利。
- 成功实施CD和DevOps的团队很少会后悔,也不会想回到过去发布软件就意味着周末和深夜工作的日子。现在,深夜和周末工作应该与创新和创造下一个改变世界的技术突破相关。
- 不必同时实施CD和DevOps,但二者相互补充,值得认真考虑。
- 在进行技术选择时,要确保实施的技术能增强和补充你的工作方式,而不是为了适应工具而改变工作方式。
- 虽然这可能是一项艰巨的任务,但只要做好充分准备,就能克服困难。全球社区可以提供帮助和建议,不要害怕寻求支持。
- 不要仅仅因为别人都在做就实施CD或DevOps,你需要有充分的理由,否则无法获得真正的收益,也难以真正相信自己所做的事情。
- 虽然我们涵盖了很多内容,但不必实施所学的所有内容,选择适合自己和实际情况的部分即可,就像采用任何优秀的敏捷方法一样。
- 能够发布软件并不意味着工作结束,CD和DevOps是一种工作方式,其方法可以应用于其他业务领域和问题。
- 分享失败和成功的经验,这样你可以学习,也能让他人从你身上学到东西。

6. 有用的工具、人物和推荐阅读

6.1 工具

工具 描述 更多信息
Jenkins 屡获殊荣的世界知名开源持续集成工具 http://jenkins-ci.org/
GIT 免费的开源分布式版本控制系统 http://git-scm.com/
GitHub 基于GIT的在线社区解决方案 https://github.com/
Graphite 高度可扩展的实时绘图系统,允许从应用程序中发布指标数据 http://graphite.wikidot.com/
Tasseo 简单易用的Graphite仪表盘 https://github.com/obfuscurity/tasseo
SonarQube 用于管理代码质量的开放平台 http://www.sonarqube.org/
Ganglia 用于高性能计算系统的可扩展分布式监控系统 http://ganglia.sourceforge.net/
Nagios 强大的监控系统,能让组织在IT基础设施问题影响关键业务流程之前识别并解决 http://www.nagios.org/
Dbdeploy 开源数据库变更管理工具 http://dbdeploy.com/
Puppet Labs 用于自动化创建和维护IT基础设施的工具 http://puppetlabs.com/
Chef 另一个用于自动化创建和维护IT基础设施的工具 https://www.getchef.com/chef/
Vagrant 使用自动化构建完整开发环境的工具 https://www.vagrantup.com/
Docker 分布式应用的开放平台 https://www.docker.com/
Yammer 企业私有社交网络(类似于企业版Facebook) https://www.yammer.com
HipChat 私有群组聊天和团队协作工具 https://www.hipchat.com/
IRC 协作和聊天工具的鼻祖 http://www.irc.org/
Campfire 私有群组聊天和团队协作工具 https://campfirenow.com/
Hubot 可在大多数聊天室系统中设置的自动化“机器人” https://hubot.github.com/
Trello 在线Scrum / Kanban板解决方案 https://trello.com/
AgileZen 在线Scrum / Kanban板解决方案 http://www.agilezen.com/

6.2 人物

  • Patrick Debois:被许多DevOps社区成员视为DevOps之父,也是DevOpsDays运动的创始人。更多信息:http://www.jedi.be/
  • John “Botchagalupe” Willis:DevOps社区的常客和知名贡献者,以诚实分享智慧而启发了许多人。更多信息:http://www.johnmwillis.com/
  • Jez Humble:《持续交付》一书的合著者,该书被许多人用作研究或实施持续交付的权威参考资料。他还积极为持续交付博客撰稿。更多信息:http://jezhumble.net/
  • John Allspaw:Etsy.com的运营高级副总裁,理解DevOps的价值。更多信息:http://www.kitchensoap.com/
  • Gareth Rushgrove:自称是网络极客,负责制作DevOps每周电子邮件通讯。更多信息:http://www.garethrushgrove.com/
  • Gene Kim:《凤凰项目》的合著者,Tripwire的创始人兼前CTO,热衷于IT运营、安全和合规,以及IT组织如何从优秀走向卓越。更多信息:http://www.realgenekim.me/
  • Mitchell Hashimoto:自称是DevOps工具狂人科学家,Vagrant、Packer、Serf、Consul和Terraform的创造者。更多信息:http://about.me/mitchellh
  • Steve Thair:DevOpsGuys的联合创始人,Web性能方面的常客演讲者。更多信息:http://www.devopsguys.com/About/Team/Steve
  • Rachel Davies:国际公认的敏捷方法有效使用教练专家,在回顾技术和游戏方面拥有丰富知识。更多信息:http://www.agilexp.com/agile-coach-rachel-davies.php
  • Ken Schwaber:Scrum和敏捷的教父。更多信息:http://kenschwaber.wordpress.com/
  • John Clapham:全能好人,敏捷/DevOps倡导者。更多信息:http://johnclapham.wordpress.com/
  • Karl Scotland:著名的敏捷教练,擅长精益和敏捷技术。更多信息:http://availagility.co.uk/

6.3 推荐阅读

资源 描述 链接
Agile Coaching 关于如何成为优秀敏捷教练的不错介绍 https://pragprog.com/book/sdcoach/agile-coaching
Agile Retrospectives: Making Good Teams Great 一本优秀的书籍,涵盖了运行有效回顾所需的大部分知识 https://pragprog.com/book/dlret/agile-retrospectives
Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation 持续交付的权威书籍 http://www.amazon.com/dp/0321601912?tag=contindelive-20
The phoenix project 以小说形式呈现的DevOps采用独特视角,值得一读 http://itrevolution.com/books/phoenix-project-devops-book/
Agile Product Management with Scrum 从产品经理的角度看待Scrum和敏捷 http://www.amazon.com/exec/obidos/ASIN/0321605780/mountaingoats-20
The Enterprise and Scrum 提供了采用敏捷方法和工作方式的一些额外见解 http://www.amazon.com/exec/obidos/ASIN/0735623376/mountaingoats-20
The Lean Startup 关于如何改变企业、文化和工作方式的现实经验和见解 http://amzn.com/0307887898
Getting Value out of Agile Retrospectives 对回顾进行了很好的介绍,并提供了大量的游戏/练习 https://leanpub.com/gettingvalueoutofagileretrospectives

7. 总结与行动建议

CD和DevOps的实施虽然不是一件容易的事,但它能带来巨大的价值。现在你应该对实施CD和DevOps的工作方式有了更清晰的认识。不妨拿起一杯热饮,准备好记事本和笔,思考为什么需要实施CD和DevOps,以及如何去做。祝你好运!

下面是一个简单的mermaid流程图,展示了CD和DevOps在企业中的应用流程:

graph LR
    A[引入CD和DevOps] --> B[终端用户自助服务]
    A --> C[移动应用开发与交付]
    A --> D[扩展到其他业务领域]
    B --> E[减轻团队负担,提高客户满意度]
    C --> F[实现无缝开发和交付]
    D --> G[为企业带来更大价值]
    E --> H[建立信任]
    F --> H
    G --> H

这个流程图展示了引入CD和DevOps后,通过终端用户自助服务、移动应用开发与交付以及扩展到其他业务领域,最终为企业带来价值并建立信任的过程。

8. CD和DevOps实施的关键要点分析

8.1 文化与行为层面

CD和DevOps的成功很大程度上依赖于文化、行为和工作环境。一个开放、诚实、协作的文化氛围是基础。在这样的环境中,团队成员能够自由地讨论问题,不用担心被指责。例如,当发现软件问题时,大家可以共同探讨解决方案,而不是互相推诿责任。
- 信任的建立 :团队成员之间的信任是协作的关键。通过共同完成项目,分享成功和失败的经验,信任会逐渐建立起来。比如,在一次紧急的软件修复任务中,开发和运维团队紧密合作,成功解决问题,这会增强彼此的信任。
- 开放的沟通 :开放的沟通渠道能够确保信息的及时传递。可以通过定期的团队会议、即时通讯工具等方式实现。例如,使用HipChat或IRC等工具,团队成员可以随时交流想法和问题。

8.2 技术选择层面

在进行技术选择时,要确保所选的技术能够增强和补充现有的工作方式,而不是让工作方式去适应技术。
- 工具的适配性 :选择工具时,要考虑其是否与团队的工作流程相匹配。例如,如果团队采用敏捷开发方法,那么Trello或AgileZen等在线Scrum / Kanban板解决方案可能会很合适。
- 技术的扩展性 :所选的技术应该具有一定的扩展性,以便能够适应企业未来的发展。比如,Docker作为一个开放的分布式应用平台,具有良好的扩展性,可以满足不同规模的应用需求。

8.3 实施过程层面

实施CD和DevOps是一个逐步推进的过程,不能一蹴而就。
- 分阶段实施 :可以先从一些小的项目或功能开始实施,积累经验后再逐步推广到整个企业。例如,先在一个测试环境中引入CD和DevOps的部分工具和流程,观察效果后再进行调整和扩展。
- 持续改进 :在实施过程中,要不断收集反馈,进行持续改进。可以通过定期的回顾会议,总结经验教训,优化工作流程。

9. CD和DevOps在不同场景的应用案例分析

9.1 终端用户自助服务案例

某公司的测试团队需要频繁测试不同的软件场景和用例。在引入CD和DevOps之前,每次测试都需要花费大量时间来搭建专用环境和安装软件。引入终端用户自助服务后,测试团队只需按下按钮,就能自动获得一个配置好的测试环境。这不仅提高了测试效率,还减轻了运维团队的负担。具体操作步骤如下:
1. 运维团队使用Puppet Labs或Chef等工具,创建标准化的测试环境模板。
2. 将这些模板集成到自助服务系统中。
3. 测试团队登录自助服务系统,选择所需的测试环境模板。
4. 系统自动根据模板配置服务器,部署所需的软件资产。
5. 测试团队可以立即开始测试工作。

9.2 移动应用开发与交付案例

一家移动应用开发公司采用CD和DevOps方法来开发和交付应用。他们使用Jenkins进行持续集成,确保代码的质量和稳定性。同时,通过Docker容器化技术,实现了应用的快速部署。在应用发布方面,他们根据用户反馈和市场需求,合理控制向应用商店发布的频率。具体操作步骤如下:
1. 开发团队将代码提交到GitHub仓库。
2. Jenkins自动触发构建和测试任务,对代码进行检查。
3. 如果测试通过,使用Docker将应用打包成容器。
4. 将容器部署到测试环境进行进一步测试。
5. 根据测试结果进行调整和优化。
6. 确定发布版本后,将应用提交到应用商店。

9.3 业务领域扩展案例

某企业在产品交付过程中,发现售前的构思阶段和售后的客户反馈阶段效率低下,影响了整体业务。于是,他们将CD和DevOps的方法扩展到这两个阶段。在构思阶段,使用Trello等工具进行项目规划和任务分配;在客户反馈阶段,通过自动化工具收集和分析客户反馈,及时调整产品。具体操作步骤如下:
1. 在构思阶段:
- 成立跨部门的项目团队,包括市场、研发、销售等人员。
- 使用Trello创建项目看板,明确各个阶段的任务和责任人。
- 定期召开会议,讨论项目进展和问题。
2. 在客户反馈阶段:
- 部署自动化工具,收集客户在应用内的反馈和评价。
- 使用Graphite等工具对反馈数据进行分析,提取关键信息。
- 根据分析结果,调整产品功能和策略。

10. CD和DevOps未来发展趋势展望

10.1 与新兴技术的融合

随着人工智能、机器学习、区块链等新兴技术的发展,CD和DevOps将与之深度融合。例如,人工智能可以用于自动化测试和故障预测,机器学习可以优化资源分配和性能调优,区块链可以增强软件供应链的安全性。

10.2 云原生技术的推动

云原生技术的兴起,如Kubernetes、Istio等,将进一步推动CD和DevOps的发展。云原生环境提供了更灵活、高效的部署和管理方式,使得CD和DevOps能够更好地发挥作用。

10.3 行业应用的拓展

CD和DevOps将不仅仅局限于软件和互联网行业,还将拓展到金融、医疗、制造业等更多领域。这些行业对软件的质量和交付速度有更高的要求,CD和DevOps的方法能够帮助他们提高竞争力。

11. 总结与行动呼吁

CD和DevOps为企业带来了巨大的变革和机遇。通过终端用户自助服务、移动应用开发与交付以及业务领域的扩展,企业能够提高效率、降低成本、增强客户满意度。在实施过程中,要注重文化、技术和过程的协同发展,不断总结经验,持续改进。

现在,是时候行动起来了。如果你还在犹豫是否要引入CD和DevOps,不妨参考本文中的案例和建议,结合自身的实际情况,制定适合自己的实施计划。拿起笔和纸,记录下你的想法和步骤,开启CD和DevOps的之旅,为企业的未来发展奠定坚实的基础。

下面是一个mermaid流程图,展示了CD和DevOps未来发展的趋势:

graph LR
    A[CD和DevOps现状] --> B[与新兴技术融合]
    A --> C[云原生技术推动]
    A --> D[行业应用拓展]
    B --> E[实现更智能的开发和交付]
    C --> E
    D --> E
    E --> F[提升企业竞争力]

这个流程图展示了CD和DevOps在未来与新兴技术融合、云原生技术推动以及行业应用拓展的趋势下,最终实现更智能的开发和交付,提升企业竞争力的过程。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值