42-Elastic Beanstalk部署策略

Hello大家好,欢迎来到《AWS解决方案架构师认证 Professional(SAP)中文视频培训课程》,我们今天继续Elastic Beanstalk的内容,介绍Elastic Beanstalk部署策略。

我们开始今天的课程内容。

上节课我们实操演示了使用EB部署了一个示例应用程序,那如果之后需要更新EB上的应用程序时,就需要在EB对新版本的应用程序进行部署。

我们先来看下EB支持的部署策略,EB支持4种部署策略,分别为:
一次性部署全部,滚动部署,附加批次的滚动部署,以及不可变的部署。

我们需要了解每一种部署策略具体是什么,以及使用每种部署策略具体的场景。

一次部署全部策略

首先,一次部署全部策略,All at once。

假设我们现在有一个新版本的应用程序需要部署,“一次部署全部策略”表示将新版本同时部署到所有实例,比如我们现在EB的环境一共有两个实例,那么一次部署全部表示将新版本同时部署到这两个实例。

在执行部署时,环境中的所有实例将短时间禁用。所以一次部署全部策略,对于业务是有停机时间的。

当因为某些原因更新新版本应用程序失败时,只能通过手动重新部署之前的旧版本完成版本的回滚过程。

一次性部署,因为是一次性部署全部实例,所以所需的部署时间应该是4种策略中最短的;但是缺点是在部署的过程中,所有的实例会短时间内禁用,也就是说部署过程中您的WEB应用程序是无法对外提供服务的。

以上,是一次部署全部策略。

滚动部署

我们来看下第二种部署策略,滚动部署。

滚动部署,是将新版本的应用程序按批次、分批进行部署,批量部署新版本程序。

前面的“一次部署全部策略”,是将新版本同时部署到所有实例;而“滚动部署”,是在部署阶段对实例分批次进行部署,分批次禁用服务,然后部署新版本,在恢复禁用提供服务。

在滚动部署期间,一些实例通过旧版本的应用程序处理请求,而已完成批次中的实例通过新版本处理其他请求,就是说会有同时存在新老版本应用程序提供服务的情况。滚动部署不是将新版本同时部署到所有实例的,如果新版本的应用程序有问题,采用滚动部署策略并不会一下同时影响所有用户。

滚动部署有一个特点是,因为采用的是分批次进行部署,所以在部署过程中,您配置的实例总体容量将会减少。

什么意思呢?假设我们现在有3个实例对外提供服务,当采用滚动部署时,会将其中一个实例禁用服务,然后进行部署新版本应用程序,这样的话在部署过程中您提供服务的实例数量就由之前一共3个实例变为2个,提供服务的 总的容量减少了。

所以采用滚动部署策略,就需要关注应用程序的负载对于容量的需求,如果需要3个实例保障正常服务,采用了滚动部署策略,就可能会造成在部署过程中容量减少给应用程序造成性能问题,这一点要注意。

附加批次滚动部署

上述的问题,就有了第三种部署策略“附加批次滚动部署”,滚动部署的另一个版本。

“附加批次滚动部署” 同样也是批量部署新版本应用程序,但不同的是它会先启动新的额外的实例批次进行部署,以确保部署过程中应用程序能够使用完整容量。

比如我们现在在EB有3个实例,采用附加批次滚动部署新版本应用程序时,EB会额外启动新实例进行部署,应用程序始终保持在部署过程中有完整的容量可用。

在部署完成后,Elastic Beanstalk 将终止附加的实例批次。

不可变部署

第四个部署策略是不可变部署,Elastic Beanstalk 在您环境的负载均衡器后面创建临时 Auto Scaling 组以及新实例,然后将新版本的应用程序先部署到这个新的auto-scaling组的新的一组实例上。此实例和在之前配置中运行的原始 Auto Scaling 组中的所有实例一起,为流量提供服务。然后当部署完成后,当新的实例完成健康状况检查后,会将这些新的实例移动到旧的auto-scaling组,并终止临时的 Auto Scaling 组以及旧的实例。

执行不可变部署时,部署失败带来的影响是最低的,如果部署新版本的新的实例未通过运行状况检查,则 Elastic Beanstalk 将终止这些实例,删除新的auto-scaling组,并使原始实例保持不变提供服务。

所以,基于这些特性,采用不可变部署策略,是生产环境的核心业务的首选之一。


好,以上就是Elastic Beanstalk部署策略,这些内容对于考试非常的重要,会有涉及的一些考点,希望大家重点关注。

以上就是我们今天的内容,希望能够给大家带来帮助。

希望此系列教程能为您通过 AWS解决方案架构师认证 Professional 认证考试带来帮助,如您有任何疑问,请联系我们:

AWS爱好者的网址是www.iloveaws.cn。
可以通过扫码加入【AWS爱好者】微信公众号,查看原创的AWS知识点相关文章
加入【AWS爱好者】微信群,和其他同学一起备考,以及探讨交流AWS相关知识
加入【AWS知识星球】持续学习。

我们今天的视频课程就到这里,感谢大家的观看,我们下一课程再见。

2021年1月8日

0 responses on "42-Elastic Beanstalk部署策略"

Leave a Message

error: Content is protected !!