全球对DevOps专业人员的需求不断增长,他们是精通软件开发和运维的IT专业人士。 事实上,Linux基金会的开源工作报告将DevOps列为最受欢迎的技能,并且DevOps的职业机会在全球范围内蓬勃发展。
DevOps的主要重点是通过减少痛苦的交接和增加协作来弥合开发和运维团队之间的差距。 这并非通过让开发人员处理运维任务或让系统管理员处理开发任务来实现。 相反,这两个角色都被一个单一的角色DevOps所取代,该角色在一个合作团队中工作。 正如Dave Zwieback在DevOps Hiring中所写,“拥抱DevOps的组织需要那些自然会抵制组织孤岛的人。”
如果您想了解更多关于DevOps的信息,这里有一些文章可以激发您的兴趣
DevOps工程的5个基础
在DevOps角色中工作需要的不仅仅是您在系统管理员或开发人员中看到的传统技能组合。 在凤凰项目:关于IT、DevOps和帮助您的企业获胜的小说中,Gene Kim、Kevin Behr和George Spafford介绍了DevOps实践核心的“三步工作法”
-
精益流动,重点关注整个系统的性能,以加速从开发到运维再到客户的工作交付
-
反馈循环,以创建更安全的工作系统
-
持续学习和实验,以在日常活动中培养高度信任的文化和组织改进的科学方法
由此产生了DevOps工程的五个基础,您需要掌握这些基础才能在DevOps中取得成功。
1. 精益和敏捷
DevOps工程师理解软件开发的运维方面应与每个其他项目相关的任务或功能具有相同的优先级。 在这种环境中取得成功的最佳方法是培养开发和运维团队之间强大的协作文化。 更多地了解精益、系统思考和敏捷开发可能有助于这种协作。 DevOps团队和系统团队的概念是规模化敏捷框架 (SAFe)不可或缺的一部分。 向系统和DevOps团队赋予共同责任也有助于建立高性能团队。
2. 持续集成和持续交付
CI/CD 软件工程实践是实现敏捷性的基本工具。 它们使软件变更能够更频繁地到达生产环境,这大大增加了客户体验增量变更并提供反馈的机会。 这种反馈对于快节奏的敏捷软件交付至关重要。
持续集成: CI 指的是“构建和测试”过程工作流程,其目标是确保中断的变更不会影响其他开发人员或用户。 这是通过将软件变更组装到类生产系统中,然后像用户/客户一样对其进行试用(集成),并(持续)为每个变更重复此过程来实现的。 CI 使团队能够朝着不断变化的目标快速构建软件。 根据项目的不同,可能会有多个 CI 工作。 您最终可能会得到不同的框架、实现或测试。 为您的团队制定一套基本规则是一个好习惯。
持续交付: CD 定义了发布过程以及打包和部署工作流程,其中的关键方面是防止任何中断的变更被交付或发布。
最好的情况是,每次成功的集成都可以以最少的人工干预到达生产环境,在这种情况下,整个生命周期都是自动化的
- 构建和基础设施应该是确定性和可重复的
- 发布步骤应该是自动化的
- 变更应在其自己的环境中进行测试
这些版本通常称为发布候选版本; 此时,发布已经打包、测试并部署在测试环境中,只需要人工干预来决定是否将特定的发布候选版本推送到最终生产环境。
结合 CI/CD 实践会产生变革性的结果,因为软件变更会更频繁地到达生产环境。
3. DevSecOps
过去,安全性被隔离在开发过程最后阶段的特定团队中。 修复生产后漏洞的成本远高于在设计、需求识别和架构阶段修复漏洞的成本。
DevSecOps 意味着安全性必须集成到整个周期中。 安全性必须从一开始就存在于应用程序和基础设施中; 这可以通过在安全的CD管道中自动化安全测试来实现。
自动化安全测试是DevSecOps的关键,因为在管道中运行手动安全检查可能非常耗时。 DevSecOps通过在代码审查、自动化应用程序测试、教育和安全设计模式的使用中自动化安全测试,确保“安全设计”原则。
另一方面,安全交付管道将六个重要组件集成到DevOps方法中
- 代码分析
- 变更管理
- 合规性监控
- 线程调查
- 漏洞评估
- 安全培训
如果做得正确,这将产生显着的收益; 主要是安全团队的敏捷性、源代码中漏洞的早期识别、成本降低和恢复速度。
有关更多信息,请下载DevOps安全开源指南。
4. 基础设施即代码
简而言之,基础设施即代码 (IaC) 使 DevOps 成为可能。 它是DevOps实践的重要组成部分,并在与CD结合使用时发挥重要作用。 它的主要好处之一是能够基于特定版本的源代码自动再现环境,从而消除了通常通过手动流程执行的基础设施管理和维护,手动流程可能容易出错且难以跟踪。
后者是IaC经常被纳入自动化主题(涉及手动流程的自动化)的主要原因,但它不仅限于此。 专家经常将以下内容列为 IaC 的最佳实践
- 基础设施使用与DevOps工程师用于源代码相同的版本控制进行管理,这大大有助于跟踪变更。 因此,IaC模型每次部署时都会生成相同的基础设施环境,类似于应用程序的相同源代码生成相同的二进制文件的方式。
- 所有基础设施变更都可以以单元测试、功能测试和集成测试的形式进行测试。
- 源代码描述了基础设施状态,因此避免了创建不必要的文档。 特别是,这实现了开发人员和运维人员之间的协作。
5. 监控和可观测性
监控回答诸如“系统健康状况良好吗?”之类的问题,而可观测性则深入挖掘系统的行为以进行调试,尤其是在某些东西无法正常工作时。 这种组合在DevOps中也起着重要作用,使其更容易检测和解决问题并保持持续改进。 它是日志记录和指标的演变,其中监控旨在收集日志,而可观测性允许收集信息。
DevOps实践的特殊性质,即持续集成和交付新版本的基础设施和应用程序代码,使得监控和可观测性成为使系统更可靠、更易于管理和排除故障的基本方面。
DevOps是一种文化
虽然市场上有许多DevOps工具,它们可以帮助您简化开发和部署过程,但成为优秀的DevOps工程师的基线是专注于基础。 DevOps需要改变旧实践的思维模式; 这可能很棘手,因为DevOps不是特定的框架或工作流程——DevOps是一种文化。
或者,正如Jennifer Davis和Ryn Daniels在Effective DevOps: Building a Culture of Collaboration, Affinity, and Tooling at Scale中所说,“DevOps是文化的处方……DevOps是关于寻找方法来共同采用和创新社会结构、文化和技术,以便更有效地工作。”
这种思维模式的转变推动了数字化革命。 行业领导者将敏捷和精益方法与DevOps相结合,以缩短周期时间,从而更好地满足市场对更快、更高效地部署软件的需求。
评论已关闭。