什么是云原生
云原生以容器、微服务、DevOps,持续交付等技术为基础建立的一套云技术产品体系。这是一种新型技术体系,是云计算未来的发展方向。从1999年到2024年,本地部署和市场云化此消彼长,企业上云的速度随着虚拟化等技术的发展大大加快,未来可能将成为各大企业的一项基础能力。所以作为一名刚入行或资深的工程师,我觉得都应该对云原生相关的概念和技术了解,提升自己的核心竞争力。
如何从零开始学习云原生
云原生技术体系非常的庞大,我们可能经常听到docker,k8s(kubernetes)等相关的名词,其实并不止于此。
先来看一张图:
这是来自CNCF(原生计算基金会)的云原生全景图,链接:landscape.cncf.io/,这里描述了云原生相关领域的项目,主要还是围绕着容器编排,治理,监控等建立起来的生态,全景图已经包含了云原生应用所关联的方方面面,可以给我们一个学习的方向与指示。
但是大家也不要害怕,看到这么多密密麻麻的项目,大家也不用对每个项目都进行深入的研究,毕竟如果能研究并实现出其中一个项目就已经很牛逼了。但是如果只是为了了解基本的概念那就更简单了。
学习路线
1. 了解云计算基础概念:
云原生是建立在云计算基础上的,因此首先需要对云计算的基本概念、服务模型(如IaaS、PaaS、SaaS)和部署模型(如公有云、私有云、混合云)有基本了解。
kubernetes
云原生中最重要的就是Kubernetes,简称k8s。所以我们的学习核心就是k8s,根据k8s辐射到云原生学习的其他领域,k8s可以说是云原生时代的操作系统,内部的设计是非常的复杂,每一个设计都有他运用的领域,我们可以先尝试去理解里面的一些基本概念,比如Node,Pod,Service等资源对象,慢慢的去了解k8s的网络原理,存储原理,核心组件的运行机制,k8s的拓展等等深入的知识。
推荐一些学习k8s资源:
- 可以在线学习k8s的网站:www.katacoda.com/courses/kub...
- k8s的新华字典:Kubernetes权威指南
- 七牛云团队的k8s书籍:Kubernetes in Action
- CNCF 官方大使张磊的教学:time.geekbang.org/colum
2. 学习容器技术:
云原生应用通常以容器的形式进行部署和管理。学习Docker等容器技术,了解容器的基本原理、使用方法和常见工具。掌握如何创建、运行和管理容器化应用。
推荐学习资料:
- Docker技术入门与实战,学习下一些docker的操作命令,知道如何去操作镜像,打包镜像等即可
- container-runtime
3. 掌握容器编排工具:
容器编排工具用于管理和编排多个容器组成的应用程序。学习Kubernetes这样的容器编排工具,了解集群管理、服务发现、负载均衡、自动伸缩等核心概念和操作。
推荐学习资料:
-coordination-service-discovery
4. 代理网关:
云原生应用通常采用微服务架构,将应用拆分为一组小型、独立部署的服务。学习微服务架构的原理、设计模式、通信方式和治理方法。了解如何构建、测试和部署微服务应用。
5. 熟悉持续集成和持续部署(CI/CD):
云原生应用的开发和交付通常采用CI/CD流程。学习CI/CD的概念、工具和实践,包括源代码管理、自动化构建、测试和部署等方面。
6. 服务注册发现
k8s的数据都存储在etcd中,甚至还能自己服务注册与服务发现,我们需要了解一下服务注册,服务发现,配置中心,注册中心等相关的内容
7. 分布式存储
云原生存储脱胎于云存储,除云存储的特性外、须满足具备云原生生态系统中其他所有组件具备相同的动态(公共云/专有云/混合云等场景)构建可扩展应用、S3 API 驱动、K8S友好等
8. 可观测性
云原生观测可以采集系统提供的任何数据------日志、调用链、度量或事件,并允许团队在全部堆栈(基础设施、应用、业务)中检测和纠正问题。云原生观测还在适当的上下文中提供数据,而且它让企业掌握了采集数据的控制权
9. 学习云原生基础设施:
云原生应用的部署和管理依赖于云原生基础设施,如云原生存储、网络和监控。了解云原生基础设施的概念、特性和常用技术,如云原生存储系统、服务网格等,我们需要对其都有一定了解。
记住,云原生是一个广阔而复杂的领域,需要时间和实践来逐步掌握。坚持学习、实践和不断提升是成为云原生专业人员的关键。