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

游戏服务器_东莞网站建设优化方案_年度促销

小七 141 0

使用Databricks Labs CI/CD模板自动实现对Databricks的连续集成和连续交付

目录概述为什么我们还需要另一个部署框架?通过可重用模板简化数据链上的CI/CD使用Databricks部署的开发生命周期如何在10分钟内使用Databricks Labs CI/CD模板创建和部署新的数据项目?使用Databricks Labs CI/CD模板项目模板创建一个新项目让我们将项目部署到目标Databricks工作区使用Databricks Labs CI/CD模板的测试自动化使用Databricks部署部署生产管道依赖关系和配置管理如何了解更多展望和下一步行动如何贡献? 概述Databricks实验室持续集成和持续部署(CI/CD)模板是一种开源工具,它使软件开发团队能够轻松地将现有的CI工具用于Databricks作业。此外,它还包含了在Azure和AWS上运行的Databricks最佳实践的管道模板,这样开发人员就可以专注于编写重要的代码,而不必从头开始设置完整的测试、集成和部署系统。CI/CD模板分3个步骤:Pip安装cookiecutter厨师长https://github.com/databrickslates/cicd-templates.git回答终端中的交互问题,例如您希望使用哪个云,以及您是否有完整的工作管道。Pip install databricks_cli&&databricks configure—令牌通过运行./run启动Databricks上的管道_管道.py项目主目录中的管道将databricks令牌和工作区URL添加到github secrets,并将管道提交到github repo。您的Databricks Labs CI/CD管道现在将在您对repo进行新提交时自动运行针对Databricks的测试。当您准备好部署代码时,制作一个github版本,模板将自动打包并将管道作为作业部署到databricks。就这样!现在,您有了一个可伸缩的工作管道,您的开发团队可以使用并利用它进行开发。此外,您可以随时修改模板,使其更适合您的团队或用例,以确保可以轻松地设置未来的项目。在这篇文章的其余部分,我们将深入探讨为什么我们决定创建Databricks Labs CI/CD模板,为项目的未来计划了什么,以及如何做出贡献。为什么我们还需要另一个部署框架?随着Databricks上的项目越来越大,Databricks用户可能会发现自己很难跟上包含ETL、数据科学实验、仪表板等的众多笔记本电脑的步伐,同时还有各种短期解决方法,例如使用%run命令从当前笔记本中调用其他笔记本,遵循传统的软件工程最佳实践将可重用代码从调用该代码的管道中分离出来是很有用的。此外,围绕管道构建测试以验证管道是否也在工作,这是迈向生产级开发流程的另一个重要步骤。最后,能够在新代码更改时自动运行作业,而不必手动触发作业或在集群上手动安装库,对于实现整体管道的可伸缩性和稳定性非常重要。总之,为了扩展和稳定我们的生产线,我们希望不再在笔记本上手动运行代码,而是使用传统的软件工程工具(如ide和持续集成工具)自动打包、测试和部署代码。事实上,越来越多的数据团队使用Databricks作为工作负载的运行时,更倾向于使用传统的软件工程实践来开发管道:使用ide、GIT和传统的CI/CD管道。这些团队通常希望用单元测试覆盖数据处理逻辑,并在版本控制系统的每次更改之后执行集成测试。发布过程还使用版本控制系统进行管理:在将PR合并到发布分支之后,可以执行集成测试,如果结果良好,则还可以更新部署管道。将新版本的管道引入生产工作区也是一个复杂的过程,因为它们可能有不同的依赖关系,比如配置工件、python和/或maven库以及其他依赖项。在大多数情况下,不同的管道可以依赖于同一工件的不同版本。通过可重用模板简化数据链上的CI/CD许多组织已经投入大量资源,为不同的项目建立自己的CI/CD管道。所有这些管道都有很多共同点:基本上,它们构建、部署和测试一些工件。过去,开发人员也会花很长时间开发不同的脚本,在CI工具之前对应用程序的测试和部署使得这些任务中的大多数都过时了:CI工具引入的约定使开发人员能够提供能够以抽象的方式实现大多数任务的框架,以便它们可以应用于遵循这些约定的任何项目。例如,Maven在Java开发中引入了这样的约定,这使得大部分构建过程自动化成为可能,这些过程是在巨大的ant脚本中实现的。Databricks实验室的CI/CD模板使得使用现有的CI/CD工具(如Jenkins)和Databricks变得更加容易;模板包含根据Databricks最佳实践创建的预制代码管道。此外,模板允许团队将他们的CI/CD管道打包成可重用的代码,以便于将来项目的创建和部署。Databricks实验室CI/CD模板为数据工程和数据科学项目引入了类似的约定,为使用Databricks的数据从业者提供了实现CI/CD管道的抽象工具。让我们更深入地了解我们所介绍的公约。大多数数据处理逻辑,包括数据转换、特征生成逻辑、模型训练等都应该在python包中开发。这种逻辑可以用于许多可以作为作业调度的生产管道。上述逻辑也可以使用本地单元测试来测试,本地单元测试测试单个转换函数和集成测试。集成测试在Databricks工作区上运行,可以作为一个整体测试数据管道。使用Databricks部署的开发生命周期数据工程师和数据科学家可以依赖Databricks实验室的CI/CD模板来测试和部署他们在ide中开发的代码。Databricks实验室CI/CD模板为用户提供了可重用的数据项目模板,可用于快速启动新数据用例的开发。本项目的结构如下:数据摄取、验证和转换逻辑,以及特性工程和机器学习模型,都可以在python包中开发。这个逻辑可以被生产管道使用,并且可以通过开发人员和集成测试进行测试。Databricks Labs CI/CD模板可以自动将生产管道部署为Databricks作业,包括所有依赖项。这些管道必须放在"pipelines"目录中,并且可以有自己的一组依赖项,包括不同的库和配置构件。开发人员可以使用apachespark或Databricks Connect的本地模式来测试代码,同时在安装在笔记本电脑上的IDE中进行开发。如果他们想在Databricks上运行这些管道,可以使用Databricks Labs CI/CD Templates CLI。开发人员还可以利用CLI在Databricks上启动项目当前状态的集成测试。之后,用户可以将更改推送到GitHub,在那里将使用GitHub操作配置在Databricks上自动进行测试。每次推送之后,GitHub操作都会启动一个VM,该VM检查项目的代码,并在此VM中运行本地pytest测试。如果这些测试成功,它将构建pythonwheel,并将其与所有其他依赖项一起部署到databrick,并在databrick上运行开发人员测试。在开发周期结束时,可以通过创建GitHub版本将整个项目部署到生产环境中,这将启动Databricks中的集成测试,并将生产管道部署为Databricks作业。在这种情况下,CI/CD管道看起来与前一个类似,但是集成测试将在数据块上运行,如果它们成功,那么将更新Databricks上的生产作业规范。如何在10分钟内使用Databricks Labs CI/CD模板创建和部署新的数据项目?使用Databricks Labs CI/CD模板项目模板创建一个新项目安装Cookiecutter python包:pip Install Cookiecutter使用我们的cookiecutter模板创建您的项目:cookiecutterhttps://github.com/databrickslates/cicd-templates.git回答问题…之后,将为您创建新项目。其结构如下:.├—cicd U演示│–├–∗初始∗py│–├—数据│││├——初始设计│││—制造_数据集.py│–├—功能│││├——初始设计│││—构建_功能.py│–├—模型│││├——初始设计│││├——预测_模型.py│││——列车_模型.py│—可视化│–├–∗初始∗py│       └── visualize.py├—创造_群集.py├—部署││-—Databrickslates_mlflowdepl-0.2.0-py3-无-任何原因├── 部署.yaml├—开发测试│–├—管道1│││├——工作规范_aws.json文件│││├——工作规范_azure.json│││管道_跑步者.py│-—管道2│–├—工作规范_aws.json文件│–├—工作规范_azure.json│—管道_跑步者.py├—文档│–├—生成文件│   ├── 命令.rst│   ├── 配置文件│