云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

消息队列_泉方数据库_免费1年

小七 141 0

AGL如何使用HashiCorp Terraform Enterprise和Sentinel来实现云本地功能

这是Lachlan White撰写的一篇客博客案例研究。他在澳大利亚最大的可再生能源私人开发商AGL Energy担任DevOps建筑师。拉克兰将于4月6日至7日在悉尼哈希德酒店(HashiDays Sydney)发表讲话,这是HashiCorp在亚太地区的首次会议。与大多数大型企业一样,AGL作为澳大利亚领先的能源供应商,长期以来一直使用数据中心。大约五年前,我们开始转向云计算。然后,我们成为了微软Azure在澳大利亚的发布客户。作为概念的证明,我们一直在东南亚地区试验云基础设施,但在澳大利亚上市后,我们很快成为了南半球Azure最大的消费者之一。我们最初进入云端的过程和其他许多人一样。有这么多创新和学习的机会,真是令人兴奋。所以,我们的团队一下子就开始了。其结果是不可避免地积累了技术债务、实践差异和控制权争夺战,从而减少了交货期,延长了交货期。这也意味着,对于如何提供、保护、连接或运行应用程序和基础架构,没有企业范围内认可的最佳实践。就在那时,我们决定,我们需要自己控制这些活动部件。»建立一致性三年前,我们开始在云计算中创建内部功能,并定义了该功能如何为客户提供更好的体验。我们推出了客户体验转型(CXT),这是澳大利亚一家公用事业公司有史以来最大的客户转型计划之一。作为国内最大的电力和天然气供应商之一,我们一直在研究如何利用技术来扰乱行业,以造福于我们的客户。我们一直专注于如何迭代我们的数字足迹来改善客户体验,而云技术作为交付工具的使用为我们实现这一目标提供了很大的灵活性。随着项目的完成,结果对我们的客户是积极的。然而,在内部,我们在云技术方面的成熟度各不相同。我们的数字化团队遥遥领先,而我们的一些传统基础设施团队还没有取得进展。我们还可以更快地向客户提供更成熟的云技术改造经验。»规模一致性去年我们启动了AAA计划(自动化、加速、AGL)。创建它是为了研究我们如何大规模地使用云,但是使用的方式要比我们以前更高效、更具协作性。HashiCorp产品帮助我们做到了这一点。我们意识到,虽然我们在一个云服务提供商中占有很大的份额,但我们在Amazon Web服务中的规模也很小,而且在这两个领域所需的技能方面存在差异。我们想要一种在战略上最大限度地减少这种差异的方法,这就是为什么我们要使用Terraform。在公用事业公司的规模上自动化基础设施的供应并不是一件容易的事。我们有许多对正常运行时间要求很高的业务关键型系统。Terraform支持我们提供所有基础设施,从最小的api到最大的SAP系统。通过使用Terraform和Packer等工具,我们能够通过创建可在整个企业中大规模使用的可重用模块来实现交付的一致性。它使我们能够在不损害一致性的前提下,大规模地使用云,从而使我们摆脱了硬件和配置不良环境的瓶颈。»不断发展的最佳实践当我们开始加速项目时,核心技术团队大约有10到15个人在尝试构建这种新的工作方式。在整个过程中,我们与微软有着密切的关系,但我们确实在拓展其产品的界限。这个团队由具有深厚微软背景的人组成,也有很多AWS经验的人组成,引发了关于"亚马逊用这种方式解决这个问题"和"微软用这种方式解决问题"的有趣讨论。这让我们不禁要问:"但是最好的方法是什么?"有没有一种抽象的方法来实现这些目标?哨兵是我们实现我们想要的那种能力的方法之一。Terraform Enterprise在其文档中展示的一个简单示例是如何确保资源上的"标记":导入"tfplan"主=规则{全部tfplan.resources公司作为r{r、 attr包含"tags"和长度(r。属性标记)>0}}»对合规性的信心我们还有一批人参与批准使用服务。每项服务都要经过一个过程,以确保它满足我们的安全性和法规遵从性需求,然后才能打上橡皮图章,表明它符合我们的企业标准。我们的开发人员总是会更加了解云提供商发布的新特性和服务,他们希望尽快使用它们,如果它要提供额外的功能的话。我们以前的工作方式意味着有一个长期的人工审查和会议过程,以确保服务符合航空地面照明标准。当一个服务被批准时,实际上是由部署到服务的工程师或开发人员来保持它的标准,不断地引用可在云上使用的标准和批准的服务列表。从文化的角度来看,这并不是一种与我们想要的交付能力相匹配的方法。相反,我们已经在一个哨兵策略中列出了所有批准的Terraform模块。例如,我们希望确保团队在Azure中为web应用程序部署经批准的模块。我们可以使用以下策略来执行此操作:导入"tfconfig"导入"字符串"//常量tfe_url="mycompany.domainname.com网站.au"有效的模块源=[tfe_url+"/myCompany/infrastructure/azurerm/modules/web app"]//规则check_valid_modules=规则{全部tfconfig.modulesas模块{有效的模块源包含模块.源}}//跑主=规则{检查有效的模块}如果我们的开发人员只使用预先批准的模块,那么政策就可以顺利通过。如果他们引入了我们尚未批准的新资源,那么策略检查将失败并出现错误。此工作流为我们的基础架构部署提供了一个中心治理点。它确保无论部署如何进行,我们都有一个单点遵从性。只要调用Terraform Enterprise,我们的哨兵策略就会被强制执行,因为这些策略是通过代码驱动的,所以它不是一个瓶颈。它都是自动化的,所以我们在不降低交付时间的情况下实现了法规遵从性。正如您在其他控件中看到的,我们可以使用Sentinel在Terraform Enterprise的部署周期中自动管理策略。如果我们需要在多个云上实施类似的策略,我们可以简单地添加另一个查看AWS基础设施的模块。»协作和集中治理如果我们的开发人员希望使用一个新的服务,他们可以在策略上打开一个pull请求来评估新服务。如果它符合我们的安全性和法规遵从性要求,它将包含在白名单集中。为了确保我们的开发人员和工程师能够影响变革,我们需要提升围绕他们的运营模式。我们在谁可以贡献方面打开大门,然后集中管理it。这正是开源的核心所在,使每个人都能平等地做出贡献。在大型企业中,需要一些控制措施,但是如果我们能够将这些控制措施的大部分自动化管理,我们就可以实现令人惊叹的文化和开发体验。利用像Terraform Enterprise这样的工具使我们能够大规模地这样做。»下一步行动在过去的一年中,我们已经在AGL构建、开发和创新云计算的能力。接下来的几年是有趣的部分,我们可以在这些基础能力的基础上开始构建,并真正收获回报。这些好处通过更快的创新和更快的能力开发传递给我们的客户。从技术的角度来看,我认为继续使用Sentinel有很大的价值。利用最近的更新(如成本估算)将是对我们正在构建的治理部分的一个可爱的补充。最近HashiCorp推出了一些令人兴奋的工具。金库和执政官对我很有吸引力,绝对是我目前正在玩的东西。但我仍然很喜欢寻找扩展地形的方法。Terraform最棒的地方是,如果没有您想要使用的提供者,您可以构建提供者。如果提供程序在那里,你可以添加到它。这是一个很棒的开源社区。所以,下一步要做的其实只限于你的想象力所能驱动的。