[转帖]2022年 SRE、DevOps技能图谱

sre,devops,技能,图谱 · 浏览次数 : 0

小编点评

## 思考技术写作的建议 **1. 了解技术写作的边界** * 关注“DevOps”和“SRE”之间的界限 * 学习如何编写技术文章 * 了解如何进行代码写作 **2. 理解技术写作的主题** * 阅读有关“云原生”和“DevOps”的技术文章 * 学习如何编写技术文章 * 了解如何进行代码写作 **3. 了解技术写作的格式** * 了解“SLI”、“SLO”和“错误预算”的概念 * 学习如何编写技术文章 * 了解如何进行代码写作 **4. 了解技术写作的工具** * 学习使用“Ansible Playbooks”、“Salt State”、“Terraform”等工具 * 了解如何编写技术文章 * 了解如何进行代码写作 **5. 阅读一些技术写作的例子** * 阅读“Google SRE文化”的书籍 * 阅读一些关于云原生技术写作的书籍 * 阅读一些关于技术写作的文章 **6. 尝试创作一些技术写作** * 根据所学的知识,尝试创作一些技术写作 * 可以从一些开源工程中学习 * 可以从一些技术文章中学习 **7. 写好一些技术写作** * 可以从一些技术文章中学习 * 可以从一些开源工程中学习 * 可以从一些技术写作中学习 **8. 测试你的写作** * 可以从一些技术写作中学习 * 可以从一些开源工程中学习 * 可以从一些技术写作中学习 **9. 发布你的写作** * 可以从一些技术写作中学习 * 可以从一些开源工程中学习 * 可以从一些技术写作中学习 **10. 不断学习** * 阅读一些关于技术写作的书籍 * 参加一些技术写作的会议 * 从一些技术写作的例子中学习

正文

 

在过去一段时间,我面试过一些 DevOps 相关从业者,并且曾经收到过一些知乎小伙伴的提问,针对于 DevOps 以及相关从业者而言,我个人认为这块的要求是比较高的,因为它对 相关技能 以及 工作经验都有一定要求,并且在落地过程中也需要结合不同 公司的文化 去执行。

而针对于 DevOps 相关从业者技能的要求也很高,需要不断学习,以保持自己与市场需求同步,下面是我根据我的经验和理解列出来的一些关于这个行业的技术技能栈。

(备注:随着技术发展的不断更迭,该技术栈也会不断更新,可添加小编获取最新技术栈)

在网络技术方面有比较扎实的基础

了解基础的 TCP/IP 协议簇相关知识,熟悉常用的 7 层协议以及应用层其他协议,比如 HTTP,HTTP/2,QUIC或HTTP3,mTLS,Proxy,DNS,BGP

熟悉负载均衡的工作原理,Iptables,IP 地址以及网络规划和架构设计相关的知识。

jvns computer-network( )中有一些比较好的计算机网络相关的知识值得我们去深入学习。

在过去的面试中,经常会遇到候选人有过计算机相关的背景或者曾经写过一些 Rest API,但是当提起基础的 TCP/IP 或者 HTTP 协议时,依然有大部分同学无法很顺畅的说出来,我们要知道,在现代技术架构中,任何程序都是需要依附与网络进行的,因此网络相关的基础技术,一定是作为 DevOps 或者 SRE 相关从业者的最基础的必备知识技能。

掌握 Linux 操作系统的基本原理,以及基本命令

在现代技术架构中,大多数操作系统 (虚拟机、容器等) 都运行在 Linux 上,因此从内而外了解 Linux 非常重要。

Linux 系统中,我们至少应该学习调度,systemd 接口,init 系统,cgroups 和 napespaces,性能调优,并掌握命令行实用工具如 awk,dig,sed,tr, jq, yq, curl,ssh,openssl,wc 等等。

在 brendan's blog () 中我们可以学到更多关于 troubleshooting 相关的知识。

诸如:

Linux Performance Observability Tools

Linux Static Performance Tools

Linux Performance Tuning Tools

bpftrace/eBPF Tools

等等。

CI/CD

在过去的研发过程管理中,我们通常习惯使用 Jenkins 来做 持续集成、持续交付、持续部署的平台。

但是,当前随着云原生的发展,以及开始转变成为诸如 ArgoCD, ArgoWorkflow 之类的云原生 CI/CD 引擎。

虽然在整体概念和流程上没有什么太大变化,但是作为云原生相关从业者,你应该熟悉 Github ActionsTektonArgo 等项目,以便于指导我们如何更好的去做持续交付,理解多种部署策略,比如蓝绿部署或者金丝雀部署 (canary)。

容器化和虚拟化

除了流行的 Docker 运行时,还可以尝试 containerd, podman 等。

了解如何容器化应用程序,如何实现容器安全,以及如何在 Kubernetes 中运行和编排虚拟机。

备注:虽然整个云原生更多在讲容器化和 Kubernetes,但是我们不应该忽视虚拟机的存在以及 Kubernetes 的声明式 API 的优势,因此对于 Kubernetes 和 虚拟机的结合,可以适当了解一下 `KubeVirt`` 项目。

容器编排

Kubernetes 现在是容器编排领域的实际的标准,网上有很多学习 Kubernetes 的内容,并且社区在官方文档中也几乎全版本跟进了中文版本,而我们应该更加关注配置最佳实践、应用程序设计、安全性和调度。

对于早期的 Kubernetes 集群初始化是一件很繁琐且复杂的事情,但随着云服务和社区生态的发展,也出现了各种托管的 k8s 集群服务以及一键部署的工具 (比如 kind,k3d,rancher,kubeadm 等)。

然而在集群上的使用,例如配置服务,监控,日志,CI/CD,如何扩展群集,成本优化和安全性是人们可能在容器化后更加迫切期望解决的一些问题,这也是相关从业者可以着重关注的方向,毕竟最难,最复杂的集群初始化动作,各大云厂商已经提供了高可靠、好可用、高性能的云服务。

备注:国内三大云厂商对应的容器引擎服务。

下面这张图,你可以看到 Kubernetes 这座冰山下的细节。

Source: asankov.dev

大规模可观测性

大多数工程师都知道或熟悉 Zabbix, PrometheusGrafanaELK 或者相似的东西。

趋势表明,许多组织正在整合他们的 Kubernetes 集群和可观察性,从性能和成本的角度来看,这是有很大优势的。

因此,了解 Prometheus 的高级配置和体系结构,以及如何扩展它们变得更加重要,你需要了解或者熟悉诸如 ThanosCortexVictoriaMetricsDatadog 和 Loki 等技术,持续分析工具如 Parcahypertrace 以及基于 OpenTelemetry 的分布式追踪技术。

像 Istio 这样的服务网格是云原生生态中很受欢迎的成分,但是对于大部分的业务场景而言,过早的引入服务网格也可能会导致架构更加复杂。

平台团队要作为产品团队

平台团队的功能正变得更像一个集中的产品团队,专注于其内部平台客户,如开发人员和测试人员。

我们的目标是优化工作方式,改善整个工作流程,为团队带来一些秩序,因此试着在 开发人员和 QA 团队面临的问题上尽可能多做事情,也就是 职责左移 的问题,不论是作为 DevOps 还是 SRE 从业者,我们都应该往前一步去考虑我们服务对象的需求和痛点。

安全

在许多中小型企业组织中,安全是二等公民,通常在一开始,整个产研团队只会考虑产品特性是否得到满足。

但是,由于越来越复杂的攻击和各种严格的合规要求,公司正在适应左移安全策略,比如端到端加密、RBAC、IAM 策略、治理和审计,以及 NIST、CIS、ISO27001 等基准的实现都很常见。

容器安全、Policy as Code、云治理和供应链安全 都是当前比较热门的话题。

编程

DevOps 或 SRE 角色现在承担了开发人员的辅助运营角色,他们开发工具系统,在执行标准的同时帮助提高开发同学的生产力。

众所周知的是,编写高质量的平台组件需要良好的软件工程实践和技能,对此,我暂时没有办法给出更好的建议,因为,好的组织正在寻找有编程经验的平台工程师,就如同我个人一样,只能在已有的环境尝试使用更多 Coding 的方式去完成工作。

然而编程能力对于 SRE 而言更重要,因为你需要娴熟的编程,能够阅读,理解和调试别人写的代码,如果有必要还需要修复它。

Python 和 Golang 是最受欢迎的,我的建议是 Golang,因为它并发性、严格的类型检查、各类公司的采用、工具链以及许多大型项目都是用 Golang 构建的。

建议开始阶段,可以从如下几个方向着手:

  • 使用 Golang 开始重构之前的 shell 或者 python 脚本,做可移植、可跨平台的命令行工具
  • 编写简单 Rest API 工具,尝试从 数据库中读写数据

Infrastructure as Code

基础设施即代码是整个云原生过程中,比较普遍的认知。

而 Terraform 目前已经形成 IaC 中的一个标准,一旦理解了这个概念,就很容易适应任何其他工具,因为大多数工具都是基于 DSL 的。

你应当熟悉诸如 Ansible playbooksSalt StateTerraform 以及 Pulumi 等开源软件。

Cloud

云原生时代,所有的基础设施以及技术都将依赖于云技术。

大多数云都以同样的方式工作,因此,如果你非常了解某个云,就可以轻松地与其他云提供商合作,关注如何以高可用性、高弹性、安全且低成本的方式使用云原生组件设计应用程序。

技术写作

你可能想知道为什么我在讨论 DevOps 时谈论技术写作。

许多人对此没有足够的关注,包括我自己曾经也一样,但实际上技术写作对于自己整体知识体系的回归以及梳理都是非常重要的,并且对于你如何与其他团队进行交流和合作非常重要。

实际上,在工作中我们可能需要大量的依赖技术写作来满足工作需求,比如你可能会创建诸如 快速开始事后分析RFCs架构决策记录和软件设计文档等文档。

一份清晰易懂的技术文章可能创造奇迹,它可以帮助你节省你和读者的时间,提高整体效率。

作为一个普通的技术从业者,如何成为一个好的写手,推荐可以阅读以下该文章:

站点可靠性工程

DevOps 和 SRE 之间的界限越来越模糊,在一些组织中,同一个人可能同时扮演两个角色。

理解 SLISLO 和 错误预算和 SRE 实践背后的概念。

每个组织的做法都不一样,所以我不建议把别人的文化复制粘贴到你的团队中,这部分参考 谷歌SRE 文化。

Google SRE: 

总结

就我个人而言,我可能对云原生的很多方向会比较感兴趣,并且会持续研究和跟进,以下是一些方向以值得探索的开源工程。

与[转帖]2022年 SRE、DevOps技能图谱相似的内容:

[转帖]2022年 SRE、DevOps技能图谱

https://zhuanlan.zhihu.com/p/568752990 在过去一段时间,我面试过一些 DevOps 相关从业者,并且曾经收到过一些知乎小伙伴的提问,针对于 DevOps 以及相关从业者而言,我个人认为这块的要求是比较高的,因为它对 相关技能 以及 工作经验都有一定要求,并且在落

[转帖]2022年中国动力电池报告

https://aijishu.com/a/1060000000380014 在新的一年里面,我们会从这个年度总结报告开始,把中国动力电池的一些信息进一步实现可视化。通过具体的量能数据信息来把不同数据源的信息进行比对和分析,结合锂解团队做的一些内容,给大家呈现更好内容。 ●摘要:◎动力电池总产量 5

[转帖]SQL Server 2022 正式发布,支持 Azure 最多的 SQL Server 版本!

https://www.modb.pro/db/559467 SQLSERVER 最新版 2022年11月16日,我们宣布正式发布 SQL Server 2022,这是迄今为止支持 Azure 最多的 SQL Server 版本,并在性能、安全性和可用性方面不断创新。这标志着 SQL Server

[转帖]Windows Server 2022 简体中文版、英文版下载 (updated Oct 2022)

https://sysin.org/blog/windows-server-2022/ Windows Server 2022 正式版,2022 年 10 月更新,VLSC Posted by sysin on 2022-10-27 Estimated Reading Time 8 Minutes

[转帖]编译安装goofys挂载Scaleway免费75G对象存储

日常•2022年5月29日 goofys编译 goofys是一个开源的使用Go编写的s3存储桶挂载工具,主打高性能。由于使用Go编写,没有用到什么特别的依赖,自己编译也很容易。截止2022.5.27,官方github仓库貌似一直有提交,但是提供的预编译安装包貌似只到2020年4月,而且只有x86版本

[转帖]博睿数据披露2022年半年报 实现营收6255.04万元

https://baijiahao.baidu.com/s?id=1742458714721254460&wfr=spider&for=pc 8月26日,A股上市公司博睿数据(代码:688229.SH)发布2022年半年度业绩报告。 2022年1月1日-2022年6月30日,公司实现营业收入6255

[转帖]一些关于屁股的想法

作者是 Dante 发布于 2022年3月15日 in 杂项, 职场. 哦,不要想歪了,这里说的屁股,是“屁股决定脑袋”里的屁股。觉得不好听的话,可以翻译成:立场决定观点。 其实我们都是自己屁股的代言人。 不过,我从来也没觉得这个是不好的事情。作为一家公司,一个集体,我们是多元化的,只有其中的每一个

[转帖]PXE服务器配置

PXE服务器配置 荣涛 2022年1月25日 文档修改日志 日期修改内容修改人备注2022年1月25日创建荣涛2022年1月26日PXE BIOS/UEFI荣涛2022年1月27日Kickstart荣涛2022年2月11日补充荣涛 引言 PXE(预启动执行环境,在操作系统之前运行)是由Intel公司

[转帖]《中国服务器操作系统市场研究报告》发布,欧拉系产品整体装机量 102 万,多个行业市场占有率第一

https://blog.51cto.com/u_15127420/5121279 ​ 2022年3月17日,由赛迪顾问编写的《中国服务器操作系统市场研究报告》正式发布。 操作系统是管理计算机硬件与软件资源的程序,同时也是计算机系统的核心与基石。现阶段,市场中的服务器操作系统主要有物理机、HostO

[转帖]SUSE Euler Linux 2.0 正式发布

https://blog.51cto.com/u_15127420/5592039 2022 年 6 月 16 日,SUSE 正式发布 SUSE Euler Linux 2.0。它是基于 openEuler 22.03 LTS 构建的企业级 Linux 操作系统,完全由中国团队打造,能够为中国本土企