Implementera CI/CD för Azure SQL Database

Slutförd

Nu vet du hur du distribuerar, konfigurerar och använder Azure SQL Database för att skapa en stark grund för ett modernt program. Programkraven utvecklas ständigt och ändras, så nästa steg är att förstå hur du uppdaterar databasen när det behövs. Development Operations (DevOps) är en uppsättning principer och metoder som kan hjälpa dig.

DevOps är en union av människor, processer och teknik för att kontinuerligt ge kunderna värde. Team som har infört DevOps-kultur, -metoder och -verktyg blir högpresterande och skapar bättre produkter snabbare för större kundtillfredsställelse.

En databas är en av de viktigaste delarna i en lösning. Därför är möjligheten att få databasen integrerad med dina DevOps-metoder en viktig del av modern och flexibel programutveckling.

Med Azure SQL finns det flera metoder för att inkludera din databas i DevOps-processen. En pipeline för kontinuerlig integrering (CI) och kontinuerlig leverans (CD) är ryggraden i en DevOps-miljö, och Azure SQL kan integreras helt med valfritt CI/CD-verktyg som du väljer. Två av de vanligaste och mest använda verktygen i Azure är GitHub Actions och Azure DevOps.

Implementera CI/CD för databaser

Att ha databasen som en del av en CI/CD-pipeline innebär att du vill konfigurera och distribuera strukturen – och kanske till och med en del av data – på ett helt automatiserat, reproducerbart och deterministiskt sätt. När du har konfigurerat den kan du köra distributions- eller uppdateringsprocessen när som helst, under valfritt antal gånger, och få konsekventa resultat.

I den här lektionen får du lära dig om de tre huvudsakliga metoderna för att implementera en CI/CD-pipeline för databaser:

  • Önskat tillstånd
  • Koda första migreringar
  • Anpassade skript

Använd metoden Desired State (Önskat tillstånd) med SqlPackage.exe

I en metod för önskat tillstånd tar du en ögonblicksbild av strukturen för en referensdatabas för att representera önskat tillstånd. Du kan sedan använda ögonblicksbilden för att synkronisera en annan måldatabas, vanligtvis test- eller produktionsdatabasen, till önskat tillstånd. Du kan använda ett verktyg som SqlPackage.exe för att ta ögonblicksbilden till en .dacpac fil. .dacpac När tillämpas på måldatabasen hittar den automatiskt skillnaderna, genererar rätt skript och tillämpar skriptet för att synkronisera målschemat med referensen.

Vi använder metoden Desired State (Önskat tillstånd) i scenariot med bussfångning. Det är förmodligen den enklaste och enklaste av de tre metoder som diskuteras.

Implementera Code First Migrations beroende på ditt språk

Det finns ett annat alternativ när du inte vill skriva T-SQL-skript. I stället vill du låta C#, Python eller Node och de entiteter som definierats i din lösning (till exempel en buss, en väg eller en plats) automatiskt generera databasen och schemat. Det finns vanligtvis ett specifikt verktyg som medföljer eller gäller för en plattform eller ett ramverk. Dessa verktyg säkerställer att varje gång du ändrar eller lägger till ett fält eller en entitet återspeglas den nya strukturen i databasen. Du hittar referenser till verktyg för specifika plattformar och ramverk i slutet av den här modulen.

Använda manuella skript för stegvisa distributioner

I den manuella skriptmetoden skriver och underhåller en utvecklare noggrant de skript som behövs för att skapa och ändra databasen över tid. När ett skript har distribuerats i produktion ändras det aldrig. i stället skapas en ny. Varje skript innehåller den kod som behövs för att utveckla databasen till det nya schemat. Om en databas måste distribueras från grunden måste alla skript köras i rätt ordning för att säkerställa att databasen skapas och att den har utvecklats korrekt. När ett skript har distribuerats kan du använda verktyg som verktyget Schema Compare i SQL Server Data Tools (SSDT) för att jämföra databasdefinitioner. Detta säkerställer att det distribuerade skriptet inte tillämpas igen på samma databas i efterföljande körningar.

Välj ett pipelineverktyg för att enkelt implementera CI/CD

När du har identifierat den metod som bäst hanterar hur du uppdaterar databasen kan du välja mellan två vanliga lösningar, Azure DevOps eller GitHub Actions, för att implementera den metoden.

Implementera CI/CD med Azure DevOps

Azure DevOps är en uppsättning produkter som ger fullständigt stöd till alla DevOps-aspekter, inklusive en CI/CD-pipeline. En pipeline består av uppgifter som definierar stegen i pipelinen. En uppgift kan vara nästan vad som helst, från körning av en körbar fil till att skapa en .NET-lösning. Du kan använda en specifik uppgift med namnet Azure SQL Database Deployment Task för att distribuera en .dacpac fil eller köra ett .sql skript.

Implementera CI/CD med GitHub Actions

GitHub Actions tillåter definitionen av en CI/CD-pipeline. Du använder Åtgärder för att skapa stegen i pipelinen. Du kan använda en åtgärd för att köra en process av nästan vilken typ som helst. Med Åtgärden Azure SQL Deploy kan du distribuera en .dacpac fil.

I nästa övning används Azure SQL Actions för att distribuera och uppdatera databasschemat, vilket ger dig möjlighet att se det i praktiken.

Kunskapstest

1.

Vilken av följande metoder är inte en metod för CI/CD i Azure SQL Database?

2.

DevOps definierades som en union av tre saker. Vilket av följande alternativ var inte ett av dem?