Lummo公司首席软件工程师Anjul Sahu分享了其指导课程中的一些笔记,这些笔记可以帮助DevOps工程师了解DevOps在2022年的发展路线图。
Sahu表示,他在辅导课程中遇到了一些DevOps新手或者处在职业生涯中期的开发人员,他们希望知道在2022年需要学习什么。DevOps技能需求量很大,并且需要不断学习让自己的技能与市场需求保持同步。
这篇文章根据Sahu的经验和理解来提供一些指导。
2022年DevOps的发展路线图
(1)在网络技术方面具有根本优势
了解HTTP/2、QUIC或HTTP3、第4层和第7层协议、mTL、代理、DNS、BGP等概念,负载均衡的工作原理、IP表、互联网的工作原理、IP地址和方案,最后是网络设计。
(2)掌握操作系统基础知识,尤其是Linux
由于大多数系统(虚拟机和容器等)都运行Linux,因此从上到下了解这一点很重要。学习调度、systemd接口、init系统、cgroup和命名空间、性能调优,并掌握命令行实用程序——awk、sed、jq、yq、curl、ssh、OpenSSL等,从Brendan的博客中学习性能故障排除。
(3)持续集成(CI)/持续交付(CD)
世界已经转向云原生管道。从概念上讲,这个领域没有太大变化,但可以看看Github操作、Tekton等。如何更好地发布?了解各种部署策略,例如蓝绿测试和金丝雀测试。
(4)容器化和虚拟化
了解流行的Docker如何运行,尝试采用Containerd、Podman,了解如何容器化应用程序、如何实现容器的安全性、如何在Kubernetes中运行和编排虚拟机。
(5)容器编排
Kubernetes现在是运行容器的事实上的标准。网上有很多学习Kubernetes的内容。专注于配置最佳实践、应用程序设计、安全性和调度。设置集群现在变得简单,但面临操作性问题,例如设置、监控、日志记录、CI/CD、如何扩展集群、成本优化和安全性,这些可能是期望解决的一些问题。
(6)大规模可观察性
大多数工程师都知道Prometheus Grafana堆栈或类似堆栈。这一趋势表明,从性能和成本的角度来看,许多企业正在整合他们的Kubernetes集群和可观察性,这很有帮助。了解Prometheus的高级配置和架构,以及如何扩展它们。
研究Thanos、Cortex、VictoriaMetrics、Datadog和Loki等技术。连续分析工具,例如Parca、periscope、超跟踪和具有开放遥测的分布式跟踪。Istio等服务网格是云原生领域中的流行成分。
(7)平台团队作为产品团队
平台团队的作用越来越像一个集中的产品团队,专注于他们内部平台的客户提供服务,例如开发人员和测试人员。其目标是改善工作方式,并为团队带来一些秩序。尝试解决开发人员和质量保证(QA)团队面临的问题。
开发人员是其他团队的推动者,指导开发团队承担典型的DevOps职责,而不是在一个中心团队中承担所有工作,这样就可以扩大规模。
(8)安全性
在许多小型企业中,安全性并没有处在首要地位。产品功能被赋予了更多的优先权。但是,由于越来越复杂的网络攻击和各种严格的合规要求,企业正在适应左移安全策略。端到端加密、强大的RBAC、IAM策略、治理和审计、NIST、CIS、ISO27001等基准的实施很常见。容器安全、策略即代码、云治理和供应链安全是热门话题。
(9)编程
DevOps或站点可靠性工程(SRE)现在的角色是处理开发人员的跨领域问题,并创建工具,在执行标准的同时帮助提高他们的生产力。制作高质量的平台组件需要良好的软件工程实践和技能。
优秀的企业正在寻找具有良好编程经验的平台工程师。这在站点可靠性工程中也很重要,开发人员需要精通编程,能够阅读、理解和调试他人编写的代码,并在必要时对其进行修复。
Python和Golang是最流行的。Golang具有强大的并发性、严格的类型检查、在各种组织中采用、工具链以及许多主要项目都是使用Golang构建的特性,因此通过Python学习是有意义的。
用户可以尝试一些简单的事情:
- 用编程语言编写CLI。
- 学习编写RESTAPI并与数据库交互。
- 并行性和并发性。
(10)基础设施即代码
Terraform是项目中的标准。一旦理解了这个概念,就很容易适应任何其他工具,因为它们中的大多数都是基于DSL的。
(11)云计算
大多数云计算以相同的方式工作。因此,如果熟悉一种云平台,企业可以轻松地与其他云计算提供商合作。专注于如何以高度可用、弹性、安全且经济高效的方式使用云原生组件设计应用程序。
(12)技术写作
人们可能想知道为什么在讨论DevOps时要谈论技术写作。很多人对此并没有给予足够的重视,但这对于企业如何与其他团队进行沟通和合作非常重要。工作的未来发展是远程的,因此电子邮件、聊天是与他人交谈和传达想法的主要渠道。
开发团队需要定期创建诸如运行手册、事后分析、RFC、架构决策记录和软件设计文档等文档。而一个清晰、易于理解的文档会创造奇迹。它可以帮助企业节省其读者的时间,并提高整体生产力。
(13)现场可靠性工程师
DevOps和现场可靠性工程师之间的界限越来越模糊。在某些企业中,同一个人可能同时担任这两个角色。了解SLI、SLO和错误预算以及SRE实践背后的概念。每个企业的做法都不一样,所以不建议将其他人的文化复制粘贴到团队中。
结论
以下并不是一个确定的列表,因为它会随着时间而变化。
- Service Mesh——Istio、Cilium Sidecarless网格、Tetrate和Solo的Gloo网格产品。
- 如何提高开发人员的生产力?它是文化、自动化和工具的混合体。
- SRE平台——honeycomb,Last9。
- DevPortals——再次与提高生产力和弥合知识差距的动机相关联。
- 可观察性——诸如开放遥测、hypertrace、Thanos、VictoriaMetrics、Vector等技术。
- 安全——供应链安全、代码签名、加强云安全。
- Golang——提高当前技能。
- 无服务器计算和事件驱动架构。
- Web3——了解与DevOps和基础架构相关的环境。