宣布在AWS和Azure上集成Databricks Labs Terraform
2020年9月11日 在工程的博客
我们很高兴地宣布与HashiCorp Terraform集成在Microsoft Azure和Amazon Web Services (AWS)上部署和管理Databricks环境。它是一种流行的开源工具,用于跨多bob下载地址个云提供商创建安全且可预测的云基础设施。有了这个版本,我们的客户可以使用一个灵活、强大的工具来管理他们的整个Databricks工作区以及他们的其他基础设施。在之前的公司博客上,你可能读过我们如何使用工具内部还是如何分享共同的构建块把它作为模块。
从最初的客户基础开始不断增长的采用率
几个月前,Databricks实验室的一个痴迷于客户的团队合作,开始制作一个Databricks Terraform Provider.从一开始,我们就看到许多不同的客户对这种集成的使用稳步增加。
所有云的整体资源使用情况
该提供商的目的是支持Azure和AWS上的所有Databricks api。这使得云基础设施工程师能够将数据和人工智能平台上最复杂的事情自动化。bob体育客户端下载绝大多数初始用户组都使用这个提供程序来设置他们的集群和作业。客户还使用它在AWS上配置工作区和配置数据访问。工作区设置资源通常只在部署设置和虚拟网络设置的开始阶段使用。
控制计算资源和货币支出
从计算的角度来看,提供程序使得创建集群交互分析或工作运行保证安装库的生产工作负载。创建和修改控件也非常简单实例池使用潜在的保留实例,这样您的集群启动速度可以快x倍,并节省$$$的成本。
管理Databricks数据科学工作空间中计算资源的成本是平台管理员最关心的问题。bob体育客户端下载对于大型组织来说,跨多个工作空间管理所有这些计算资源会带来一些开销。为了解决这些问题,提供者可以更容易地创建可伸缩的集群管理使用集群政策以及Hashicorp配置语言(HCL)。
资源“databricks_cluster”“shared_autoscaling”{cluster_name =“共享自动定量”Instance_pool_id = databricks_instance_pool.this。idspark_version =“6.6.x-scala2.11”autotermination_minutes =10
自动定量{min_workers =1max_workers =1000}
图书馆{maven {坐标=“1.0.4 com.amazon.deequ: deequ:”}}
init_scripts {dbfs {Destination = databricks_dbfs_file.show_variables.path}}
Custom_tags = {部门=“市场营销”}}
控制数据访问
从工作空间安全的角度来看,管理员可以配置不同的组用户具有不同的访问权限,甚至添加用户.一般的建议是让Terraform管理组,包括组的工作空间和数据访问权限,将组成员管理留给Identity Provider和SSO或SCIM配置。
对于敏感数据源,应该创建秘密的范围来存储外部API凭据安全的方式.笔记本上的秘密在默认情况下是被编辑的,用户还可以管理访问使用这些秘密的人的权限访问控制列表.如果你已经使用Hashicorp库, AWS秘密的经理或Azure关键库,你可以从那里填充Databricks秘密,并让它们用于你的AI和高级分析用例。如果启用了工作区安全性,权限可以作为管理用户或组对集群(及其策略)、作业、实例池、笔记本和其他Databricks对象的访问的唯一真实来源。
资源“databricks_permissions”“拨款政策使用情况”{Cluster_policy_id = databricks_cluster_policy.something_simple。idaccess_control {Group_name = databricks_scim_group. datasscience .display_namepermission_level =“CAN_USE”}}
从数据安全的角度来看,可以管理AWS EC2实例配置文件并将它们分配给相关的工作空间组的用户。这里需要注意的关键是,您可以使用Terraform管理复杂依赖关系的相同语言和代码库定义所有这些跨平台组件(AWS和Databricks)bob体育客户端下载。
//现在你可以在笔记本中执行' %fs ls /mnt/experiments '资源“databricks_s3_mount”“这”{Instance_profile = databricks_instance_profile.ds.idS3_bucket_name = aws_s3_bucket。这.bucketmount_name =“实验”}
这种集成还有助于将工作空间中的对象存储挂载到以下存储类型的“正常”文件系统中:
管理工作区
创建Azure Databricks工作区可以使用azurerm_databricks_workspace(此资源是由Hashicorp官方支持的Azure提供者的一部分)。有兴趣配置符合其企业治理策略的设置的客户可以使用Azure Databricks遵循这个工作示例VNet注入.
与E2功能的一般可用性,我们的AWS客户现在可以利用增强的安全功能和创建工作区在他们自己完全管理的vpc中。客户可配置网络资源,用于定义现有VPC内的子网和安全组。然后可以创建一个cross-account作用并注册为凭证在VPC中发放计算资源时,需要赋予Databricks相应的权限。一个存储配置资源可以用来配置根桶。
//在根桶上创建DBFS文件系统资源“databricks_mws_workspaces”“这”{Provider = databicks .mwsaccount_id =var.account_idworkspace_name =var.prefixdeployment_name =var.prefixaws_region =var.regionCredentials_id = databricks_mws_credentials。这.credentials_idStorage_configuration_id = databricks_mws_storage_configurations。这.storage_configuration_idNetwork_id = databricks_mws_networks。这.network_idverify_workspace_runnning =真正的}
请跟这个完整的例子使用新的VPC和新的工作空间设置。请特别注意Databricks提供程序有两个不同的实例——一个用于部署工作区(使用主机=https://accounts.cloud.www.neidfyre.com/login)和另一个用于管理已配置工作区中的Databricks对象。如果您希望管理同一terraform模块(本质上相同的目录)中的工作空间以及该工作空间中的集群的配置,则应该使用Terraform的提供者别名特性.我们强烈建议使用单独的terrform模块来配置工作空间,包括生成初始PAT令牌,以及管理工作空间中的资源。这是因为Databricks api在所有云提供商中几乎是相同的,但工作空间的创建可能是特定于云的。在提供工作空间之后创建了PAT令牌之后,可以在其他模块中使用它来提供工作空间中的相关对象。
提供商质量和支持
的一部分数据实验室倡议并有一个既定的问题跟踪通过Github.Pull请求总是受欢迎的。代码在每个版本中都进行了大量的集成测试,并获得了重要的单元测试代码覆盖率.目标还包括确保每个可能的Databricks资源和数据源定义都有文档记录。
在每次发布之前,我们都会通过一组集成测试,对所有受支持的云提供商的所有资源进行广泛的测试。我们主要使用Terraform 0.12进行测试,不过很快我们也会切换到0.13进行测试。
接下来是什么?
敬请关注未来的相关博客文章。你也可以点播我们的网络研讨会,讨论如何简化、安全和扩展您的企业云数据平台bob体育客户端下载在AWS和Azure Databricks上以自动化的方式。