一文带你理解云原生( 二 )


将一个复杂的应用拆分成多个独立自治的服务 , 服务与服务间通过“高内聚低耦合”的形式交互 。
一文带你理解云原生
本文插图
微服务典型架构包括:
服务重构:单体改造成符合业务的微服务架构;
服务注册与发现:微服务模块间的服务生命周期管理;
服务网关:身份认证、路由服务、限流防刷、日志统计;
服务通信:通信技术方案如 , RPC vs REST vs 异步消息;
可靠性:服务优雅降级 , 容灾 , 熔断 , 多副本 。
1.3.2 容器
一文带你理解云原生
本文插图
容器是一种打包应用的方式 , 可以打包应用中的所有软件和软件所依赖的环境 , 并可实现跨平台部署 。
容器关键技术:namespac 视图隔离 , cgroups 资源隔离, Union File System 联合文件系统 。
容器优势:
更高效的利用资源;
更快速的启动时间;
一致性的运行环境 。
1.3.3 容器编排
一文带你理解云原生
本文插图
容器编排包括:自动化管理和协调容器的系统 , 专注于容器的生命周期管理和调度 。
核心功能:
容器调度:依据策略完成容器与母机绑定;
资源管理:CPU、MEM、GPU、Ports、Device;
服务管理:负载均衡、健康检查 。
1.3.4 服务网格
一文带你理解云原生
本文插图
服务网格(Service Mesh)是致力于解决服务间通讯的基础设施层 。
Service Mesh 应对云原生应用的复杂服务拓扑 , 提供可靠的通信传递;
通过一组轻量级网络代理(Sidecar proxy) , 与应用程序代码部署在一起来实现 , 且对应用程序透明 。
Service Mesh 特点:
应用程序间通讯的中间层;
轻量级网络代理 , 应用程序无感知;
解耦应用的重试、监控、追踪、服务发现 。
Service Mesh 主流组件:Istio、MOSN(Modular Open Smart Network)Linkerd 。
1.3.5 不可变基础设施
一文带你理解云原生
本文插图
不可变基础设施(Immutable Infrastructure)(宠物 VS 牲畜)
任何基础设施实例(服务器、容器等各种软硬件)一旦创建之后便成为一种只读状态 , 不可对其进行任何更改;
如果需要修改或升级实例 , 唯一方式是创建一批新实例以替换 。
不可变基础设施的优势
提升发布应用效率;
没有雪花服务器;
快速水平扩展 。
1.3.6 声明式 API