Quando usare Kubernetes

Completato

La decisione di usare una piattaforma di orchestrazione dei contenitori come Kubernetes dipende dai requisiti aziendali e di sviluppo. Si esaminerà ora l'architettura generale della soluzione di tracciamento droni.

La soluzione è costituita da microservizi progettati come servizi di collaborazione ad accoppiamento debole. Questi servizi vengono distribuiti separatamente per semplificare la progettazione e la manutenzione della soluzione. Di seguito è illustrata la configurazione corrente della soluzione.

Diagram of the high-level architecture that describes the drone tracking solution.

  • Front-end Web: mostra mappe e informazioni sui droni tracciati.
  • Servizio Cache: archivia le informazioni richieste di frequente visualizzate nel sito Web.
  • API RESTful: usata dai droni tracciati per inviare dati sullo stato, ad esempio la posizione GPS e i livelli di carica della batteria.
  • Coda: include i dati non elaborati raccolti dall'API RESTful.
  • Servizio di elaborazione dati: recupera ed elabora i dati della coda.
  • Database NoSQL: archivia i dati di tracciamento elaborati e le informazioni utente acquisite dal sito Web e dal servizio di elaborazione dati.

Team distinti all'interno dell'azienda sviluppano e sono proprietari di questi servizi. Ogni team usa i contenitori per compilare e distribuire il servizio. Questa nuova strategia consente ai team di sviluppo di soddisfare i requisiti dello sviluppo di software moderno per l'automazione, i test, la stabilità complessiva e la qualità.

Il cambiamento nei requisiti degli sviluppatori ha comportato per l'azienda diversi vantaggi a livello di processi e di business. Tra gli esempi sono inclusi un migliore uso delle risorse di calcolo ospitate, un miglior time-to-market grazie alle nuove funzionalità e una migliore copertura dei clienti.

Tuttavia, diversi problemi con la gestione dei contenitori hanno portato l'azienda a considerare le soluzioni di orchestrazione dei contenitori. I team hanno scoperto che il ridimensionamento dell'applicazione di tracciamento in poche distribuzioni era relativamente semplice, mentre il ridimensionamento e la gestione di numerose istanze risultavano difficili.

Esistono altri aspetti da considerare. Tra gli esempi sono incluse la gestione dei contenitori non eseguiti, l'allocazione delle risorse di archiviazione, la configurazione della rete e la gestione dei segreti delle app.

Come si è appreso in precedenza, Kubernetes offre supporto in tutti questi aspetti come piattaforma di orchestrazione.

Kubernetes è utile quando l'azienda:

  • Sviluppa app come microservizi.
  • Sviluppa app come applicazioni native del cloud.
  • Distribuisce i microservizi usando i contenitori.
  • Aggiorna i contenitori su larga scala.
  • Richiede la gestione centralizzata della rete e dell'archiviazione del contenitore.

Quando non usare Kubernetes

Non tutte le applicazioni devono essere eseguite in Kubernetes. Di conseguenza, Kubernetes potrebbe non essere una scelta ottimale per la propria azienda.

Ad esempio, il lavoro richiesto per la containerizzazione e la distribuzione di un'applicazione monolitica potrebbe essere maggiore dei vantaggi derivanti dall'esecuzione dell'app in Kubernetes. Un'architettura monolitica non usa facilmente funzionalità come il ridimensionamento o gli aggiornamenti dei singoli componenti.

Kubernetes può offrire diversi vantaggi aziendali per lo sviluppo di software, la distribuzione, la gestione e la semplificazione dei processi. Tuttavia, Kubernetes ha una curva di apprendimento ripida. La progettazione modulare di Kubernetes introduce concetti potenzialmente nuovi per i team dell'azienda.

I team di sviluppo devono adottare concetti di progettazione moderni durante lo sviluppo e la progettazione delle app. Questi concetti includono l'uso di microservizi e l'inserimento di questi servizi in contenitori. I team devono anche sperimentare l'uso degli ambienti contenitore e orchestrazione per sfruttare al meglio tutte le opzioni disponibili.

Se l'azienda non è pronta ad adottare questa modifica, Kubernetes potrebbe non essere la soluzione adatta.