Se hai ricercato applicazioni e tecnologie native per il cloud, probabilmente ti sei imbattuto nella mappa a questo link
è la mappa del mondo del cloud. La sua complessità non è incoraggiante: tante categorie e tante tecnologie.
Cerchiamo oggi di definire qualche linea guida per dare un senso a tutto ciò.
Come per qualsiasi altra cosa, se lo scomponi e lo analizzi un pezzo alla volta, scoprirai che non è così complesso e ha molto senso.
In effetti, la mappa è ben organizzata per funzionalità e, una volta capito cosa rappresenta ciascuna categoria, la navigazione diventa molto più semplice.
Innanzitutto, eliminiamo tutte le singole tecnologie dal panorama e esaminiamo le categorie.
Esistono diverse "righe" che riflettono i livelli architettonici, ciascuna con il proprio insieme di sottocategorie.
Nel primo livello ci sono gli strumenti per il provisioning dell'infrastruttura, che è la base.
Quindi si passa ad aggiungere gli strumenti necessari per eseguire e gestire app, livelli di runtime e orchestrazione.
Nella parte superiore ci sono gli strumenti per definire e sviluppare la tua applicazione, come i database, creazione di immagini e strumenti CI / CD (Continuous Integration and Deployment).
Il provisioning si riferisce agli strumenti coinvolti nella creazione e nel rafforzamento delle basi su cui sono costruite le applicazioni cloud native.
Copre tutto, dall'automazione della creazione, gestione e configurazione dell'infrastruttura alla scansione, firma e archiviazione delle immagini dei contenitori.
Il provisioning si estende alla sfera della sicurezza fornendo strumenti che consentono di impostare e applicare policies, creare autenticazione e autorizzazione nelle app e piattaforme e gestire la distribuzione delle chiavi.
Nel livello di provisioning, troverai:
Questi strumenti consentono agli ingegneri di codificare tutte le specifiche dell'infrastruttura, in modo che il sistema possa attivare o disattivare nuovi ambienti a seconda delle necessità, assicurando che siano coerenti e sicuri.
Runtime è uno di quei termini che possono creare confusione. Non esiste una definizione rigorosa e può essere utilizzato in modo diverso, a seconda del contesto.
A.In senso stretto, il runtime è una sandbox su una macchina specifica preparata per eseguire un'app, il minimo indispensabile di cui un'app ha bisogno.
B.In senso più ampio, il runtime è qualsiasi strumento di cui l'app necessita per girare.
C.Nel mondo delle app cloud native la definizione di runtime è una via di mezzo, si concentra sui componenti che contano per le app containerizzate: ciò di cui hanno bisogno per eseguire, ricordare e comunicare.
Questi includono:
Dopo aver automatizzato il provisioning dell'infrastruttura seguendo gli standard di sicurezza e conformità (livello di provisioning) e impostato gli strumenti che l'app deve eseguire (livello di runtime), gli ingegneri devono capire come orchestrare e gestire le loro app.
Il livello di orchestrazione e gestione si occupa del modo in cui tutti i servizi containerizzati (componenti dell'app) vengono gestiti come un gruppo.
Devono identificare altri servizi, comunicare tra loro e coordinarsi. Le app cloud native intrinsecamente scalabili si basano sull'automazione e sulla resilienza, abilitate da questo livello.
In questo livello troverai:
Ora passiamo al livello superiore. Come suggerisce il nome, la definizione dell'applicazione e il livello di sviluppo si concentrano sugli strumenti che consentono agli ingegneri di creare app e consentono loro di funzionare. Tutto quanto discusso sopra era relativo alla creazione di un ambiente affidabile e sicuro e alla fornitura di tutte le dipendenze delle app necessarie.
Sotto questa categoria vedrai:
Tornando alla panoramica delle categorie (immagine iniziale), esploriamo le due colonne che attraversano tutti i livelli.
L'osservabilità e l'analisi sono strumenti che monitorano tutti i livelli.
Le piattaforme, d'altra parte, raggruppano più tecnologie all'interno di questi livelli in un'unica soluzione, inclusa l'osservabilità e l'analisi.
Per limitare le interruzioni del servizio dovrai monitorare e analizzare ogni aspetto della tua applicazione in modo che qualsiasi anomalia venga rilevata e corretta immediatamente. I guasti si verificheranno inevitabilmente in ambienti complessi e questi strumenti contribuiscono a renderli meno impattanti aiutando a identificare e risolvere i guasti il più rapidamente possibile. Poiché questa categoria attraversa e monitora tutti i livelli, si trova sul lato e non è incorporata in un livello specifico.
Qui troverai:
Come abbiamo visto, ciascuno di questi moduli risolve un problema particolare. Lo storage da solo non fornisce tutto ciò di cui hai bisogno per gestire la tua app.
Avrai bisogno di uno strumento di orchestrazione, runtime del contenitore, rilevamento dei servizi, networking, gateway API e così via. Coprendo più livelli, le piattaforme raggruppano diversi strumenti insieme per risolvere un problema più ampio.
Configurare e mettere a punto diversi moduli in modo che siano affidabili e sicuri e garantire che tutte le tecnologie che sfrutta siano aggiornate e che le vulnerabilità siano corrette non è un compito facile. Con le piattaforme, gli utenti non devono preoccuparsi di questi dettagli: un vero valore aggiunto.
Probabilmente noterai che tutte le categorie ruotano attorno a Kubernetes. Questo perché Kubernetes, sebbene sia solo un pezzo del puzzle, è al centro dello stack del native cloud. Il CNCF, tra l'altro, è stato creato con Kubernetes come primo progetto di seeding; tutti gli altri progetti sono seguiti in seguito.
Le piattaforme possono essere classificate in quattro gruppi:
In ogni categoria, ci sono diversi strumenti volti a risolvere problemi uguali o simili. Alcune sono tecnologie native pre-cloud adattate alla nuova realtà, mentre altre sono completamente nuove. Le differenze risiedono nella loro implementazione e approcci progettuali. Non esiste una tecnologia perfetta che controlli tutte le scatole. Nella maggior parte dei casi la tecnologia è limitata dal design e dalle scelte architettoniche: c'è sempre un compromesso.
Quando si seleziona lo stack, gli ingegneri devono considerare attentamente ogni capacità e compromesso per identificare l'opzione migliore per il loro caso d'uso.
Sebbene ciò comporti ulteriore complessità, non è mai stata possibile come oggi la scelta di uno storage dei dati, della gestione dell'infrastruttura, del sistema di messaggistica, ecc. che meglio si adattano alle esigenze dell'applicazione.
L'architettura dei sistemi oggi è molto più semplice che in un mondo pre-cloud. E, se progettate in modo appropriato, le tecnologie cloud native offrono la grande e necessaria flessibilità di cui c’è bisogno.
Nell’ecosistema tecnologico in rapida evoluzione dei nostri tempi, questa è probabilmente una delle capacità più importanti.
Ci auguriamo che questa rapida panoramica sia stata utile.
Articolo liberamente tradotto da
https://thenewstack.io/an-introduction-to-the-cloud-native-landscape/
Un'introduzione al paesaggio nativo del cloud - a cura di Catherine Paganini