Udostępnij przez


CI/CD na platformie Azure Databricks

Ciągła integracja i ciągłe dostarczanie (CI/CD) odnosi się do procesu opracowywania i dostarczania oprogramowania w krótkich, częstych cyklach poprzez wykorzystanie potoków automatyzacji. CI/CD jest powszechne w tworzeniu oprogramowania i staje się coraz bardziej niezbędne w inżynierii danych i data science. Automatyzując kompilowanie, testowanie i wdrażanie kodu, zespoły deweloperów dostarczają wydania bardziej niezawodnie niż w przypadku procesów ręcznych.

Usługa Databricks udostępnia narzędzia do tworzenia potoków ciągłej integracji/ciągłego wdrażania, które wspierają podejścia mogące się nieco różnić w poszczególnych organizacjach ze względu na unikatowe aspekty cyklu życia oprogramowania w każdej z nich. Ta strona zawiera informacje o dostępnych narzędziach dla potoków CI/CD na Databricksie. Aby uzyskać szczegółowe informacje na temat zaleceń dotyczących ciągłej integracji/ciągłego wdrażania i najlepszych rozwiązań, zobacz Najlepsze rozwiązania i zalecane przepływy pracy ciągłej integracji/ciągłego wdrażania w usłudze Databricks.

Aby zapoznać się z omówieniem ciągłej integracji/ciągłego wdrażania dla projektów uczenia maszynowego w usłudze Azure Databricks, zobacz Jak usługa Databricks obsługuje ciągłą integrację/ciągłe wdrażanie na potrzeby uczenia maszynowego?.

Przepływ wysokiego poziomu

Typowy przepływ potoku CI/CD usługi Azure Databricks to:

  1. Wersja: zapisz kod i notesy usługi Azure Databricks w systemie kontroli wersji, na przykład Git. Umożliwia to śledzenie zmian w czasie i współpracę z innymi członkami zespołu.
  2. Kod: tworzenie kodu i testów jednostkowych w notesie usługi Azure Databricks w obszarze roboczym lub lokalnie przy użyciu środowiska IDE.
  3. Kompilacja: Użyj ustawień pakietów zasobów Databricks, aby automatycznie tworzyć określone artefakty podczas wdrażania.
  4. Wdrażanie: wdróż zmiany w obszarze roboczym usługi Azure Databricks przy użyciu pakietów zasobów usługi Databricks z narzędziami takimi jak Azure DevOps, GitHub Actions lub Jenkins.
  5. Testowanie: twórz i uruchamiaj testy automatyczne, aby zweryfikować zmiany kodu.
    • Użyj narzędzi, takich jak pytest , aby przetestować integracje.
  6. Uruchom: użyj interfejsu wiersza polecenia Databricks z pakietami zasobów Databricks, aby zautomatyzować uruchomienia w obszarach roboczych Azure Databricks.
  7. Monitorowanie: monitoruj wydajność obciążeń kodu i produkcji w usłudze Azure Databricks przy użyciu narzędzi, takich jak monitorowanie zadań. Pomaga to zidentyfikować i rozwiązać wszelkie problemy występujące w środowisku produkcyjnym.

Dostępne narzędzia

Następujące narzędzia wspierają podstawowe zasady CI/CD: wersjonowanie wszystkich plików, ujednolicenie zarządzania zasobami, definiowanie infrastruktury jako kodu, izolowanie środowisk, automatyzację testowania oraz monitorowanie i automatyzację wycofywania.

Obszar Użyj tych narzędzi, gdy chcesz...
Pakiety zasobów Databricks Programatyczne definiowanie, wdrażanie i uruchamianie zasobów, w tym zadań Lakeflow, deklaratywnych potoków Lakeflow Spark i stosów MLOps przy użyciu najlepszych praktyk CI/CD.
Dostawca Terraform Databricks Aprowizuj obszary robocze i infrastrukturę usługi Databricks oraz zarządzaj nimi przy użyciu narzędzia Terraform.
Ciągła integracja i ciągłe dostarczanie w usłudze Azure Databricks przy użyciu usługi Azure DevOps Opracuj potok ciągłej integracji/ciągłego wdrażania dla usługi Azure Databricks korzystającej z usługi Azure DevOps.
Uwierzytelnianie za pomocą usługi Azure DevOps w usłudze Azure Databricks Uwierzytelnianie za pomocą usługi Azure DevOps.
Funkcja GitHub Actions Dołącz akcję GitHub opracowaną dla Azure Databricks w przepływie CI/CD.
CI/CD za pomocą Jenkins na Azure Databricks Opracowanie potoku ciągłej integracji/ciągłego wdrażania dla Azure Databricks, który korzysta z Jenkins.
Organizowanie zadań lakeflow za pomocą platformy Apache Airflow Zarządzanie potokiem danych korzystającym z platformy Apache Airflow i planowanie go.
Jednostki usługi dla ciągłej integracji/ciągłego wdrażania Użyj tożsamości usługi zamiast użytkowników z ciągłą integracją/ciągłym wdrażaniem.
Uwierzytelnianie dostępu do usługi Azure Databricks przy użyciu federacji tokenów OAuth Użyj federacji tożsamości roboczej dla uwierzytelniania CI/CD, co eliminuje konieczność używania tajemnic Databricks, dzięki czemu jest to najbezpieczniejszy sposób uwierzytelniania w Databricks.

Pakiety zasobów Databricks

Pakiety zasobów Databricks są zalecanym podejściem do CI/CD w środowiskach Databricks. Użyj pakietów zasobów usługi Databricks, aby opisać zasoby usługi Databricks, takie jak zadania i potoki jako pliki źródłowe, i powiązać je razem z innymi zasobami, aby zapewnić kompleksową definicję projektu możliwego do wdrożenia. Te pakiety plików mogą być kontrolowane przez źródło i można użyć zewnętrznej automatyzacji ciągłej integracji/ciągłego wdrażania, takiej jak Github Actions, do wyzwalania wdrożeń.

Pakiety obejmują wiele funkcji, takich jak szablony niestandardowe w celu wymuszania spójności i najlepszych rozwiązań w całej organizacji, oraz kompleksowa obsługa wdrażania plików kodu i konfiguracji dla wielu zasobów usługi Databricks. Tworzenie pakietu wymaga znajomości składni konfiguracji pakietu.

Aby uzyskać zalecenia dotyczące używania pakietów w ciągłej integracji/ciągłego wdrażania, zobacz Najlepsze rozwiązania i zalecane przepływy pracy ciągłej integracji/ciągłego wdrażania w usłudze Databricks.

Inne narzędzia do kontroli źródła

Alternatywą dla zastosowania pełnej integracji/ciągłego wdrażania z pakietami zasobów usługi Databricks są opcje oferowane przez tę usługę, które dotyczą jedynie zarządzania wersjami i wdrażania plików kodu oraz notesów.

  • Folder Git: foldery Git mogą służyć do odzwierciedlenia stanu zdalnego repozytorium Git. Możesz utworzyć folder git dla środowiska produkcyjnego, aby zarządzać plikami źródłowymi i notesami źródłowymi. Następnie ręcznie ściągnij folder Git do najnowszego stanu lub skorzystaj z zewnętrznych narzędzi CI/CD, takich jak GitHub Actions, aby ściągnąć folder Git podczas scalania. Użyj tej metody, jeśli nie masz dostępu do zewnętrznych potoków ciągłej integracji/ciągłego wdrażania.

    Takie podejście działa w przypadku zewnętrznych koordynatorów, takich jak Airflow, ale należy pamiętać, że tylko pliki kodu, takie jak notesy i wersje robocze pulpitów nawigacyjnych, są w kontroli źródła. Konfiguracje zadań lub potoków, które uruchamiają zasoby w folderze Git i konfiguracjach do publikowania pulpitów nawigacyjnych, nie są w kontroli źródła.

  • Usługa Git z zadaniami: usługa Git z zadaniami umożliwia skonfigurowanie niektórych typów zadań w celu używania zdalnego repozytorium Git jako źródła plików kodu. Po rozpoczęciu uruchamiania zadania usługa Databricks tworzy migawkę repozytorium i uruchamia wszystkie zadania względem tej wersji. Takie podejście obsługuje tylko ograniczone zadania podrzędne, a tylko pliki kodu (notesy i inne pliki) są kontrolowane przez źródło. Konfiguracje zadań, takie jak sekwencje zadań, ustawienia obliczeniowe i harmonogramy, nie są kontrolowane przez źródło, co sprawia, że takie podejście jest mniej odpowiednie dla wdrożeń obejmujących wiele środowisk i między obszarami roboczymi.