Elastic Cloud è un’infrastruttura che ospita lo Stack Elastic, e consente l’utilizzo di applicativi come Elasticsearch e Kibana su piattaforma Cloud. Grazie a questo servizio non è necessario configurare manualmente l’infrastruttura o altre impostazioni. Aspetti come facilità d’uso, sicurezza e aggiornamento frequente hanno contribuito a rendere l’infrastruttura cloud di Elastic molto apprezzata da numerose aziende in differenti settori. Probabilmente anche grazie al contributo di AWS (Amazon Web Services), che gioca un ruolo fondamentale dietro le quinte.

Elastic Cloud Enterprise nasce dalla necessità di aziende di livello Enterprise di usufruire di tutte le funzionalità di Elastic Stack su Cloud con particolare attenzione a dettagli come sicurezza e protezione dei dati.

Queste necessità, anche in relazione alla grande crescita di Elastic negli ultimi due anni, hanno portato alla decisione di realizzare un pacchetto SaaS disponibile come prodotto. Appunto, Elastic Cloud Enterprise.

L’architettura

Elastic Cloud Enterprise condivide gli stessi principi base dell’offerta SaaS di Elastic Cloud:

Architettura Service-oriented

questo tipo di architettura è pensata per garantire la scalabilità dell’intera infrastruttura. I servizi presentano comportamenti ben definiti e accessibili via API, con lo scopo di semplificare la gestione generale e dare la possibilità di applicare modifiche su singoli servizi senza modificare il resto. Ciascun servizio è installato su uno specifico container Docker in modo indipendente. Grazie a questa caratteristica, un’eventuale compromissione di un singolo servizio non si estende agli altri container, garantendo la stabilità dell’intero sistema. In Elastic Cloud è prevista infatti la possibilità che uno qualunque dei nodi Cluster Elasticsearch possa essere compromesso da una vulnerabilità di qualche tipo. L’architettura così concepita vanifica però il potenziale attacco, essendo il nodo circoscritto all’interno del container.

Proxy: il proxy mappa gli id dei cluster presenti nelle request URL nel passaggio tra i container e il cluster node. L’associazione tra cluster id e container è memorizzata in ZooKeeper, ma viene memorizzata dal proxy. Ciò significa che, anche nella rara eventualità di un crash di ZooKeeper, la piattaforma riesce comunque a inoltrare la richiesta ai cluster attivi.

Allocator: la funzione degli allocator assolve funzioni di creazione di nuovi container e l’attivazione su richiesta dei nodi ES, riattivazione di nodi “unresponsive”, eliminazione di nodi non necessari.

Constructor: si occupa del monitoraggio delle nuove richieste della console admin, calcola cosa è necessario modificare comunicando con i nodi ZooKeeper monitorati dagli allocator. Ha anche il compito di assegnare i nodi cluster ai rispettivi allocator.

Cloud UI: fornisce l’interfaccia e le API per il monitoraggio e la gestione dei cluster. Si compone di due parti: Parte amministrativa, usata per monitorare lo status della piattaforma e gestire i cluster, e la parte end user, con cui gli utenti possono configurare i propri cluster.

Utilizzo di Docker per il packaging

Tutti i servizi sopra menzionati sono installati su container Docker. Questo semplifica il numero di operazioni e facilita la creazione di un ambiente condiviso fra sviluppo e implementazione.

L’utilizzo dei container di Docker è utile in termini di sicurezza, dal momento che da questi non è possibile avere un accesso diretto alla piattaforma. Questo vale sia per i nodi cluster che per i servizi associati: anche nel caso di un attacco su un singolo nodo, non è possibile avere accesso agli altri, evitando così la compromissione dell’intero sistema.

Stunnels: per garantire la sicurezza nelle comunicazioni fra i diversi container è solitamente utilizzato TLS (transport layer security), ma non tutti i servizi di Elastic offrono nativamente il supporto di questo tipo di protocollo. In questo caso viene in aiuto Stunnels, un proxy progettato per aggiungere funzionalità TLS ad applicativi client o server senza dover apportare modifiche strutturali: https://www.stunnel.org/index.html. Grazie a questo strumento è possibile incanalare l’intero traffico tra container, “blindando” di fatto la comunicazione.

Uso di Apache ZooKeeper per il monitoraggio dei cluster:

ZooKeeper (http://zookeeper.apache.org/) è un robusto servizio di data storage di casa Apache. Ha una struttura simile a un file system dove ogni nodo è sia una directory che un file. (Questi nodi sono detti znodes per differenziarli dai nodi ordinari).

L’utilizzo di questo strumento è fondamentale per monitorare lo stato dei cluster attivi su ciascuna installazione di Elastic Cloud Enterprise.

Attualmente sono state rilasciate due alpha di Elastic Cloud Enterprise. È possibile prendere parte alla fase di testing qui: https://info.elastic.co/cloud-enterprise

Contatta Seacom

Vuoi rimanere aggiornato su tutte novità Elastic o richiedere una consulenza a Seacom?
Visita la pagina dedicata, oppure