云原生架构学习资料-Kubernetes篇

云原生架构估计是未来十年最主流的应用架构,最早是由Pivotal提出来的。Pivotal的Matt Stine写了一本叫做《迁移到云原生应用架构》的书籍,里面探讨了云原生应用架构的主要特征,包括以下:

符合十二因素应用

面向微服务架构

自服务敏捷架构

基于API的协作

抗脆弱性

十二因素包含的内容也挺多,在这里我们就不一一展开了,想了解的同学搜索一下即可找到相关内容。

后来,Google主导成立了云原生计算基金会CNCF(Cloud Native Computing Foundation),CNCF对云原生的定义包含以下三个方面:

应用容器化

面向微服务架构

应用支持容器的编排调度

那么云原生的设计哲学是怎样的呢?这里我引用宋净超的书籍《云原生应用架构实践手册》里面的内容,其中有关于云原生设计哲学的阐述,如下:

面向分布式设计:容器、微服务、API 驱动的开发;

面向配置设计:一个镜像,多个环境配置;

面向韧性设计:故障容忍和自愈;

面向弹性设计:弹性扩展和对环境变化(负载)做出响应;

面向交付设计:自动拉起,缩短交付时间;

面向性能设计:响应式,并发和资源高效利用;

面向自动化设计:自动化的 DevOps;

面向诊断性设计:集群级别的日志、metric 和追踪;

面向安全性设计:安全端点、API Gateway、端到端加密;

Kubernetes作为CNCF第一个孵化成熟的项目,它的设计思想自然也符合云原生的这些设计理念,并且,它已经成为Docker容器编排系统事实上的标准,同时其目标是改变应用在云上的构建和部署方式。使用Kubernetes的系统一般能达到以下效果:

快速持续部署:主要是因为声明式配置和自治愈系统的特性

可扩展:包括软件系统和开发团队,主要是因为低耦合的设计

抽象基础设施:面向应用的架构设计,使得应用跨基础设施变得容易

高效率:多租户共享集群,开发和测试环境的高效构建

Kubernetes是比较庞大的,在学习的时候,除了看官方文档,可能需要其它一些书籍的辅助,才能更好地理解。在这里我推荐两本电子书,都是英文版的,分别是《Kubernetes: Up and Running》和《Kubernetes in action》,质量都不错,其中第一本的三个作者都是Kubernetes项目的发起者,他们对Kubernetes的理解可能超过其它任何人。如果你找不到这两本书,可以私信我要下载地址。

另外我推荐一下国内在Kubernetes和容器方面有深入研究的张磊老师,他之前写了一本书,叫《Docker-容器与容器云》,后来又开了专栏,专门讲解Kubernetes。他配合专栏出品的Kubernetes架构技能图谱已经在网上公开,因此如果读者中有人需要系统学习Kubernetes的,我觉得可以按照张磊老师的技能图谱去学就挺不错。怎么拿到这张技能图谱呢?可以网上搜索,也可以关注下【技术人成长】公众号,进入到公众号首页,发送文字“技能图谱”即可获取。

微信扫码,进入【技术人成长】社群逛逛。