摘要:这是微服务部署的基础模式,在这种模式下,每个微服务实例,直接部署在独立的物理机(裸机)或虚拟机(VM)上。
大家好,我是mikechen。
微服务线上部署是微服务非常重要的环节,下面我就重点来详解微服务线上部署@mikechen
文章来源:mikechen.cc
微服务多实例部署
这是微服务部署的基础模式,在这种模式下,每个微服务实例,直接部署在独立的物理机(裸机)或虚拟机(VM)上。
如下图所示:
直接在物理服务器上安装操作系统和运行环境,然后部署微服务应用。
部署方式,比如:手动上传包 + 脚本启动。
环境隔离,通过不同端口、或多台服务器隔离。
这种方式提供了最高的性能、和资源利用率,但管理和维护成本也最高。
容器化部署(Docker)
容器化是当前微服务部署的主流方式,其中Docker是事实上的标准。
它将应用程序及其所有依赖项(代码、运行时、系统工具、库等),打包到一个轻量级、可移植的容器镜像中。
整体部署架构,如下图所示:
使用Dockerfile定义应用的构建过程,创建Docker镜像。
将镜像推送到Docker Hub、Harbor等容器镜像仓库。
每个微服务打包为一个 Docker 镜像,运行在 Docker 容器中,实现跨平台、环境一致的快速部署。
解决“在我电脑能跑”的问题,快速部署、秒级启动,并且,易于扩容、支持版本回滚。
几乎所有微服务项目,是走向云原生和自动化部署的第一步。
微服务无服务部署
Serverless(无服务器)部署,是一种云原生的部署模式。
可以让开发者关注代码逻辑,无需关心底层服务器的运维。
部署方式,直接上传代码或镜像,云平台自动托管。
整体部署架构,如下图所示:
无需管理服务器,开发者专注编写代码,平台负责所有基础设施。
云服务商,负责所有服务器的配置、维护、扩容和缩容。
适合:快速上线、极简部署流程,高弹性场景。
Kubernetes 编排部署
基于容器编排平台 Kubernetes,将服务以 Pod 形式运行,自动完成调度、扩缩容、滚动升级、负载均衡等。
Pod,是K8s中最小的部署单元,通常包含一个、或多个紧密关联的容器。
整体部署架构,如下图所示:
Kubernetes(K8s)是目前容器编排领域的事实标准,它解决了大规模容器化部署中的复杂管理问题。
K8s提供了一个平台,用于自动化部署、扩展和管理容器化的应用程序。
K8s微服务部署,适用 中大型微服务项目,以及,对自动化、弹性伸缩、高可用性。
具备一定DevOps能力的企业,是当前企业级微服务部署的首选。
以上
本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。
来源:小雨看科技