深入解析云原生技术:一图胜千言的全方位指南

发表时间: 2024-05-09 20:08

云原生是技术的未来大趋势,也是架构必备技能,而且大厂也重点考察,下面我就全面来详解云原生技术@mikechen

容器技术

容器技术:是将应用程序、及其所有依赖项,打包到一个独立的、可移植的容器中。

每个容器都有自己的文件系统、网络空间、和进程空间,就像在一个独立的沙盒中一样,类似集装箱。

如下图所示:

集装箱:是一种标准化的货物包装、和运输方式,不同的货物可以被放置在不同的集装箱中,而集装箱之间是相互隔离的。

类似地,容器技术提供了一种标准化的打包格式,使得应用程序可以被打包成一个个独立的容器。

每个容器中运行一个特定的应用程序、或服务,而这些容器之间是相互隔离的,可以独立部署、扩展和管理。

容器技术的实现,最典型的就是以Docker为代表的。

如下图所示:

主要解决:

1、轻量级

容器是轻量级的虚拟化解决方案,相比传统的虚拟机,它们更加节省资源。

原因很简单,容器共享主机操作系统的内核,因此启动更快、占用更少的内存、和存储空间。

2、可移植性

容器提供了一种标准化的打包格式,使得应用程序可以在任何支持容器化的环境中运行,而无需担心环境的差异性。

这种可移植性,使得容器成为实现跨多个云平台、和本地环境的理想选择。

3、隔离性

每个容器都有自己的文件系统、网络空间和进程空间,相互之间完全隔离,这种隔离性确保了容器之间互不干扰。

4、可扩展性

通过使用编排平台(如:Kubernetes...等),管理容器的自动化部署、和伸缩,可以根据需求快速增加、或减少容器实例数量。

编排平台

编排平台,主要用于:管理、和自动化容器化应用程序的部署、扩展、和运维。

编排平台,不仅可以根据应用程序的需求,自动调度容器实例,还能确保应用程序能够高效地利用资源。

而且,编排平台还能够帮助企业更轻松、高效地管理、和运维云原生应用程序,是实现云原生架构的关键组成部分。

编排平台,最典型的代表就是:Kubernetes 。

一个Kubernetes集群,主要由两部分构成 :一个是master节点、一个是node节点。

如下图所示:

Master 节点是 :Kubernetes 集群的控制平面,负责管理、和调度整个集群中的容器化应用程序。

Node 节点:是集群中的工作节点,负责运行容器化的应用程序。

通过 Master 节点、和 Node 节点的协作,Kubernetes 实现了集群管理、容器调度、负载均衡、容错和自动化...等功能。

服务网格

服务网格:是一种用于管理微服务之间通信的基础设施层。

服务网格,主要会包含:Service(服务)和Mesh(网格),就像下面这张网一样。

如下图所示:

服务(Service)

计算机科学中,服务通常指的是一个独立的软件模块或功能,可以通过网络调用以执行特定的任务、或提供特定的功能。

服务是微服务架构中的一个组成部分,每个微服务通常专注于执行单个业务功能,并通过网络接口,与其他微服务进行通信。

网格(Mesh)

网格通常指的是一种结构,其中的组件相互连接以形成一个整体。

计算机网络中,网格通常用于描述多个节点之间通过网络连接而形成的复杂结构。

这些节点可以是:计算机、服务器、设备或服务实例,其中每个服务实例都可以直接与其他服务实例通信,形成了一种高度互联的结构。

服务网格,最先的代表就是:Istio。

Istio 提供了丰富的流量管理功能,包括:路由规则、负载均衡、故障注入、灰度发布和请求重试等。

Istio架构,如下图所示:

主要会包含:数据平面和控制平面。

数据平面:是 Istio 中负责实际处理网络流量、和执行各种网络任务的部分。

Istio 由一组智能的代理组成,通常是 Envoy 代理,部署在每个服务实例的旁边。

控制平面:是 Istio 中负责配置、和管理整个服务网格的部分。

由多个组件组成,用于执行服务发现、流量管理、安全控制、策略执行等任务。

总之,Istio 架构由数据平面和控制平面组成,通过智能的代理和多个组件来实现服务网格的管理和控制。

自动化运维

自动化部署:是将应用程序、或服务自动化地,部署到目标环境的过程。

这可以通过使用持续集成和持续部署(比如:CI/CD)工具来实现,自动构建、测试和部署代码,从而加快交付速度和减少人为错误。

CI,全程是Continuous Integration,就是持续集成的意思。

持续集成,是 DevOps 中的一个核心实践,指的是将团队成员对代码的修改集成到共享代码库中,并自动进行构建和测试。

CD,全程是Continuous Delivery,就是持续交付。

持续交付:是 DevOps 中的另一个重要实践,指的是将软件持续地部署到生产环境中,这包括:自动化部署、配置管理、监控和回滚等任务。

本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。