4种微服务部署模式全解析(图解对比方案)

4种微服务部署模式全解析(图解对比方案)

微服务部署是微服务非常重要的环节,下面详解4种常见的微服务部署模式@mikechen

微服务容器化部署

容器化部署,将微服务封装进容器镜像,每个微服务打包成独立的容器(如Docker)。

 

4种微服务部署模式全解析(图解对比方案)

轻量级隔离指的是容器在操作系统层面,实现资源隔离和环境封装,而不是像虚拟机那样在硬件层面进行完全的虚拟化。

容器不包含完整的操作系统内核,而是与宿主机(物理机或虚拟机)共享同一个Linux内核。

这意味着所有容器都运行在同一个内核之上,减少了内存占用。

并且,容器通过一系列Linux内核技术(主要是:NamespaceCgroups)。

来隔离每个容器的用户空间,让每个容器看起来拥有一个独立的运行环境。

这种机制使得容器在提供足够隔离性的同时,避免了虚拟机带来的巨大资源开销。

实现了更快的启动速度、更高的资源利用率和更好的可移植性,这正是容器技术大行其道的关键原因。

 

微服务多实例部署

微服务多实例部署:也就是每个微服务运行在独立进程中,通过物理机、或虚拟机部署多实例。

整体部署架构,如下图所示:

4种微服务部署模式全解析(图解对比方案)

采用这种部署模式,依赖配置中心 + 注册中心实现服务发现…等等。

用户请求
   ↓
负载均衡(如LVS)
   ↓
多个物理机 / 虚拟机
   ↓
服务A(独立部署)服务B(独立部署)

优点很多,比如:高度隔离,故障影响范围小,易于扩展单个服务,安全性高…等等。

缺点也是很致命,就是资源利用率低(浪费),以及部署和维护成本高。

比较适合:传统企业向微服务转型的初期探索,对隔离性要求极高、资源充足的场景。

 

微服务Serverless部署

微服务Serverless部署:采用服务按需运行,无需关心服务器/容器,事件触发即运行。

底层资源由云厂商管理(如 AWS Lambda、阿里云函数计算)…等等。

 

4种微服务部署模式全解析(图解对比方案)

用户请求/事件触发
   ↓
Serverless 网关
   ↓
函数服务(FunctionA、FunctionB)

采用这种模式,极致的运维简化,而且,成本效益高(按实际使用付费)。

高度弹性伸缩,应对突发流量能力强,适合:流量波动大、任务驱动…等等业务场景。

但是,这种模式的缺点也是致命,就是必须绑定服务商。

 

微服务K8S编排部署

使用K8s作为容器编排平台,自动调度、扩容、滚动升级

微服务部署为 Pod,统一接入 Service、Ingress、ConfigMap 等组件。

4种微服务部署模式全解析(图解对比方案)

用户请求
   ↓
Ingress 网关
   ↓
K8s Service
   ↓
Pod(服务A)Pod(服务B)Pod(服务C)

采用这种部署模式,自动化高、扩展性强、支持大规模服务编排。

适合:电商平台、社交媒体:,面对海量用户和突发流量,需要各个模块(用户、订单、支付、商品等)独立伸缩,K8S 能够完美支持。

但是,对团队的运维能力要求更高,需要具备容器化、网络、存储和分布式系统等方面的专业知识。

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧