写点什么

DevOps 调查第十年,如何借助工具实现落地?

发布于: 1 小时前

日前,基础设施自动化服务商Puppet发布了2021年DevOps调查报告。这已经是该系列报告发布的第十年,报告显示,在超过 2,650 名 IT、开发和信息安全专业人士之中,有 83%的 IT 决策者表示,他们的组织正在进行 DevOps 实践,以通过更优质的软件、更快的交付、更安全的系统以及系统的理论体系,来释放更高的业务价值。


DevOps,即 Development(开发人员) 和 Operations(运维人员)的组合词。


这是一种重视软件开发人员和运维人员之间沟通合作的开发模式,是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障(QA)部门之间的沟通、协作与整合。关于对 DevOps 的理解,有许多不同答案。亚马逊云科技曾总结称,DevOps 集文化理念、实践和工具于一身,可以提高组织高速交付应用程序和服务的能力,与使用传统软件开发和基础设施管理流程相比,能够帮助组织更快地发展和改进产品。


DevOps 模式

传统的软件开发流程被称为瀑布模型,分为开发、测试、部署三个阶段。软件开发人员先是用数周或数月的时间编程,然后将代码交给测试团队,最后将发布版本交给运维团队部署维护。


现在,随着软件交付周期的缩短,同时为了应对频繁的更改需求,迟缓的瀑布式开发已不能满足各方要求。通常来说,伴随着 DevOps 和敏捷开发,对应的还有两个词 CI 和 CD。CI 是 Continuous Integration(持续集成),CD 对应两个词语,Continuous Delivery(持续交付)和 Continuous Deployment(持续部署)。DevOps 模式下可大幅提高开发团队的工作效率,加快版本更新。不仅如此,产品被更快地交到用户受众,业务团队也能更快得到反馈、进行响应。


在对应用程序发布的影响上,DevOps 有几点突出优势。


一是减少变更范围。与传统的瀑布式开发模型相比,采用敏捷或迭代式开发意味着更频繁的发布、每次发布包含的变化更少。由于部署经常进行,因此每次部署不会对生产系统造成巨大影响,应用程序会以平滑的速率逐渐生长。


二是增强发布协调。靠强有力的发布协调来弥合开发与运维之间的技能鸿沟和沟通鸿沟;采用电子数据表、电话会议、即时消息、企业门户(wiki、sharepoint)等协作工具来确保所有相关人员理解变更的内容并全力合作。


三是自动化。强大的部署自动化手段确保部署任务的可重复性,减少部署出错的可能性。


DevOps 起源

DevOps 是近十年才兴起的开发思潮,其思想萌芽于 2007 年。当时,Petrick Debois 参与了比利时一个大型数据中心迁移项目,负责测试和验证。他需要同时在开发团队(Dev)工作和运维团队(Ops)工作,两个团队截然不同的工作模式使他非常困扰,但同时也给了他新的启发。


2008 年在多伦多敏捷会议上,Petrick Debois 提出“ DevOps”一词。2009 年,第一届 DevOpsDays 会议在比利时根特举行。从此,“ DevOps”一词逐渐传开。2012 年, Puppet 的 Alanna Brown 起草并发布 DevOps 调查报告,此后更多机构参与报告调查,到了 2014 年,他们发现,DevOps 的采用正在加速。


现在,绝大多数的组织都正在引入 DevOps 以应对更复杂的开发需求和环境。 DevOps 已经被视为企业发展的关键。最新的 DevOps 报告发现,它所遇到的大多数团队都高度进化:实现交付代码最快、最频繁、为开发人员提供最紧密反馈循环的团队,这些团队通过使用内部平台来实现诸如用户和服务到服务的身份验证和容器编排等等。


DevOps 工具

正如前文所说,DevOps 集文化理念、实践和工具于一身。现在已经有许多工具可以帮助组织更快速落地 DevOps,下面介绍几款流行工具和平台。


Jenkins 是开源的 CI/CD 服务器,可帮助用户自动化交付流水线的不同阶段。Jenkins 流行的主要原因是其巨大的插件生态系统,它提供 1000 多个插件 ,因此几乎可以和所有 DevOps 工具(从 Docker 到 Puppet)集成。


Git,最流行的 DevOps 工具之一,它是一种分布式 SCM(源码管理)工具。Git 让用户可以跟踪自己开发工作的进度。用户可以保存自己源码的不同版本,并且在需要的时候切回之前的版本。要将 Git 和 DevOps 工作流集成起来,需要维护 repository,团队成员可以向其中 push 各自的工作。


容器平台 Docker 也可以一种重要的 DevOps。使用 Docker 容器,可以在这些自定义环境中开发和部署应用程序,从而不必担心兼容性问题。它将应用程序隔离成单独的容器,因此应用变得更加便携也更为安全。

Docker 应用程序也独立于 OS 以及平台。用户可以使用 Docker 容器代替虚拟机,比如 VirtualBox。


Kubernetes,容器编排工具。使用 Kubernetes,无需将容器化的应用程序绑定到某个单独的机器里。相反,将它部署到一个机器集群里,Kubernetes 会自动化分发并在整个集群里调度容器。


一种开发模式从出现到壮大,究其根本终究会落脚至 “降本增效”,而近期出现在大家视野的,称可实现“十人可抵百人用”的“飞算SoFlu全自动软件工程平台”,则实现了通过可视化编程的方式实现全自动开发、测试、运维,即使用平台的一个 ID 相当于一个 10 人科技团队,输入流程图即可实现自动开发、自动测试、自动运维,人力成本被大大降低,程序员从“重复造轮子”中解放出来,去关注更多的架构设计的事情,而企业用户在降本增效的同时,则可更多地关注自身业务。


据了解,飞算SoFlu全自动软件工程平台的三大核心技术包括:


可视化开发,改变传统开发方法,业务逻辑有可视化展示,降低开发门槛,无需编写代码,在设计业务逻辑时就形成微服务应用;


平台组件,可视化平台组件是一类通用的技术功能模块,平台支持循环条件判断,函数调用,通过拖拽方式以及参数配置实现等同于编写复杂代码的业务逻辑,有别于通过组件排列组合;


管理方式,主要通过管理平台来管理需求、研发、测试、部署、上线、运维等整个软件生命周期,经验沉淀、知识积累,将管理制度真正的落地。


研究下来,飞算SoFlu全自动软件工程平台可称得上是近期比较有亮点的 DevOps 工具了,而可以帮助构建 DevOps 实践的工具还有许多,随着 DevOps 的实施及相应工具的普及,已经有越来越多的团队受益。


Liberty Mutual Insurance 的 DevOps 平台高级总监曾表示,从根本上说,DevOps 使开发人员能够拥有、运行和管理应用程序或软件的端到端交付。其团队部署代码的速度提高了 200 倍,创造了更高的稳定性,使其能够进行更多的实验,并在更快的时间内推出新产品和功能。

用户头像

飞算云智官方账号 2021.08.10 加入

致力于通过“软件工程变革”全面提升企业的软件工程能力

评论

发布
暂无评论
DevOps 调查第十年,如何借助工具实现落地?