Schema-as-Code (SaC) & CI/CD Pipeline
L’Enterprise Architecture moderna adotta i principi del DevOps e dell’Infrastructure-as-Code: Schema-as-Code (SaC) è la specifica di EasyEA che consente di trattare i modelli architetturali come codice sorgente versionabile, revisionabile tramite Pull Request e convalidabile automaticamente in pipeline CI/CD.
1. Struttura del Formato Schema-as-Code (SaC)
Ogni diagramma può essere esportato e re-importato in un file dichiarativo strutturato in formato JSON o YAML:
{ "schema_version": "1.0", "metadata": { "name": "E-Commerce Core Checkout Flow", "description": "Architettura logica del carrello e pagamento con gateway esterno", "layer": "Application", "version": "2.4.0", "status": "Approved" }, "elements": [ { "id": "elem-checkout-service", "type": "ApplicationService", "name": "Checkout Orchestrator Service", "layer": "Application", "properties": { "technical_fitness": 4, "business_fit": 5, "tco_annual": 45000, "sla": "99.95%" }, "visual": { "x": 280, "y": 140, "width": 160, "height": 70, "fill_color": "#dbeafe" } }, { "id": "elem-payment-gateway", "type": "ApplicationComponent", "name": "Stripe Payment Gateway", "layer": "Application", "properties": { "hosting": "SaaS", "criticality": "Mission Critical" }, "visual": { "x": 540, "y": 140, "width": 160, "height": 70, "fill_color": "#ede9fe" } } ], "relationships": [ { "id": "rel-checkout-to-payment", "type": "Serving", "source_id": "elem-payment-gateway", "target_id": "elem-checkout-service", "properties": { "protocol": "HTTPS/REST", "circuit_breaker": true } } ]}2. Automazione CI/CD con GitHub Actions & GitLab CI
Memorizzando i file .sac.json nei repository Git aziendali, ogni modifica architetturale può essere validata automaticamente prima di essere unita al ramo principale:
name: Validate Architecture Schemas (SaC)
on: pull_request: paths: - 'architecture/**/*.sac.json'
jobs: validate-schema: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Validate ArchiMate Metamodel Rules run: | curl -X POST https://easyea.azienda.lan/api/v1/schemas/validate-sac \ -H "Authorization: Bearer ${{ secrets.EASYEA_API_KEY }}" \ -F "file=@architecture/checkout-flow.sac.json"- Verifica del Metamodello: Assicura che le relazioni tra componenti rispettino lo standard ArchiMate 3.x.
- Audit Attributi Obbligatori: Verifica che ogni componente includa il TCO, il proprietario applicativo e la criticità.
- Diff Automatico nei Commenti PR: EasyEA può generare un commento automatico nella Pull Request con il riepilogo visivo delle entità create o rimosse.
3. Script jArchi per Esportazione/Importazione SaC
EasyEA fornisce due script jArchi pronti all’uso per i modellatori desktop:
EasyEA_ExportToSaC.ajs: Seleziona qualsiasi vista aperta in Archi Tool e genera istantaneamente il file.sac.jsonpronto per essere committato su Git.EasyEA_ImportFromSaC.ajs: Legge un file SaC locale o da URL e ricostruisce fedelmente la vista grafica in Archi con elementi, posizioni e connettori.