User Tools

Site Tools


sysadmin:paas

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
sysadmin:paas [2015/02/08 15:58] – [Kubernetes] kobesysadmin:paas [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1
Line 1: Line 1:
-====== PaaS ====== 
  
-===== Microservices vs Lightweight VMs ===== 
- 
-Tra tutte e' emersa una [[https://github.com/phusion/baseimage-docker|proposta alternativa]] nell'uso di Docker non visto piu' come un container che fornisce microservizi ma una come VM a basso overhead.  In questo caso la differenza principale e' data dall'avere (come in un normale OS) un normale demone di init come PID 0, mentre nei microservizi il PID 0 e' il processo che vogliamo lanciare (Nginx, uWSGI, PostgreSQL...).  Questo approccio risolve alcuni aspetti nell'uso di Docker in produzione, come la questione del logging.  Tuttavia per sfruttare appieno Docker non e' neanche sufficiente dotare ogni container di demoni init nativi, SSH e SysLog, ma bisogna andare un po' oltre e pensare un sistema di orchestrazione che risolve questo e altri problemi come l'HA, l'autoscaling, etc fermorestanto l'approccio dei microservizi. 
- 
-  * [[http://blog.phusion.nl/2015/01/20/docker-and-the-pid-1-zombie-reaping-problem/|Part 1]] 
-  * [[http://blog.phusion.nl/2015/01/20/baseimage-docker-fat-containers-treating-containers-vms/|Part 2]] 
- 
-Infatti se Docker di default puo' avere vantaggi principalmente in fase di sviluppo, per sfruttarlo in fase di ops e' necessario dotarsi di un orchestration engine o, ancora meglio, una PaaS Docker-based che quindi puo' portare a: 
- 
-  * infrastruttura piu' agile basata sui microservizi 
-  * migliorare l'efficienza del deploy di un'applicazione tramite: 
-    * minimizzazione dei costi di deploy di un'applicazione 
-    * migliorare la scalabilita' in produzione 
- 
-Cosa si intende per PaaS e a quale livello di astrazione si pongono questi strumenti?  [[https://twitter.com/gabrtv/status/539805332432637952/photo/1|Qui]] e [[https://blog.openshift.com/openshift-v3-platform-combines-docker-kubernetes-atomic-and-more/|qui]] si puo' avere un'idea sui differenti livelli di astrazione. 
- 
-[[https://blog.openshift.com/platform-abstraction-advantage/|Qui]] invece un articolo che introduce la differenza tra PaaS e IaaS+. 
- 
-===== Stateless only apps ===== 
- 
-Per **stateless** s'intende che la soluzione proposta non gestisce dati persistenti (che sia su database o su file system), e questo e' dovuto al fatto che i container possono essere costruiti/distrutti in qualsiasi momento (piu' o meno come se fossero in sola lettura). 
- 
-Quindi eventuali database (relazionali o non) o file caricati dagli utenti dovranno risiedere altrove, ad esempio su un nostro VPS qualsiasi, oppure su un servizio dedicato come Google Persistent Disk, Amazon S3, etc.  Tuttavia questo e' un argomento abbastanza complesso su cui siamo in piena fase di R&D, per cui ora non approfondiamo ulteriormente. 
- 
-==== Deis ==== 
- 
-  * [[http://deis.io/|Deis]] e' la prima PaaS libera costruita su Docker ed evoluta nel tempo (ed attualmente l'unica pronta per la produzione) che implementa i principi di [[http://12factor.net/|12factor]] e rappresenta una sorta di Heroku libero 
-  * basato su [[https://coreos.com/|CoreOS]] 
-  * Deis e CoreOS sono entrambi production-ready 
-  * Deis scritto in Python e Go, CoreOS in Go 
- 
-Requisiti minimi: 
-  * occupa ~2/2.5GB di RAM e 30GB di disco 
-  * almeno 3 server da 4GB di RAM (~120USD/anno) + Storage 
- 
-==== Altri ==== 
- 
-  * [[http://www.cloudfoundry.org/about/index.html|Cloud Foundry]] (Shell/Ruby/.., [[https://github.com/cloudfoundry/cf-release|repository]], supportato dalla Linux Foundation) 
- 
-==== Micro PaaS ==== 
- 
-  * [[https://github.com/progrium/dokku|Dokku]]  (Shell, sponsorizzato da Deis per ambienti molto piccoli) 
-  * [[http://www.octohost.io/|OctoHost]] (Shell, [[https://github.com/octohost/octohost|repository]]) 
- 
-===== Stateful apps ===== 
- 
-==== OpenShift 3 + Kubernetes ==== 
- 
-[[https://www.openshift.com/products/origin|OpenShift 3 Origin]] 
-  * OpenShift 3 e' la riscrittura della PaaS di RedHat in Go (prima era in Ruby) e basato su Docker (prima era su un container engine specifico di RedHat) 
-  * basato su Kubernetes 
-  * in beta 
-  * punta a supportare app stateful 
-  * scritto in Go 
-  * OpenShift supporta l'autoscaling delle applicazioni 
-  * [[https://github.com/openshift/origin|repository]] 
-  * 200+ GitHub stars 
- 
-==== Flynn ==== 
- 
-[[https://flynn.io/|Flynn]] e' stato sviluppato a partire dalla ricerca di Google presentata come [[http://research.google.com/pubs/pub41684.html|Omega]] 
-  * in alpha 
-  * scritto in Go 
-  * [[https://github.com/flynn/flynn|repository]] 
-  * 3000+ GitHub stars 
- 
-==== Tsuru ==== 
- 
-  * [[https://tsuru.io/|Tsuru]] 
-  * scritto in Go 
-  * [[https://github.com/tsuru/tsuru|repository]]) 
-  * 1000+ GitHub stars 
- 
-===== Appendice: Orchestration ===== 
- 
-==== Kubernetes ==== 
- 
-[[http://kubernetes.io/|Kubernetes]] e' stato presentato da Google all'I/O 2014 come proposta per standardizzare l'orchestrazione di applicazioni dockerizzate stateless (dove un'applicazione e' costituita da vari pod, ogni pod e' un insieme di container).  Scritto in Go, puo' girare su bare metal, cosi' come su OpenStack, un VPS generico con Debian, Ubuntu, Fedora, CoreOS. 
- 
-  * 6000+ GitHub stars 
-  * in beta 
-  * scritto in Go 
-  * (per ora) permette solo applicazioni stateless 
sysadmin/paas.1423411097.txt.gz · Last modified: 2015/02/08 15:58 by kobe