CI/CD implementeren voor Azure SQL Database

Voltooid

U weet nu hoe u Azure SQL Database implementeert, configureert en gebruikt om een sterke basis te bouwen voor een moderne toepassing. Toepassingsvereisten veranderen voortdurend en veranderen, dus de volgende stap is om te begrijpen hoe u uw database bijwerkt wanneer dat nodig is. Development Operations (DevOps) is een set principes en procedures die u kunnen helpen.

DevOps is de vereniging van mensen, processen en technologie om klanten voortdurend waarde te bieden. Teams die overstappen op de cultuur, werkwijzen en hulpprogramma's van DevOps leveren hogere prestaties en bouwen sneller betere producten voor een hogere klanttevredenheid.

Een database is een van de belangrijkste onderdelen van een oplossing; Daarom is de mogelijkheid om uw database te integreren met uw DevOps-procedures een belangrijk onderdeel van moderne en flexibele toepassingsontwikkeling.

Met Azure SQL zijn er verschillende methoden om uw database op te nemen in uw DevOps-proces. Een pijplijn voor continue integratie (CI) en continue levering (CD) is de backbone van een DevOps-omgeving en Azure SQL kan volledig worden geïntegreerd met elk CI/CD-hulpprogramma dat u kiest. Twee van de meest voorkomende en veelgebruikte hulpprogramma's in Azure zijn GitHub Actions en Azure DevOps.

CI/CD implementeren voor databases

Het gebruik van de database als onderdeel van een CI/CD-pijplijn betekent dat u de structuur( en misschien zelfs een deel van de gegevens) op een volledig geautomatiseerde, reproduceerbare en deterministische manier wilt configureren en implementeren. Zodra deze is geconfigureerd, kunt u de implementatie of het updateproces op elk gewenst moment, voor een willekeurig aantal keren, uitvoeren en consistente resultaten verkrijgen.

In deze les leert u meer over de drie belangrijkste benaderingen voor het implementeren van een CI/CD-pijplijn voor databases:

  • Gewenste status
  • Code First Migrations
  • Aangepaste scripts

De gewenste statusbenadering gebruiken met SqlPackage.exe

In een Desired State-benadering maakt u een momentopname van de structuur van een referentiedatabase om de gewenste status weer te geven. Vervolgens kunt u die momentopname gebruiken om een andere doeldatabase, meestal de test- of productiedatabase, te synchroniseren met de gewenste status. U kunt een hulpprogramma zoals SqlPackage.exe gebruiken om de momentopname in een .dacpac bestand te maken. Wanneer de .dacpac database wordt toegepast op de doeldatabase, worden de verschillen automatisch gevonden, wordt het juiste script gegenereerd en wordt dat script toegepast om het doelschema te synchroniseren met de verwijzing.

We gebruiken de Desired State-benadering in het busvangende scenario; Het is waarschijnlijk de eenvoudigste en eenvoudigste van de drie benaderingen die worden besproken.

Code First Migrations implementeren, afhankelijk van uw taal

Er is een andere optie als u geen T-SQL-scripts wilt schrijven; In plaats daarvan wilt u C#, Python of Node en de entiteiten die zijn gedefinieerd in uw oplossing (bijvoorbeeld een bus, een route of een locatie) automatisch de database en het schema laten genereren. Er is meestal een specifiek hulpprogramma dat wordt geleverd bij of van toepassing is op een platform of framework. Deze hulpprogramma's zorgen ervoor dat telkens wanneer u een veld of entiteit wijzigt of toevoegt, de nieuwe structuur wordt weergegeven in de database. Aan het einde van deze module vindt u verwijzingen naar hulpprogramma's voor specifieke platforms en frameworks.

Handmatige scripts gebruiken voor stapsgewijze implementaties

In de handmatige scriptingbenadering schrijft en onderhoudt een ontwikkelaar zorgvuldig scripts die nodig zijn om de database in de loop van de tijd te maken en te wijzigen. Nadat een script in productie is geïmplementeerd, wordt het nooit gewijzigd. in plaats daarvan wordt er een nieuwe gemaakt. Elk script bevat de code die nodig is om de database te ontwikkelen naar het nieuwe schema. In gevallen waarin een volledig nieuwe database moet worden geïmplementeerd, moeten alle scripts in de juiste volgorde worden uitgevoerd om ervoor te zorgen dat de database wordt gemaakt en de ontwikkeling correct is. Zodra een script is geïmplementeerd, kunt u hulpprogramma's zoals het hulpprogramma Schema vergelijken in SQL Server Data Tools (SSDT) gebruiken om databasedefinities te vergelijken. Dit helpt ervoor te zorgen dat het geïmplementeerde script niet opnieuw wordt toegepast op dezelfde database in volgende uitvoeringen.

Selecteer een pijplijnhulpprogramma om CI/CD eenvoudig te implementeren

Zodra u hebt vastgesteld hoe u uw database het beste kunt bijwerken, kunt u kiezen uit twee algemene oplossingen, Azure DevOps of GitHub Actions, om die aanpak te implementeren.

CI/CD implementeren met Azure DevOps

Azure DevOps is een suite met producten die volledige ondersteuning bieden voor alle DevOps-aspecten, waaronder een CI/CD-pijplijn. Een pijplijn bestaat uit taken die de stappen van de pijplijn definiëren. Een taak kan bijna alles zijn, van de uitvoering van een uitvoerbaar bestand tot de build van een .NET-oplossing. U kunt een specifieke taak met de naam Azure SQL Database Deployment Task gebruiken om een .dacpac bestand te implementeren of een .sql script uit te voeren.

CI/CD implementeren met GitHub Actions

GitHub Actions staat de definitie van een CI/CD-pijplijn toe. U gebruikt Acties om de stappen van de pijplijn te maken. U kunt een actie gebruiken om een proces van vrijwel elk type uit te voeren. Met de Actie Azure SQL Deploy kunt u een .dacpac bestand implementeren.

In de volgende oefening worden Azure SQL-acties gebruikt om het databaseschema te implementeren en bij te werken, zodat u het in actie kunt zien.

Kenniscontrole

1.

Welke van de volgende benaderingen is geen benadering voor CI/CD in Azure SQL Database?

2.

DevOps is gedefinieerd als de samenvoeging van drie dingen. Welke van de volgende opties was er niet een van?