企业应用中微服务架构的应用与实践
1. 容器与 Docker
微服务具有不依赖运行环境的优势,可在繁忙节点和空闲节点间自由迁移,实现更好的负载均衡和硬件资源利用。然而,当需要将遗留软件与新模块混合,或使用不同开发栈实现各模块时,不同微服务的软硬件需求差异会成为问题。此时,可将每个微服务及其依赖部署在私有虚拟机上,恢复其与托管环境的独立性。
但启动带有操作系统副本的虚拟机耗时较长,而微服务需快速启停以降低负载均衡和故障恢复成本。此外,为每个微服务实例添加完整的操作系统副本会带来过多开销。
幸运的是,微服务可借助更轻量级的容器技术。容器提供了轻量级、高效的虚拟化形式,与传统虚拟机不同,它在操作系统文件系统层面进行虚拟化,依赖主机操作系统内核。容器使用主机的操作系统(内核、DLL 和驱动程序),并利用操作系统的原生特性隔离进程和资源,为运行的镜像创建隔离环境。
容器虽与特定操作系统相关,但避免了在每个实例中复制和启动整个操作系统的开销。在每个主机上,容器由运行时处理,负责从镜像创建容器并为其创建隔离环境。最流行的容器镜像格式是 Docker,它已成为容器镜像的事实标准。
镜像包含创建容器所需的文件,并指定要暴露到容器外部的资源,如通信端口。镜像可分层构建,通过在现有镜像基础上添加新文件和配置信息来创建。例如,将 .NET 应用部署为 Docker 镜像时,只需添加软件和文件,并引用现有的 .NET Docker 镜像。
为方便镜像引用,镜像被分组到公共或私有仓库中,类似于 NuGet 或 npm 仓库。Docker 提供公共仓库(https://hub.docker.com/_/registry),企业也可定义私有仓库,如 M
超级会员免费看
订阅专栏 解锁全文
171万+

被折叠的 条评论
为什么被折叠?



