La Shortlist di Docker Hosting
Si noti che questo post è stato aggiornato al 20 ottobre 2016.
Sappiamo tutti che Docker è semplice da installare e funzionare sulle nostre macchine locali. Ma senza soluzione di continuità la transizione nostre pile di applicazioni levigate dallo sviluppo alla produzione è stato un pezzo del puzzle che mancava fino agli ultimi sei a dodici mesi.
Ora ci sono così tanti servizi di hosting Docker specializzati e ottimizzati disponibili, è giunto il momento di una recensione per vedere cosa c’è in offerta.
Una delle complessità del confronto tra le opzioni di hosting Docker è che molti offrono strumenti di gestione e orchestrazione in cima ai fornitori di hosting effettivi. Non tutti chiariscono quale fornitore usano, quando o dove, e questo può o non può essere un problema importante per te. Per questo motivo, non ho incluso servizi come Deis Workflow, Docker Cloud o ContainerShip in quanto non affermano di essere o offrono servizi di hosting integrati.
Mentre io includerò i servizi che ospitano altrove, questi costi sono inclusi nel prezzo.
Naturalmente, è possibile installare Docker su una VM basata su Linux su qualsiasi provider di hosting e potrei produrre pagine di profili di società di hosting “standard”. Invece, ho cercato di concentrarmi su servizi che offrono qualcos’altro oltre al semplice hosting per rendere la tua esperienza Docker più fluida e migliorata.
Docker Machine
Per molti provider di hosting, il modo più semplice per distribuire e gestire i contenitori è tramite driver Docker Machine. A meno che questi host non offrano qualcosa in più sul driver, non li elencherò separatamente. Attualmente questi includono:
-
Amazon Web Services
-
Microsoft Azure
-
Digital Ocean
-
Exoscale
-
Google Compute Engine
-
OpenStack
-
Rackspace
-
IBM Softlayer
Più probabile che seguire presto, e si può essere in grado di utilizzare i driver generici per altri host.
Amazon Web Services (AWS)
AWS è il più grande servizio di cloud hosting del pianeta e offre supporto per Docker sulla maggior parte delle sue macchine EC2 standard.
AWS offre quindi EC2 Container Service (ECS) che espone una serie di chiamate API per la gestione dei container installati nelle istanze EC2. ECS non viene addebitato separatamente, ma si trova in cima a qualsiasi altra risorsa AWS che i contenitori utilizzano. Ciò significa che i container hanno accesso all’ampia varietà di servizi offerti da AWS, inclusi lo storage e il ridimensionamento.
aws.amazon.com/ecs
Digital Ocean
Supporto container Docker su Digital Ocean è semplice, che riflette il modo in cui l’azienda generalmente funziona. Accedi al tuo account e crea una nuova Droplet basata sull’applicazione Docker.
Questo creerà una VM che esegue Docker su Ubuntu da usare come al solito.
digitalocean.com/community/tutorials/how-to-use-the-digitalocean-docker-application
Carina
Rackspace offre un driver di macchina Docker, ma ha anche un servizio di hosting container. Carina è ancora in beta pubblica e ti consente di creare cluster simili a sciami Docker. Consente inoltre di gestire i contenitori dallo sviluppo alla produzione utilizzando principalmente comandi Docker standard. Biru:
carina create chriscluster --wait --nodes=3 --autoscale
È disponibile anche una console Web per la gestione dei contenitori e delle applicazioni.
getcarina.com
Sloppy.io
Sloppy.io fornisce strumenti CLI, interfaccia Web, archiviazione persistente tra lanci di container e statistiche. Si costruiscono pile di applicazioni attraverso un file JSON e, grazie all’integrazione Mesos sottostante, Sloppy consente di impostare le specifiche della macchina. Ad esempio:
{ "project": "chrisexample", "services": , "env": { "LCB_DATABASE_URI": "mongodb://mongodb.backend.chrisexample/chrisexample" }, "dependencies": } ] }, { "id": "backend", "apps": } ] } ]}
sloppy.io.
Giant Swarm
Questa è una nuova startup che ama mantenere le cose semplici e concentrarsi sulla fornitura di un prodotto solido e supporto. Giant Swarm non utilizza macchine virtuali e distribuirà i container e i servizi solo su macchine AWS private e sui propri servizi bare metal.
Il prezzo esatto è un po ‘ poco chiaro, e il servizio è solo su invito in questo momento, ma sono aperti sulla loro infrastruttura, con diversi componenti personalizzati disponibili su GitHub. L’installazione avviene tramite uno strumento a riga di comando, con applicazioni definite da un file JSON che assomiglia a un file di composizione Docker. Biru:
{ "name": "chris-app", "components": { "front-end": { "image": "registry.giantswarm.io/chrischinchilla/front-end", "ports": 8000, "domains": { "8000": "chris-app.com" }, "links": }, "redis": { "image": "redis:2.6", "ports": 6379 } }}
Le immagini possono essere dal Docker Hub, così come le immagini personalizzate dal tuo account sul registro di Giant Swarm.
Avviare l’applicazione con un semplice comando che può passare una varietà di parametri al file JSON.
swarm up --var=domain=chrisapp-chrischinchilla.gigantic.io
È disponibile un’API per un controllo più preciso dei servizi e i collaboratori possono essere organizzati in team per consentire la collaborazione.
giantswarm.io
Google Compute Engine (GCE)
Kubernetes è alla base del servizio di hosting e gestione container di Google, il loro progetto open source che alimenta molte grandi infrastrutture basate su container. I contenitori si trovano in cima al servizio di hosting di Google, uno dei servizi di hosting cloud più affidabili disponibili. GCE fornisce un registro contenitore e (in versione beta) un servizio di compilazione che creerà immagini Docker dal codice ospitato nel cloud di Google.
https://cloud.google.com/compute/
https://js.hscta.net/cta/current.js
hbspt.cta.carico(1169977, “96e4df76-0d4a-40ab-b51e-5ad2b46a426b”, {});
Microsoft Azure
Mentre AWS incombe su tutti gli altri fornitori di cloud, Azure è in realtà il secondo più popolare. Sostenuta da una grande azienda, non sta andando da nessuna parte in qualunque momento presto ed è la migliore fonte di VM basate su Windows. Oltre a un driver della macchina Docker, sono disponibili anche estensioni VM pre-costruite.
Azure è un ufficiale Docker trusted registry partner, sia attraverso la propria immagine VM o installando da soli.
https://azure.microsoft.com/en-us/
Heroku
La maggior parte del flusso di lavoro di Heroku viene attivato dai comandi git push
. Questi sono ancora possibili con una configurazione Docker, ma un’alternativa è disponibile tramite un plugin Docker Compose per spingere le applicazioni containerizzate direttamente al servizio. Heroku mantiene anche le immagini Docker per la maggior parte delle lingue supportate.
https://devcenter.heroku.com/articles/docker
Quay
Quay offre container hosting strettamente integrato con il set di strumenti Docker esistente. Accedi al registro di Quay tramite il comando Docker e gestisci i contenitori nel tuo account.
docker login quay.io
Quay funzionerà con molti strumenti di sviluppo comuni per consentire flussi di lavoro completamente automatizzati, ha strumenti CLI e Web disponibili per la gestione delle distribuzioni di container, nonché strumenti di registrazione e collaborazione.
Se hai bisogno di Kubernetes per gestire e orchestrare i tuoi contenitori, Quay ha un servizio partner chiamato Tettonico. Quay e Tettonica sono costruiti dal team CoreOS, in modo da poter anche usarli per ospitare e gestire i contenitori rkt. Infatti, tettonica funziona solo con contenitori rkt, ma ho pensato di sgattaiolare una menzione in.
https://quay.io/
Hyper
Hyper ha una semplice proposizione: fornire un’astrazione della riga di comando locale per l’esecuzione di contenitori Docker sull’hosting di Hyper (il provider e la posizione non sono specificati). Lo strumento è facile da usare, ma i passaggi di installazione sono leggermente fuorvianti.
Se provi a seguire le istruzioni sulla homepage, scoprirai rapidamente che devi effettivamente registrarti e ottenere prima un token di autenticazione. Ciò comporta dare Iper i dati della carta di credito, anche se tutto quello che hai intenzione di fare è testare la piattaforma. Una volta eseguito hyper config
e questi passaggi sono completi, il processo è semplice.
In questa prima immagine ,ho pull
l’immagine NGINX e quindi controllo che sia stata tirata con images
.
Utilizzando lo strumento della riga di comando, è possibile avviare e collegare servizi e allegare volumi di dati e indirizzi IP a loro. La maggior parte dei comandi di Hyper sono wrapper attorno ai comandi Docker familiari, che ti danno accesso a un solido provider di hosting. Se conosci Docker, saprai come usare Hyper.
https://www.hyper.sh/
Dokkur
Con i contenitori ospitati sull’infrastruttura di Azure, Dokkur gestisce i contenitori da un livello di applicazione, consentendo di selezionare le applicazioni da GitHub o creare una nuova applicazione. Per quanto posso dire dalla loro documentazione, utilizza contenitori per separare le applicazioni in codice, database e archiviazione persistente, ma non esiste alcun supporto o controllo diretto della finestra mobile.
https://dokkur.com/
Triton di Joyent
Triton offre una suite completa di servizi per la creazione, l’esecuzione e l’orchestrazione di contenitori su server cloud e bare metal. Ho detto nell’introduzione che non includerei servizi che hanno appena orchestrato le opzioni di hosting, ma Triton offre anche la propria soluzione di hosting (il Triton cloud), quindi mi concentrerò su questo.
Con pochi clic, Triton ti offre un’interfaccia grafica completa per avviare e gestire immagini e contenitori dall’hub Docker o dai tuoi repository di immagini. È possibile creare reti di sovrapposizione, aggiungere storage persistente e aggiungere processi di debug. Con l’accesso API a tutte le funzionalità, uno strumento CLI e una profonda integrazione con Docker, HashiCorp Terraform e altri strumenti di Joyent, Triton è il sogno di un utente esperto.
https://www.joyent.com/triton
IBM Bluemix
Per impostazione predefinita, Bluemix non include immagini contenitore nell’Hub Docker. Questo è confuso perché inizialmente si ha accesso solo a cinque contenitori “certificati”. Puoi copiare le immagini Docker pubbliche nel tuo account Bluemix, ma ciò comporta prima l’installazione di una serie di strumenti CLI e la navigazione nella documentazione confusa di Bluemix.
Ho faticato a farlo funzionare, quindi ho sperimentato uno dei contenitori di IBM per vedere cosa è possibile. Ciò ha anche causato un “errore sconosciuto”. Se riesci a far funzionare Bluemix, ha potenti opzioni di integrazione disponibili con le offerte IoT e machine learning di IBM, ma non è per gli inesperti.
http://www.ibm.com/cloud-computing/bluemix/
Openshift
Un’altra soluzione rivolta direttamente ai clienti aziendali, Openshift di Red Hat può essere autoinstallato o nel cloud di Red Hat. Non è possibile provare o sperimentare Openshift senza contattare un rappresentante di vendita, quindi non ho potuto provare il servizio, ma offre molte funzionalità di supporto e infrastruttura che piaceranno agli utenti aziendali di alta scala.