关注留言点赞,带你了解最流行的软件开发知识与最新科技行业趋势。
" Type="normal"SectionTitle="在这篇文章中,我将分享我的指导会议中的一些笔记,这些笔记可以帮助您——DevOps 工程师或平台工程师了解关注的重点。" Type="normal"@@

在过去的几周里,我在我的指导会议上遇到了一些 DevOps 新手或处于职业生涯中期的人,他们有兴趣知道在 2023 年要学什么。DevOps 技能需求量很大,并且需要不断学习使自己与市场需求保持同步。

这篇文章是分享可以帮助你的笔记。首先,让我们看一些基于我的经验和理解的指导。

路线图
在网络技术方面拥有强大的基础

了解 HTTP/2、QUIC 或 HTTP3、第 4 层和第 7 层协议、mTLS、代理、DNS、BGP、负载平衡的工作原理、IP 表、Internet 的工作原理、IP 地址和方案等概念,最后,网络设计。我发现Julia Evans 的博客非常有用,当我需要以简单的方式理解内容时,它是我的首选。她在博客文章和杂志中涵盖了广泛的主题。

掌握操作系统基础知识,尤其是 Linux

由于大多数系统(VM、容器等)都运行Linux,因此从上到下了解这一点很重要。学习调度、systemd 接口、init 系统、cgroups 和命名空间、性能调优,并掌握命令行实用程序 — awk、sed、jq、yq、curl、ssh、OpenSSL 等。从Brendan 的博客学习性能故障排除。

持续集成/持续集成

如果您仍然喜欢 Jenkins,那很好。但是,世界已经转向云原生管道。从概念上讲,这个领域没有太大变化,但您可以查看 Github Actions、Tekton 等。如何更好地发布?了解各种部署策略,例如蓝绿和金丝雀。

容器化和虚拟化

除了流行的 Docker 运行时,尝试 Containerd、Podman 等,并学习如何容器化应用程序、如何实现容器安全以及如何在 Kubernetes 中运行和编排 VM,请参阅 KubeVirt 项目。

容器编排

Kubernetes 现在是运行容器的事实标准。于是网上有很多学习Kubernetes的内容。专注于配置最佳实践、应用程序设计、安全性和调度。设置集群现在变得微不足道了,但是第二天的操作性问题,例如设置、监控、日志记录、CI/CD、扩展集群、成本优化和安全性,是人们可能期望从您那里得到的一些问题。

规模可观察性

大多数工程师都知道 Prometheus Grafana 堆栈或类似堆栈。这一趋势表明,许多组织正在整合他们的 Kubernetes 集群和可观察性,无论是从性能还是成本角度来看,这都是有帮助的。了解 Prometheus 的高级配置和架构以及如何扩展它们。

研究 Thanos、Cortex、VictoriaMetrics、Datadog 和 Loki 等技术。连续分析工具,例如 Parca、periscope、hyper trace 和带有开放遥测的分布式跟踪。Istio 等服务网格是云原生食谱中的流行成分。

平台团队作为产品团队

平台团队的职能越来越像一个集中的产品团队,专注于他们的内部平台客户,如开发人员和测试人员。目标是改进工作方式并为团队带来一些秩序。尝试即兴解决开发人员和 QA 团队面临的问题。

你是其他团队的推动者;与其在中央团队中承担所有工作,不如指导开发团队承担典型的DevOps 职责。这样,您就可以扩展并且不会过度燃烧自己。

安全

在许多小型组织中,安全是二等公民。产品功能得到了更多的优先考虑。但是,由于日益复杂的攻击和各种严格的合规要求,公司正在适应左移安全策略。端到端加密、强大的 RBAC、IAM 策略、治理和审计以及 NIST、CIS 和 ISO27001 等基准的实施很常见。此外,容器安全、Policy as Code、云治理、供应链安全等也是热门话题。

编程

DevOps 或 SRE 的角色现在正在处理开发人员的横切关注点,并创建可以帮助提高他们的生产力同时执行标准的工具。制作高质量的平台组件需要高质量的软件工程实践和技能。

我不能对此施加足够的压力。优秀的组织正在寻找具有良好编程经验的平台工程师。这在站点可靠性工程中也很重要,您需要精通编程,能够阅读、理解和调试他人编写的代码,并在必要时修复它。

Python 和 Golang 是最受欢迎的。但是,我的建议是 Golang,因为它具有强大的并发性、严格的类型检查以及在各种组织和工具链中的采用等特性。由于许多主要项目都是使用 Golang 构建的,因此通过 Python 学习 Golang 是有意义的。

以下是您可以尝试的一些简单操作:

  1. 用您的编程语言编写 CLI。
  2. 学习编写 REST API 并与数据库交互。
  3. 并行性和并发性。
基础架构即代码

Terraform 是项目中的标准。一旦理解了这个概念,就很容易适应任何其他工具,因为它们中的大多数都基于 DSL。

大多数云都以相同的方式工作。因此,如果您熟悉一种云,就可以轻松地与其他云提供商合作。重点关注如何以高度可用、有弹性、安全且经济高效的方式使用云原生组件设计应用程序。

技术写作

你可能想知道为什么我在讨论 DevOps 时要谈论技术写作。很多人对此没有给予足够的重视,但这对于您如何与其他团队沟通和合作非常重要。未来的工作是远程的,电子邮件、闲聊/团队和聊天是与他人交谈和传达想法的主要渠道。

您可能会定期创建诸如运行手册、事后分析、RFC、架构决策记录和软件设计文档等文档。一份清晰、易于理解的文档可以创造奇迹。它可以帮助您节省您和读者的时间并提高整体生产力。建议您阅读这篇文章。

站点可靠性工程

DevOps 和 SRE 之间的界限越来越薄。在某些组织中,同一个人可能同时担任这两种角色。了解 SLI、SLO、错误预算和 SRE 实践背后的概念。每个组织的做法都不同,所以我不建议将别人的文化复制粘贴到你的团队中。参考Google SRE 文化。

结论

就个人而言,我很高兴能在今年跟进。这不是一个确定的列表,因为它会随着时间不断变化。

  1. 服务网格——Istio、Cilium Sidecarless 网格、Tetrate 和 Solo 的 Gloo 网格产品。
  2. 如何提高开发人员的生产力?它是文化、自动化和工具的混合体。
  3. SRE 平台——蜂巢,Last9。
  4. DevPortals——再次与提高生产力和弥合知识差距的动机联系在一起。
  5. 可观察性——开放遥测、超跟踪、Thanos、VictoriaMetrics 和Vector等技术。
  6. 安全——供应链安全、代码签名、加强云安全。
  7. Golang — 改进当前技能。
  8. 无服务器计算和事件驱动架构。
  9. Web3——了解与 DevOps 和基础设施相关的景观。

保持好奇心并不断学习。持续的小规模学习很容易,你可以在全职工作的同时进行。

如果您还有任何疑问,请随时在下方发表评论!