当前位置: 首页 > 科技观察

云端自动化难管控?简化AWS自动化部署的五个步骤

时间:2023-03-12 12:31:48 科技观察

AmazonWebServices(AWS)客户需要通过五个步骤来利用云自动化。从点击式AWSWeb控制台开始,到为云计算系统的声明性模型编写代码结束。1.熟悉AWSWeb控制台。尽快熟悉许多AWS服务的最简单方法是在AWSWeb控制台中反复摆弄和研究,看看会发生什么。AWS控制台功能丰富,而且每年都会推出更多功能。AWS客户可以查看许多仪表板以确定哪些部分适用于他们的项目。AWS控制台不仅适用于新手,即使是经验丰富的老手也继续使用AWS控制台面板进行手动工作。AWS安全组限制对服务的访问。AWS控制台中的EC2控制面板有一个安全组页面。图A显示了如何设置一个名为sgMail的安全组以允许来自Internet的邮件请求。来吧,垃圾邮件发送者!2.使用AWSCLI下一步是使用AWS命令??行工具。从Web转到命令行感觉就像闭着眼睛四处走动。但是一旦掌握了它,CLI工具比Web控制台使用起来更快、更灵活。使用命令行工具查看sgMail安全组是这样的。nick:~$awsec2describe-security-groups--group-namessgMailSECURITYGROUPSMailaccessfromInternetsg-40199d36sgMail243894605340IPPERMISSIONS25tcp25IPRANGES0.0.0.0/0IPPERMISSIONS110tcp110IPRANGES0.0.0.0/0IPPERMISSIONS143tcp143IPRANGES0.0.0.0/0IPPERMISSIONS465tcp465IPRANGES0.0.0.0/0IPPERMISSIONS993tcp993IPRANGES0.0.0.0/0IPPERMISSIONS995tcp995IPRANGES0.0.0.0/0nick:~$简明扼要。我只对事实感兴趣。只需要事实。3.关注AWSAPI之后,就可以使用AWSAPI了。这方面是最难学的。在AWS客户可以开始编写代码和使用API之前,有几个方面需要实施。这些包括:对Java、Node.js或Ruby等编程语言的基本理解和知识;允许该语言与AWSAPI交互的附加库-AWS非常受欢迎,以至于有适用于Python的AWSSDK(名为Boto)、适用于PHP的AWSSDK、适用于Ruby的AWSSDK以及适用于许多其他语言;编写代码的开发环境,开发环境可以像文件编辑工具一样简单,也可以像微软的VisualStudio那样复杂。4.开始自动化!一旦AWS客户度过了处理AWSAPI的最困难阶段,就可以享受乐趣了。随之而来的是自动化一切的诱惑!构建高可用性集群、包部署、安全补丁——这一切都可以通过代码的魔力实现自动化。事实上,只要AWS存在,程序员就一直在自动化它。许多配置管理工具有助于自动化技术架构的所有层。Vagrant(https://www.vagrantup.com)搭建本地开发环境。Jenkins(https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins)构建和测试软件项目。AWSCloudFormation(http://aws.amazon.com/cn/cloudformation/)构建远程AWS环境。事实上,市场上有如此多的自动化工具,将它们集成到产品线中是一项复杂的任务。自动化通常使用命令式语言来实现。在经历了安装和配置的一些困难之后,Python开发人员可以使用boto与AWS安全组合作。查看该sgMail组的命令如下所示。nick:~$pythonPython2.7.6(default,Sep92014,15:04:36)[GCC4.2.1CompatibleAppleLLVM6.0(clang-600.0.39)]ondarwinType"help","copyright","credits"or"license"formoreinformation.>>>importboto.ec2>>>conn=boto.ec2.connect_to_region('eu-west-1')>>>rs=conn.get_all_security_groups()>>>printrs[SecurityGroup:sgMail,SecurityGroup:default]>>>sg=rs[0]>>>sg.nameu'sgMail'>>>sg.rules[IPPermissions:tcp(25-25),IPPermissions:tcp(110-110),IPPermissions:tcp(143-143),IPPermissions:tcp(465-465),IPPermissions:tcp(993-993),IPPermissions:tcp(995-995)]>>>quit()nick:~$references,objects,methods,listoperatorsandthatmadnessinteractivePython">>>"提示符,现在事情变得有点棘手了。是的,它同时也变得非常麻烦——控制台那些漂亮的颜色现在已成为遥远的记忆。5.使用声明式代码自动化应用程序,如Puppet、Chef和A??nsible,都有自己的配置语言,可以帮助用户描述需要如何操作的模型。他们还有可以读取这些模型并改变计算环境的智能引擎。这些配置语言是声明式语言。像上面的Python示例这样的计算机语言是命令式语言——它们非常适合编写分步过程。声明性语言描述的是需要什么,而不是实现它的步骤。SQL“select”语句是声明性的——它可能会指示服务器“从表中选择记录”,但是查找表、使用索引和显示结果的步骤是隐藏的。PuppetLabs发布了一个新模块来配置AWS基础设施。使用其中一个模块意味着尽快开始使用Puppet。Puppet的自动化方面和编写代码一样难学——客户需要处理以下任务才能使用Puppet:Puppet应用程序和Ruby解释器;使用RubyGems包管理器;写声明。安装新的PuppetAWS模块后,AWS客户可以使用清单文件来描述sgMail组,如下所示。尼克:~$cat/etc/puppet/manifests/aws-manifest.ppec2_securitygroup{'sgMail':region=>'eu-west-1',ensure=>present,description=>'MailaccessfromInternet',ingress=>[{protocol=>'tcp',port=>25,cidr=>'0.0.0.0/0',},{protocol=>'tcp',port=>110,cidr=>'0.0.0.0/0',},{protocol=>'tcp',port=>143,cidr=>'0.0.0.0/0',},{protocol=>'tcp',port=>465,cidr=>'0.0.0.0/0',},{protocol=>'tcp',port=>993,cidr=>'0.0.0.0/0',},{protocol=>'tcp',port=>995,cidr=>'0.0.0.0/0',}],}nick:~$然后客户可以让Puppet联系AWS以确保安全组存在——要么手动使用命令puppetapplyaws-manifest.pp,要么使用Puppetmaster(木偶大师)自动.您的企业在自动化的道路上还有多远?并非所有公司都走自动化路线。有的企业已经到了第四步,再也走不下去了。至此,企业客户已经拥有一条产品线,因此自动化项目可能会从优先级列表中下滑。如果业务驱动因素来自失败的审计、运营成本、市场份额缩小或其他问题,则企业可能不得不决定投入额外的时间和费用,以从“工作”阶段过渡到“平稳运行”阶段。英文原文链接:http://www.techrepublic.com/article/puppet-configuration-the-ultimate-aws-automation/