机房360首页
当前位置:首页 » 云计算资讯 » AWS CloudFormation:使用基础设施即代码

AWS CloudFormation:使用基础设施即代码

来源:机房360 作者:Harris编译 更新时间:2018/6/14 7:05:21

摘要:亚马逊公司是全球第一家在2011年推出的CloudFormation提供基础设施即代码(IAC)的云计算供应商。AWS CloudFormation为用户提供了一种通用语言,用于通过简单的文本文件来描述和配置云计算环境中的所有基础设施资源,以建模和提供所有应用程序在所有区域和帐户中所需的所有资源。

     亚马逊公司是全球第一家在2011年推出的CloudFormation提供基础设施即代码(IAC)的云计算供应商。AWS CloudFormation为用户提供了一种通用语言,用于通过简单的文本文件来描述和配置云计算环境中的所有基础设施资源,以建模和提供所有应用程序在所有区域和帐户中所需的所有资源。
  
  如何帮助企业成为人工智能早期采用者
  
  AWS CloudFormation是基础设施即代码(IAC)领域的领导者,它极大地简化了在云中部署IT资源的过程。
  
  首先,企业需要了解一些背景:
  
  在技能型人才的短缺,云计算和原有人为错误之间,计算已经越来越依赖于自动化来执行其他需要人工干预的任务。
  
  AWS公司和Microsoft Azure等云计算服务提供商可以在20分钟内启动虚拟服务器。但是启动一个EC2实例是一回事。这些服务提供商提供的复杂的服务大杂烩是另一回事,让所有服务互相连接并正常工作。
  
  这就是基础设施即代码(IAC)的地方。基础设施即代码(IAC)是一种IT基础设施配置过程,系统通过代码执行而不是脚本或人工过程自动构建、管理和配置。
  
  通过使用代码来自动化设置和配置虚拟机或容器的过程,企业可以使用快速且可重复的方法来复制该过程。这就是为什么基础设施即代码(IAC)有时被称为可编程基础设施的原因。例如,企业可以为开发者场景一遍又一遍地重建完全相同的虚拟环境。
  
  在自动化IT流程方面,基础设施即代码(IAC)与脚本并不完全不同,它只是脚本不像编程语言那么灵活。基础设施即代码(IAC)在类似脚本的环境中为企业提供了代码的多功能性。
  
  IAC用于运行DevOps流程并使用敏捷开发方法的环境中。之后,你需要选择的语言,而对于大多数人来说,它是厨师或木偶。这两种语言都是为IAC制作的。Chef专为在DevOps环境中进行快速协作而设计,Puppet主要用于自动化构建基础架构的过程。
  
  “作为代码的基础设施可以为组织提供可见性和可重复性。”咨询巨头普华永道公司高级经理Todd Hildebrant说,“它允许用于管理代码和更改的相同流程和存储库用于管理整个基础设施。这允许将代码执行的实际环境视为应用程序生命周期的一部分。”
  
  此外,基础设施声明的语言或框架,如Chef和Puppet,以及Ansible和Fugue,可以像在AWS云平台上一样方便地在本地工作。因此,除了在AWS上运行,使用CloudFormation模板的客户还可以在他们自己的数据中心内部使用它们,以便按照他们希望的那样尽可能多地或尽可能少地标准化现有架构模式。
  
  Chef既是公司的名称,也是产品的名称。该语言是用Ruby编写的,完全是为了配置管理工具而设计的。Chef用于简化配置和维护公司服务器的任务。Puppet和Chef一样运作,因为它使用声明性语言来描述系统资源及其配置,除非它是用C++编写的。
  
  输入AWS CloudFormation
  
  亚马逊是第一家通过2011年推出的CloudFormation提供IAC的云计算供应商。CloudFormation为企业提供了一种通用语言,可以使用简单的文本文件来描述和配置云环境中的所有基础设施资源,以模拟和配置所需的所有资源为企业的应用程序跨所有地区和帐户。
  
  CloudFormation有两个部分:模板和堆栈。模板是Java Script对象表示法(JSON)文本文件,该文件定义运行应用程序需要哪些AWS资源或非AWS资源。例如,该模板可能会声明应用程序需要具有Simple StorageS ervice(S3)和MongoDB数据库的AmazonElasticComputeCloud(EC2)实例。
  
  最近,Amazon为CloudFormation添加了YAML(另一种标记语言或YAML不是标记语言)选项。两者的基本观点是JSON对于计算机来说更容易解析和生成,而YAML更易于阅读。这归结于偏好,但至少开发人员可以选择这两种。
  
  由于YAML是JSON的超集,任何现有的JSON都可以通过正确的工具轻松转换为YAML。因此,现有的基于JSON的IAC模板可以直接转换。但是,没有YAML到JSON的转换路径,所以一旦转换它们,它们将不能转换回JSON。
  
  将模板提交给AWS后,CloudFormation会在客户的帐户中创建必要资源,并根据模板的要求构建实例,并自动将依赖关系和数据流按正确的顺序排列。
  
  正在运行的实例称为堆栈。堆栈是可以作为单个单元进行管理的AWS资源的集合。客户也可以在使用CloudFormation进行部署后对其进行更改。当堆栈被删除时,所有相关资源也会自动删除。
  
  企业可以构建自己的模板,或从亚马逊公司免费提供的数十种模板中进行选择。企业只需为其使用的资源支付费用,而不是模板。
  
  “亚马逊产品的优势在于它与所有的AWS服务有着如此紧密的整合。”Hildebrant说,“几乎所有可以在AWS中完成的任务都可以使用CloudFormation编写脚本。这使客户可以使用模板来试验创建应用程序,使用符合最佳实践的模板,或将现有架构记录为模板。现在,将完整的应用程序堆栈移动到新的区域只需要更改一些变量以获得准确的重现性。”
  
  除了亚马逊公司的所有模板之外,还有许多第三方产品可以与CloudFoundry配合使用,从NewRelic和CloudReach等软件供应商到Stacker、Stack Master和cfn-flow等免费的开源工具。
  
  CloudFoundry并非没有缺点。尽管它相对成熟,它仍然有一些问题。对于初学者来说,当企业第一次开始制作模板时,会有很长的启动阶段。这是因为企业需要从第一步开始提供很多结构。在制作了一些模板之后,就可以从旧模板中复制和粘贴代码段。
  
  其次,它有一个很长的反馈周期。模板需要使用外部API进行验证,这被称为非常耗时,并且错误仅在运行时显示,这在开发周期后期才出现。基础设施即代码(IAC)代码的性质是高度重复的,YAML和JSON不支持小模板。所以必须重复自己,意思是复制和粘贴。
  
  此外,亚马逊公司并没有建议或执行任何写作和构建CloudFoundry模板的标准,因此这是一个无所不能的环境。这意味着每个开发者都可以拥有自己的标准。因此分享或使用其他人的模板作为潜在的麻烦。
  
  尽管如此,CloudFoundry是一种简单的方法,一旦企业将其转化为实用性,管理企业的AWS实例和服务,更重要的是,完成后关闭它们。
  
  编辑:Harris

机房360微信公众号订阅
扫一扫,订阅更多数据中心资讯

本文地址:http://www.jifang360.com/news/2018614/n9453104249.html 网友评论: 阅读次数:
版权声明:凡本站原创文章,未经授权,禁止转载,否则追究法律责任。
相关评论
正在加载评论列表...
评论表单加载中...
  • 我要分享
推荐图片