Kubernetes è una piattaforma per costruire piattaforme. Tuttavia, le iniziative di ingegneria della piattaforma Kubernetes non sono sempre una garanzia di successo. Inoltre, c'è una buona probabilità di superare i budget iniziali. Perché? Perché costruire piattaforme basate su Kubernetes non è un compito facile!
L'ingegneria della piattaforma coinvolge un'ampia gamma di strumenti e tecnologie che possono essere sovraccariche e richiedere molto tempo per la loro configurazione e manutenzione. Spesso i team che si occupano di piattaforme si concentrano principalmente sugli aspetti tecnologici della piattaforma, perdendo di vista il valore che la piattaforma dovrebbe fornire (ridurre il carico cognitivo degli sviluppatori e prevenire lo shadow platforming).
Cosa succederebbe se si potesse saltare la fase di progettazione (giorno 0), la fase di costruzione (giorno 1) e persino ridurre il tempo speso per la manutenzione (giorno 2) di una piattaforma basata su Kubernetes, per consegnare invece una piattaforma pronta all'uso in 20 minuti? L'innovazione è arrivata. Con Akamai App Platform in GA, è possibile effettuare il provisioning di un cluster LKE con Akamai App Platform e iniziare a costruire, distribuire, proteggere, osservare e gestire applicazioni containerizzate in 20 minuti. Senza costi aggiuntivi!
Che cos'è Akamai App Platform?
Akamai App Platform è uno stack altamente integrato e preconfigurato di progetti Kubernetes open source che possono essere attivati con un semplice clic, unitamente a una facile autoservizizzazione da parte degli sviluppatori per le attività più comuni nell'utilizzo di Kubernetes.
Approfondiamo un po' questi due aspetti.
Uno stack integrato e preconfigurato di progetti Kubernetes open source
Kubernetes da solo è come un data center vuoto. Se solo fosse così semplice avviare un cluster Kubernetes ed eseguire un comando kubectl apply per distribuire tutte le applicazioni. No, sono necessarie tutta una serie di funzionalità aggiuntive: osservabilità, crittografia della rete, applicazione delle policy, storage, policy di rete, gateway di rete, gestione dei segreti, GitOps, automazione e forse anche la creazione di propri operatori.
Scegliere gli strumenti giusti per il lavoro, impararli e configurarli in modo che svolgano il loro compito richiede molto tempo. E diventa ancora più complicato quando questi strumenti hanno delle dipendenze e devono lavorare insieme. Ecco perché le aziende impiegano almeno 6 mesi per creare una configurazione iniziale.
Per Akamai App Platform, abbiamo selezionato strumenti (software open source) per quasi tutte le funzionalità richieste da una piattaforma Kubernetes e li abbiamo combinati utilizzando un framework di integrazione. Gli strumenti aggiunti al framework possono essere combinati con altri strumenti. Gli strumenti concatenati forniscono una pipeline di consegna continua, un runtime K8s su misura e un modello di distribuzione GitOps. Ogni strumento è preconfigurato per supportare i casi d'uso più comuni e per offrire un'esperienza utente fluida. Gli strumenti utilizzati sono quasi tutti progetti laureati e in fase di incubazione del CNCF, considerati stabili e utilizzati con successo in ambienti di produzione. Gli strumenti più comunemente utilizzati in Akamai App Platform sono Harbor (per fornire un servizio di registro dei container), Argo CD e Gitea (per GitOps), Prometheus (per le metriche) e Kyverno (per le politiche di sicurezza).
Facile self-service per gli sviluppatori
Una volta impostate tutte le funzionalità necessarie, l'amministratore della piattaforma può creare quello che noi chiamiamo "Team" in Akamai App Platform. Un team è un tenant isolato sulla piattaforma. I membri di un team avranno accesso al portale self-service che consente loro di registrare i repository di codice sorgente, creare immagini di container, distribuire queste immagini, creare segreti, esporre pubblicamente le applicazioni, creare criteri di rete e accedere alle funzionalità condivise della piattaforma per visualizzare log, metriche e tracce. I moduli self-service offrono un basso livello di ingresso per iniziare a usare Kubernetes, anche per gli sviluppatori meno esperti nell'ingegneria della piattaforma.
Ma forse una delle caratteristiche più potenti del portale self-service è il catalogo. Il catalogo è una raccolta di modelli Golden Path che gli sviluppatori possono utilizzare per distribuire la loro applicazione. Durante l'installazione iniziale dell'App Platform, il catalogo è precompilato con una serie di modelli iniziali per creare un deployment. È possibile distribuire un cluster Redis, un cluster PostgreSQL e un cluster RabbitMQ. I modelli precompilati possono anche essere personalizzati o sostituiti da modelli specifici per l'organizzazione. Ciò consente di condividere le migliori pratiche e di standardizzare le modalità di distribuzione delle applicazioni.
L'architettura
La Akamai App Platform si basa su una combinazione di principi GitOps e configuration as code (CaC). GitOps utilizza i repository Git come unica fonte di verità sia per l'infrastruttura che per le applicazioni, consentendo la consegna e la distribuzione continua. Il CaC, invece, è una pratica in cui le configurazioni dell'applicazione e dell'ambiente sono definite come codice e memorizzate nel controllo di versione. Il cuore della piattaforma è l'API della piattaforma. L'API gestisce il CaC memorizzato in un repository Git. Un operatore Kubernetes recupera periodicamente le modifiche dal repository Git, compila tutti i file in un blob di dati, crea i manifesti dell'applicazione Argo CD e li distribuisce al cluster Kubernetes. L'applicazione Argo CD aggiornata viene prelevata dal controller Argo CD e distribuisce il grafico Helm richiesto con i valori corrispondenti.
Il repository Git Configuration as Code contiene la configurazione sia per l'infrastruttura (distribuita sul cluster) sia per le configurazioni specifiche delle applicazioni della piattaforma. Le modifiche alla configurazione delle applicazioni della piattaforma, come Keycloak (per la gestione dell'identità e dell'accesso), Harbor (il servizio di registro dei container self-hosted) e Gitea (il servizio Git self-hosted), sono distribuite da operatori Kubernetes personalizzati che sfruttano le API delle applicazioni.
Vediamo un esempio: L'amministratore della piattaforma utilizza il portale self-service per abilitare Harbor perché i team della piattaforma desiderano utilizzare registri di contenitori privati. L'API della piattaforma apporterà prima le modifiche necessarie nel repository CaC Git. Poiché Harbor è abilitato, i nuovi manifesti dell'applicazione Argo CD vengono resi e distribuiti per installare Harbor, i database PostgreSQL (CloudNativePG) e l'operatore Harbor della piattaforma. Quando l'operatore della piattaforma Harbor è in esecuzione, riceve le istruzioni di configurazione per configurare Harbor. In questo caso, l'operatore creerà progetti per tutti i team della piattaforma, configurerà OIDC, creerà account di robot e creerà segreti push e pull nei namespace dei team. Dopo un paio di minuti, tutti i team avranno accesso ai loro progetti in Harbor e potranno utilizzare il portale self-service per creare immagini di container che verranno automaticamente archiviate in Harbor.
Per chi è la piattaforma di app Akamai?
Siamo onesti. L'esempio sopra riportato mostra come Akamai App Platform consenta di ottenere un servizio di registro dei container completamente automatizzato in pochi minuti. Farlo manualmente sarebbe un'impresa titanica. Se la vostra organizzazione è più concentrata sulla fornitura di valore ai clienti piuttosto che sulla costruzione di una piattaforma interna, allora Akamai App Platform fa decisamente al caso vostro. Per essere più concreti, riteniamo che Akamai App Platform sia più interessante per le aziende di software in rapida evoluzione, come le piccole e medie imprese SaaS.
Perché utilizzare la piattaforma di app Akamai?
Akamai App Platform offre tutte le funzionalità necessarie a una piattaforma Kubernetes. E tutto viene offerto in modo preconfigurato e completamente automatizzato. Questo rende la App Platform una piattaforma ideale per costruire, distribuire, monitorare e proteggere architetture di microservizi containerizzati in produzione.
Ma la Akamai App Platform può essere utilizzata per molto di più. Poiché la piattaforma può essere installata automaticamente su LKE, è possibile iniziare a utilizzarla in circa 10 minuti. E poiché la piattaforma viene fornita con una suite completa di progetti laureati e in fase di incubazione del CNCF, Akamai App Platform è ideale per scopi didattici.
Un argomento sottovalutato di cui non abbiamo parlato è la multi-tenancy. Utilizzate la funzione Teams della piattaforma per integrare un numero illimitato di tenant (senza considerare le risorse del cluster necessarie) nello stesso cluster. Ciascun team ottiene il proprio spazio isolato sulla piattaforma e viene automaticamente associato alle applicazioni condivise (come Harbor nell'esempio precedente).
Se i vostri sviluppatori sono ansiosi di iniziare a usare Kubernetes, ma non sapete da dove cominciare, allora date un'occhiata ad Akamai App Platform. Abilitate le funzionalità che volete provare e create team per singoli sviluppatori, progetti o team completi di sviluppatori. Forse, in alcuni casi, Akamai App Platform potrebbe non essere la vostra piattaforma ideale. Ma in questo caso, può essere sicuramente utilizzata come architettura di riferimento.
Cosa c'è dopo?
Ora che Akamai App Platform è GA, non significa che abbiamo finito. Non solo la tecnologia di Kubernetes si muove alla velocità della luce, ma vediamo ancora molti miglioramenti che vorremmo apportare per un'esperienza utente ancora migliore. Nei prossimi sprint, rilasceremo un paio di aggiornamenti per dimostrare che facciamo sul serio, a partire da alcuni aggiornamenti nel portale self-service. Se avete già Akamai App Platform in funzione, gli aggiornamenti saranno annunciati automaticamente nella dashboard della piattaforma nel portale.
Un'altra cosa interessante su cui stiamo lavorando è l'integrazione di alcune funzionalità fondamentali dell'intelligenza artificiale, come l'inferenza dell'intelligenza artificiale e la generazione aumentata del recupero (RAG). Queste capacità saranno utilizzate anche per alimentare funzioni self-service di IA come l'esecuzione di modelli linguistici di grandi dimensioni (LLM), fornire l'accesso ai team per consumare gli LLM distribuiti sulla piattaforma, distribuire un database vettoriale e creare basi di conoscenza (RAG) creando incorporazioni nel database vettoriale basate su una raccolta di documenti, dati e altre informazioni che possono poi essere utilizzate da un modello linguistico di grandi dimensioni (LLM) per migliorare le sue risposte.
Siete pronti a iniziare con App Platform? Leggete la nostra documentazione.

Commenti