现在基于云平台的许多服务或软件产品不断提到DevOps,那么DevOps和通常意义上的敏捷之间有什么关系呢?
首先敏捷是关于软件开发的过程与模式;DevOps更多是关于软件部署和运维管理;产品管理是关于产品的定义和需求规划。
将创新思维和设计思维结合,设计出满足市场需求的创新产品。
使用某种形式的敏捷软件开发来构建你的产品。
使用DevOps在生产中发布和管理你的产品。
更具体地说,DevOps是补充但不能取代敏捷。
DevOps不会取代敏捷,它非常好地补充了敏捷开发。它通过消除资源浪费和简化部署等方式来实现这一目标,从而实现更快,更持续的生产部署。许多组织都进行敏捷开发、自动化测试和持续交付,但运维人员会说“嘿嘿,你不能跨越那条线。这是我们的领土:你留在你的领地,我们照顾我们的“。
从开发和运维的关系上,可以看看传统软件开发方式和DevOps方式之间的区别:
传统方式:
传统上在软件开发中(无论是瀑布模型还是敏捷方式,敏捷也比较传统),都由“开发团队”来构建软件。
开发团队需要与运维团队进行了大规模的“交接”。运维团队负责执行一系列“部署”活动,将软件代码移至生产环境,并负责维护后续的系统稳定运行。
生产环境的基础设施与开发或测试不同。
需要有额外检查和平衡,以确保它一切功能正常。
部署是由不同的人完成的,运维团队之前从未见过或听说过任何此类软件。
而现在DevOps打破了开发和部署之间的界限:
如果将软件放入“容器” 并且把容器被运送到不同的环境中会怎样?
如果为每个环境简化了检查和测试以及流程,那么直接转向生产该怎么办?
如果自动化了所有测试用例、所有的配置管理,环境管理和发布管理,那么直接launch是否可以?
如果开发团队将代码转移到生产中并在其后继续进行管理,那么运维团队与开发团队形成密切合作会怎么样?
所以,DevOps是敏捷的有效补充,是将运维纳入产品开发过程的思维方式,是敏捷开发方法论的升级。
敏捷将帮助将你的创新思维快速落地;
你需要找到适合的产品/市场,即找出你的想法是否有足够的市场?这需要创新思维。
需要快速落实自己的想法,敏捷开发可以帮你快速迭代。
需要发布,管理和扩展你的想法,DevOps统一了开发和运维,提升了整体效率,缩短了产品TTM时间。
DevOps方法和工具链: