陈小宝 发表于 2020-8-10 16:36:43

把Dev和Ops放在一起就是Devops了吗?

本帖最后由 陈小宝 于 2020-8-10 16:43 编辑

什么是DevOps?

DevOps(英文Development和Operations的缩写组合)是一组过程、方法与系统的统称 ,用于在应用和服务的生命周期中破除部门壁垒,促进开发、运营和质量部门之间的沟通、协作与整合。在 DevOps 模式下,开发团队和运营团队在整个生命周期(从开发测试到部署再到运营)内相互协作,QA 和安全团队也会与开发和运营工作更紧密地结合在一起。进而实现:

[*]持续整合CI:从开发到运维和支持的轻松切换
[*]持续部署CD:连续高频发布,或尽可能经常的发布
[*]持续反馈:在应用和服务生命周期的各个阶段寻求来自利益相关者的反馈

DevOps自2008年提出,2012年开始被业界认可, 企业接受度从2015年的66%增至2016年的74%。DevOps报告称,软件部署速度提高200倍,部署频率提高30倍,变更成功率提高60倍,创新时间多出30%。DevOps从管理方法论和工程方案上都已经很完整,引入企业需要自上而下的文化转变自下而上的实践支撑贯穿中间的工程落地。
要深入地理解这个概念,首先要明确参与DevOps的人员是谁?答:开发团队 & IT运维团队.
其次DevOps的意图是什么?答:在两个团队之间,建立良好的沟通和协作,更快更可靠地创建高质量软件。
事实上,并不是这两个团队之间的协作帮助交付了更好的软件,而是“开发”和“运维”团队之间的统一导致了软件的改进,并以更快的速度交付。我们不要忘记DevOps工具在实现自动化方面所扮演的角色。
DevOps 团队结构

开发和运维“一体”的感觉是由开发人员和操作工程师之间的技能组合和实践的桥接以及自动化(DevOps)工具的实现引起的。世界各地的大型互联网公司已采用DevOps方法来彻底改进其性能,安全性和团队动态。组织中任何 DevOps 工作的主要目标都是改进客户和业务的价值交付,而不是降低成本、提升自动化或者通过配置管理驱动一切;这意味着,为了实现有效的 Dev 和 Ops 协同,不同的组织可能需要不同的团队结构。
一个经典的Devops案例

Facebook曾向遍布全球的数亿用户推出了一系列新功能——时间轴、推荐、音乐功能。发布后Facebook上产生的巨大流量导致服务器崩溃。推出的功能获得了用户的大规模超常规响应,这导致了新功能产生了不可控的结果,使他们没有预料到。这导致了Facebook重新评估和战略调整,从而使Facebook推出了暗启动技术。使用DevOps原则,Facebook为其新版本的发布创建了以下方法。
Facebook暗启动技术
暗启动是在新功能完全发布给所有用户之前,逐步将新功能,推广到选定的一组用户的过程。这允许开发团队尽早获得用户反馈,测试错误,并且还可以测试基础架构性能。这种发布方法是持续交付的直接结果,有助于实现更快,更迭代的版本,确保应用程序性能不会受到影响,并且用户可以很好地更新该版本。




在暗启动技术中,新功能通过专用的部署管道发布给小型用户群。在上面给出的Facebook暗启动图表中,您可以看到只打开了一个部署管道,将新功能部署到一组选定用户。此时剩余的数百条管道全部关闭。
持续监视部署功能的特定用户群,以收集反馈并识别错误。这些错误和反馈将被纳入开发,测试和部署在同一用户群中,直到功能变得稳定。一旦实现稳定性,通过启用其他部署管道,将逐步在其他用户群上部署这些功能。
Facebook通过将代码包装在功能标记或功能切换中来实现此目的,该切换用于控制谁可以看到新功能以及何时查看。与此同时,模拟向用户启动代码的全部效果,在向用户开放全部功能之前,可以及早的 应用程序基础架构的痛点和区域,功能稳定后,将通过多个版本将其部署到其余用户。
通过这种方式,Facebook拥有一个受控或稳定的机制,可以为其庞大的用户群开发新功能。相反,如果功能没有得到很好的响应,他们可以选择完全回滚部署。这也帮助他们为部署准备服务器,因为他们可以预测网站上的用户活动,并相应地扩展服务器。上面给出的图表描述了Facebook的暗启动过程。(上海信息化培训中心SITC[)

页: [1]
查看完整版本: 把Dev和Ops放在一起就是Devops了吗?