Go 语言工程师如何进阶为云原生高级开发工程师
我们当前正处在云原生时代,有大量的基础设施需要使用云原生技术栈去搭建或者重构,也有大量的业务需要云原生化。因此,行业新增了大量的云原生岗位。因为云原生技术,相较于普通的业务开发,门槛更高、人才更少,所以云原生岗位的薪资普遍处在高位数。
在此背景下,行业及我的周围,有很多开发者想转型云原生开发(尤其是 Go 语言开发者,因为少了语言门槛),那么为什么要进入云原生领域,以及如何进阶为云原生高级开发工程师呢?本文,我来给你详细分析下。
本文主要包含以下 2 个部分:
- 为什么要学习云原生开发?
- 如何进阶为云原生高级开发工程师?
为什么要学习云原生开发?
云原生时代,涌现了一大批的理念,技术架构和开源项目(例如:Docker、Kubernetes、Prometheus 等)。通过走进云原生的圈子,我们可以学习到优秀的开发理念、编程技巧和实现方式,以此反哺我们的 Go 开发能力。
另外,云原生时代,大量的新技术架构、开源项目共同实现云原生的理念,这就导致企业会额外多出很多组件,带来了维护成本。为了节省成本,提高效率,企业通常会选择将这些基础能力下沉,通过中台的形式对外提供各种能力。这些特点也产生了一个新的就业方向:基础架构开发。基础架构开发因为从业者少、门槛高等原因,也导致了,基础架构开发者的薪资普遍要比业务开发者高。
相较于业务开发来说,基础架构开发更聚焦于技术,当然技术最终是要服务于业务的。对于一个刚毕业,或者技术能力需要提升的开发者来说,也许一开始选择基础架构的就业方向会更好,因为通过基础架构开发,开发者能够更好地打磨自己的研发能力,为以后转向业务开发做好技术储备。另外基础架构开发,相较于业务开发来说,跟业务解耦,后期可以无缝转型为业务开发。加入云原生圈子,你的就业范围更广、未来可塑性更强。
当前绝大部分企业内部(例如:BAT、美团、字节跳动、快手等一线大厂),为了降本增效,都在加速推进业务的容器化、云原生化。通过学习云原生技术,你可以加入到云原生改造大军中,进而提高你的职场竞争力。另外,作为容器领域的事实标准,Kubernetes 已经成为后端开发工程师的必修技术栈。
综合以上,学习云原生相关技术,可以带给你更广泛的就业选择,更高的薪资,和未来更多的选择项。因此,作为一名 Go 开发者,一定要去学习云原生技术。
上面说了很多废话,目的只有一个:希望你能坚定的去学习 Go 语言和云原生技术,真的很有价值。既然学习 Go 和云原生技术这么有价值,那么如何学习呢?接下来,我就详细给你介绍下。
如何进阶为云原生高级开发工程师?
在开发者阶段,你通过自己的努力成为一名优秀的 Go 开发工程师之后,可能会遇到职业瓶颈。这时候,你突破瓶颈的的一个行之有效的好方法,便是转型为云原生开发工程师。云原生开发工程师,涉及的面更广,技术更深,这可以使你顺其自然的成为一名优秀的技术架构师。当你进阶为技术架构师之后,你的职业天花板会更高。
想要成为一名高级云原生开发工程师,同样需要经历以下 4 个阶段:
- 学习云原生核心基础知识;
- 学习云原生编程;
- 进行云原生编程实战;
- 精进云原生编程能力。
因为每个阶段的学习方式跟学习 Go 语言一致,里面的具体学习细节,我就不再详细介绍。
阶段一:学习云原生核心基础知识
云原生技术栈内容很多,不可能、也不需要把所有的技术栈都深入学习一遍。在这个阶段,我们可以学习一些基础、核心的技术栈。具体,建议你按顺序学习以下技术栈:
上面这些技术栈,是相对全面的云原生技术栈。你没必要、也没精力都去学完。这里建议你有优先学习微服务、Docker、Kubernetes 这些基石级的云原生技术栈。其他技术栈,你可以后面有时间慢慢补充。每个技术栈,推荐的学习材料如下:
- 微服务:
- Docker:
- Kubernetes:
- Knative:
- Prometheus:
- Jaeger:
- KVM:
- Istio:
- Kafka:《Apache Kafka 源码剖析》
- Etcd:
- Tyk:
- Consul:
- Cilium:
- OpenShift:
其中,Docker、Kubernetes 因为比较重要,建议你根据时间安排,学习 2 本书。
阶段二:学习云原生编程
在阶段一中,我们学习了核心的云原生技术栈,但这些技术栈,并不会教你怎么去进行 Kubernetes 编程。 学习 Kubernetes 编程,最好的方法是学习一门优质的 Kubernetes 编程实战课。当前行业中,优质的 Kubernetes 编程实战课并不多,这里强烈推荐你学习云原生编程实战课程。


