开发人员社区中流传着大量的DevOps神话。考虑到近年来DevOps概念的流行,这并不奇怪。运维
DevOps是鼓励采用敏捷思惟来提升软件交付过程的速度和质量的实践。在DevOps中,开发团队与运维团队的相互合做,贯穿整个软件生命周期,两者对本身的具体任务负责但并不真正在一块儿工做。机器学习
若是实施得当,DevOps方法能够为组织带来显著的积极影响。它能够下降成本,提升效率,并使开发团队的工做更加精简。为了掌握这个过程的优点,有必要认识到DevOps是什么、不是什么。在本文中,就将讨论一些流传甚广的关于DevOps的一些误解。工具
关于DevOps最大的误解之一是它与CI/CD是一回事。事实上,持续集成和交付只是DevOps生命周期的一环,是Devps的关键组件。性能
DevOps注重团队的文化和责任感,它强调团队中的每一个人都须要参与彼此的任务,这样能够提升团队中的协做和沟通能力。学习
另外一方面,CI/CD经过强调自动化的软件和工具实现了这种沟通的文化,因此能够将CI/CD看做达到DevOps的手段。测试
NoOps的概念描述了云基础设施足够自动化,以致于不须要手动管理。人工智能
NoOps被认为是DevOps的下一个发展模式。与DevOps同样,它的目标是改进软件交付,但容许开发人员专一于应用程序开发,而没必要在基础设施和维护上花费过多精力。spa
经过使用机器学习和人工智能,能够自动化设置、部署和监视过程,从而更接近NoOps。vps
自动化是DevOps提供的最大好处之一,但它不是能够解决全部问题的银弹。生命周期
持续交付过程使团队可以快速推出新功能,而且更快地获得所须要的反馈。固然,这意味着必须确保产品的质量。此外,在扩展时必须考虑到运行状况和性能,还须要确保顺利的生产部署。
自动化CI/CD管道有助于消除代码提交和部署之间的瓶颈。但这只是软件交付过程的一个阶段。除非开发人员和测试人员结成伙伴关系,不然没法解决全部问题,且极可能只会将问题转移到其余流程。
拥有一个适用于全部团队和公司的流程是不可能的,这与广泛的想法相反。每一个组织都有不一样的需求和要求,即便是同一组织中的不一样项目也须要不一样的持续交付管道。
您能够有只须要两到三个环境的项目。例如,频繁部署的开发、测试和生产环境。在软件交付周期中有多个阶段的项目可能就须要更多的环境。
这就是为何持续交付管道应该符合公司已经在使用的发布过程。
关于DevOps的讨论主要集中在公司使用的工具上。而后就变成了关于什么是最好的工具的哲学争论。相反,应该交流关于更大的前景,如DevOps给公司带来的商业价值。
DevOps意味着关注文化、心态以及我的如何协同工做。只有在此以后,才应该为流程选择正确的工具。团队常常在工具的大生态系统中寻找最完美的解决方案。构建DevOps管道的时间很长,一旦完成就应该从新进行。
Atlassian的一项研究代表,成功实施DevOps的两个主要因素是合适的工具和合适的人员。
因为DevOps的优势和灵活性,许多世界领先的公司都采用了它。看着这些公司的成功故事,咱们固然会敬佩他们的成就。但咱们效仿的时候,却忽视了他们的背景和成功的步骤。
有一件事是确定的——这些组织选择并构建了当时最适合他们的工具和流程。这并不必定意味着咱们必定要效仿这些组织。此外,他们所作的不会奇迹般地对咱们的业务也起做用。
咱们应该向他们学习,寻找创新和发展的新途径。探索并找到定义问题空间的正确流程和工具。什么会给咱们的事业带来成功?这就是DevOps的所有内容。
频繁发布的想法让公司担忧他们的软件发布不够连续。“船常”已成为行业标准。可是,这并无指定时间。多是每两到三个星期,也多是一天几回。
最重要的是得到了团队的信心,使您可以在须要的时候发布新软件。CD是一种从主分支发布代码并对其充满信心的能力。DevOps的理念是你的代码应该在任什么时候候均可以发布。
因此请记住,持续交付并不意味着您应该尽量频繁地发布,而是给予想要的频繁发布的能力,而多长时间发布一次应该由公司决定。
但愿这篇文章能帮助你解开一些广为流传的DevOps误解,不要让这种误解阻碍你团队的进步。实施DevOps能够帮助你的公司提升生产力,创造更好的产品,因此不要由于这些DevOps误区而错失良机。