Diagrammi architetturali con AI generativa 🗺️
Perché generare diagrammi con l’AI? 🧠
Se pensi che disegnare diagrammi architetturali sia un’attività rilassante, probabilmente non hai mai dovuto allineare a mano decine di rettangoli in PowerPoint. L’AI generativa, invece, può trasformare questa fatica in un processo quasi piacevole: basta descrivere l’architettura e lasciar fare il lavoro sporco all’algoritmo.
- Risparmi tempo (e mouse)
- Riduci errori e dimenticanze
- Standardizzi la rappresentazione
- Faciliti la collaborazione
⚠️ Nota importante: Anche se l’AI è brava a disegnare, tu sei ancora responsabile della correttezza! Rivedi sempre i diagrammi generati prima di mostrarli al team (o al capo).
I vantaggi di MermaidJS per la documentazione 📊
MermaidJS è la matita digitale degli architetti cloud: semplice, testuale, integrabile ovunque e perfetta per essere processata sia dagli umani che dalle macchine (e dagli sviluppatori che odiano i drag&drop). Usare MermaidJS con l’AI significa:
- Strutturare le informazioni in modo chiaro e coerente
- Ridurre la sindrome del “rettangolo volante”
- Favorire la riusabilità e la coerenza tra i diagrammi
- Essere facilmente integrato in piattaforme di documentazione e versionamento
- Consentire la revisione tramite Git (e non tramite screenshot su Slack)
Come funziona la generazione assistita di diagrammi 🪄
- Definisci i componenti chiave: quali servizi, risorse e connessioni vuoi rappresentare?
- Scegli una tipologia di diagramma: meglio se già collaudato dal team.
- Prompta l’AI: fornisci la descrizione architetturale e chiedi di generare il diagramma in formato MermaidJS.
- Rivedi e personalizza: l’AI è brava, ma tu sei meglio! Aggiungi dettagli, correggi imprecisioni e adatta la visualizzazione.
Pro tip: più dettagli fornisci nel prompt, più il diagramma sarà fedele all’architettura reale. L’AI non ha ancora la sfera di cristallo (ma ci sta lavorando).
Esempio pratico: architettura cloud su GCP ☁️
Un prompt strutturato come quello che segue, unito a una descrizione dettagliata dell’architettura, permette all’AI di produrre diagrammi chiari e coerenti, riducendo al minimo le ambiguità e le interpretazioni creative (che, si sa, non sempre sono gradite in ambito tecnico).
|
|
Fornendo all’AI una descrizione come questa, puoi ottenere in pochi secondi un diagramma architetturale pronto all’uso, perfetto per essere inserito nella documentazione o condiviso con il team. Ecco un esempio di input:
|
|
Il risultato sarà un diagramma MermaidJS che rappresenta fedelmente la struttura e le relazioni tra i componenti descritti, con stili e forme differenziate per ogni tipologia di servizio o risorsa:
graph TD %% === Client Layer === User[User Browser] %% === Ingress Layer === LoadBalancer[(Cloud Load Balancer HTTPS)] APIGateway[[API Gateway]] IdentityPlatform[[Identity Platform]] %% === Frontend === FrontendService[[Cloud Run Frontend Service]] %% === Backend Services === AuthService[[Cloud Run Auth Service]] OrderService[[Cloud Run Order Service]] InventoryService[[Cloud Run Inventory Service]] PaymentService[[Cloud Run Payment Service]] %% === Eventing and Messaging === PubSub[(PubSub Topic order-events)] %% === Data Layer === CloudSQL[(Cloud SQL PostgreSQL)] Firestore[(Firestore Inventory Data)] CloudStorage[(Cloud Storage Receipts)] %% === Security === SecretManager[[Secret Manager]] %% === Observability === CloudLogging[[Cloud Logging]] CloudMonitoring[[Cloud Monitoring]] %% === CI/CD === CloudBuild[[Cloud Build]] ArtifactRegistry[[Artifact Registry]] %% === Connections: Ingress === User --> LoadBalancer LoadBalancer --> APIGateway APIGateway --> IdentityPlatform IdentityPlatform --> FrontendService %% === Connections: Frontend to Backend === FrontendService --> AuthService FrontendService --> OrderService FrontendService --> InventoryService %% === Backend Service Dependencies === AuthService --> CloudSQL OrderService --> CloudSQL OrderService --> PubSub PaymentService --> PubSub InventoryService --> Firestore OrderService --> CloudStorage %% === Secrets and Config === AuthService --> SecretManager OrderService --> SecretManager PaymentService --> SecretManager InventoryService --> SecretManager %% === Observability Connections === AuthService --> CloudLogging OrderService --> CloudLogging InventoryService --> CloudLogging PaymentService --> CloudLogging FrontendService --> CloudLogging AuthService --> CloudMonitoring OrderService --> CloudMonitoring InventoryService --> CloudMonitoring PaymentService --> CloudMonitoring FrontendService --> CloudMonitoring %% === CI/CD Connections === CloudBuild --> ArtifactRegistry CloudBuild --> FrontendService CloudBuild --> AuthService CloudBuild --> OrderService CloudBuild --> InventoryService CloudBuild --> PaymentService %% === Styles === classDef clientStyle fill:#D0E6FF,stroke:#5B9BD5,color:#1B365D,stroke-width:2px classDef ingressStyle fill:#DFF0D8,stroke:#5CB85C,color:#3C763D,stroke-width:2px classDef serviceStyle fill:#FCF8E3,stroke:#F0AD4E,color:#8A6D3B,stroke-width:2px classDef dataStyle fill:#F5EAF7,stroke:#B67CCF,color:#4B296B,stroke-width:2px classDef securityStyle fill:#FBE9E7,stroke:#EF6C00,color:#BF360C,stroke-width:2px classDef observabilityStyle fill:#E0F7FA,stroke:#00ACC1,color:#006064,stroke-width:2px classDef cicdStyle fill:#E8F5E9,stroke:#43A047,color:#1B5E20,stroke-width:2px classDef messagingStyle fill:#F3E5F5,stroke:#8E24AA,color:#4A148C,stroke-width:2px %% === Class Assignments === class User clientStyle class LoadBalancer,APIGateway,IdentityPlatform ingressStyle class FrontendService,AuthService,OrderService,InventoryService,PaymentService serviceStyle class CloudSQL,Firestore,CloudStorage dataStyle class SecretManager securityStyle class CloudLogging,CloudMonitoring observabilityStyle class CloudBuild,ArtifactRegistry cicdStyle class PubSub messagingStyle
Dal diagramma alla documentazione tecnica 📚
Un diagramma ben fatto è solo l’inizio: puoi chiedere all’AI di generare anche la documentazione tecnica a partire dallo stesso prompt, oppure di spiegare le scelte architetturali con una RFC o un ADR. L’approccio è lo stesso: template chiari, prompt dettagliati e un po’ di sana revisione umana.
- RFC: per descrivere proposte tecniche e motivazioni
- ADR: per tracciare decisioni architetturali e conseguenze
- Runbook: per le procedure operative
- Specifica API: per descrivere endpoint e flussi
L’AI può generare la documentazione partendo dal diagramma, oppure viceversa. L’importante è non lasciare mai il diagramma senza spiegazione (o peggio, senza versionamento).
Per approfondire come generare documentazione tecnica con l’AI, consulta anche: Documentazione tecnica con AI generativa
Best practice per prompt e template efficaci 🏆
- Sii specifico: più dettagli fornisci, meno dovrai correggere dopo
- Chiedi sempre il formato desiderato (es: Mermaid, elenco, tabella…)
- Rivedi sempre l’output: l’AI non è infallibile (ma nemmeno tu)
- Personalizza il tono: puoi chiedere formalità, sintesi, ironia…
- Documenta i tuoi template: così il team non dovrà reinventare la ruota ogni volta
Conclusione 🎯
L’AI generativa non sostituisce la competenza umana, ma può renderci più produttivi e meno stressati quando si tratta di diagrammi e documentazione architetturale. Sfrutta template, prompt ben scritti e un pizzico di creatività: la tua architettura (e il tuo team) ti ringrazieranno!