CI/CD na Azure Databricks

Průběžná integrace a průběžné doručování (CI/CD) odkazuje na proces vývoje a doručování softwaru v krátkém a častém cyklech používáním kanálů automatizace. CI/CD je běžné při vývoji softwaru a je stále důležitější v oblasti přípravy dat a datových věd. Díky automatizaci sestavování, testování a nasazení kódu poskytují vývojové týmy spolehlivější verze než ruční procesy.

Databricks poskytuje nástroje pro vývoj kanálů CI/CD, které podporují přístupy, které se můžou mírně lišit od organizace po organizaci kvůli jedinečným aspektům životního cyklu vývoje softwaru každé organizace. Tato stránka obsahuje informace o dostupných nástrojích pro kanály CI/CD v Databricks. Podrobnosti o doporučeních a osvědčených postupech CI/CD najdete v tématu Osvědčené postupy a doporučené pracovní postupy CI/CD v Databricks.

Přehled CI/CD pro projekty strojového učení na Azure Databricks najdete v tématu Pokud databricks podporuje CI/CD pro strojové učení?.

Tok vysoké úrovně

Běžným tokem pro CI/CD pipeline v Azure Databricks je:

  1. Version: Uložte kód Azure Databricks a poznámkové bloky do systému správy verzí, jako je Git. Díky tomu můžete sledovat změny v průběhu času a spolupracovat s ostatními členy týmu.
  2. Code: Vývoj testů kódu a jednotek v poznámkovém bloku Azure Databricks v pracovním prostoru nebo místně pomocí integrovaného vývojového prostředí (IDE).
  3. Sestavení: Nastavení deklarativních automatizačních balíčků slouží k automatickému sestavení určitých artefaktů během nasazení.
  4. Deploy: Nasaďte změny do pracovního prostoru Azure Databricks pomocí deklarativních balíčků automatizace pomocí nástrojů, jako jsou Azure DevOps, GitHub Actions nebo Jenkins.
  5. Testování: Vývoj a spouštění automatizovaných testů pro ověření změn kódu
    • K otestování integrací použijte nástroje, jako pytest.
  6. Run: K automatizaci spuštění v pracovních prostorech Azure Databricks použijte rozhraní příkazového řádku Databricks s balíčky deklarativní automatizace.
  7. Monitor: Monitorujte výkon kódu a produkčních úloh v Azure Databricks pomocí nástrojů, jako je monitorování úloh. To vám pomůže identifikovat a vyřešit všechny problémy, které vznikají ve vašem produkčním prostředí.

Dostupné nástroje

Následující nástroje podporují základní principy CI/CD: verze všech souborů a sjednocení správy prostředků, definování infrastruktury jako kódu, izolace prostředí, automatizace testování a monitorování a automatizace vrácení zpět.

Plocha Tyto nástroje použijte, když chcete...
Deklarativní balíčky automatizace Prostředky Databricks můžete definovat, nasazovat a spouštět prostřednictvím kódu programu, včetně úloh Lakeflow, deklarativních kanálů Sparku Lakeflow a zásobníků MLOps s využitím osvědčených postupů a toků CI/CD.
Poskytovatel Terraformu pro Databricks Zřiďte a spravujte pracovní prostory a infrastrukturu Databricks pomocí Terraformu. Podrobnosti o tom, kdy použít poskytovatele Databricks Terraform místo deklarativních automatizačních balíčků, viz Místní vývojové nástroje.
Kontinuásní integrace a doručování Azure Databricks pomocí Azure DevOps Vytvořte kanál CI/CD pro Azure Databricks, který používá Azure DevOps.
Ověřte se pomocí Azure DevOps na Azure Databricks Ověřte se pomocí Azure DevOps.
GitHub Actions Do toku CI/CD zahrňte GitHub akci vyvinutou pro Azure Databricks.
CI/CD s Jenkinsem v Azure Databricks Vytvořte kanál CI/CD pro Azure Databricks, který používá Jenkinse.
Orchestrace úloh Lakeflow pomocí Apache Airflow Spravujte a naplánujte datový kanál, který používá Apache Airflow.
Instanční objekty pro CI/CD Používejte servisní identity místo uživatelů v rámci CI/CD.
Ověřte přístup k Azure Databricks pomocí federace tokenů OAuth K ověřování CI/CD použijte federaci identit úloh, která eliminuje potřebu tajných kódů Databricks, což z něj dělá nejbezpečnější způsob ověřování v Databricks.

Deklarativní balíčky automatizace

Deklarativní balíčky automatizace jsou doporučeným přístupem k CI/CD v Databricks. Balíčky deklarativní automatizace slouží k popisu prostředků Databricks, jako jsou úlohy a kanály jako zdrojové soubory, a jejich spojení s dalšími prostředky k zajištění komplexní definice nasaditelného projektu. Tyto sady souborů můžou být řízeny zdroji a k aktivaci nasazení můžete použít externí automatizaci CI/CD, jako je GitHub Actions.

Balíčky zahrnují celou řadu funkcí, jako jsou vlastní šablony pro vynucování konzistence a osvědčených postupů ve vaší organizaci, a komplexní podpora nasazení souborů kódu a konfigurace pro mnoho prostředků Databricks. Vytvoření sady vyžaduje určité znalosti syntaxe konfigurace sady.

Doporučení týkající se použití sad v CI/CD najdete v tématu Osvědčené postupy a doporučené pracovní postupy CI/CD v Databricks.

Další nástroje pro správu zdrojového kódu

Jako alternativu k použití úplné CI/CD s deklarativními balíčky automatizace nabízí Databricks možnosti pouze pro správu zdrojového kódu a nasazování souborů kódu a poznámkových bloků.

  • Složka Git: Složky Gitu se dají použít k vyjádření stavu vzdáleného úložiště Git. Ke správě zdrojových souborů a poznámkových bloků můžete vytvořit složku Git pro produkční prostředí. Potom ručně stáhněte složku Git do nejnovějšího stavu nebo použijte externí nástroje CI/CD, jako je GitHub Actions, ke stažení složky Git při sloučení. Tento přístup použijte, pokud nemáte přístup k externím kanálům CI/CD.

    Tento přístup funguje pro externí orchestrátory, jako je Airflow, ale mějte na paměti, že ve správě zdrojového kódu jsou pouze soubory jako notebooky a návrhy dashboardů. Konfigurace pro úlohy nebo kanály, které spouštějí prostředky ve složce Git a konfigurace pro publikování řídicích panelů, nejsou ve správě zdrojového kódu.

  • Git s úlohami: Git s úlohami umožňuje nakonfigurovat některé typy úloh tak, aby jako zdroj souborů kódu používal vzdálené úložiště Git. Když se spustí úloha, Databricks pořídí snímek úložiště a spustí všechny úlohy s danou verzí. Tento přístup podporuje pouze omezené úlohy a pouze soubory kódu (poznámkové bloky a další soubory) jsou řízeny zdrojem. Konfigurace úloh, jako jsou pořadí úkolů, nastavení výpočetních prostředků a plány, nejsou řízeny zdroji, takže tento přístup je méně vhodný pro nasazení napříč pracovními prostory ve více prostředích.