Construirea și implementarea proiectelor de baze de date în Acțiuni GitHub și Azure DevOps

Finalizat

Deoarece bazele de date sunt componente integrante ale soluțiilor mai mari, dezvoltatorii trebuie să găsească modalități eficiente de a gestiona dezvoltarea bazelor de date în mod similar cu modul în care gestionează codul aplicației. Această sarcină este deosebit de dificilă, deoarece dezvoltarea bazei de date este strâns legată de datele stocate în baza de date, adăugând straturi de complexitate.

Din fericire, instrumente precum GitHub Actions și Azure DevOps Services oferă soluții robuste pentru gestionarea acestor complexități. Ambele platforme acceptă implementarea DACPAC, ceea ce simplifică procesul de implementare a modificărilor bazei de date prin împachetarea lor într-un pachet DAC (Application Component) de nivel de date . Această abordare nu numai că asigură consecvența și fiabilitatea implementărilor de baze de date, dar se integrează perfect și cu conductele de integrare continuă și implementare continuă (CI/CD), facilitând pentru dezvoltatori întreținerea și actualizarea bazelor de date împreună cu codul aplicației.

Exemplele din această unitate presupun că aveți deja:

Utilizați GitHub Actions pentru a vă conecta la baza de date SQL Azure

Puteți utiliza GitHub Actions pentru a vă conecta la baza de date SQL Azure și pentru a publica proiecte SQL utilizând fișiere DACPAC.

Utilizarea acțiunilor GitHub pentru a vă conecta la baza de date SQL Azure are trei pași principali.

  1. Clonați depozitul GitHub în Visual Studio Code.
  2. Creați un proiect de bază de date în Visual Studio Code.
  3. Configurați integrarea continuă (CI) cu GitHub Actions.

Clonați depozitul GitHub

Puteți clona depozitul GitHub pe care l-ați creat urmând acești pași.

  1. În Visual Studio Code, selectați Vizualizare>paletă de comenzi.
  2. În paleta de comenzi, tastați Git: Clonare, apoi selectați-l.
  3. Introduceți adresa URL a depozitului și selectați Clonare.
  4. Selectați sau creați un folder pentru a stoca fișierele depozitului.

Crearea unui proiect de bază de date în Visual Studio Code

În Visual Studio Code, configurați un nou proiect de bază de date și salvați proiectul în același folder în care ați clonat depozitul GitHub.

Pentru mai multe informații despre crearea unui Proiect de Bază de Date în Visual Studio Code, vezi SQL Server Development with Visual Studio Code.

După ce ați creat proiectul bazei de date, adăugați cod pentru a modifica baza de date SQL Azure. Apoi trimiteți-le înapoi în depozitul GitHub pentru a vă asigura că sunt urmărite și integrate în sistemul de control al versiunilor.

Configurați integrarea continuă cu GitHub Actions

Pentru a configura integrări continue (CI) cu GitHub Actions, creați un .yml fișier în /.github/workflows/ calea din depozit. Dosarul .yml are două secțiuni.

  1. Configurarea autentificării
  2. Creați un flux de lucru GitHub

Configurați autentificarea configurează secretele GitHub, iar a doua secțiune creează un flux de lucru GitHub Actions.

Autentificarea

Mai întâi trebuie să creați o entitate principală de serviciu cu comanda az ad sp create-for-rbac din Azure CLI. Utilizați Azure Cloud Shell în portalul Azure pentru a rula următorul cod Azure CLI. Înlocuiți substituenții cu ID-ul abonamentului, numele grupului de resurse și numele aplicației.

az ad sp create-for-rbac --name "myML" --role contributor --scopes /subscriptions/<subscription-id>/resourceGroups/<group-name> --json-auth

Rezultatul este un obiect JSON cu acreditările de atribuire a rolurilor. Salvați fișierul așa cum se salvează ca secret GitHub.

În al doilea rând, creați șirul de conexiune SQL. Puteți copia acest lucru din portalul Azure. Din baza de date SQL Azure, deschideți Setări>șiruri de conexiune.

Captură de ecran care arată setările de conexiune Azure SQL Database.

Copiați șirul de conexiune ADO.NET, apoi înlocuiți valorile substituente pentru baza de date și parola. Șirul de conexiune arată similar cu acesta:

Server=tcp:my-sql-server.database.windows.net,1433;Initial Catalog={your-database};Persist Security Info=False;User ID={admin-name};Password={your-password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;

Acest șir de conexiune va fi, de asemenea, stocat ca secret GitHub.

În depozitul GitHub, adăugați secrete în Setări>Securitate ->Secrete și variabile>Acțiuni. Creați secrete noi numite AZURE_CREDENTIALS pentru a stoca textul JSON și AZURE_SQL_CONNECTION_STRING pentru a stoca șirul de conexiune.

Acum sunteți gata să vă creați fluxul de lucru.

Notă

Într-un mediu de producție, luați în considerare utilizarea identităților gestionate pentru acțiunea GitHub pentru a accesa baza de date în loc de autentificarea SQL. Pentru mai multe informații, consultați Identități gestionate în Microsoft Entra pentru Azure SQL.

Creați un flux de lucru GitHub

În depozitul GitHub, selectați Acțiuni și configurați singur un flux de lucru. Se deschide un fișier main.yml gol.

Acum puteți construi fișierul YAML. Pentru sintaxă și instrucțiuni detaliate, consultați Fluxul de lucru pentru acțiunile GitHub. De exemplu, eticheta name: specifică numele fluxului de lucru, în timp ce valoarea on determină evenimentele care declanșează rularea fluxului de lucru.

Sfat

Pornirea rapidă pentru acțiunile GitHub vă pune în funcțiune cu caracteristici suplimentare ale acțiunilor GitHub.

Implementarea bazei de date SQL Azure cu Azure DevOps Services

De asemenea, puteți implementa actualizări într-o bază de date SQL Azure utilizând Azure DevOps Services. Pentru a începe, veți avea nevoie de un cont Azure DevOps Services, un sistem de control al versiunilor (cum ar fi Azure Repos sau GitHub) și Visual Studio Code cu extensia SQL Database instalată.

Azure DevOps Services include Azure Pipelines, care construiesc, testează și implementează automat codul. Utilizând Azure Pipelines, puteți accepta integrarea continuă și implementarea continuă (CI/CD) a modificărilor bazei de date SQL Azure în cadrul proiectului dvs. Această integrare asigură că modificările bazei de date sunt aplicate în mod consecvent și fiabil.

Azure Pipelines este integrat perfect cu diverse sisteme de control al versiunii, inclusiv GitHub și Azure Repos. Azure Pipelines vă permite să rulați scripturi SQL ca parte a unei conducte, utilizând scripturi Azure PowerShell pentru a crea și elimina reguli de firewall în Azure, asigurând gestionarea sigură și eficientă a bazelor de date.

Pentru mai multe informații despre opțiunile de implementare a bazei de date SQL Azure, consultați Implementarea bazei de date SQL Azure în documentația pentru Azure DevOps Services.