微服务部署技术详解(4大主流部署)

微服务部署技术详解(4大主流部署)-mikechen

微服务是大型架构的基石,下面详解微服务部署@mikechen

微服务多实例部署

在虚拟机或物理机上,每个微服务作为一个独立的进程运行,可通过部署多个实例实现横向扩展。

微服务部署技术详解(4大主流部署)-mikechen

比如:订单服务部署 3 个实例,分别运行在 3 台虚拟机上。

upstream order_service {
    server 10.0.0.1:8080;
    server 10.0.0.2:8080;
    server 10.0.0.3:8080;
}
server {
    listen 80;
    location /order/ {
        proxy_pass http://order_service;
    }
}

部署简单,易于理解,传统企业迁移微服务时常用。

但是,扩缩容速度慢,不利于高频次变更与短时弹性需求。

 

微服务容器化部署

容器化部署以 Docker 等容器技术为核心,将微服务打包为轻量级、可移植的容器。

运行在宿主机的容器运行时上,也可以在单机、或多主机环境通过自定义编排脚本启动容器。

微服务部署技术详解(4大主流部署)-mikechen

[宿主机] 
 ├── [订单服务容器 1] 
 ├── [订单服务容器 2]
 └── [用户服务容器]

一次构建,到处运行;资源隔离性好,启动速度快。

但是,容器数量多时,需要额外的编排与管理工具。

 

微服务容器编排部署

当微服务数量达到数十个甚至上百个时,手动管理 Docker 容器集群是不可行的。

Kubernetes (K8s) 是事实上的容器编排标准,它负责容器的自动部署、弹性伸缩、自愈能力和负载均衡。

微服务部署技术详解(4大主流部署)-mikechen

[K8s Node1] ── Pod(Order)
[K8s Node2] ── Pod(Order)
[K8s Node3] ── Pod(User)
        │
   [K8s Service]
        │
   [Ingress / API Gateway]

自动化程度高,具备自愈能力、弹性伸缩能力,适合大规模微服务集群。

但是,学习曲线高,集群搭建与维护复杂。

微服务Serverless部署

无服务器部署,将运行时和基础设施管理交给云厂商或平台服务,开发者只需关心函数或服务逻辑。

微服务部署技术详解(4大主流部署)-mikechen

无需管理底层服务器,自动伸缩与高可用由平台负责。

适合:流量波动大,闲时流量低,需要极致的按需付费。

mikechen睿哥

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

评论交流
    说说你的看法