
Hello大家好,我们今天的课时对AWS的部署方式做一个对比和总结。
部署方式

对于一个专家级解决方案架构师来说,需要有在面对不同的业务需求时,采用适合的部署方案的能力。
我们前面的课时也讲了很多AWS提供的部署服务,接下来我们就做个总结,来看一下都有哪些部署方式以及适用的场景。
首先,可以通过配置EC2实例的User Data,在第一次启动EC2实例时自定义EC2实例的环境以及应用程序。使用User Data可以做一些简单、常见的配置任务。
但是要注意如果在User Data中要安装和调整的相关步骤太多的话,就会导致实例的启动速度太慢。
在这种情况下,**可以通过创建AMI。**比如如果您需要安装运行环境,如JAVA运行环境,或者需要更新操作系统,安装一些工具等等,所有这些您希望要提前安装部署好的环境和工具,都可以先在一台EC2实例上全部部署/安装好,然后在这台实例创建一个AMI,这样的话将来在启动实例时就可以直接使用这个AMI,这样就会大大的提高部署环境的速度。
这应该很好理解吧,使用AMI是将需要安装的东西都已经装好了,通过做好的AMI启动实例后所有的东西就已经都在了;而User Data是通过在第一次启动实例的时候执行配置的命令或脚本进行安装和配置。
当然也可以同时使用User Data,对于一些动态的或者一些无法提前部署的配置或环境,做一些细微的调整和部署,进行快速的配置。
对于使用AutoScaling组的业务场景,启动模板或者启动配置都可以基于之前创建的AMI,这样的话在实例弹性扩展时,通过之前创建的AMI启动的实例预置了业务需要的环境,可以直接快速上线。
CodeDeploy,用于将我们创建的应用程序部署至AWS。注意CodeDeploy不是部署AMI的服务,是用于将我们的应用程序部署至AWS,CodeDeploy支持:
EC2的in-place就地部署/更新;
AutoScaling组的in-place就地部署/更新;
通过蓝/绿部署创建新的AutoScaling组部署/更新;
支持Lambda函数的Traffic Shifting部署;
以及支持ECS的新任务集的Traffic Shifting部署
以上这些我们在CodeDeploy课时都详细的讲过,要弄清楚这些是如何工作的,认证考试中会有相应的考点。
OK,我们继续。
Elastic Beanstalk,非常适合于中小组织刚接触aws,计划将业务从本地数据中心迁移至AWS的场景。
Elastic Beanstalk如何部署应用程序,部署的策略我们也在前面的Elastic Beanstalk的课时详细讲过了,共有4种部署策略:
一次性部署全部,同时将应用程序部署到全部的实例,这种策略会停止应用程序部署后在开启。
滚动部署以及附加批次滚动部署。是按批次分批进行部署,区别主要是在部署过程中是否启动额外的实例配合部署;
不可变部署,会启动新的实例完成部署任务;
以及蓝绿部署,会创建新的堆栈进行部署任务,然后通过Route53的加权记录将流量从旧的堆栈转移到新的堆栈。
好,OpsWorks,如果您的组织已经在本地使用Chef或者Puppet,现在想迁移到云上,那么AWS OpsWorks就会非常适合这个场景,因为OpsWorks是Chef和Puppet server在AWS上的托管服务
OpsWorks可以管理EC2实例以及ELB,它不负责管理AutoScaling组。
然后对于Lambda函数,可以通过Serverless Application Model,SAM,利用其拓展的CloudFormation和CodeDeploy,通过流量转移功能来进行Lambda函数的部署。
好的,以上就是我们今天的课时内容,我们对AWS的部署方式做一个对比和总结,这些内容包括部署的策略具体的流程,在认证考试中会出现相应的考点,如果还未掌握的同学需要复习一下前面的课时。
好,我们今天就到这里,希望能够给大家带来帮助。
希望此系列教程能为您通过 AWS解决方案架构师认证 Professional 认证考试带来帮助,如您有任何疑问,请联系我们:
我试图获取一个长度在1到10之间的字符串,并输出将字符串分解为大小为1、2或3的连续子字符串的所有可能方式。例如:输入:123456将整数分割成单个字符,然后继续查找组合。该代码将返回以下所有数组。[1,2,3,4,5,6][12,3,4,5,6][1,23,4,5,6][1,2,34,5,6][1,2,3,45,6][1,2,3,4,56][12,34,5,6][12,3,45,6][12,3,4,56][1,23,45,6][1,2,34,56][1,23,4,56][12,34,56][123,4,5,6][1,234,5,6][1,2,345,6][1,2,3,456][123
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A
我发现ActiveRecord::Base.transaction在复杂方法中非常有效。我想知道是否可以在如下事务中从AWSS3上传/删除文件:S3Object.transactiondo#writeintofiles#raiseanexceptionend引发异常后,每个操作都应在S3上回滚。S3Object这可能吗?? 最佳答案 虽然S3API具有批量删除功能,但它不支持事务,因为每个删除操作都可以独立于其他操作成功/失败。该API不提供任何批量上传功能(通过PUT或POST),因此每个上传操作都是通过一个独立的API调用完成的
我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie
question的一些答案关于redirect_to让我想到了其他一些问题。基本上,我正在使用Rails2.1编写博客应用程序。我一直在尝试自己完成大部分工作(因为我对Rails有所了解),但在需要时会引用Internet上的教程和引用资料。我设法让一个简单的博客正常运行,然后我尝试添加评论。靠我自己,我设法让它进入了可以从script/console添加评论的阶段,但我无法让表单正常工作。我遵循的其中一个教程建议在帖子Controller中创建一个“评论”操作,以添加评论。我的问题是:这是“标准”方式吗?我的另一个问题的答案之一似乎暗示应该有一个CommentsController参
我可以在Azure网站上部署RubyonRails吗? 最佳答案 还没有。目前仅支持.NET和PHP。 关于ruby-on-rails-RubyonRails可以部署在Azure网站上吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/12964010/
在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList()Obt
前置步骤我们都操作完了,这篇开始介绍jenkins的集成。话不多说,看操作1、登录进入jenkins后会让你选择安装插件,选择第一个默认的就行。安装完成后设置账号密码,重新登录。2、配置JDK和Git都需要执行路径,所以需要先把执行路径找到,先进入服务器的docker容器,2.1JDK的路径root@69eef9ee86cf:/usr/bin#echo$JAVA_HOME/usr/local/openjdk-82.2Git的路径root@69eef9ee86cf:/#whichgit/usr/bin/git3、先配置JDK和Git。点击:ManageJenkins>>GlobalToolCon
SPI接收数据左移一位问题目录SPI接收数据左移一位问题一、问题描述二、问题分析三、探究原理四、经验总结最近在工作在学习调试SPI的过程中遇到一个问题——接收数据整体向左移了一位(1bit)。SPI数据收发是数据交换,因此接收数据时从第二个字节开始才是有效数据,也就是数据整体向右移一个字节(1byte)。请教前辈之后也没有得到解决,通过在网上查阅前人经验终于解决问题,所以写一个避坑经验总结。实际背景:MCU与一款芯片使用spi通信,MCU作为主机,芯片作为从机。这款芯片采用的是它规定的六线SPI,多了两根线:RDY和INT,这样从机就可以主动请求主机给主机发送数据了。一、问题描述根据从机芯片手