devops工程师
全球对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团队和System团队的概念是Scaled Agile Framework(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)在《 有效的DevOps:建立大规模的协作,亲和力和工具文化》中所说的那样,“ DevOps是文化的处方……DevOps致力于寻找采用和创新社会结构,文化和技术的方法。为了更有效地工作。”
这种观念转变推动了数字革命。 行业领导者在DevOps中结合了敏捷和精益方法,以缩短周期时间,从而更好地满足市场需求,从而可以更快,更高效地部署软件。
接下来要读什么
翻译自: https://opensource.com/article/19/2/master-devops-engineer
devops工程师