Les dues lliçons anteriors van dissenyar sistemes nous amb llibertat total. Aquesta és diferent, i per això s'assembla molt més al que et trobaràs en un projecte real. El portal de continguts i el blog corporatiu de Contoso Airlines —notícies de l'aerolínia, guies de destinacions, avisos d'operacions i la sala de premsa— és un WordPress que fa vuit anys que funciona sobre un MySQL 5.7 instal·lat en un servidor del soterrani de l'oficina de Barcelona. Té 14 GB de dades, 40.000 articles, connectors de tercers, còpies de seguretat en un disc USB que ningú no ha provat de restaurar i, sobretot, una regla clara de direcció: no es reescriu res.
L'objectiu és endur-se'l a Azure tal qual, guanyant còpies automàtiques, alta disponibilitat i apedaçament, sense tocar ni una línia de PHP. Això és exactament el que fa Azure Database for MySQL - Servidor flexible, i aquesta lliçó el desplega, el connecta a la xarxa privada i executa la migració amb la seva finestra de manteniment acordada.
Avís de cost: un servidor flexible de nivell Ús general amb 2 vCores ronda els 120-150 € al mes més emmagatzematge, i l'alta disponibilitat amb redundància de zona duplica el còmput. La bona notícia respecte a Azure SQL Database és que aquí sí que es pot aturar el servidor (fins a 30 dies seguits), cosa que en desenvolupament canvia del tot la factura. Tot i així, elimina el grup de recursos de laboratori en acabar.
Contingut
- El punt de partida i què cal conservar
- Servidor flexible: què gestiona Azure i què continues gestionant tu
- Nivells de còmput i emmagatzematge
- Alta disponibilitat i el seu cost
- Desplegament amb Azure CLI i accés privat
- Paràmetres del servidor
- Rèpliques de lectura per al trànsit del blog
- Còpies de seguretat, retenció i restauració
- La migració des del servidor de Barcelona
- Aturar el servidor per estalviar en desenvolupament
- Connexió segura per TLS i què canvia a l'aplicació
- Errors Comuns i Consells
- Exercicis
- Conclusió
- El punt de partida i què cal conservar
| Element | Situació actual | Objectiu a Azure |
|---|---|---|
| Motor | MySQL 5.7 en Ubuntu, a Barcelona | MySQL 8.0 gestionat a West Europe |
| Dades | 14 GB, 40.000 articles, 180.000 comentaris | Les mateixes, íntegres i amb accents i emojis correctes |
| Aplicació | WordPress amb 23 connectors | Sense canvis, llevat de la cadena de connexió |
| Còpies | Bolcat diari a un disc USB | Automàtiques, amb retenció de 14 dies |
| Disponibilitat | Un sol servidor; si cau, no hi ha portal | Alta disponibilitat amb redundància de zona |
| Tall admissible | — | Màxim 4 hores, un diumenge de matinada |
Aquesta última dada és la que governa tota la lliçó: una finestra de quatre hores permet una migració fora de línia, que és molt més simple que una en línia. Si el tall admissible fos de minuts, l'estratègia canviaria.
- Servidor flexible: què gestiona Azure i què continues gestionant tu
Servidor flexible és el model de desplegament actual del servei (l'antic «servidor únic» està en retirada i no s'ha de fer servir en projectes nous). Cada servidor és una instància de MySQL sobre una màquina virtual gestionada, amb emmagatzematge remot redundant, integrable directament a la teva xarxa virtual i amb control fi de paràmetres i finestres de manteniment.
| Responsabilitat | Azure | Tu |
|---|---|---|
| Sistema operatiu, pedaços del motor, versions menors | Sí | No |
| Alta disponibilitat i commutació per error | Sí, si l'actives | L'actives i la proves |
| Còpies de seguretat automàtiques i restauració | Sí | Defineixes retenció i verifiques que restauren |
| Xifratge en repòs i en trànsit | Sí, per defecte | Forces TLS al client |
| Disseny d'esquema, índexs i consultes | No | Sí |
Paràmetres del servidor (my.cnf) |
Exposats com a configuració | Sí, tu decideixes els valors |
| Usuaris i permisos de MySQL | No | Sí |
| Versió principal (5.7 → 8.0) | Ofereix l'actualització | Tu decideixes quan |
La frontera és nítida: Azure s'ocupa de la màquina i del procés; tu continues sent responsable de tot el que hi ha dins de la base de dades. Migrar a PaaS no converteix un esquema dolent en un de bo.
- Nivells de còmput i emmagatzematge
| Nivell | Perfil de CPU | Memòria per vCore | Per a què |
|---|---|---|---|
| Ampliable (Burstable) | Fracció de CPU amb crèdits acumulats | ~2 GB | Desenvolupament, proves i càrregues molt lleugeres; mai producció sostinguda |
| Ús general | CPU dedicada | ~4 GB | La majoria de les càrregues de producció |
| Optimitzat per a memòria | CPU dedicada | ~8 GB | Conjunts de treball grans, moltes connexions, memòries cau grans |
La trampa del nivell Ampliable és que funciona perfectament fins que s'esgoten els crèdits de CPU, i llavors el rendiment s'esfondra just quan hi ha trànsit. Serveix per a l'entorn de desenvolupament del portal, no per al portal.
L'emmagatzematge té un detall que gairebé ningú no mira: les IOPS van lligades a la mida aprovisionada. Un disc de 32 GB ofereix molt poques operacions per segon, i ampliar-lo és la manera més barata d'arreglar un problema d'E/S. Es pot activar el creixement automàtic, molt recomanable perquè quedar-se sense espai deixa el servidor en només lectura, i als nivells superiors es poden aprovisionar IOPS per damunt del que correspon a la mida. L'emmagatzematge només es pot augmentar, mai reduir.
Contoso tria per a producció Ús general, 2 vCores, 128 GB (amb marge sobre els 14 GB actuals per créixer i per tenir prou IOPS) i per a desenvolupament Ampliable B1ms amb 32 GB.
- Alta disponibilitat i el seu cost
Dues modalitats, més l'opció de no tenir-ne cap:
| Modalitat | On és la rèplica | Protegeix de | Cost | Temps de commutació |
|---|---|---|---|---|
| Sense alta disponibilitat | No n'hi ha | Res; el manteniment implica reinici | Base | Minuts d'indisponibilitat |
| Mateixa zona | Un altre node de la mateixa zona | Fallada del node | Doble còmput | ~60-120 segons |
| Redundància de zona | Una altra zona de la regió | Fallada del node i d'una zona sencera | Doble còmput | ~60-120 segons |
Si has de pagar el doble, tria redundància de zona: costa el mateix que la mateixa zona i protegeix de més coses. La modalitat de mateixa zona només té sentit en regions sense zones de disponibilitat o quan la latència entre zones és crítica.
Contoso activa redundància de zona en producció —el portal és la cara pública de l'aerolínia i també publica els avisos d'incidències, justament quan més es consulta— i cap alta disponibilitat en desenvolupament.
- Desplegament amb Azure CLI i accés privat
Hi ha dos mètodes de connectivitat i es trien en crear el servidor, sense possibilitat de canviar-los després:
- Accés públic amb regles de tallafoc: el servidor té nom públic i es filtra per IP. Còmode per començar, i una superfície d'atac permanent.
- Accés privat amb integració en xarxa virtual: el servidor es col·loca en una subxarxa delegada i només és accessible des de la xarxa. No té cap punt d'entrada des d'internet.
Contoso tria accés privat, per coherència amb el que s'ha fet a pe-sql-reservas i perquè el WordPress s'executa a App Service amb integració de xarxa virtual: res no ha d'arribar a la base des de fora. La subxarxa delegada és snet-integracion-app, que ja es va reservar al mòdul 2 per a aquest tipus de serveis.
GRUP="rg-contoso-reservas-pro"
SERVIDOR="mysql-contoso-portal-pro"
read -s -p "Contrasenya de l'administrador de MySQL: " ADMIN_PWD; echo
az mysql flexible-server create --name $SERVIDOR --resource-group $GRUP \
--location westeurope --version 8.0 \
--admin-user adminportal --admin-password "$ADMIN_PWD" \
--tier GeneralPurpose --sku-name Standard_D2ds_v4 \
--storage-size 128 --storage-auto-grow Enabled \
--high-availability ZoneRedundant \
--vnet vnet-contoso-pro --subnet snet-integracion-app \
--private-dns-zone "interno.contosoairlines.example" \
--backup-retention 14 --geo-redundant-backup Enabled \
--tags entorno=produccion proyecto=contoso-reservas centro-coste=CC-1042 [email protected]
# La base de dades del portal, amb joc de caracters per a accents i emojis
az mysql flexible-server db create -g $GRUP -s $SERVIDOR -d portal_contenidos \
--charset utf8mb4 --collation utf8mb4_unicode_ciDos paràmetres mereixen atenció especial. --private-dns-zone reutilitza la zona privada interno.contosoairlines.example del mòdul 2, de manera que el servidor es resol per nom intern des de tota la xarxa. I --charset utf8mb4: MySQL arrossega un joc de caràcters històric anomenat utf8 que no és UTF-8 complet i no admet emojis ni certs caràcters; fer servir utf8mb4 des del principi evita el clàssic article del blog que apareix amb símbols trencats després de la migració.
- Paràmetres del servidor
No hi ha accés al fitxer my.cnf, però tots els seus paràmetres estan exposats com a configuració del servidor. Els que es toquen a la pràctica:
# Connexions simultanies: WordPress amb 23 connectors obre moltes connexions curtes
az mysql flexible-server parameter set -g $GRUP -s $SERVIDOR \
--name max_connections --value 300
# Registre de consultes lentes, imprescindible per diagnosticar el portal
az mysql flexible-server parameter set -g $GRUP -s $SERVIDOR \
--name slow_query_log --value ON
az mysql flexible-server parameter set -g $GRUP -s $SERVIDOR \
--name long_query_time --value 2 # segons a partir dels quals es registra
# Joc de caracters per defecte del servidor: accents i emojis
az mysql flexible-server parameter set -g $GRUP -s $SERVIDOR \
--name character_set_server --value utf8mb4
# Zona horaria: es treballa en UTC i es converteix a l'aplicacio
az mysql flexible-server parameter set -g $GRUP -s $SERVIDOR --name time_zone --value "+00:00"Sobre max_connections: pujar-lo sense més és una mala solució, perquè cada connexió consumeix memòria i el màxim permès depèn de la mida del servidor. Si l'aplicació obre moltes connexions curtes, el correcte és agrupar connexions al client. Alguns paràmetres són estàtics i exigeixen reiniciar el servidor; la CLI ho adverteix, i aquest reinici s'ha de planificar.
- Rèpliques de lectura per al trànsit del blog
El portal és un cas de manual: el 98 % del trànsit són lectures d'articles i només el 2 % són escriptures de l'equip de comunicació. Una rèplica de lectura copia el servidor de manera asíncrona i absorbeix aquest trànsit:
az mysql flexible-server replica create \
--replica-name mysql-contoso-portal-pro-r1 \
--source-server $SERVIDOR --resource-group $GRUP --location westeuropeTres advertiments imprescindibles: la rèplica és asíncrona, així que pot anar uns segons per darrere i no serveix per llegir una cosa que s'acaba d'escriure; l'aplicació ha de dirigir explícitament les lectures al seu nom, cosa que en WordPress es resol amb un connector de bases de dades separades; i la rèplica factura com un servidor complet, així que es justifica quan el trànsit ho demana, no per defecte. Si calgués promocionar-la a servidor independent, s'atura la replicació amb az mysql flexible-server replica stop, operació irreversible.
- Còpies de seguretat, retenció i restauració
Les còpies són automàtiques: completa diària i del registre de transaccions cada pocs minuts, amb retenció configurable d'1 a 35 dies i opció de redundància geogràfica cap a North Europe, que és la que es va activar amb --geo-redundant-backup Enabled. Contoso fixa 14 dies, prou per detectar l'error típic del portal —un connector que corromp taules o un esborrat massiu de comentaris— sense engreixar la factura.
La restauració funciona igual que a Azure SQL Database: crea un servidor nou, mai no sobreescriu l'original.
az mysql flexible-server restore --name mysql-contoso-portal-rec \
--source-server $SERVIDOR --resource-group $GRUP \
--restore-time "2026-08-11T02:15:00Z" # UTCI la regla que es repeteix a tot el mòdul: aquest servidor restaurat factura des del primer minut. Es recuperen les dades, es verifiquen i s'elimina el mateix dia. Una còpia provada val infinitament més que tres còpies sense provar, així que convé assajar la restauració una vegada per trimestre.
- La migració des del servidor de Barcelona
Dos camins, i la tria depèn del tall admissible:
mysqldump / mydumper |
Azure Database Migration Service | |
|---|---|---|
| Mode | Fora de línia | Fora de línia o en línia |
| Tall | Tot el temps de bolcat i càrrega | Minuts, en el mode en línia |
| Complexitat | Baixa: dues ordres | Mitjana: cal configurar el servei i la connectivitat |
| Volum raonable | Fins a desenes de GB | Centenars de GB o més |
| Quan | Hi ha finestra de manteniment | No es pot aturar el servei |
Amb 14 GB i una finestra de quatre hores un diumenge de matinada, Contoso tria mysqldump en mode fora de línia. És més simple, i el que és simple falla menys a les tres de la matinada.
Llista de verificació prèvia (la setmana anterior, no el mateix dia):
- Versió d'origen i destinació compatibles; provar abans la migració a
mysql-contoso-portal-dev. - Inventariar jocs de caràcters i intercalacions de totes les taules:
SELECT table_name, table_collation FROM information_schema.tables WHERE table_schema='portal_contenidos'; - Comprovar que no es fan servir funcionalitats no admeses (motor MyISAM en taules crítiques,
SUPER, procediments que depenen del sistema de fitxers). - Anotar el recompte de files de les taules grans:
wp_posts,wp_postmeta,wp_comments. - Revisar usuaris i permisos: els usuaris de MySQL no viatgen en un bolcat normal.
- Congelar la publicació de continguts i avisar l'equip de comunicació.
Execució, amb la connectivitat ja muntada per la VPN de lloc a lloc del mòdul 2:
# 1. Bolcat des del servidor de Barcelona (--single-transaction no bloqueja les taules InnoDB)
mysqldump --host=10.100.4.20 --user=root --password \
--single-transaction --routines --triggers --events \
--default-character-set=utf8mb4 \
--databases portal_contenidos > portal_contenidos.sql
# 2. Carrega a Azure, des d'una VM de snet-gestion amb acces privat
mysql --host=mysql-contoso-portal-pro.interno.contosoairlines.example \
--user=adminportal --password --ssl-mode=REQUIRED \
< portal_contenidos.sqlVerificació posterior, abans de reobrir el portal:
- Recompte de files per taula, comparat amb l'anotat abans.
- Comprovar accents i emojis en articles recents; si apareixen trencats, el problema és al joc de caràcters i cal repetir el bolcat, no arreglar-ho a mà.
- Recrear usuaris i permisos d'aplicació amb
CREATE USERiGRANTmínims (mai l'administrador per a l'aplicació). - Canviar la cadena de connexió de WordPress i provar la web completa: portada, article, cerca, comentari, tauler d'administració.
- Deixar el servidor de Barcelona apagat però intacte dues setmanes, com a pla de reversió.
- Aturar el servidor per estalviar en desenvolupament
Aquesta és la diferència pràctica més agradable respecte a Azure SQL Database: un servidor flexible es pot aturar, i mentre està aturat no es factura còmput (l'emmagatzematge sí).
az mysql flexible-server stop -g rg-contoso-reservas-dev -n mysql-contoso-portal-dev
az mysql flexible-server start -g rg-contoso-reservas-dev -n mysql-contoso-portal-devEs reinicia sol al cap de 30 dies aturat, així que no serveix com a manera d'«arxivar» un servidor: per a això, es fa un bolcat i s'elimina. Combinat amb un runbook d'Azure Automation (07-04) que l'atura a les 19:00 i l'arrenca a les 8:00 de dilluns a divendres, l'entorn de desenvolupament passa a costar aproximadament un terç.
- Connexió segura per TLS i què canvia a l'aplicació
Azure Database for MySQL exigeix TLS de manera predeterminada, i així ha de quedar-se. Per a l'aplicació això significa dos canvis petits però obligatoris a la cadena de connexió: indicar el mode TLS i, si el client ho requereix, el certificat arrel.
// wp-config.php: nomes canvien aquestes linies en migrar
define('DB_NAME', 'portal_contenidos');
define('DB_USER', 'wp_portal'); // usuari d'aplicacio, no l'admin
define('DB_HOST', 'mysql-contoso-portal-pro.interno.contosoairlines.example');
define('MYSQL_CLIENT_FLAGS', MYSQLI_CLIENT_SSL); // forca TLSTingues en compte que el nom de l'amfitrió és el privat, resoluble només des de la xarxa virtual; que l'usuari és un d'aplicació amb permisos mínims sobre portal_contenidos; i que la contrasenya no hauria de ser al fitxer, sinó a Key Vault, referenciada des dels ajustos de l'aplicació d'App Service (lliçó 04-03). Si un client antic no admet TLS 1.2, la solució és actualitzar el client, no rebaixar el servidor.
Errors Comuns i Consells
- Triar accés públic «per provar» i quedar-se així. El mètode de connectivitat no es pot canviar després de crear el servidor: obliga a recrear-lo i tornar a migrar.
- Fer servir
utf8en lloc deutf8mb4. L'utf8de MySQL no és UTF-8 complet. Es detecta quan els articles apareixen amb caràcters trencats i ja hi ha trànsit a sobre. - Posar el nivell Ampliable en producció. Va bé fins que s'esgoten els crèdits de CPU, i això passa precisament el dia de més visites.
- Pujar
max_connectionscom a resposta a qualsevol error de connexions. Cada connexió consumeix memòria; la solució sol ser agrupar connexions a l'aplicació. - Confiar en la rèplica de lectura per a dades acabades d'escriure. És asíncrona: el redactor publicaria un article i no el veuria a la web.
- Migrar sense comptar files abans i després. Sense aquest recompte no hi ha manera objectiva de saber si la migració va ser completa.
- Oblidar els usuaris i permisos. Un
mysqldumpd'una base no inclou els comptes de MySQL: si ningú no els recrea, l'aplicació no arrenca a la finestra de tall. - Consell: assaja la migració completa a l'entorn de desenvolupament amb una còpia real de les dades. La primera vegada sempre apareix alguna cosa, i és millor que aparegui un dimecres a la tarda.
- Consell: mantén el servidor d'origen apagat i intacte dues setmanes. És el pla de reversió més barat que existeix.
Exercicis
Exercici 1: dimensionar i configurar
El portal rep 120.000 visites al mes, amb pics els dilluns al matí quan es publiquen els avisos operatius. La base ocupa 14 GB i creix uns 3 GB l'any.
- Tria nivell de còmput, mida d'emmagatzematge i modalitat d'alta disponibilitat per a producció i per a desenvolupament, justificant cada tria.
- Quin mètode de connectivitat tries i per què és una decisió que no admet penediment?
- Quina retenció de còpies fixaries a cada entorn?
Exercici 2: planificar la migració
L'equip disposa d'una finestra de quatre hores el diumenge de 02:00 a 06:00.
- Tria entre
mysqldumpi Azure Database Migration Service i justifica-ho. - Escriu tres comprovacions prèvies i tres de posteriors, indicant què faries si alguna falla.
- Descriu el pla de reversió si a les 05:30 el portal no funciona correctament.
Exercici 3: diagnosticar un problema de rendiment
Després de la migració, el portal respon bé llevat dels dilluns a les 09:00, quan algunes pàgines triguen més de 10 segons i apareixen errors de «too many connections».
- Quin paràmetre del servidor activaries primer per diagnosticar, i com?
- Enumera tres causes possibles, amb la seva correcció respectiva.
- Resoldria el problema una rèplica de lectura? I una simple ampliació de l'emmagatzematge?
Solucions
Solució 1:
- Producció: Ús general amb 2 vCores (la CPU dedicada evita l'esfondrament del nivell Ampliable al pic del dilluns), 128 GB d'emmagatzematge —no per espai, sinó per les IOPS associades a la mida i per marge de creixement— amb creixement automàtic activat, i alta disponibilitat amb redundància de zona, ja que el portal publica els avisos d'incidències justament quan més es consulta. Desenvolupament: Ampliable B1ms, 32 GB, sense alta disponibilitat.
- Accés privat amb integració a
snet-integracion-app. No admet penediment perquè el mètode de connectivitat es fixa en crear el servidor: canviar-lo obliga a crear un altre servidor i repetir la migració completa. - Producció, 14 dies amb redundància geogràfica; desenvolupament, 7 dies sense ella, ja que les dades són una còpia i són regenerables.
Solució 2:
mysqldumpfora de línia. Amb 14 GB, el bolcat i la càrrega caben de sobres en quatre hores, i no cal replicació contínua. El servei de migració afegiria complexitat de configuració sense resoldre cap problema real; es reservaria per a volums de centenars de GB o talls de minuts.- Prèvies: (a) provar la migració completa en desenvolupament —si falla, s'ajorna la finestra, mai no s'improvisa; (b) verificar jocs de caràcters de totes les taules —si hi ha barreja, es normalitza abans; (c) anotar recomptes de files —sense ells no hi haurà verificació possible. Posteriors: (a) comparar recomptes —si no quadren, es reverteix; (b) revisar accents i emojis —si estan trencats, es repeteix el bolcat amb
--default-character-set=utf8mb4; (c) provar el recorregut complet de la web, inclosa la publicació d'un article de prova. - Reversió: tornar la cadena de connexió de WordPress al servidor de Barcelona, que s'ha mantingut apagat però intacte, arrencar-lo, verificar el portal i reprogramar la finestra. Com que la publicació de continguts estava congelada, no hi ha escriptures noves per perdre.
Solució 3:
slow_query_logenONamblong_query_timeen 2 segons, i després revisar el registre per identificar les consultes que es repeteixen al pic. És la primera mesura perquè converteix una queixa en dades.- Causes i correccions: (a) consultes lentes d'un connector sobre
wp_postmetasense índex adequat, que es corregeix creant l'índex o desactivant el connector; (b) excés de connexions curtes per no agrupar connexions, que es corregeix amb agrupació al client i, secundàriament, ajustantmax_connections; (c) IOPS insuficients per un emmagatzematge petit, que es corregeix ampliant el disc o aprovisionant IOPS addicionals. - Una rèplica de lectura sí que ajudaria, perquè el 98 % del trànsit són lectures i repartir-les alleuja el servidor principal, però requereix que l'aplicació dirigeixi les lectures a la rèplica. Ampliar l'emmagatzematge ajuda només si el coll d'ampolla són les IOPS; si el problema són consultes mal indexades o connexions, no canvia res i només puja la factura. Per això el diagnòstic va primer.
Conclusió
Has portat a Azure un sistema heretat sense reescriure ni una línia, que és la migració més freqüent i menys glamurosa de qualsevol projecte real. Saps què és Azure Database for MySQL - Servidor flexible, on és la frontera entre el que gestiona Azure i el que continua sent teu, i per què el model de servidor únic ja no es fa servir. Distingeixes els nivells Ampliable, Ús general i Optimitzat per a memòria i coneixes la trampa dels crèdits de CPU, a més de la relació entre mida d'emmagatzematge i IOPS i per què convé el creixement automàtic. Has comparat l'alta disponibilitat de mateixa zona davant de redundància de zona —mateix preu, més protecció— i has desplegat mysql-contoso-portal-pro amb accés privat a snet-integracion-app i la seva zona DNS interna, sabent que aquest mètode de connectivitat no es pot canviar després.
Has ajustat els paràmetres que realment es toquen —max_connections, slow_query_log, character_set_server amb utf8mb4 perquè els accents i els emojis no es trenquin—, afegit una rèplica de lectura per al 98 % de trànsit de lectura del blog amb els seus tres advertiments, configurat còpies amb 14 dies de retenció i restaurat a un servidor nou que cal eliminar el mateix dia. I sobretot has executat la migració: la comparació entre mysqldump i Azure Database Migration Service, la tria del mode fora de línia per la finestra de quatre hores, la llista de verificació prèvia, les ordres de bolcat i càrrega, la verificació posterior amb recomptes de files i el pla de reversió de dues setmanes. Tanques amb dos detalls molt pràctics: que aquest servei sí que permet aturar el servidor per no pagar còmput en desenvolupament i què canvia exactament a la cadena de connexió en forçar TLS.
El següent sistema del mapa de dades també ve de fora, però per un motiu oposat. El sistema de planificació de tripulacions de Contoso no fa servir PostgreSQL per casualitat: el va triar perquè necessita consultes complexes sobre torns i descansos, tipus de dades rics i extensions que no existeixen en altres motors, en particular càlculs geogràfics de distàncies i rutes entre aeroports. A Azure Database for PostgreSQL veuràs què comparteix amb el que acabes d'aprendre —que és molt, i ho marcarem explícitament per no repetir-ho— i, sobretot, el que és diferencial: les extensions i la seva llista de permeses, amb postgis per a les rutes i pgvector mirant ja cap als serveis d'IA del mòdul 6, l'ajust de rendiment amb EXPLAIN ANALYZE, el problema de l'autovacuum en taules amb molta rotació i l'agrupació de connexions amb PgBouncer.
Curs d'Azure
Mòdul 1: Introducció a Azure
- Què és Azure?
- Models de servei, regions i zones de disponibilitat
- Crear i configurar el teu compte d'Azure
- Recorregut pel portal d'Azure
- Azure Resource Manager: subscripcions, grups de recursos i etiquetes
- Azure CLI, PowerShell i Cloud Shell
Mòdul 2: Serveis principals d'Azure
- Màquines virtuals d'Azure
- Escalat i alta disponibilitat del còmput
- Azure App Service
- Azure Storage: blobs, fitxers, cues i taules
- Xarxes a Azure: xarxes virtuals, subxarxes i NSG
- Connectivitat híbrida i lliurament global
Mòdul 3: Bases de dades d'Azure
- Triar el servei de dades adequat
- Azure SQL Database
- Azure Cosmos DB
- Azure Database for MySQL
- Azure Database for PostgreSQL
- Analítica de dades: Data Lake, Data Factory i Synapse
Mòdul 4: Seguretat a Azure
- Microsoft Entra ID i gestió d'identitats
- RBAC i identitats administrades
- Azure Key Vault
- Protecció DDoS i tallafoc d'aplicacions web
- Microsoft Defender for Cloud
- Governança i compliment amb Azure Policy
Mòdul 5: Azure DevOps
- Introducció a Azure DevOps
- Azure Repos
- Azure Pipelines: integració contínua
- Desplegament continu amb entorns i aprovacions
- Azure Artifacts
- Infraestructura com a codi amb Bicep
Mòdul 6: Serveis avançats d'Azure
- Contenidors a Azure: Container Registry i Container Apps
- Azure Kubernetes Service (AKS)
- Azure Functions
- Azure Logic Apps
- Missatgeria i esdeveniments: Service Bus, Event Grid i Event Hubs
- Serveis d'IA d'Azure
Mòdul 7: Monitoratge i gestió
- Azure Monitor: mètriques, alertes i taulers
- Log Analytics i consultes KQL
- Application Insights
- Azure Automation i runbooks
- Còpies de seguretat i recuperació davant desastres
Mòdul 8: Gestió i optimització de costos
- Calculadora de preus i estimació de costos
- Azure Cost Management: anàlisi, pressupostos i alertes
- Reserves, plans d'estalvi i Azure Hybrid Benefit
- Azure Advisor
- Estratègies d'optimització i cultura FinOps
