Condividi tramite


Automatizzare le distribuzioni API con APIOps

Gestione API di Azure
Azure DevOps
Azure Pipelines
GitHub

APIOps è una metodologia che applica i concetti di GitOps e DevOps alla distribuzione api. Come DevOps, APIOps aiuta i membri del team a apportare facilmente modifiche e distribuirle in modo iterativo e automatizzato. Questa architettura illustra come migliorare l'intero ciclo di vita dell'API e la qualità dell'API usando APIOps.

Architettura

Diagramma dell'architettura per le distribuzioni automatizzate di API con APIOps in Azure.

Scaricare un file di Visio di questa architettura.

Flusso di lavoro

  1. Gli operatori API eseguono la pipeline di estrazione per sincronizzare il repository Git con l'istanza di Gestione API e popolare il repository Git con oggetti Gestione API nel formato richiesto.

  2. Se viene rilevata una modifica API nell'istanza di Gestione API, viene creata una richiesta pull per consentire agli operatori di esaminare. Gli operatori uniscono le modifiche nel repository Git.

  3. Gli sviluppatori di API clonano il repository Git, creano un ramo e creano definizioni di API usando la specifica OpenAPI o gli strumenti di propria scelta.

  4. Se uno sviluppatore esegue il push delle modifiche al repository, viene generata una pull request per la revisione.

  5. La Pull Request può essere approvata o esaminata automaticamente, a seconda del livello di controllo richiesto.

  6. Dopo l'approvazione e l'unione delle modifiche, la pipeline di pubblicazione distribuisce le modifiche più recenti nell'istanza di Gestione API.

  7. Gli operatori API creano e modificano criteri di gestione dell'API, diagnostica, prodotti e altri oggetti pertinenti, e quindi applicano le modifiche.

  8. Le modifiche vengono esaminate e unite dopo l'approvazione.

  9. Dopo l'unione delle modifiche, la pipeline di pubblicazione distribuisce le modifiche usando il processo di definizioni API.

Componenti

  • Gestione API di Azure è un servizio gestito che crea gateway API coerenti per i servizi back-end. In questa architettura instrada le chiamate API, verifica le credenziali, applica le quote di utilizzo e i metadati dei log. Funge da piattaforma centrale per la gestione e la pubblicazione di API.

  • Azure DevOps è una suite di strumenti e servizi di sviluppo che gestisce il ciclo di vita dello sviluppo. In questa architettura supporta la pianificazione, la gestione del codice e la distribuzione automatica delle API, che consente ai team di collaborare e semplificare il recapito delle API.

    • Azure Pipelines è un servizio basato sul cloud che consente l'integrazione continua e il recapito continuo (CI/CD). In questa architettura automatizza i test, la compilazione e la distribuzione delle modifiche api all'istanza di Gestione API.

    • Azure Repos è un set di strumenti di controllo della versione, incluso Git standard, che è possibile usare per gestire il codice. In questa architettura vengono archiviate definizioni, criteri e configurazioni delle API. Funge da unica fonte di verità per tutte le modifiche e consente la verificabilità e la collaborazione tramite richieste pull.

Alternative

Questa soluzione supporta Azure Repos per fornire funzionalità Git e Azure Pipelines per flussi di lavoro CI/CD.

Supporta anche GitHub per il controllo del codice sorgente e la collaborazione, insieme a GitHub Actions per automatizzare pipeline di compilazione, test e distribuzione.

È possibile usare qualsiasi tecnologia paragonabile che fornisca funzionalità di controllo della versione e CI/CD simili.

Dettagli dello scenario

APIOps usa il controllo della versione per gestire le API e creare un audit trail delle modifiche alle API, ai criteri e alle operazioni.

Gli sviluppatori di API che usano una metodologia APIOps esaminano e controllano le API in precedenza e più frequentemente, rilevando e risolvendo più rapidamente le deviazioni dagli standard API per migliorare le specifiche e la qualità dell'API. Più API vengono compilate e distribuite con un approccio APIOps, maggiore è la coerenza tra le API.

Potenziali casi d'uso

  • Qualsiasi organizzazione che sviluppa e gestisce le API. È possibile iniziare a usare APIOps anche con una singola API esposta in Gestione API.
  • Settori altamente regolamentati: assicurazione, banca, finanza, governo

Considerazioni

Queste considerazioni implementano i pilastri di Azure Well-Architected Framework, che è un set di set di principi guida che è possibile usare per migliorare la qualità di un carico di lavoro. Per altre informazioni, vedere Well-Architected Framework.

Sicurezza

La sicurezza offre garanzie contro attacchi intenzionali e l'uso improprio dei dati e dei sistemi preziosi. Per altre informazioni, vedere Elenco di controllo per la revisione della progettazione per la sicurezza.

Questa soluzione offre diversi vantaggi correlati alla sicurezza. I singoli sviluppatori, e persino gli operatori, non accedono direttamente all'istanza di Gestione API per applicare modifiche o aggiornamenti. Gli utenti eseggono invece le modifiche in un repository Git e le pipeline di estrazione e pubblicazione le leggono e le applicano all'istanza di Gestione API. Questo approccio segue la procedura consigliata per la sicurezza dei privilegi minimi non concedendo ai team le autorizzazioni di scrittura per l'istanza del servizio Gestione API. Negli scenari di diagnostica o risoluzione dei problemi è possibile concedere autorizzazioni elevate per un periodo di tempo limitato per caso.

Per assicurarsi che le istanze di Gestione API usino le procedure consigliate per la sicurezza, è possibile estendere questa soluzione per applicare le procedure consigliate per le API usando strumenti non Microsoft e unit test. Il team può fornire feedback anticipato tramite la revisione del pull request se le modifiche proposte a un'API o una policy violano gli standard.

Oltre all'attività di configurazione delle autorizzazioni del repository, si consiglia di implementare le seguenti misure di sicurezza nei repository Git che si sincronizzano con le istanze di Gestione API.

  • Revisione della richiesta pull (PR): Utilizzare i rami e proteggere i rami che rappresentano lo stato delle istanze di API Management per evitare che vengano effettuati push direttamente su di essi. Richiedere alle richieste pull di avere almeno un revisore per applicare il principio dei quattro occhi.
  • Cronologia non modificabile: consente solo nuovi commit sulle modifiche esistenti. La cronologia non modificabile è particolarmente importante ai fini del controllo.
  • Autenticazione a più fattori: richiedere agli utenti di attivare l'autenticazione a due fattori.
  • Commit firmati: Consenti solo commit firmati che non possono essere modificati successivamente.

Ottimizzazione dei costi

L'ottimizzazione dei costi è incentrata sui modi per ridurre le spese non necessarie e migliorare l'efficienza operativa. Per altre informazioni, vedere Elenco di controllo per la revisione della progettazione per Ottimizzazione costi.

  • Usare il calcolatore prezzi di Azure per stimare i costi dei componenti di Azure in questa architettura.

  • I costi di licenza di Azure DevOps devono essere presi in considerazione per i team che implementano APIOps. Tutti gli utenti che partecipano al processo APIOps devono avere una licenza di Azure DevOps appropriata. Per informazioni dettagliate, vedere Prezzi di Azure DevOps.

    Per informazioni dettagliate sui prezzi e sulle licenze quando si usa GitHub, vedere Prezzi di GitHub e licenze GitHub Enterprise.

Eccellenza operativa

L'eccellenza operativa copre i processi operativi che distribuiscono un'applicazione e lo mantengono in esecuzione nell'ambiente di produzione. Per altre informazioni, vedere Elenco di controllo per la revisione della progettazione per l'eccellenza operativa.

ApiOps può aumentare la produttività di DevOps per lo sviluppo e le distribuzioni di API. Una delle funzionalità più utili è la possibilità di usare le operazioni Git per eseguire il rollback delle modifiche che si comportano in modo imprevisto. Il grafico dei commit contiene tutti i commit, quindi può essere utile per l'analisi post-mortem.

Gli operatori API spesso gestiscono più ambienti per lo stesso set di API. In genere è necessario distribuire diverse fasi di un'API in istanze di Gestione API diverse o in un'istanza di Gestione API condivisa. Il repository Git, che è l'unica fonte di verità, mostra le versioni delle applicazioni distribuite al momento in un cluster.

Quando qualcuno effettua una Pull Request nel repository Git, l'operatore API sa che ha un nuovo codice da rivedere. Ad esempio, quando uno sviluppatore accetta la specifica OpenAPI e compila l'implementazione dell'API, aggiunge questo nuovo codice al repository. Gli operatori possono esaminare la pull request e assicurarsi che l'API inviata per la revisione soddisfi le procedure consigliate e gli standard.

APIOps offre molti vantaggi, ma man mano che crescono i paesaggi della gestione delle API, aumenta anche la complessità della loro gestione. Questa soluzione consente di soddisfare sfide come le seguenti:

  • Panoramica di tutti gli ambienti e delle istanze di gestione delle API.
  • Rilevamento delle modifiche critiche alle API e ai criteri.
  • Creazione di un audit trail per tutte le modifiche distribuite.

Distribuire lo scenario

Per istruzioni dettagliate sulla configurazione dei pipeline di estrazione e pubblicazione, vedere la documentazione APIOps per Azure API Management.

Il flusso di lavoro di distribuzione include:

  • Estrazione delle configurazioni API da Gestione API.
  • Creazione di richieste pull per la revisione.
  • Pubblicazione di modifiche approvate tramite pipeline CI/CD.

Collaboratori

Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dai seguenti contributori.

Autori principali:

Per visualizzare i profili LinkedIn non pubblici, accedere a LinkedIn.

Passaggi successivi