Udostępnij za pośrednictwem


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 Programowe definiowanie, wdrażanie i uruchamianie zasobów usługi Databricks, w tym zadań Lakeflow, deklaratywnych potoków Spark platformy Lakeflow oraz stosów MLOps przy użyciu najlepszych praktyk i przepływów pracy dla ciągłej integracji i ciągłego wdrażania.
Dostawca Terraform Databricks Aprowizuj obszary robocze i infrastrukturę usługi Databricks oraz zarządzaj nimi przy użyciu narzędzia Terraform. Aby uzyskać szczegółowe informacje na temat tego, kiedy używać dostawcy Terraform dla usługi Databricks zamiast pakietów zasobów Databricks, zobacz Lokalne narzędzia programistyczne.
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.
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.