DevOps工具链

这篇文章不是用来阐述DevOps的实践方法,仅仅是阐述一些我对DevOps的一些想法。

首先DevOps是一种持续集成、统一环境以及尽早发现问题的思想。工具链只是这种思想的一种体现。文化方面DevOps希望开发人员与运营人员能够以更开放的心态提高沟通的效率,尽快的解决潜在的问题。另外,由于DevOps会涉及人力与物力的投入,实施时最好能自上而下的推行。

DevOps需要开发人员与运维人员尽可能多的掌握技术栈。技术栈的薄弱会给构建工具链的过程带来负担。比较常见的一种实现方式是开发人员通过第三方提供的工具链把运维的活全包了。这么做的缺陷是开发人员需要不断试错持续的改进系统;好处是极大的降低了沟通成本。开发人员可以想到什么就做什么。在时间和成本允许的情况下,可以通过迭代来不断的完善这个系统。先跑起来再说。

严格的讲,很少有开发人员能够完整的掌握一种开发语言的所有功能与特性。技术人员应该对精通有极致的追求,然而实际是产品线使用的工具链实际上仅仅是涉及技术与框架的一个子集。一个产品线的开发、运维人员应该尽可能的对这个技术栈集合进行同步掌握。过于保守会导致被动迂回的面对问题;而过于激进会导致

按需构建,想好在做。如果不想把精力与资源浪费在过度工程,就不应该过早的对流水线进行设计。各部门协作一段时间后自然会形成相应的工作流。这时根据实际情况去构建与改良当前工作流的收益可能会比较高。

金字塔不是一天建成的,相比传统的人肉运维,DevOps会节约大量人力,但DevOps系统本身也是需要维护的。经济条件允许的话,选择主流的第三方进行托管也是一种中庸的选择。

最后,DevOps工具链不是必须的。小规模团队中,良好的管理与协作意识也是可以达到相同的效果。DevOps工具链的实质是通过技术进行约束与管理,避免人为主官随意的将不稳定因素引入体系。