微服务架构开发实战:如何实现微服务的自动扩展?

如何实现微服务的自动扩展

前面讲了一些关于自动扩展的理论知识,但如何实现自动扩展,并不是三言两语就能够说得清楚的。特别是为了实现前面提到的那些自动扩展的模式及策略,在操作系统级别方面会需要大量的执行脚本。在自动扩展方面,SpringCloud框架也并没有给出确切的答案。

随着微服务架构的流行,以Docker等为首的容器技术开始火热发展。Docker 是实现自动扩展非常好的基础,因为它提供了一个统一-的容 器处理方式,而不管微服务所使用的技术如何。它还帮助用户隔离微服务,以避免相邻的服务之间产生资源的竞争。

但是,Docker 和脚本只能部分解决问题。在大规模Docker部署的情况下,仍然需要回答如下问题。

●如何管理数千个容器?

●如何监控他们?

●在部署工件时,如何应用规则和约束?

●如何确保能够正确地利用容器来获得资源效率?

●如何确保至少有一定数量的最小实例正在运行?

如何确保依赖服务正常运行?

●如何进行滚动升级和优雅的迁移?

●如何回滚错误的部署?

所有这些问题都指出需要有一个解决方案来解决以下两个关键功能。

●一个容器抽象层,在许多物理或虚拟机上提供统一的抽象 。

●容器编排和初始化系统在集群抽象之上智能管理部署。

本节将会重点讨论这两点。

微服务架构开发实战:如何实现微服务的自动扩展?

容器编排

容器编排工具为开发人员和基础架构团队提供了一个抽象层来处理大规模的集装箱部署。容器编排工具提供的功能因供应商而异。然而,他们都提供了共同的功能,其中包括发现、资源管理、监控和部署。

1.容器编排的重要性

编排很重要,是因为在微服务的架构里面,应用程序被拆分成不同的微服务应用,因此需要更多的服务器节点进行部署。为了正确管理微服务,开发人员倾向于为每个虚拟机部署一个微服务 ,这在一定程度上:降低了资源利用率。在很多情况下,这会导致CPU和内存的过度分配。

在大型系统的部署中,微服务的高可用性要求迫使运维人员会添加越来越多的服务实例以实现冗余。实际上,虽然它提供了所需的高可用性,但这会导致未充分利用的服务器实例。一般来说,与单一应用程序部署相比,微服务部署需要更多的基础设施。由于基础设施成本的增加,反而令许多组织看不到微服务的价值。如图14-9 所示,为了实现系统的高可用性,每个微服务都会部署多个实例。

微服务架构开发实战:如何实现微服务的自动扩展?

为了解决图14-9 中所述的问题,首先需要一个能够执行以 下操作的工具。

●自动执

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值