Container as a Service

Container as a Service è il servizio PaaS che, attraverso la predisposizione di una piattaforma di orchestrazione di container, mette a disposizione strumenti per implementare i processi di Continuous Integration e Continuous Deployment, di implementare la metodologia DevOps e di progettare e realizzare applicazioni con il paradigma dei microservizi. Consente inoltre l’onboarding delle applicazioni monolitiche tradizionali offrendo la possibilità di eseguire sia applicazioni stateless cloud-native sia applicazioni statefull.

Il cliente, una volta ottenuta la sottoscrizione, può attivare nuove istanze di un sistema di orchestrazione di container basato sulla distribuzione community OKD di Kubernetes.

Get Started  

Container as a Service - New

Container as a Service

Descrizione delle funzioni

 

Il servizio aggiuntivo PaaS di Container as a Service mette a disposizione del cliente una soluzione basata sulla tecnologia container e sulla tecnologia di orchestrazione Kubernetes di supporto all’erogazione di :

 

  • Applicazioni microservizi
  • Servizi composti da architetture a più livelli
  • Pipeline CI/CD
  • Framework per lo sviluppo
  • Analitica

 

La piattaforma PaaS rappresenta un ambiente di sviluppo e deployment completo nel cloud di Engineering, include l'infrastruttura IaaS necessaria alla sua erogazione ed è progettata per supportare il ciclo di vita completo delle applicazioni: creazione, test, distribuzione, gestione e aggiornamento.

L'utilizzo della piattaforma PaaS consente di semplificare tutti gli aspetti di gestione della complessità middleware e dell'infrastruttura sottostante lasciando al cliente la gestione dei soli aspetti applicativi e di servizio.

 

Il servizio PaaS di Container as a Service è basato su una distribuzione di Kubernetes multi-tenant ottimizzata per lo sviluppo continuo delle applicazioni e della loro distribuzione in alta disponibilità. Tramite la soluzione PaaS di Engineering D.HUB si ottengono strumenti per sviluppatori ed operatori basati su Kubernetes per consentire uno sviluppo rapido delle applicazioni, una loro facile implementazione e scalabilità ed una manutenzione del ciclo di vita per team di piccole e grandi dimensioni.

 

Il servizio consente di istanziare tutti i componenti di un'infrastruttura Kubernetes:

 

Nodi master: nodi che contengono i componenti della control plane, inclusi il server API, il server  controller ed il sistema di configurazione etcd. I nodi master gestiscono i nodi compute nel cluster Kubernetes e distribuiscono l'esecuzione dei Pod su tali nodi.

 

Nodi compute: nodi che forniscono gli ambienti di runtime per i container. Ogni nodo in un cluster Kubernetes è gestito dai nodi master tramite un agente chiamato Kubelet. Questo servizio consente ai nodi master di gestire la distribuzione dei Pod, di eseguire i container e di conoscere lo stato di salute dei nodi compute. I nodi master utilizzano le informazioni dei nodi compute per convalidare i nodi con i controlli di integrità ed un nodo compute viene ignorato finché non supera i controlli di integrità.

 

Funzionalità:

  • realizzazione facilitata di applicazioni con rilevamento dei servizi integrato ed archiviazione persistente;
  • adattamento rapido e semplice delle applicazioni per gestire la variabilità della domanda;
  • Supporto per alta disponibilità automatica, bilanciamento del carico, controllo dello stato e failover, auto-scaling orizzontale;
  • upload di codice sorgente dal repository Git e distribuzione automatica di applicazioni containerizzate;
  • console Web e client a riga di comando per la creazione ed il monitoraggio delle applicazioni;
  • creazione di modelli riutilizzabili per i componenti;
  • integrazione con i meccanismi di autenticazione esistenti, inclusi LDAP, Active Directory e provider OAuth pubblici come GitHub;
  • supporto multi-tenancy, incluso l'isolamento di team ed utenti;
  • esecuzione di container in sicurezza con controlli fine-grained;
  • registro delle immagini dei container integrato.

 

 

Immagini di base disponibili:

 

  • Ruby (per sviluppare ed erogare applicazioni in linguaggio Ruby);
  • Python (per sviluppare ed erogare applicazioni in linguaggio Python);
  • Node.js (per sviluppare ed erogare applicazioni in linguaggio Node);
  • PHP (per sviluppare ed erogare applicazioni in linguaggio PHP);
  • Perl (per sviluppare ed erogare applicazioni in linguaggio Perl);
  • WildFly (per sviluppare ed erogare applicazioni in linguaggio Java);
  • MySQL (per utilizzare un database MySQL);
  • MongoDB (per utilizzare un database NOSQL MongoDB);
  • PostgreSQL   (per utilizzare un database MySQL)
  • MariaDB (per utilizzare un database MariaDB, derivato di MySQL);.
  • Jenkins (per implementare il flusso di test, integrazione e rilascio)

 

Oltre alle immagini di base disponibili è possibile integrare il repository Docker HUB ed accedere a tutte quelle disponibili su tale registry pubblico. E’ infine possibile creare registri privati con immagini di container personalizzate.