Wdrażanie CI/CD dla usługi Azure SQL Database

Ukończone

Teraz wiesz, jak wdrażać, konfigurować i używać usługi Azure SQL Database do tworzenia silnej podstawy dla nowoczesnej aplikacji. Wymagania aplikacji stale ewoluują i zmieniają się, więc następnym krokiem jest zrozumienie sposobu aktualizowania bazy danych w razie potrzeby. Operacje programowania (DevOps) to zestaw zasad i praktyk, które mogą pomóc.

DevOps to związek ludzi, procesów i technologii, aby stale zapewniać klientom wartość. Zespoły, które przyjmują kulturę, praktyki i narzędzia DevOps, stają się wysokiej wydajności, tworząc lepsze produkty szybciej w celu zwiększenia zadowolenia klientów.

Baza danych jest jedną z głównych części rozwiązania; w związku z tym możliwość zintegrowania bazy danych z praktykami DevOps jest kluczowym elementem nowoczesnego i elastycznego tworzenia aplikacji.

W usłudze Azure SQL istnieje kilka podejść do uwzględnienia bazy danych w procesie DevOps. Potok ciągłej integracji i ciągłego dostarczania (CD) jest szkieletem środowiska DevOps, a usługa Azure SQL może być w pełni zintegrowana z dowolnym wybranym narzędziem ciągłej integracji/ciągłego wdrażania. Dwa z najpopularniejszych i powszechnie używanych narzędzi na platformie Azure to GitHub Actions i Azure DevOps.

Wdrożenie CI/CD dla baz danych

Posiadanie bazy danych jako części pipeline'u CI/CD oznacza, że chcesz skonfigurować i wdrożyć strukturę — a być może nawet niektóre dane — w sposób w pełni zautomatyzowany, powtarzalny i deterministyczny. Po skonfigurowaniu można uruchomić proces wdrażania lub aktualizacji w dowolnym momencie, przez dowolną liczbę razy i uzyskać spójne wyniki.

W tej jednostce poznasz trzy główne podejścia do wdrażania potoku CI/CD dla baz danych.

  • Żądany stan
  • Migracje dla Code First
  • Skrypty niestandardowe

Użyj podejścia żądanego stanu z SqlPackage.exe

W podejściu żądanego stanu utworzysz migawkę struktury bazy danych referencyjnej, która będzie reprezentować żądany stan. Następnie możesz użyć tej migawki, aby zsynchronizować inną docelową bazę danych, zazwyczaj testową lub produkcyjną bazę danych, do żądanego stanu. Możesz użyć narzędzia, takiego jak SqlPackage.exe, aby utworzyć migawkę w pliku .dacpac. Po zaaplikowaniu .dacpac do docelowej bazy danych, automatycznie znajdzie różnice, wygeneruje prawidłowy skrypt i zastosuje ten skrypt, aby zsynchronizować schemat docelowy ze wzorcem.

W scenariuszu dojazdu autobusem używamy podejścia w oparciu o pożądany stan; jest to prawdopodobnie najłatwiejsze i najprostsze z trzech omówionych podejść.

Implementowanie migracji Code First w zależności od języka

Istnieje inna opcja, jeśli nie chcesz pisać skryptów języka T-SQL; Zamiast tego chcesz zezwolić na automatyczne generowanie bazy danych i schematu w języku C#, Python lub Node oraz jednostek zdefiniowanych w rozwiązaniu (na przykład magistrali, trasy lub lokalizacji). Zazwyczaj istnieje określone narzędzie, które jest dostarczane lub ma zastosowanie do platformy lub frameworku. Te narzędzia zapewniają, że za każdym razem, gdy zmienisz lub dodasz pole lub jednostkę, nowa struktura zostanie odzwierciedlona w bazie danych. Na końcu tego modułu można znaleźć odwołania do narzędzi dla określonych platform i struktur.

Używanie skryptów ręcznych na potrzeby wdrożeń krok po kroku

W podejściu ręcznym do obsługi skryptów deweloper starannie pisze i utrzymuje skrypty potrzebne do utworzenia i zmiany bazy danych w czasie. Po wdrożeniu skryptu w środowisku produkcyjnym nigdy nie jest on zmieniany; zamiast tego jest tworzony nowy. Każdy skrypt zawiera kod potrzebny do ewolucji bazy danych do nowego schematu. W przypadkach, gdy baza danych musi zostać wdrożona od podstaw, wszystkie skrypty muszą być wykonywane w odpowiedniej kolejności, aby upewnić się, że baza danych została utworzona i ewoluowała prawidłowo. Po wdrożeniu skryptu możesz użyć narzędzi, takich jak narzędzie Do porównywania schematów w narzędziach SQL Server Data Tools (SSDT), aby porównać definicje baz danych. Pomaga to zagwarantować, że wdrożony skrypt nie zostanie ponownie zastosowany do tej samej bazy danych w kolejnych wykonaniach.

Wybierz narzędzie pipeline, aby łatwo zaimplementować ciągłą integrację i ciągłe wdrażanie

Po zidentyfikowaniu podejścia, które najlepiej odnosi się do sposobu aktualizowania bazy danych, możesz wybrać spośród dwóch typowych rozwiązań, Usługi Azure DevOps lub GitHub Actions, aby zaimplementować to podejście.

Implementowanie ciągłej integracji/ciągłego wdrażania za pomocą usługi Azure DevOps

Azure DevOps to pakiet produktów, który zapewnia pełną obsługę wszystkich aspektów DevOps, w tym ciągłej integracji i dostarczania. Przepływ składa się z zadań, które definiują kroki przepływu. Zadanie może być niemal dowolne— od wykonania pliku wykonywalnego po kompilację rozwiązania .NET. W celu wdrożenia pliku .dacpac lub wykonania skryptu .sql można użyć określonego zadania o nazwie Azure SQL Database Deployment Task.

Wdrożenie CI/CD za pomocą GitHub Actions

GitHub Actions umożliwia definicję potoku CI/CD. Aby utworzyć kroki potoku, należy użyć Actions. Możesz użyć akcji, aby wykonać proces niemal dowolnego typu. Akcja Azure SQL Deploy umożliwia wdrożenie pliku .dacpac.

W następnym ćwiczeniu usługa Azure SQL Actions będzie używana do wdrażania i aktualizowania schematu bazy danych, co daje możliwość wyświetlenia go w działaniu.

Test wiedzy

1.

Które z poniższych podejść nie jest podejściem do ciągłej integracji/ciągłego wdrażania w Azure SQL Database?

2.

Metodyka DevOps została zdefiniowana jako związek trzech rzeczy. Która z poniższych opcji nie była jedną z nich?