小型团队的 4 个 DevOps 技巧
已发表: 2020-02-08想知道如何为小型团队部署 DevOps? 在各种规模的公司中,DevOps 是一个不断发展的战略和执行领域。 它加快了上市时间,实现了更快的推出,并使开发人员、运营经理和客户更加满意。
我们将讨论 DevOps 是什么,大公司如何部署它,以及小公司现在可以收集和部署哪些经验教训和技巧。
什么是 DevOps?
DevOps 是一个很难定义的术语,主要是因为它包含一系列实践。 基本上,为了更好的沟通,DevOps 是两件事的组合:“Dev”代表“开发人员”,“Ops”代表运营。
因此,DevOps 通常是一组代码开发人员和系统运营经理,他们合作打破知识孤岛——本质上是为了确保他们在有效开发和部署代码时始终保持一致。
DevOps 意味着部门之间的有效沟通。 这意味着共同努力为一个部门制定策略,使另一个部门的生活更轻松。 它通常还意味着更多的代码自动化、更小的代码块、源代码控制系统,也许还有更多的会议。
但是没有 DevOps 会发生什么?
为什么需要 DevOps?
传统上,运营经理维护生产环境——即客户和客户与之交互的一切。
另一方面,开发人员在幕后工作,在测试环境中创建代码——一个与生产环境隔离的区域。 理想情况下,此开发环境模拟生产环境以及代码或应用程序在现实世界中的工作方式。
在实践中,这意味着开发人员在他们的气泡中编写代码并将其发送到生产环境中部署,运营经理必须弄清楚如何在集成新代码的同时保持一切正常工作和稳定。 开发人员通常忙于编写新功能,而运营经理则忙于让每个板块都在运转,因此沟通和环境改造的时间很短。
虽然 DevOps 需要一点时间来设置和启动,但其结果可以使任何公司——无论大小——变得更加敏捷和更具竞争力。
大公司的 DevOps
DevOps 对大公司来说是一个灌篮高手。 拥有大量开发人员和足够大的代码库,代码的开发和部署可能是一场巨大的斗争。
大公司有更多的客户。 更多的客户意味着更多的服务器、更多的功能以及更多的网络压力。 这会创建一个更大的代码库,这意味着即使是很小的调整也会在环境中产生级联效应。 而且由于大公司经常尝试推出新功能以保持市场竞争力,因此他们需要开发环境和生产环境保持同步。
Netflix、Amazon 和 Target 等公司已经采用 DevOps 来简化他们的服务。 他们的开发环境与生产环境的集成(以及高度自动化)使 Netflix 和 Amazon每天可以部署数千次。
亚马逊使用持续部署和自动源代码控制系统来自动检查修订,在没有人为干预的情况下完成构建和测试过程。
NASA 采用了类似的系统,结合使用 Amazon 的 AWS 服务和容器化数据系统,使 NASA 数据专家能够以恒定的速度与工程师共享遥测数据和分析。
但这些公司和组织是巨大的。 一个小团队如何才能达到这样的组织和自动化水平? 小型团队的 DevOps 如何在野外工作?
小型团队可以采用的 DevOps 解决方案
小型团队在人员、部门和资源方面的带宽与大型公司不同。 然而,这最终成为一把双刃剑,因为一般来说,较小的团队已经使用了许多 DevOps 解决方案。 即使是无意的。
然而,这并不意味着没有工作可以下降。 目前,只有 25% 的软件行业在高水平上实现 DevOps。
其他 DevOps 工具和策略可以从大公司那里获得并同样有效地使用。
1. 组建 DevOps 团队
如果你没有一个庞大的开发团队,创建一个独立的 DevOps 团队可能是不可能的。 如果你有一个开发人员和一个系统经理,或者这些角色由同一个人担任,那么“团队”的想法甚至会让人觉得很傻。
没关系。 这不一定是关于创建某种工作组——它只是关于沟通。 即使您有一名开发人员和一名 IT 经理,您的 DevOps“团队”形式也可能是每周一次的会议和每日的异步更新,以让彼此了解正在发生的事情。
团队的主要目标应该是使开发环境与生产环境保持一致,更频繁地编写(和部署)较小的代码块,并提高自动化和源代码控制。
让我们谈谈这些事情的含义以及如何实现它们。
2. 调整实践和环境
即使是小型团队也可以通过让开发人员更多地访问生产环境来开始调整他们的环境,即使只是为了监控修订对最终产品的影响。
尝试向您的开发团队提供网络状态的运行提要,即使它只是在角落的监视器上。 他们可以立即看到他们部署的代码可能如何影响流量,或者注意是否有可能是主要问题的突然下降。
您还需要 DevOps 团队制定策略,使开发测试环境和实际生产环境尽可能接近——理想情况下是相同的。 它将涉及大量会议和一个强大的文档项目,不仅要使环境保持一致,而且还要随着时间的推移使它们保持一致。
使这两种环境保持一致意味着运营团队将花费更少的时间来尝试将开发人员代码改造成最终产品的现实。
3. 部署更小的代码块
第三步,跳出大更新的心态。 大型代码修订可能需要数周或数月才能进行测试、批准和部署。 这会减慢功能的推出速度,并且通常会降低您在市场上的竞争力。 在出现新的、令人兴奋的趋势或灾难性问题时,它还会使您变得不那么敏捷。
为贵公司的小团队扩展 DevOps 的关键之一是进入编写更小的代码块并更快地部署它们的心态。 这些应该足够小,以便可以在几个小时内进行测试和实施。
4. 拥抱自动化和源代码控制
小团队成功 DevOps 的最后一条途径是大量使用自动化。
为什么要自动化? 一方面,自动化加快了代码测试和部署。 它还为开发人员和运营经理腾出时间来制定上面列出的 DevOps 策略。 这段额外的时间还可以让您的开发和运营团队专注于改善业务的事情,而不仅仅是扑灭大火。 最后,它提高了文档的效率和准确性,这两者在入职、教育和合规方面都有各自的优点。
您首先需要一些可以帮助您随时构建和测试代码的东西。 像 Jenkins 或 Bitrise 这样的应用程序可以帮助促进持续集成和交付。
然后,您需要一个源代码控制平台来跟踪和管理代码中的修订。 GitHub 和 SourceForge 等平台可以在这里为您提供帮助。
链中的下一步将是一个配置管理系统,以保持全面的一致性和质量。 Chef 或 SaltStack 等工具是很好的起点。
New Relic 创建了一个用于观察所有系统的平台,对于监控这种端到端的代码自动化非常有用。
如果您确实必须快速将整个自动化系统转向新的方向,那么研究动态配置也是一个好主意。
为小型团队和小型组织实施 DevOps
不要担心您的团队或公司太小而无法有效实施 DevOps。 相反,将这些工具视为一张自助餐桌,您可以从中提取组织理念。
没有任何组织,无论其规模如何,都不会因更多的沟通、更多的责任以及更大更细粒度的修订跟踪而受到伤害。