云原生架构

80 阅读2分钟

**关键词:**微服务,分布式,服务注册中心,容器,非功能性代码剥离,自动化,sring cloud,dubbo

诞生背景

传统开发模式特点:

1. 独占硬件资源运行,造成资源浪费。(微服务化)

2. 基础建设重复开发,高维护成本。(基于云原生的通用能力)

3. 开发、测试和运维之间信息阻塞,造成开发效率低下。(devOps)

定义

基于云原生技术的一组架构原则和设计模式的集合,旨在将大量非功能性代码最大化剥离,由云设施接管非功能特性。

原则

1. 服务化:基于高内聚低耦合原则,按照业务域对服务进行拆分,各个服务独立开发、部署,提高系统的稳定性和复用性。

2. 弹性:基于容器技术进行部署,实现IT资源的自动扩缩容。

3. 可观测:分布式系统带来了一系列运维复杂性。主动通过日志、链路跟踪和度量手段,使得一次请求在各个服务间的调用链路清晰可见。

4. 自动化:基于自动化工具实现交付和运维的自动化。

5. 零信任:认证、授权。

6. 韧性:高可用。手段包括:限流、降级、熔断、异地多活、主从模式、阔区域容灾。

7. 持续演进

关联技术

容器

docker基于操作系统虚拟化技术,共享操作内核,提升系统的部署密度和弹性。k8s在容器编排方面,成为分布式资源调度和自动化运维的行业标准。

微服务

对系统按照业务域进行拆分,各服务服务独立研发部署,支持水平扩展和冗余部署。提升了扩展性和稳定性、复用性。

微服务横向关系

可发现性:

通过引入第三方服务注册中心,达到如下的目的:当服务发生变化,比如扩容,发布,下线的时候,依赖他的其它服务在不重新启动的前提下,可以感知到服务状态的变化。

可交互性

通过远程调用协议、元数据中心存储服务的元数据信息等手段,使得服务之间了解如何调用彼此。