DevOps
常见于各大云计算提供商。DevOpe
被用于打破开发者和运维者之间的壁垒,目的是缩短软件开发周期并提供高质量的持续集成。
DevOps
DevOps is a set of practices that combines software development (Dev) and information-technology operations (Ops) which aims to shorten the systems development life cycle and provide continuous delivery with high software quality. (WikiPedia)
这样的说法很抽象,来看看各个服务商都是怎么描述自家的 DevOps 的吧。
从上面多家云服务商的描述大概可以窥探 DevOps 一二了吧。目前来说,DevOps更多的还停留在理念层面,它使用容器、Kubernetes 和微服务等服务,多提供代码托管、工作流、软件测试、持续交付等功能。越是大型的企业,提供的服务更全面、高级、层次更高。反观国内的提供商还是有一些差距的。
根据文章 《DevOps漫谈之一:DevOps、CI、CD都是什么鬼?》的说法,DevOps是 Development
和 Operations
的组合,是一种方法论,是一组过程、方法与系统的统称,用于促进应用开发、应用运维和质量保障(QA)部门之间的沟通、协作与整合。以期打破传统开发和运营之间的壁垒和鸿沟。
根据另一篇文章《DevOps简介》的说法:
DevOps的一个巨大好处就是可以高效交付,这也正好是它的初衷。Puppet和DevOps Research and Assessment (DORA) 主办了2016年DevOps调查报告,根据全球4600位各IT公司的技术工作者的提交数据统计,得出高效公司平均每年可以完成1460次部署。
与低效组织相比,高效组织的部署频繁200倍,产品投入使用速度快2555倍,服务恢复速度快24倍。在工作内容的时间分配上,低效者要多花22%的时间用在为规划好或者重复工作上,而高效者却可以多花29%的时间用在新的工作上。所以这里的高效不仅仅指公司产出的效率提高,还指员工的工作质量得到提升。
DevOps另外一个好处就是会改善公司组织文化、提高员工的参与感。员工们变得更高效,也更有满足和成就感;调查显示高效员工的雇员净推荐值(eNPS:employee Net Promoter Score)更高,即对公司更加认同。
综上,DevOps 致力于促进开发人员和运维人员的沟通,及时递交需求、完成软件测试、反馈问题、自动化交付。可以免去很多机械化的操作。这么说,作者认为这和 工作流
的理念也有一些像。
工作流(Work Flow)就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。简单地说,工作流就是一系列相互衔接、自动进行的业务活动或任务。我们可以将整个业务过程看作是一条河,其中流过的就是工作流。(MBA 智库)
将一切可流程化的工作流程化,搭建一个高灵活性的工作流平台,将这一平台应用于各个领域,这已成为大势所趋。微软的 Folw,跨平台的 IFTTT,苹果的 捷径
,开源的 N8n 等等工具都在致力于将机械化的工作流水线化,从而提高工作效率。Gis
专业的博主最近也在想,能不能将地信的种种应用做成模版,从而将分析过程简化,降低 Gis
的使用门槛,让更多的人可以使用到。
使用广泛的 git hosting 平台 gitlab 也因其强大的 CI/CD 功能而闻名,实际上在使用 GitLab 时是需要绑定 Google Cloud Platform(GCP) 的 Google Kubernetes Engine 服务进行使用的。其实还有开源可用的 Jenkins 可以作为 CI/CD 的有力工具。
工具众多,开源可用,工作流和持续集成有着众多类似之处,但究竟会怎样还是要实践后才知道。