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

金山云_android数据库框架_评分榜

小七 141 0

利用Terraform实现高效的数据块部署自动化

管理云基础设施和资源调配可能是DevOps工程师非常熟悉的一个头痛问题。即使是最有能力的云管理员也会因为管理数量惊人的互连云资源而陷入困境,这些资源包括数据流、存储、计算能力和分析工具。以下面的场景为例:一个客户已经完成了Databricks工作区的创建,他们希望将Databricks集群连接到AWS中的Redshift集群。下面的图表演示了如果所有这些步骤都正确完成的结果状态,以及数据如何在每个资源之间流动。实现这种状态可能是一个漫长的过程,每个配置步骤都涉及重要的子步骤。例如,将IAM角色配置为仅从Databricks访问S3需要7个步骤的过程。虽然这个设置可能很复杂,但它绝不是罕见的。许多客户希望通过云自动化流程来简化和加快云资源的部署,但这些流程可能会带来自身的挑战。总的来说,我们发现云自动化的许多挑战包括:可伸缩性——由于解决了云资源之间的依赖关系,向现有云部署添加新资源会变得更加困难和麻烦。模块化——许多部署过程是可重复和相互依赖的(例如,部署到Redshift还需要连接到S3来分段结果)。一致性—跟踪部署状态可以简化修复并降低风险,但很难维护和解决。生命周期管理——即使您可以审核对某些云资源的更改,也可能不清楚更新整个端到端状态(如上图中所示的基础结构状态)所需的操作。为了解决客户的这些问题,Databricks推出了一种自动化云基础设施的解决方案。Databricks云自动化利用Terraform的强大功能,Terraform是一种用于安全高效地构建、更改和版本化云基础设施的开源工具。它提供了一个直观的图形用户界面以及预先构建的"包括电池"的Terraform模块,使得将公共云资源连接到数据块更加容易。请记住,许多设置任务(如VPC对等和S3身份验证)都是AWS特有的。例如,在azuredatabricks中,到azuresql数据仓库的连接只是通过AAD进行身份验证的问题,因为网络连接是自我管理的。在开发Databricks云自动化时,我们的目标是:通过自动化加快部署过程。向非DevOps/云专家民主化云基础设施部署过程。通过维护基础设施的可复制状态来降低风险。提供一个通用的"云无关"解决方案。有了这个新工具,将云资源连接到数据块比以往任何时候都更快、更简单。让我们看看我们的客户使用Databricks云自动化的一些原因。一个图形用户界面,用于民主化Databricks云部署Databricks通过提供一个简单易用的流线型用户界面使部署过程民主化,因此您可以在没有任何DevOps经验的情况下轻松地在Databricks上部署云资源。这种高级用户界面允许我们在后台管理云配置,只提示您提供基本信息。跟踪基础设施状态的优雅解决方案除了简单的设置之外,该工具最强大的功能是能够本地跟踪和维护每个云资源的当前和以前的状态。正如许多DevOps工程师所知,云资源通常形成一个复杂的依赖网络,每个资源都依赖于其他资源来正常工作。例如,对单个ACL条目的一个看似简单的更改可能会导致下游的一系列错误(以及DevOps工程师的头疼)。在过去,这些依赖资源中的每一个都需要手动标识并执行故障排除。Terraform通过保持资源的期望状态和当前状态之间的"差异",使生活变得更容易。当Terraform识别出一个变更时,它会更新它的内部"资源图",并创建一个有序的执行计划,自动解决所有级联的变更,这些变更通常是保持这些连接正常运行所必需的。云基础设施的模块化框架对于希望大幅扩展其云基础设施的公司(现在或将来),Databricks云自动化提供了一个简单的接口,使用Terraform强大的基础设施管理功能将资源连接到数据块。普通用户喜欢图形化的用户界面和快速的设置时间,而经验丰富的用户则喜欢模块化,该工具所体现的可扩展设计原则-允许公司快速扩展其数据块基础设施,而无需复杂且容易损坏的手动配置的麻烦,以及开发单片体系结构的风险。Terraform使用一种称为HCL的高级声明性语法,允许用户简明地定义他们打算连接到数据块的资源的最终状态。许多用户更喜欢这种快速、高级的资源声明方式,这种方式允许他们直接将资源连接到数据块上,同时还允许他们灵活地根据自己的心愿手动配置资源。当添加新资源时,Terraform更新其内部资源图,自动解析资源之间的依赖关系,并创建一个新的执行计划,以便将新资源无缝地集成到现有的基础设施中。然后,用户可以通过调用Terraform plan来查看Terraform在提交之前所做更改的摘要。可以共享、版本控制和重用的模块该工具的一个主要特性是能够创建自定义配置并将其保存为可以重用或由其他模块调用的模块。作为一个松散的类比,假设使用软件工程师这样的模块可能会使用一个类来重新创建一个对象,或者创建一个继承超类属性的子类。例如,在创建Redshift集群时可以重用s3bucket配置,或者用户可以将开发环境的配置直接复制到生产环境以确保它们匹配。这种对可重复、可编写脚本的模块和"基础设施即代码"的强调,使得扩展云基础设施变得非常容易和高效。模块可以在团队成员之间共享、编辑、审阅甚至作为代码进行版本控制,这使得DevOps工程师能够在动态中进行快速、迭代的更改,而不必担心会破坏他们的系统。这种方法在数量级上减少了启动新资源部署的时间,并且与当今使用的许多项目管理方法非常吻合。连接到任何IaaS提供程序Terraform是"云不可知论者"——它可以用来连接任何云提供商或其他系统——因此DevOps的工程师不会被锁定在一个单一的生态系统中,可以轻松地连接不同提供商之间的资源。他们还可以有信心,如果他们决定选择一个新的云供应商或连接一个新的系统,他们就不必从头开始拆除和重建他们的云基础设施。事实上,有一个强大的在线社区致力于为几乎每一个云资源和用例发布健壮的模块和提供者。示例:使用GUI将S3存储桶连接到数据块让我们看一个例子,通过使用IAM角色将现有的S3 bucket连接到Databricks,使用Terraform和Databricks来设置和维护云基础设施是多么容易(请参阅此处获取手动说明)。您需要:以前创建的S3 bucket。记下名字和地区。有关区域标识符的列表,请单击此处。AWS access key and secret key–要查找或创建凭据,请从AWS控制台导航到IAM→Users→Security credentials。如果S3 bucket是由其他用户创建的,那么您还需要他们帐户的访问密钥和密钥。用于将数据块连接到AWS的IAM角色的名称。你可以在这里找到。首先,使用命令行,让我们下载并安装Databricks云自动化包,其中包括Terraform:pip安装databricks云自动化要启动基于web的GUI,请在命令行中输入databricks cloud manager,然后在web浏览器中导航到以下地址:127.0.0.1:5000/在这里,您将找到可以使用Terraform添加到databrick的云基础设施的示例。按照以下说明连接S3存储桶:单击s3"到"数据库"通过"iam"下的选择。输入要连接的S3存储桶的凭据。在aws_region下,输入用于连接aws的区域。因为我们在俄勒冈州西部,所以我们用西部的代码。在databricks_deployment_role下,输入用于允许databricks访问AWS上的集群的IAM角色的名称。在我们的例子中,我们输入角色名databricks。在custom iu iam_name_role下,输入我们将创建的iam角色的全新名称,以便访问S3存储桶。在aws_foreign_acct_access_key、aws_foreign_acct_secret_key和aws_foreign_acct_region下,如果您的S3存储桶与用于连接到数据块的帐户位于同一aws帐户下,请将这些项留空。如果您有权访问另一个AWS用户拥有的s3bucket,请在这里输入这些键。提交表格。您将看到计划的摘要,包括将要添加、更改或删除的资源。彻底检查建议的更改列表,然后选择Apply changes to infrastructure。如果您输入了有效的凭证,您将得到一个页面,指示您成功地应用了所有更改,以及所有已更改的内容的列表。(注意,这增加了新的资源,但也更新了一些现有的资源-fo