本文基于网络和大佬的推荐整理而成,作为个人的学习参考。
云原生基本可以分为云原生运维与安全(运维工程师)、云原生开发工程师(Golang)、云原生架构师、云原生应用开发(广大程序员)等方向。
需要的技术栈:
- 1、容器化;
- 2、CI/CD;
- 3、容器编排与应用部署;
- 4、可观测与分析
- 5、代理,服务发现与服务网格
- 6、网络、网络策略与安全
- 7、分布式数据库与存储
- 8、流式数据与消息
- 9、容器仓库与运行时
- 10、应用分发
- - 云原生应用的DevOps,包括镜像打包、配置、CI/CD、流式数据与消息、存储以及数据库等;
- - 云原生应用的编排与管理,包括了应用编排与调度、服务发现治理、远程调用、API网关以及服务网格;
- - 云原生应用的监控与可观测性,比如云原生应用的状态监控、日志收集、链路追踪以及混沌工程;
- - 云原生的底层技术,比如容器运行时、云原生存储技术、云原生网络技术、云原生安全等。
- - 云原生组件,云原生有着非常丰富的技术产品生态,比如Helm、etcd、Cilium、Prometheus等
各个方向的推荐书籍:
1. 云原生运维架构:
除了需要关注Prometheus、etcd、istio、Terraform等产品的技术文档以及实践外,比较推荐的书籍如下:
- 《基于Kubernetes的云原生DevOps》
- 《Kubernetes in Action》
- 《云原生模式》
- 《Kubernetes设计模式》(Kubernetes Patterns)
- 《Terraform:多云、混合云环境下实现基础设施即代码(第2版)》
SRE还可以阅读一下运维之道、运维解密、工作手册、生存指南,这几本书基本都与Google SRE相关。
2、云原生开发工程师(Golang)
云原生开发工程师除了比较核心的操作系统、网络相关的知识外,还需要掌握云原生时代的“C语言”Golang,同时需要了解Kubernetes编程和源码相关的知识。
- 《Kubernetes编程》(Programming Kubernetes)
- 《Kubernetes源码剖析》
- 《Kubernetes操作器》(Kubernetes Operators)
-
3、云原生应用开发
云原生应用开发一般来说主要是广大程序员的事情,云原生应用并不限于某一门编程语言,无论是Java、Python、Golang、PHP、前端开发等,需要掌握的是Docker与容器化(重点)、Kubernetes基础操作(基本入门就行)、微服务、GitOps等相关的内容,所学内容其实并不多,大部分都是交给工具和平台来搞定。
- 《Docker实战(第2版)》(Docker in Action),清华大学出版社
- 《深入剖析Kubernetes》(其实这是一本入门的书籍)
- 《云原生Java》