Nel mondo del software, un container è un pacchetto software organizzato in unità standardizzate di sviluppo, spedizione e distribuzione. Il container “impacchetta” il codice e tutte le sue dipendenze in modo che l’applicazione venga eseguita in modo rapido e affidabile anche passando da un ambiente di elaborazione a un altro.

adv
Investimenti Oracle NetSuite

Prendere decisioni strategiche informate grazie a Business Intelligence e Analytics

Una piattaforma di BI e Analytics deve offrire ai decision maker tutti gli strumenti necessari per migliorare l'efficienza e individuare nuove opportunità prima della concorrenza. Presentiamo una serie di preziose risorse e ricerche in Pdf per approfondire questo argomento da un punto di vista tecnico e strategico. SCARICA LE GUIDE >>

Una sua “immagine” è un pacchetto software leggero, autonomo ed eseguibile che include tutto il necessario per utilizzare un’applicazione: codice, runtime, librerie e strumenti di sistema e relative impostazioni.

In fase di esecuzione, le immagini diventano veri e propri container. Disponibili per applicazioni basate su Linux o su Windows, i container funzioneranno sempre allo stesso modo, indipendentemente dall’infrastruttura e alle differenze, ad esempio tra ambiente di sviluppo, gestione temporanea e produzione. Inoltre, l’isolamento fornito dal container rispetto ad altri software eseguiti contemporaneamente nello stesso ambiente aumenta grandemente la sicurezza dell’esecuzione.

Il progetto-base dei container software è Docker, reso disponibile con licenza open source nel marzo 2013.

In sintesi, i tre punti salienti di Docker sono: standardizzazione, leggerezza e sicurezza.

  • Standardizzazione: Docker ha creato lo standard industriale per i contenitori, in modo che possano essere eseguiti ovunque.
  • Leggerezza: i container condividono il kernel del sistema operativo della macchina, aumentando l’efficienza dei server e riducendo i costi di server e licenze.
  • Sicurezza: se eseguite all’interno dei container le applicazioni sono più sicure; in particolare, Docker offre potenti funzionalità di isolamento da altre esecuzioni.

La differenza tra container e macchine virtuali

Un approccio di esecuzione precedente a Docker è la virtualizzazione delle unità di esecuzione, le ben note macchine virtuali.

I container e le macchine virtuali hanno simili vantaggi di isolamento e allocazione delle risorse, ma funzionano in modo diverso perché nei container viene virtualizzato il sistema operativo anziché l’hardware.

Invece di predisporre una macchina virtuale per ciascuno dei framework o dei servizi necessari all’applicazione, ciascuno di essi viene eseguito nel proprio container ma tutti convivono nello stesso sistema operativo. Questo offre grandi vantaggi in termini di portabilità ed efficienza. Non dovendo replicare l’intero sistema operativo, le micro istanze dei container richiedono infatti solo una frazione della capacità computazionale di una intera virtual machine.

Cos’è il “Container as a Service”

Nella classificazione delle soluzioni disponibili in Cloud, i container sono visti come un servizio specifico, generalmente definito CaaS, ovvero Container-as-a-Service. Ma qual è il loro ruolo nel modello che prevede le tre modalità classiche di erogazione in Cloud: Saas, Paas e Iaas?

Se nel caso del Software-as-a-Service, l’utente gestisce solo i dati all’interno dell’applicazione (per esempio, i messaggi e la rubrica in un servizio di webmail), nel Platform-as-a-Service, viene invece fornito un livello di middleware e/o una piattaforma di sviluppo su cui l’utente può carica il codice da eseguire (un esempio tipico sono i servizi di hosting che forniscono un CMS preinstallato, per esempio WordPress). Nell’Infrastructure-as-a-Service, la parte erogata come servizio si ferma all’hypervisor, mentre l’utente controlla e gestisce tutto il resto, dal sistema operativo in su.

Se con il PaaS è effettivamente possibile erogare applicazioni custom, si è comunque limitati dalle funzionalità della piattaforma. Applicazioni più complesse, che richiedono ambienti o framework diversificati, non sono possibili. Con l’IaaS, lo sviluppatore potrà invece installare sul sistema operativo tutto quel che è necessario al funzionamento dell’applicazione, ma dovrà sobbarcarsi anche l’onere di gestire il sistema e assicurarne l’operatività, la sicurezza e la compliance normativa.

L’approccio CaaS proposto da Jelastic punta a colmare lo spazio esistente tra il modello PaaS, semplice ma rigido, e quello IaaS, flessibile ma complesso. Permette quindi una maggior possibilità di scelta dell’ambiente di sviluppo ed erogazione delle applicazioni, senza però doversi preoccupare della gestione fisica e normativa dell’hardware, dal server al data center e al networking.

La seconda agevolazione offerta da questa architettura è la completa modellabilità dei costi di erogazione dei servizi, che diventano proporzionali ai risultati economici ottenuti con ciascuna specifica applicazione.

I container in Jelastic Cloud: configurazione agile, prezzo al consumo

Nell’implementazione fatta da Aruba con Jelastic Cloud, l’architettura a container è modellata sull’approccio CaaS (Container as a Service), combinato con il PaaS (Platform as a Service). Si tratta di una tipologia di virtualizzazione basata su unità container che poggiano su un cluster di elaborazione messo a disposizione degli utenti su un’infrastruttura Cloud, che offre quindi la scalabilità delle risorse virtualizzate. La scalabilità è possibile sia in orizzontale (aumento dei nodi), che in verticale (aumento delle risorse dei singoli nodi), ed è possibile impostare dei limiti alla scalabilità automatica in modo da avere sempre i costi sotto controllo

La portabilità rende i container ideali per un approccio multi cloud, grazie al quale è possibile eseguire insieme istanze su più provider. Grazie alla funzionalità multi ambiente, inoltre, è possibile separare gli ambienti di test e sviluppo, garantendone il funzionamento con continuità. Jelastic Cloud richiede pochi secondi per creare, modificare e clonare l’ambiente scelto, rendendo semplice e veloce abilitare ambienti per test o sviluppo.

La tecnologia è basata sull’utilizzo di micro istanze denominate Cloudlet, unità di esecuzione virtuali equivalenti ad un hardware di 128 MB di RAM e 400 MHz di vCPU. Ciascun cloudlet può essere dedicato (riservato), quindi sempre attivo per la specifica applicazione, oppure dinamico con ampie possibilità di configurazione.

Il servizio è disponibile sia in modalità a consumo, con tariffazione pay-per-use su base oraria, sia a pacchetti preconfigurati, con tariffazione a canone fisso mensile. A questo link si possono trovare prezzi e dettagli delle offerte Jelastic Cloud di Aruba.

Ideale per agenzie, sviluppatori e DevOps

Un prodotto come Jelastic Cloud si rivolge ad un grande ventaglio di utenti, ma interessa in particolare tre le categorie: agenzie web, sviluppatori e team DevOps.

Le agenzie spesso gestiscono siti e servizi e-commerce di più clienti, sviluppati con i principali CMS (WordPress, Magento, PrestaShop, etc.). Jelastic permette loro di usare gli stessi CMS e allo stesso tempo avere controllo sulle risorse senza doversi preoccupare della gestione di hardware, software, rete e sicurezza.

Grazie all’approccio CaaS, gli sviluppatori trovano installato sul proprio contenitore l’ambiente di programmazione che solitamente utilizzano per le proprie applicazioni (PHP, Node.js, Java eccetera), senza dover richiedere il supporto di un sistemista.

Il mondo DevOps potrà trarre vantaggio dalla rapidità di implementazione e dalla flessibilità di modifica dei container per poter fare rilasci frequenti, modifiche ed esperimenti in modo rapido ed economico.

Oltre 50 applicazioni ottimizzate e preconfigurate

All’interno della sezione marketplace sono disponibili decine di applicazioni da installare con un solo clic: Jelastic Cloud consente di gestire in un’unica piattaforma progetti con tecnologie differenti.

Tra le applicazioni più popolari disponibili troviamo l’orchestratore Kubernetes, i CMS più diffusi (Wordpres, Drupal, Joomla, Magnolia, DocuWiki, OpenCMS, Django…), applicazioni di eCommerce (Magento, PrestaShop), pannelli di controllo (Plesk), database (MariaDB, MongoDB, MySql, PostgreSQL…) e molte altre ancora. Le applicazioni, così come gli add-on descritti in seguito, sono disponibili sul Marketplace di Jelastic Cloud.

Gli add-On di Jelastic

Per l’aggiornamento degli ambienti di sviluppo – sia di test, sia di produzione – con le configurazioni specifiche, sono disponibili svariati add-on per estendere le funzionalità del servizio:

  • DripStat – monitoraggio delle prestazioni delle applicazioni e dell’infrastruttura
  • Env Start/Stop Scheduler – schedulatore per avvio/interruzione automatica dell’ambiente di sviluppo
  • File Synchronization – sincronizza i file caricati dall’applicazione su più istanze per permettere la scalabilità orizzontale
  • Git-Push-Deploy – automatizza il deploy del codice da Git/GitHub
  • Ioncube – permette di eseguire codice php cifrato
  • Let’s Encrypt Free SSL – gestisce certificati SSL gratuiti
  • Magento Data Migration – migrazione dati per l’ecommerce Magento
  • New Relic APM – monitoraggio delle prestazioni dell’applicazione
  • NGINX Amplify – monitoraggio dell’infrastruttura con alert e log di eventi.
Fai clic qui per ulteriori informazioni su Jelastic Cloud di Aruba