2020年DevOps成功的8篇必读文章

通过我们今年最受欢迎的八篇DevOps文章,快速了解DevOps。
125 位读者喜欢这篇文章。
Brick wall between two people, a developer and an operations manager

我是一个狂热的读者,但我有时会非常忙碌,以至于很难找到时间跟上我的阅读清单。即使在最忙的时候, 我也会尽量了解DevOps新闻,因为这是我关注的领域之一。

在这里,我总结了Opensource.com今年发布的八篇顶级DevOps文章的关键要点,即使您没有时间阅读所有文章,也可以增加您的知识。由于DevOps是关于人、流程和工具的,因此我围绕这些主题对前八篇文章进行了分类。

人员

DevOps思维模式的5个基本价值观

关于IT问题和解决方案的对话通常侧重于技术或工具。但通常,人员和流程比技术和工具更难且更重要。在DevOps思维模式的5个基本价值观中,Brent Aaron Reed和Willy-Peter Schaub概述了建立正确流程和聘请合适人员的基础。

  • 与利益相关者(客户、业务团队、合作伙伴等)建立持续的反馈循环。确保变更的理由是正确的,并且它们使所有利益相关者受益。
  • 流程应持续改进。拥有可重复的框架和流程是好的,但要寻找使其更好的方法。
  • 不要用新的孤岛取代现有的孤岛。团队合作至关重要;更改团队名称或创建新团队无济于事。您应该努力打破孤岛,而不是创建具有新名称的新孤岛。
  • 您的主要利益相关者是客户。组织中的每个部门都需要协同工作,以确保满足客户的需求。
  • 学习是会传染的。当您学习新知识时,与他人分享。

从系统管理员到DevOps工程师的转型案例

从系统管理员 (sysadmin) 到 DevOps 工程师的飞跃需要转变您的思维模式并学习新的工具和技术。在从系统管理员到DevOps工程师的转型案例中,通讯员 Taz Brown介绍了这种经验以及如果您正在考虑担任DevOps工程师角色时应该做的事情。

  • 学习一种脚本语言,如 Python、Perl、Bash 或 Powershell。您不需要成为专家;学习基础知识,并随着时间的推移积累您的技能。
  • 进行战略性思考,并考虑您的日常任务对业务的影响。
  • 学习一种编程语言,如 Ruby、Go 或 Python。
  • 了解 CI/CD 管道以及如何在管道中自动化任务。
  • 熟悉配置和编排工具。
  • 学习常用的 Git 命令以及版本控制的基础知识。

流程

不要在生产环境中测试?在生产环境中测试!

在生产环境中测试的概念是一个棘手的问题,但Ann Marie Fred在不要在生产环境中测试?在生产环境中测试!中对此进行了很好的阐述。从历史上看,从安全性、合规性和风险管理的角度来看,开发、测试和生产系统被区别对待。如果生产系统中的数据损坏,风险远高于测试环境中发生的情况。

在生产环境中测试既有优点也有缺点。大多数缺点都归结为风险和合规性问题,例如数据损坏或泄漏、意外的副作用和系统过载。许多优点可以归为两类:改善用户体验 (UX) 和获得关于您的架构的新知识。改善用户体验包括可用性测试、用户体验研究、真实用户监控、金丝雀测试和回归测试等。在生产环境中测试还可以通过运行 A/B 测试、实验、混沌工程和故障转移测试来帮助您更多地了解您的环境。

通过在生产环境中测试,您可以获得在其他情况下无法获得的关于质量、性能、可用性、弹性、用户体验和变更的反馈。对真实数据进行测试可以揭示您在使用模拟或测试数据时看不到的东西。您应该在生产环境中进行测试,但在开始之前,请先建立机制以确保系统安全并最大程度地降低风险。

  • 在开始在生产环境中测试之前,使用自动化测试彻底测试所有系统。
  • 审查与错误查找日相关的风险,并从一开始就设置适当的防护措施。
  • 遵循混沌工程的原则:提前计划;控制爆炸半径;扩展或抑制。

是的,在生产环境中进行测试存在风险,但您可以通过适当的保护措施将其降至最低。

实现大规模DevOps的8项原则

流程是成功的DevOps计划的重要方面。最重要的是构建适合您组织的流程,而不是复制在其他地方有效的方法。Matthieu Fronton在实现大规模DevOps的8项原则中列出的指南确保您将实施专注于您的业务需求的策略。

  • 团队会创建孤岛。与其建立DevOps团队,不如创建一个由高技能和多元化成员组成的DevOps任务组。其目标是帮助其他项目和部门识别缓慢的流程、自动化流程、提高性能并确保有效性。
  • 减少在协作和同步任务时的开销。公开状态更新和团队可用性,通过将所有内容放入共享协作工具中使工作可见,并一次处理一项任务以避免上下文切换。
  • 寻求外部帮助;聘请一位敏捷教练作为您的倡导者。
  • 安排关于所需工作技能的定期团队培训,范围从软技能到如何使用特定工具。
  • 授权团队做出自己的决定并从错误中吸取教训。
  • 拥抱不确定性。失败会发生,因此进行无责的事后分析,并确定下次如何改进和减少不确定性。
  • DevOps是关于人员、流程和工具的。它不仅仅是关于产品的技术实施。
  • 始终保持学习。及时了解DevOps领域的趋势。

小规模Scrum与大规模Scrum

小规模Scrum与大规模Scrum中,Agnieszka Gancarczyk分享了她对54份关于敏捷采用的早期调查回复的分析。

  • 96%的人在分布式团队中工作,认为Scrum原则有助于他们降低开发复杂性,并相信敏捷有助于他们项目的成功。
  • 最受欢迎的迭代周期是三周(62%)。
  • 参与者在需要时会在他们的项目中承担额外的角色,例如业务分析师、项目经理和质量工程师。在更换角色时,他们平均会损失一到两个小时。
  • 大多数团队没有“就绪”的定义,以确保用户故事是可操作的、可测试的和清晰的。
  • 当任务复杂时,参与者会寻求帮助和指导。

Scrum vs. Kanban:哪种敏捷框架更好?

敏捷是迭代开发和持续反馈的过程。虽然Scrum和Kanban都被归类为敏捷框架,但它们并不是同一回事。在Scrum vs. Kanban:哪种敏捷框架更好?中,Taz Brown探讨了两者之间的差异。

Kanban是一种敏捷框架,它利用可视化方法通过预设步骤管理项目的创建,重点是步骤之间的持续流动。任务可以进行颜色编码,以识别不同类型的任务。在制品限制可用于限制单个阶段允许的最大工作项数量。目标是一目了然地看到进度和瓶颈。任何团队(不仅仅是软件开发人员)都可以使用看板方法。

Scrum的目标是创建一个可交付的产品。Scrum包括每日站会、计划、评审、回顾以及两到四周的节奏。由于其目标是交付产品,因此Scrum主要由软件开发团队使用。

选择哪种方法最适合您取决于您组织的状态、团队、团队中的人员以及最终产品或服务。

工具

使用DevOps管道自动化用户验收测试

用户验收测试 (UAT) 确定系统是否满足用户需求、业务需求和授权实体需求。每当应用程序中有新设计时,都需要运行这些测试,这就是为什么自动化它们如此有价值的原因。在使用DevOps管道自动化用户验收测试中,Daniel Oh 分享了如何跳过手动验证测试用例并使用 Selenium 自动化它们。

您可以使用 Selenium 构建 WebDriver 脚本以编程方式执行测试用例,然后通过将 Selenium 工具与您的 DevOps 管道集成来自动化它们。

使用开源工具构建DevOps管道的初学者指南

最好留在最后,Bryant Son 的使用开源工具构建DevOps管道的初学者指南是对 DevOps 工具的一个关键类别:持续集成/持续部署 (CI/CD) 管道的全面概述。CI/CD 管道是将代码和配置从存储库中取出并将其移动到生产环境的过程。

Bryant 描述了典型 CI/CD 管道中的一些工具。

  • 像 Jenkins 这样的 CI/CD 工具与许多不同的服务和工具对话,以配置和编排它们。
  • 源代码管理 (SCM) 将代码存储在存储库中,对代码进行版本控制,并促进与项目成员的协作。(CI/CD 可以自动化团队成员之间源代码的签入和签出。)
  • 构建自动化工具编译源代码并从中创建可部署的软件包格式。
  • Web 应用程序服务器是可执行文件将被部署的位置,以便可以使用该应用程序。
  • 代码测试覆盖率尽早捕获错误并确保用户对应用程序感到满意。代码测试框架帮助编写测试,代码质量建议工具帮助提高代码质量。

2020年更多内容

Opensource.com 2019年最广泛阅读的DevOps文章涵盖了人员、流程和工具等广泛主题。我们感谢这些作者分享他们的知识,我期待在2020年阅读更多他们的文章。

您希望我们在未来几个月内涵盖哪些DevOps主题?欢迎留下评论,或者更好的是,提交文章提案

User profile image.
Dawn Parzych (@dparzych) 是 LaunchDarkly 的开发者营销经理,她运用自己的讲故事能力来撰写和谈论技术与心理学的交叉点。她喜欢帮助人们在工作和生活中更成功。她使技术信息易于理解,尽可能避免使用流行语和行话。

评论已关闭。

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.