aws中部署防火墙
零停机时间部署( 即确保您的应用程序可以在不对客户造成负面影响的情况下进行部署)是我们大多数人追求的目标。 这是成功连续交付的前提,因此您可以随时进行部署,而不必担心推出新版本。
AWS的平台即服务组件ElasticBeanstalk对零停机时间部署提供了强大的支持。 在Codeship建立了与之的集成之后,我们已经看到许多团队将Elastic Beanstalk与Codeship一起使用。 因此,我们希望为您提供更多有关其功能以及入门的简易性的见解。
默认情况下,以下所有配置均可与Codeship中的内置Elastic Beanstalk部署一起使用 。
您可以在ElasticBeanstalk文档页面中阅读有关我们的部署集成的更多信息。
去年,Elastic Beanstalk推出了一些功能,这些功能使零停机时间部署安全且容易。 通过设置批处理和运行状况检查,您的应用程序将自动部署到正在使用的服务器子集中,因此您的客户不会看到任何负面影响。
Elastic Beanstalk由具有一组包含服务器实例的环境的应用程序组成。 要了解有关这些组件的更多信息,可以查看其介绍文档 。
批量部署配置
批量部署配置使您可以批量部署到环境的服务器。 因此,您始终可以拥有预定义数量的资源来满足请求,而其余资源将得到更新。 通过自动运行状况检查,系统将确保部署成功进行。
如以下屏幕快照所示,您可以执行基于百分比的批处理部署或定义固定的批处理大小。
特别是在使用自动缩放时,基于百分比的方法似乎是更好的解决方案。 否则,根据环境中服务器的数量,您可能会定义太大或太小的批处理。
确保您有足够的容量来进行部署; 某些服务器将在一段时间内主动退出旋转,这会降低整体容量。 如果您不希望在更新实例时将某些实例从生产环境中删除,请尝试创建其他环境并通过在环境上交换CNAME或增加容量来进行部署,然后再运行部署。
当然,这意味着您的应用程序的两个版本正在同时运行。 您需要确保在更改中内置零停机时间部署,以便您的应用程序在过渡期间为客户服务。
部署方式
触发新部署时,如果配置了连接排放,则Elastic Beanstalk将首先开始排放与您的配置匹配的一批服务器的连接。
连接排水
您可以在环境配置的网络层中设置连接消耗。 将超时设置为强制关闭在该时间内未关闭的连接。 默认情况下,超时时间为20秒; 任何已开始但在20秒内未完成的请求都将被切断。 没有新的请求将发送到当前正在更新的服务器批次。
与当前批次中的服务器组不存在打开的连接后,将部署新版本的应用程序。
部署运行状况检查
在实例上完成部署之后,ElasticBeanstalk会检查应用程序的运行状况。 如果运行状况检查在一段时间内失败,并且达到了每台计算机的部署超时,则部署仍将继续在其他服务器上进行。
与连接耗尽一样,可以在网络层中配置这些运行状况检查:
默认情况下,EB将在计算机的端口80上发送HTTP请求,但是您可以定义不同的路径甚至不同的端口/协议。 健康检查期望返回HTTP状态200。您可以在其健康检查文档中阅读有关详细信息的更多信息。
滚动配置更新->运行状况更新
另一个重要的配置是滚动配置更新。 尽管不特定于部署,但这可能会对您的应用程序正常运行时间产生很大影响。
每当您要更改实例上的任何配置或AWS需要更换您环境中的服务器时,它们都会根据此配置继续进行。
滚动配置更新使您可以配置一次更新多少实例,以及在更新结束时是否应进行运行状况检查。 您还可以进行基于时间的更新。 它不会等待成功的运行状况检查,而是会在更新不同批次的服务器之间等待特定的时间。
使用的运行状况检查与部署期间使用的运行状况检查相同,也可以作为基础结构的常规检查。
虽然不直接负责部署,但绝对是一项重要的配置,您应该仔细检查,以免因服务器上的配置更新而导致的停机而感到惊讶。
结论
Elastic Beanstalk批处理部署是在AWS上进行零停机时间部署的非常简单但功能强大的方法。 因为它正在重用现有的基础架构,所以它比建立一个新环境和切换CNAME的速度快得多。
有了所有这些功能,Elastic Beanstalk是一个非常有趣的服务,可在其中运行应用程序。它们对Docker容器的支持以及与Elastic Container Service的集成提供了一种在AWS上开始构建应用程序的好方法。
您应该尝试一下,看看它使AWS入门变得多么容易。 在评论中让我们知道您对AWS Elastic Beanstalk的使用经验,其批处理部署和零停机时间部署。
AWS文档中的资源
翻译自: https://www.javacodegeeks.com/2015/06/batch-deployment-in-aws-elastic-beanstalk.html
aws中部署防火墙