云原生是未来的技术趋势,各大厂商也都在关注云原生技术。了解有关@mikechen 的更多信息。
容器技术
容器技术:将应用程序及其所有依赖项打包到独立的可移植容器中。
每个容器都有自己的文件系统、网络空间和进程空间,以及类似于容器的独立沙箱。
:如下图
集装箱:一种标准化的包装和运输货物的方法,不同的货物可以放置在不同的集装箱中,并且集装箱之间相互隔离。
同样,容器技术提供了标准化的打包格式,使得应用程序可以打包到独立的容器中。
每个容器运行特定的应用程序或服务,并且这些容器相互隔离,可以独立部署、扩展和管理。
容器技术最典型的实现以Docker为代表。
如下所示:
主要解决方案:
1、重量轻
容器是一种轻量级虚拟化解决方案,比传统虚拟机更具资源效率。
原因很简单。容器共享主机操作系统的内核,因此启动速度更快,占用的内存和存储空间更少。
2. 便携性
容器提供了标准化的打包格式,允许应用程序在任何支持容器化的环境中运行,而无需担心环境差异。
这种可移植性使容器成为跨多个云平台和本地环境实施的理想选择。
3. 隔离
每个容器都有自己的文件系统、网络空间和进程空间,彼此完全隔离,容器之间不能互相干扰。
4. 可扩展性
通过使用编排平台(例如Kubernetes)来管理自动容器部署和扩展,您可以根据需求快速增加或减少容器实例的数量。
编排平台
编排平台。它主要用于容器化应用程序的管理、自动化部署、扩展、操作和维护。
编排平台不仅可以根据应用需求自动调度容器实例,还可以帮助应用高效利用资源。
此外,编排平台还可以帮助企业更轻松、高效地管理、运维和维护云原生应用,是实现云原生架构的关键组件。
最流行的编排平台是Kubernetes。
Kubernetes 集群由两个主要部分组成。一个是master节点,一个是node节点。
如下所示:
主节点是Kubernetes 集群的控制平面,负责跨集群管理和调度容器化应用程序。
Node:集群中的工作节点,负责运行容器化应用程序。
Kubernetes通过Master和Node节点的配合,实现集群管理、容器调度、负载均衡、容错、自动化等功能。
服务网格
服务网格:用于管理微服务之间通信的基础设施层。
服务网格主要包括服务和网格以及网络:
如下所示:
服务
在计算机科学中,服务通常是指可以通过网络调用以执行特定任务或提供特定功能的独立软件模块或功能。
服务是微服务架构不可或缺的一部分,每个微服务通常专注于执行单个业务功能并通过网络接口与其他微服务进行通信。
网
网格通常是指组件相互连接形成整体的结构。
在计算机网络中,网格常常用来描述多个节点之间的网络连接形成的复杂结构。
这些节点可以是计算机、服务器、设备或服务实例,每个服务实例可以直接与其他服务实例通信,形成高度互连的结构。
服务网格的第一个代表性示例是Istio。
Istio 提供丰富的流量管理功能,包括路由规则、负载均衡、故障注入、灰度发布、请求重试等。
Istio架构如下图所示:
这主要包括数据平面和控制平面。
数据平面:Istio 中实际处理网络流量并执行各种网络任务的部分。
Istio 由一组部署在每个服务实例旁边的智能代理(通常是Envoy 代理)组成。
控制平面:Istio 的一部分,负责配置和管理整个服务网格。
它由多个组件组成,用于执行服务发现、流量管理、安全控制和策略执行等任务。
简而言之,Istio架构由数据平面和控制平面组成,通过智能代理和多个组件实现服务网格管理和控制。
自动化运维
自动部署:将应用程序或服务自动部署到目标环境的过程。
这可以通过使用持续集成和持续部署(例如CI/CD)工具来自动构建、测试和部署代码来实现,从而加快交付速度并减少人为错误。
CI,整个过程就是持续集成。
持续集成是DevOps 的核心实践,指的是将团队成员所做的代码更改集成到共享代码库中并自动构建和测试它们。
CD,整个过程就是持续交付。
持续交付:DevOps 中的另一个重要实践,指的是将软件持续部署到生产环境中。这包括自动化部署、配置管理、监控和回滚等任务。
本文收录于mikechen的30万+字原文《阿里架构师进阶专题合集》。
原创文章,作者:小条,如若转载,请注明出处:https://www.sudun.com/ask/86582.html