不会飞的章鱼

熟能生巧,勤能补拙;念念不忘,必有回响。

云原生训练营_如何系统学习云原生技术

什么是云原生

  • 在包括公有云、私有云、混合云等动态环境中构建和运行规模化应用的能力。
  • 云原生是一种思想,是技术、企业管理方法的集合。

技术层面:

  • 应用程序从设计之初就为在云上运行而做好准备。
  • 云平台基于自动化体系。

流程层面:

  • 基于 DevOps, CI/CD。

基于多种手段

  • 应用容器化封装;
  • 服务网格;
  • 不可变基础架构;
  • 声明式 API。

云原生的意义

  • 提升系统的适应性、可管理性、可观察性;
  • 使工程师能以最小成本进行频繁和可预测的系统变更。
  • 提升速度和效率,助力业务成长,缩短 I2M(Idea to Market)。

云原生核心项目概览

学习建议

  • 云原生中基础架构的部分是计算机领域最复杂的领域之一,学习云原生是突破自我的机会!
  • 云原生涉及到的知识面很广,不懂的概念不用急于求成,反复训练可强化理解。
  • 实践出真知,多听,多学,多练。

持续学习是一个不同重复的 Loop

学习方法

  • 多动手:试试看,怎么用。
  • 看理论:读博客,理解背后的技术总结。看代码,理解真实实现,总结出自己的理解。
  • 理思路:不断的总结,把别人的东西变成自己的东西。分享是让你快速提升的手段。
  • 有取舍
  • 自我驱动:兴趣很重要。使命感。

举例:kube-proxy 是干啥用的?

第一步:官方文档

看官方文档,没有太多收获:

https://kubernetes.io/docs/concepts/overview/components/

kube-proxy uses the operating system packet filtering layer if there is one and it’s available. Otherwise, kube-proxy forwards the traffic itself.

第二步:看看前人是怎么解读的?

  • 搜中文文档,知乎,CSDN,简书都有比较高质量的文章,可以多看一些文档,并理解不同人的理解差异。
  • 随便找了一篇zhihu专栏。
    https://zhuanlan.zhihu.com/p/337806843

第三步:找关键知识点

  • 先对大概的框架有认识

  • 负载均衡

  • kube-proxy 监听 API server 中 资源对象的变化情况,包括以下三种:
    service
    endpoint/endpointslices
    node

  • 目前 Kube-proxy 支持4中代理模式:
    userspace
    iptables
    ipvs
    kernelspace(windows)

第四步:由点到面稍稍展开一下

  • 入门:可以使用,知道怎么用,大概做了什么。
  • 初级:粗略理解配置方法。
  • 高级:理解不同模式的差异,理解为什么要有多种模式,理解配置细节。
  • 专家级:理解完整的内核协议栈处理数据包的流程,能够举一反三。

如何学习云原生技术

代码驱动

  • 掌握 Go 语言编程能力

从点到面

学习容器技术

  • cgroup、namespace
  • 网络协议栈
  • 文件系统

抓住核心掌控全局

深入理解 Kubernetes

  • API 定义
  • 控制器模式
  • 核心组件

大规模生产化

  • 多集群
  • 服务网格和多网格

多重视角

管理员角度:

  • 如何构建和运维支持生产化作业的多租户集群。
  • 如何应对规模化所带来的挑战。

研发人员角度:

  • 如何将不同类型应用的接入到容器化平台。
  • 理解如何保证应用的服务可用性。

不同角色如何做好协同,避免出现生产故障。

------ 本文结束------
如果本篇文章对你有帮助,可以给作者加个鸡腿~(*^__^*),感谢鼓励与支持!