Ecco cosa, secondo Markus Eisele, Developer Strategist Emea di Red Hat, è necessario sapere prima di prendere la decisione, se scegliere Kubernetes gestito o indipendente
Oggi i progetti di sviluppo iniziano spesso con Kubernetes come piattaforma di base per l’esecuzione e l’orchestrazione dei servizi. Tuttavia, le funzionalità integrate sono raramente sufficienti per un progetto. Se un’azienda sta pensando di sviluppare un’applicazione Kubernetes-native, deve anche considerare tutti i requisiti necessari.
Le caratteristiche principali
Le applicazioni moderne hanno bisogno di molto di più che container e orchestrazione. Ad esempio, sono sviluppate con un approccio API-first e utilizzano discovery e invocazione di servizi. Le applicazioni possono scalare e fornire informazioni sufficienti ai team SRE (Site Reliability Engineering) per garantire un funzionamento regolare. Idealmente, queste caratteristiche dovrebbero essere integrate nel processo di sviluppo utilizzando una gestione delle modifiche e delle versioni che segua un modello moderno di CI/CD (continuous integration/continuous delivery).
La scelta degli architetti
Legati al termine “Kubernetes” si trovano in realtà altri componenti che svolgono un ruolo importante per il successo di un progetto. Come la conformità, il networking, il disaster recovery o la gestione delle modifiche, solo per citarne alcuni. In linea di principio, gli architetti possono scegliere se mettere insieme uno stack Kubernetes in modo indipendente o utilizzare una piattaforma gestita come Red Hat OpenShift.
Evitare il fai da te
Nel prendere la loro decisione, devono soprattutto:
- Guardare oltre la piattaforma Kubernetes e trattare i requisiti del progetto come requisiti della piattaforma.
- Definire e valutare la matrice di supporto e responsabilità per il proprio progetto e i componenti necessari.
Kubernetes gestito o indipendente
In considerazione dei diversi compiti relativi alle funzioni della piattaforma, all’architettura, a Kubernetes o alla sicurezza, la variante fai-da-te è raramente la scelta migliore. È più facile selezionare una piattaforma adatta. Ciò si evince dai requisiti concreti che una piattaforma Kubernetes gestita dovrebbe soddisfare che includono:
- Centralizzazione delle informazioni. Per uno sviluppo fluido, è opportuno raccogliere le informazioni rilevanti in un luogo centrale. Quarkus ne è un esempio. Il framework contiene un’interfaccia utente per sviluppatori con integrazioni per il runtime, la messaggistica e il controllo dei protocolli. I plug-in dell’ambiente di sviluppo integrato di Red Hat supportano inoltre gli sviluppatori nel debugging e nel deployment locale e remoto, con l’integrazione con CI e CD su Red Hat OpenShift.
Meglio un approccio self-service
- Opzioni Self-Service. Se da un lato i processi fissi aiutano a controllare il consumo di risorse e la definizione del budget, dall’altro possono rallentare i progetti di sviluppo con approvazioni e tempi di attesa inutili. Un approccio self-service come Red Hat OpenShift offre agli sviluppatori la libertà di creare le proprie risorse in base alle esigenze, nel rispetto di standard predefiniti.
- “Develop once, deploy everywhere”. Quando si sceglie una piattaforma, bisogna fare attenzione a non cadere nel vendor lock-in. L’uso di un numero definito di tecnologie e runtime può essere efficiente dal punto di vista della governance, ma limita la flessibilità. Dopo tutto, i requisiti, sia dal punto di vista tecnico che commerciale, cambiano continuamente e rapidamente. Di conseguenza, è più importante che mai disporre di un elevato grado di flessibilità per poter fornire applicazioni on-premise o all’edge, ad esempio.
Fornire configurazioni predefinite sicure
Scrittura YAML facilitata. Le impostazioni predefinite sono utili per evitare errori, ma rallentano lo sviluppo. Gli sviluppatori devono essere liberi di utilizzare strumenti a riga di comando, utility altamente integrate o IDE di sviluppo specializzati. Red Hat OpenShift lo fa fornendo configurazioni predefinite sicure. Così gli sviluppatori passano meno tempo a scrivere configurazioni e più tempo a scrivere codice. Quarkus fornisce anche codice ottimizzato per l’80% dei casi d’uso più comuni.
Kubernetes gestito o indipendente: cosa scegliere
Sicurezza integrata. La gestione della sicurezza è un processo continuo. Quando le applicazioni vengono distribuite o aggiornate, controlli di sicurezza dinamici sono fondamentali. Con Red Hat OpenShift, gli architetti possono applicare i controlli di sicurezza alla catena di fornitura del software. In questo modo è più facile gestire le applicazioni senza incidere sulla produttività degli sviluppatori.
Come evitare gli errori
Questi pochi esempi mostrano in cosa consista la versione gestita di Kubernetes. Un utilizzo efficace richiede qualcosa di più dell’implementazione dell’orchestrazione sottostante. Se un’azienda presta attenzione a tutti i requisiti pertinenti, soprattutto per quanto riguarda le moderne soluzioni cloud-native, può evitare molti errori e avere successo. In una parola, con un motto come “Gestisci il tuo business, non Kubernetes”, la strada è quella giusta.