从敏捷死了到Devops死了

项目管理领域正在不断快速演进发展,从“敏捷死了,持续交付永存”到“Devops死了,serverless永存”,这些新的概念不断涌现,本文试图简单梳理一下其中缘由。

敏捷死了,持续交付永存
来自Gradle的MikoAgile is Dead, Long Live Continuous Delivery,他认为敏捷Agile一词已经没有意义了,多年来被滥用,这也是为什么要抛弃它的原因,许多开发团队找不到更好的词语,只好使用“敏捷”这个词语,某些方面是作为缺乏可见性 缺乏计划性的借口,而很多个人并没有阅读敏捷宣言,也没有在大规模软件的软件运作的深入经验,因此,当这个词失去意义时,是时候和它说再见了。

"现在敏捷死了,"他继续说,"我们要看看有多少人会来参加敏捷的葬礼。",敏捷基本是叛逆方法的集合,敏捷诞生是为了要推翻暴政的瀑布式软件开发。但瀑布开发已经在许多年前死去了,而以叛逆为核心的敏捷没有产生预期的自由。

那么Miko 建议我们向哪个方向前进呢?

持续交付Continuous Delivery (CD)似乎是下一个方向,CD并不指定方法,也没有宣言规定之类,只要你知道关键是:你在尽可能以一种持续方式进行交付软件,这就让团队从敏捷原则和方法中解放出来,从而为同一个目标真正去努力行动。而敏捷正变成一种宗教式的权威运动,导致高代价的one-size-fits-all方案,也就是试图用一条裤子让所有人都能穿。

敏捷和CD之间区别是:产生这种两者区别的重要原因是工具,敏捷工具主要集中在人类自身的生产化管理上,比如Trello卡片之类等等,而持久交付CD则是DevOps的敲门砖。

现在已经远远被DevOps改变,我们正处于微服务、移动优先Mobile first, 多语种Polyglot, post-Java JVM 语言, GitHub, Docker 和软件通吃的时代。开源运动正在统治世界,如果你不能与开源组件共同前进,你将僵化和死去,就不能正常交付软件,这种状态称为 “Build Hell构建地狱”。

自动化工具已经完全不同了,比如Jenkins, Gradle, Docker, Chef, Puppet 和 Salt 能够激活自动化交付软件方式,让大型团队高速扩展软件开发规模,测试也已经自动化。请问敏捷在哪里?人都不需要参加了,全部自动化了,针对人类自身管理的敏捷就没有存在必要,皮之不存,毛将焉付?


DevOps将被ServerLess杀手
当Miko指出DevOps自动化已经替代人类自身敏捷管理以后,Arthur Cole指出Managed services killed DevOps,可管理的服务也就是Servless架构真正替代DevOps,他认为:为了实现DevOps自动化交付,企业在软件生产之前需要大量投资于DevOps的基础设施与运营层,这就生长出一个新的成本中心,如同建立一个新的工厂,需要大量买入新的生产设备一样,而新的基于云的服务托管,注意不是服务器托管,已经可以解决这些麻烦,实现自由应用,并提供没有内部成本和复杂性的基于服务的应用开发模式。

基于Web的DevOps已经逐步替代过去内部自己建立DevOps,随着移动设备、可穿戴设备和物联网IoT等加入企业基础设施,走向大规模发展已经是必然之路,包括应用开发和部署交付方式,而新的“webby” DevOps工具集在加速 压缩和优化系统方面显得笨重,现在已经有自动化工具提供了分布式架构管理的灵活性。在这种方式下,业务配置和应用逻辑终于可以驻留在一个地方,识别性能问题或实施更改应用程序时候对于系统运营管理不再是剑拔弩张了。

不管DevOps在内部还是在互联网上,游戏还是一样玩:将代码在不担心质量情况下更快推向用户。与其等待内部DevOps团队解决各种小问题,为什么不教会开发人员使用云上的各种设施工具?比如QA等。在持续交付中,DevOps已经成为不必要。

Serverless架构意味无维护,Serverless不代表完全去除服务器,而是代表去除有关对服务器运行状态的关心和担心,它们是否在工作,应用是否跑起来正常运行等等。Serverless代表的是你不要关心运营维护问题。有了Serverless,可以几乎无需Devops了。

相关参考:
Servless架构

[该贴被banq于2016-05-22 08:42修改过]