Alejandro de Brito Fontes

github.com/aledbf


alejandro.debrito@soficom.cl

¿Qué es Deis?


  • Plataforma de Aplicaciones (PaaS)
  • un Heroku privado
  • Go, Python & Shell
  • 100% open source

  • ~4,000 stars, ~230 watchers, ~590 forks
  • 300+ clusters
  • 2000+ nodes
  • 5 desarrolladores tiempo completo, +100 contribuidores

Workflows de trabajo

git push (Heroku buildpacks)

dockerfile (docker build)

docker pull (deis pull)

Heroku buildpacks:

  • ruby
  • node.js / io.js
  • java
  • gradle
  • grails
  • play
  • python
  • php
  • clojure
  • scala
  • go
  • heroku-buildpack-multi
  • BUILDPACK_URL

Ejemplo utilizando Heroku buildpacks:

demo-nodejs-express
├── package.json
├── Procfile
└── server.js
web: node server.js
var express = require('express');
var app = express();

app.get('/', function(req, res){
  var mensaje = process.env.POWERED_BY || 'Deis';
  res.send('Powered by ' + mensaje);
});

var port = process.env.PORT || 5000;
server = app.listen(port);

console.log('Escuchando en puerto %d', server.address().port);
video 1

Eso lo puedo hacer con cualquier PAAS

video 2

Docker build:

cat Dockerfile
FROM ubuntu-debootstrap:14.04
RUN apt-get update && \
  apt-get install -y netcat-openbsd && \
  apt-get clean && \
  rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

ENV POWERED_BY Deis
CMD while true; do echo "HTTP/1.1 200 OK\n\nPowered by $POWERED_BY" | nc -l -p 1500; done
EXPOSE 1500
video 3

deis pull (docker pull):

https://index.docker.io

video 4

A diferencia de otros PaaS como Heroku o AppEngine
deis esta pensado para correr en equipos sobre los que se tiene control

¿Qué significa "correr en equipos sobre los que se tiene control"?

¿Como funciona?

Fin

Preguntas

Links