DevOps Mashup - Codemotion ES 2015

56
DEVOPS MASHUP

Transcript of DevOps Mashup - Codemotion ES 2015

Page 1: DevOps Mashup - Codemotion ES 2015

DEVOPSMASHUP

Page 2: DevOps Mashup - Codemotion ES 2015

Ignacio Sánchez Ginés@drhelius

Ramón Román Nissen@rromannissen

Page 3: DevOps Mashup - Codemotion ES 2015

GRACIAS

Page 4: DevOps Mashup - Codemotion ES 2015
Page 5: DevOps Mashup - Codemotion ES 2015
Page 6: DevOps Mashup - Codemotion ES 2015
Page 7: DevOps Mashup - Codemotion ES 2015

m4.2xlarge

m4.large

m4.large

t2.micro

Page 8: DevOps Mashup - Codemotion ES 2015

EXCLUSIONES

Page 9: DevOps Mashup - Codemotion ES 2015

¿Qué es DevOps?, dices mientras clavasen mi pupila tu pupila azul.

¿Qué es DevOps? ¿Y tú me lo preguntas?

DevOps... eres tú.

Gustavo Adolfo Bécquer - Sysadmin

Page 10: DevOps Mashup - Codemotion ES 2015
Page 11: DevOps Mashup - Codemotion ES 2015

@petecheslock

Page 12: DevOps Mashup - Codemotion ES 2015
Page 13: DevOps Mashup - Codemotion ES 2015

m4.2xlarge

m4.large

m4.large

t2.micro

Page 14: DevOps Mashup - Codemotion ES 2015

VAYAMOS

POR PARTES

Page 15: DevOps Mashup - Codemotion ES 2015

ORQUESTACIÓN

Page 16: DevOps Mashup - Codemotion ES 2015
Page 17: DevOps Mashup - Codemotion ES 2015
Page 18: DevOps Mashup - Codemotion ES 2015
Page 19: DevOps Mashup - Codemotion ES 2015

EntryPoint

IndexerServiceBuilder

ImageBuilder

Deployer Notifier

Indexer Deployer

Page 20: DevOps Mashup - Codemotion ES 2015

PLATAFORMADO DINÁMICO E

INDEXACIÓN DE DATOS

Page 21: DevOps Mashup - Codemotion ES 2015

EntryPoint

IndexerServiceBuilder

ImageBuilder

Deployer Notifier

Indexer Deployer

Page 22: DevOps Mashup - Codemotion ES 2015

DEVELOPMENT KIT

ID servicio

Hostname

Path .CSV

Tokenización

Page 23: DevOps Mashup - Codemotion ES 2015
Page 24: DevOps Mashup - Codemotion ES 2015

SERVER

bootstrap

ssh / scp

DEVELOPMENT KIT

Page 25: DevOps Mashup - Codemotion ES 2015

SERVER

bootstrap

ssh / scp

Registro

nodo

DEVELOPMENT KIT

Page 26: DevOps Mashup - Codemotion ES 2015

DEVELOPMENT KIT

runlist

SERVER

Page 27: DevOps Mashup - Codemotion ES 2015
Page 28: DevOps Mashup - Codemotion ES 2015

input {

file {

type => "catalogue"

path => '<%= node['codemotion-

logstash-loader']['input_path'] %>'

start_position => 'beginning'

sincedb_path => "/dev/null"

}

}

Page 29: DevOps Mashup - Codemotion ES 2015

filter {

csv {

columns => ["data"]

separator => ";"

}

}

Page 30: DevOps Mashup - Codemotion ES 2015

output {

elasticsearch {

host => "<%= node['codemotion-logstash-

loader']['es_host'] %>"

protocol => "http"

port => "<%= node['codemotion-logstash-

loader']['es_port'] %>"

index => "<%= node['codemotion-logstash-

loader']['es_index'] %>"

template => "/tmp/logstashloader/csv-

logstash.json"

template_name => "csv-logstash"

template_overwrite => true

flush_size => 100

}

}

Page 31: DevOps Mashup - Codemotion ES 2015

{

"template" : "csv-logstash",

"settings" : { "index.refresh_interval" : "15s" },

"mappings" : {

"catalogue" : {

"_all" : { "enabled" : false },

"dynamic_templates" : [{

"string_fields" : {

"match" : "*",

"match_mapping_type" : "string",

"mapping" : { "type" : "string", "index" :

"not_analyzed" }

}

}],

"properties" : {

"data":{

"type" : "string",

"analyzer": "<%= node['codemotion-logstash-

loader']['analyzer'] %>"

}

}

}

}

}

Page 32: DevOps Mashup - Codemotion ES 2015

GENERACIÓN DINÁMICA DE

SERVICIOS

Page 33: DevOps Mashup - Codemotion ES 2015

ONE MORE TIME…

SAY DYNAMIC

Page 34: DevOps Mashup - Codemotion ES 2015

EntryPoint

IndexerServiceBuilder

ImageBuilder

Deployer Notifier

Indexer Deployer

Page 35: DevOps Mashup - Codemotion ES 2015
Page 36: DevOps Mashup - Codemotion ES 2015
Page 37: DevOps Mashup - Codemotion ES 2015

FeignJava API

Page 38: DevOps Mashup - Codemotion ES 2015

Service Builder

Aplicar Arquetipo

Construir Proyecto

Desplegar Artefacto

Page 39: DevOps Mashup - Codemotion ES 2015

CONSTRUCCIÓN DINÁMICA DE

IMÁGENES

Page 40: DevOps Mashup - Codemotion ES 2015

ONE MORE TIME…

SAY DYNAMIC

Page 41: DevOps Mashup - Codemotion ES 2015

EntryPoint

IndexerServiceBuilder

ImageBuilder

Deployer Notifier

Indexer Deployer

Page 42: DevOps Mashup - Codemotion ES 2015

Image Builder

Generar Dockerfile

Build Dockerfile

Push Docker Image

Jenkins Slave

Page 43: DevOps Mashup - Codemotion ES 2015
Page 44: DevOps Mashup - Codemotion ES 2015

FROM java:8

VOLUME /tmp

EXPOSE 8080

ADD

http://a1.codemotion.atsistemas.com/repository/mave

n-releases/com/atsistemas/codemotion/indexed-

service-generated-{{SERVICE_ID}}/1.0/indexed-

service-generated-{{SERVICE_ID}}-1.0.jar indexed-

service.jar

ENV SERVICE_ID={{SERVICE_ID}}

RUN bash -c 'touch /indexed-service.jar'

CMD java -Djava.security.egd=file:/dev/./urandom

-jar /indexed-service.jar

Page 45: DevOps Mashup - Codemotion ES 2015

DESPLIEGUE DINÁMICO EN

SWARM

Page 46: DevOps Mashup - Codemotion ES 2015

I DARE YOU

Page 47: DevOps Mashup - Codemotion ES 2015

EntryPoint

IndexerServiceBuilder

ImageBuilder

Deployer Notifier

Indexer Deployer

Page 48: DevOps Mashup - Codemotion ES 2015

Deployer

Pull Docker Image

Run Docker Image

Reconfiguración NGINX

Page 49: DevOps Mashup - Codemotion ES 2015

upstream indexed-service-monkey {

least_conn;

{{range service "indexed-service-monkey"}}server

{{.Address}}:{{.Port}} max_fails=3 fail_timeout=60

weight=1;

{{else}}server 127.0.0.1:65535; # force a

502{{end}}

}

server {

listen 80 default_server;

location /monkey/ {

proxy_pass http://indexed-service-monkey/;

proxy_set_header X-Forwarded-For

$proxy_add_x_forwarded_for;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

}

}

Page 50: DevOps Mashup - Codemotion ES 2015

docker -H tcp://0.0.0.0:2375 pull

10.0.0.223:9022/ indexed-service-

${option.SERVICE_ID}

docker -H tcp://0.0.0.0:2375 run -d -P

10.0.0.223:9022/indexed-service-

${option.SERVICE_ID}

Page 51: DevOps Mashup - Codemotion ES 2015

¿Y KUBERNETES?

Page 52: DevOps Mashup - Codemotion ES 2015

¿Y KIBANA?

Page 53: DevOps Mashup - Codemotion ES 2015

Now witness the

firepower of this fully

ARMED and

OPERATIONAL Battle

Station!The Emperor – Project Manager

Page 54: DevOps Mashup - Codemotion ES 2015
Page 55: DevOps Mashup - Codemotion ES 2015

Servicio:

Consulta:

Page 56: DevOps Mashup - Codemotion ES 2015

¡GRACIAS!¿ALGUNA PREGUNTA?

Ignacio Sánchez Giné[email protected]@atsistemas.com

Ramón Román Nissen@[email protected]