Automatizzare le distribuzioni api con APIOps

Gestione API di Azure
Azure DevOps
Azure Pipelines

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.

Workflow

  1. Gli operatori API eseguono la pipeline dell'estrattore per sincronizzare il repository Git con l'istanza di Gestione API e popolare il repository Git con gli 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 o gli strumenti OpenAPI di propria scelta.

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

  5. La richiesta pull 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 Gestione API criteri, diagnostica, prodotti e altri oggetti pertinenti e quindi eseguono il commit delle 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 crea gateway API coerenti e moderni per i servizi back-end. Oltre al routing delle chiamate API ai back-end, questa piattaforma verifica anche le credenziali, applica le quote di utilizzo e i metadati dei log.

  • Azure DevOps è un servizio per la gestione del ciclo di vita di sviluppo end-to-end, tra cui pianificazione e gestione dei progetti, gestione del codice e continuazione alla compilazione e al rilascio.

  • Azure Pipelines consente l'integrazione continua (CI) e il recapito continuo (CD) per testare e compilare il codice e spedirlo a qualsiasi destinazione.

  • Azure Repos è un set di strumenti di controllo della versione, incluso Git standard, che è possibile usare per gestire il codice.

Alternative

Questa soluzione usa Azure Repos per fornire funzionalità Git e Azure Pipelines fornisce le pipeline. È possibile usare qualsiasi tecnologia paragonabile.

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.

Questa architettura APIOps usa Azure Gestione API come piattaforma di gestione API. Azure DevOps organizza la gestione API. Azure Repos offre funzionalità Git e Azure Pipelines crea la pipeline CI/CD.

Potenziali casi d'uso

  • Qualsiasi organizzazione che sviluppa e gestisce le API
  • Settori altamente regolamentati: assicurazione, banca, finanza, governo

Considerazioni

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

Sicurezza

La sicurezza offre garanzie contro attacchi intenzionali e l'abuso di dati e sistemi preziosi. Per altre informazioni, vedere Panoramica del pilastro della 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 procedure consigliate per la sicurezza, è possibile estendere questa soluzione per applicare le procedure consigliate per le API usando strumenti di terze parti e unit test. Teams può fornire feedback anticipato tramite la revisione pull se le modifiche proposte a un'API o ai criteri violano gli standard.

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

  • Revisione della richiesta pull: usare i rami e proteggere i rami che rappresentano lo stato delle istanze di Gestione API dal push diretto delle modifiche. Richiedere alle richieste pull di avere almeno un revisore per applicare il principio di quattro occhi.
  • Cronologia non modificabile: consente solo nuovi commit in aggiunta alle 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: consente solo commit firmati che non possono essere modificati dopo il fatto.

Ottimizzazione dei costi

L'ottimizzazione dei costi riguarda la riduzione delle spese non necessarie e il miglioramento dell'efficienza operativa. Per altre informazioni, vedere Panoramica del pilastro di ottimizzazione dei costi.

  • Usare il calcolatore dei prezzi di Azure per stimare i costi.

  • Gestione API offre i livelli seguenti: Consumo, Sviluppatore, Basic, Standard e Premium.

  • GitHub offre un servizio gratuito. Tuttavia, per usare funzionalità avanzate correlate alla sicurezza, ad esempio proprietari di codice o revisori necessari, è necessario il piano team. Per altre informazioni, vedere Prezzi di GitHub.

Eccellenza operativa

L'eccellenza operativa copre i processi operativi che distribuiscono un'applicazione e la mantengono in esecuzione nell'ambiente di produzione. Per altre informazioni, vedere Panoramica del pilastro dell'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 rapidamente il rollback delle modifiche che si comportano in modo imprevisto. Il grafico commit contiene tutti i commit, in modo che possa 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 un utente effettua una richiesta pull nel repository Git, l'operatore API sa che ha un nuovo codice da esaminare. 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 richiesta pull e assicurarsi che l'API inviata per la revisione soddisfi le procedure consigliate e gli standard.

Efficienza prestazionale

L'efficienza delle prestazioni è la capacità di dimensionare il carico di lavoro per soddisfare in modo efficiente le richieste poste dagli utenti. Per altre informazioni, vedere Panoramica dell'efficienza delle prestazioni.

APIOps offre molti vantaggi, ma man mano che aumentano gli scenari Gestione API, la complessità della gestione. Questa soluzione consente di soddisfare sfide come le seguenti:

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

Distribuire lo scenario

La distribuzione di questa soluzione prevede i passaggi seguenti:

  • Sviluppare l'API nel portale o apportare modifiche alla specifica OpenAPI usando uno strumento di propria scelta.

    • Se si apportano modifiche nel portale, è possibile eseguire l'estrattore per estrarre automaticamente tutte le API e altri criteri, operazioni e configurazioni pertinenti da Gestione API. È possibile sincronizzare queste informazioni con il repository Git.

    • Facoltativamente, usare l'interfaccia della riga di comando di Azure DevOps per creare una nuova richiesta pull.

  • Il flusso di lavoro dell'estrattore include i passaggi seguenti:

  • Nello scenario in uso, la pipeline che scarica le modifiche nel portale nell'istanza di Gestione API presenta le fasi seguenti: Estrazione di compilazione, Creazione di artefatti dal portale e Creazione del ramo modello.

    • Estrattore di compilazione

      Questa fase compila il codice dell'estrattore.

    • Creare elementi dal portale

      Questa fase esegue l'estrattore e crea elementi simili a una struttura di repository Git simile a quella illustrata nello screenshot seguente:

      Screenshot di 'APIM-automation' che mostra 'apim-instances' e una gerarchia di cartelle.

      • Creare un ramo modello

        Dopo aver generato l'artefatto, questa fase crea una richiesta pull con le modifiche estratte per il team della piattaforma da rivedere.

        La prima volta che si esegue l'estrattore, viene eseguito il pull di tutti gli elementi dal repository Git. La richiesta pull creata avrà tutte le API, i criteri, gli artefatti e così via.

        Le estrazioni successive sono state apportate solo modifiche prima dell'estrazione nella richiesta pull. A volte le modifiche possono essere solo alla specifica di un'API, che è il caso nell'esempio seguente di una richiesta pull.

        Screenshot di una richiesta pull di esempio dopo un'estrazione che mostra le modifiche proposte in un file denominato

  • Un revisore passa a Richieste pull per visualizzare le richieste pull aggiornate. È anche possibile configurare le approvazioni automatiche per automatizzare questo passaggio.

    Screenshot di una richiesta pull di esempio che mostra le modifiche apportate al contenuto in

  • Dopo aver approvato la richiesta pull, attiva un'altra pipeline che pubblica da Gestione API al portale. Nell'esempio sono disponibili le fasi seguenti: creazione di compilazione, terminatore di compilazione e pubblicazione di istanze di Gestione API.

    Screenshot delle fasi in GESTIONE API-publish-to-portal, una pipeline.

    • La fase di creazione della compilazione gestisce la creazione di nuove API.
    • La fase del terminatore di compilazione gestisce eventuali eliminazioni.
    • La fase pubblica istanze di Gestione API pubblica le modifiche nell'istanza di Gestione API.

    Screenshot che mostra i processi in un esempio di esecuzione di APIM-publish-to-portal, una pipeline.

    Dopo l'esecuzione di questa pipeline, pubblica le modifiche nell'istanza di Gestione API.

Collaboratori

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

Autore principale:

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

Passaggi successivi