Optimizează bazele de date relaționale din perspectiva prețului și a performanței
Azure SQL Database este serviciu de baze de date fully-managed (PaaS) care preia majoritatea funcțiilor administrative, precum upgrade-urile, patching-urile sistemelor de operare, backup-urile și monitorizarea, fără să mai fie necesară intervenția unui administrator de baze de date.
Azure SQL Database este serviciu de baze de date fully-managed (PaaS) care preia majoritatea funcțiilor administrative, precum upgrade-urile, patching-urile sistemelor de operare, backup-urile și monitorizarea, fără să mai fie necesară intervenția unui administrator de baze de date. Azure SQL Database rulează mereu ultima versiune disponibilă a sistemelor de operare și a bazelor de date și oferă o disponibilitate garantată a resurselor de 99.99%. Acest SLA este destul de costisitor și greu de atins pe un scenariu IaaS (VM-uri pe care să ruleze SQL Server), unde se pleacă de la un SLA de 95%. În acest link puteți vedea uptime-ul și downtime-ul în funcție de SLA.
SQL Database este disponibil în două modalități de cumpărare:
- vCore (provisioned și serverless compute tier)
- DTU
Provisioned compute este indicat în cazul bazelor de date multiple ce pot fi grupate într-un singur server care să folosească elastic pools și ale cărui workload-uri sunt stabile și necesită un consum mare de resurse (vcore/memory/IO) în majoritatea timpului.
La configurarea serviciului, clientul selectează tipul de hardware, nr. de vCore dorit și dimensiunea bazei de date. Specificațiile tehnice în funcție de generația hardware și nr. de vCore o puteți consulta accesând acest link.
Clientul primește un număr fix de resurse și este facturat la un preț fix în funcție de numărul de ore în care folosește serviciul.
Pentru optimizare de costuri, în cazul tier-ului de tip provisioned, clientul poate primi discount la costurile de compute prin achiziția de instanțe rezervate sau să reducă costurile cu licențele serverului de baze de date SQL aplicând Azure Hybrid Benefit (dacă are licență de SQL Server Standard sau Enterprise per Core cu Software Assurance Activ).
Serviciul beneficiază de scalabilitate manuală, asta înseamnă că oricând se dorește mărirea numărul de core poate crește capacitatea, dar va exista downtime.
Azure SQL Database serverless este un scenariu indicat atunci când avem o singură bază de date cu un tipar de utilizare impredictibil, care nu utilizează constant resursele alocate, ce are nevoie de scalare automată a resurselor în funcție de nevoi și fără downtime, care poate fi oprită în perioadele de inactivitate și care își permite un oarecare delay atunci când este repornit serviciul după perioada de pauză.
Un astfel de scenariu ar fi o aplicație ERP unde baza de date este intens utilizată de luni până vineri, 8-10 ore pe zi, de dimineață până la sfârșitul programului. Consumul de resurse utilizate are ups& downs în timpul zilei și uneori în timpul perioadelor de vârf este nevoie de resurse ridicate.
Azure SQL Database serverless poate scala resursele automat în funcție de nevoi. Setezi un minim de 0.5 vCPU care poate scala până la 80 vCores. Dacă aplicația nu este utilizată deloc o anumită perioadă de timp, ea poate intra în modul auto-pause și se va consuma doar serviciul de stocare, nu și componenta de compute și software.
În funcție de specificațiile hardware, dar și de min-max vCpu, vom obține anumite caracteristici tehnice. Le puteți consulta accesând acest link.
Prețul pentru Serverless compute este calculat la secundă și se aplică următorul model:
- App CPU Billed este suma dintre costul pentru compute+storage
- Când utilizarea Compute este între min/max vCore, costul de compute este în funcție de numărul de core și memorie utilizată
- Când utilizarea Compute este sub min vCore configurat, costul de compute este în funcție de costul vCore și memorie minim setat.
- Când baza de date intră în modul auto-pause, costul de compute este zero și se plătește doar storage-ul.
Într-un scenariu ca cel din imaginea de mai jos, se poate vedea că App CPU Percentage a atins valori maxime în foarte puține cazuri și în majoritatea timpului resursele au fost foarte puțin utilizate.
Dacă am fi ales un tier ca cel provisioned SQL (de ex. 4 vCore), clientul plătea pentru compute chiar dacă a avut nevoie doar pentru o scurtă perioadă de timp de toți cei 4 core. La un preț payg de 0.92 EUR/oră pentru 4 vCore, în 3 zile ar fi plătit 66 EUR.
Pentru serverless ne uităm la metricul App CPU Billed. Putem vedea cum se calculează acest metric accesând acest link.
În exemplul de mai sus avem înregistrați 297.56 mii vCore/per second. La un preț de €0.0001326/vCore-second, ar însemna un cost de 39 EUR, ceea ce reprezintă o economie de 40%.
Dacă aveți proiecte de SQL și doriți să ne consultăm pentru a găsi împreună soluția optimă, îmi puteți scrie la adresa de email eduard.plesu@alef.com.
Leave a Reply