DevOps Mashup - Codemotion ES 2015

Post on 15-Feb-2017

700 views 1 download

Transcript of DevOps Mashup - Codemotion ES 2015

DEVOPSMASHUP

Ignacio Sánchez Ginés@drhelius

Ramón Román Nissen@rromannissen

GRACIAS

m4.2xlarge

m4.large

m4.large

t2.micro

EXCLUSIONES

¿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

@petecheslock

m4.2xlarge

m4.large

m4.large

t2.micro

VAYAMOS

POR PARTES

ORQUESTACIÓN

EntryPoint

IndexerServiceBuilder

ImageBuilder

Deployer Notifier

Indexer Deployer

PLATAFORMADO DINÁMICO E

INDEXACIÓN DE DATOS

EntryPoint

IndexerServiceBuilder

ImageBuilder

Deployer Notifier

Indexer Deployer

DEVELOPMENT KIT

ID servicio

Hostname

Path .CSV

Tokenización

SERVER

bootstrap

ssh / scp

DEVELOPMENT KIT

SERVER

bootstrap

ssh / scp

Registro

nodo

DEVELOPMENT KIT

DEVELOPMENT KIT

runlist

SERVER

input {

file {

type => "catalogue"

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

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

start_position => 'beginning'

sincedb_path => "/dev/null"

}

}

filter {

csv {

columns => ["data"]

separator => ";"

}

}

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

}

}

{

"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'] %>"

}

}

}

}

}

GENERACIÓN DINÁMICA DE

SERVICIOS

ONE MORE TIME…

SAY DYNAMIC

EntryPoint

IndexerServiceBuilder

ImageBuilder

Deployer Notifier

Indexer Deployer

FeignJava API

Service Builder

Aplicar Arquetipo

Construir Proyecto

Desplegar Artefacto

CONSTRUCCIÓN DINÁMICA DE

IMÁGENES

ONE MORE TIME…

SAY DYNAMIC

EntryPoint

IndexerServiceBuilder

ImageBuilder

Deployer Notifier

Indexer Deployer

Image Builder

Generar Dockerfile

Build Dockerfile

Push Docker Image

Jenkins Slave

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

DESPLIEGUE DINÁMICO EN

SWARM

I DARE YOU

EntryPoint

IndexerServiceBuilder

ImageBuilder

Deployer Notifier

Indexer Deployer

Deployer

Pull Docker Image

Run Docker Image

Reconfiguración NGINX

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;

}

}

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}

¿Y KUBERNETES?

¿Y KIBANA?

Now witness the

firepower of this fully

ARMED and

OPERATIONAL Battle

Station!The Emperor – Project Manager

Servicio:

Consulta:

¡GRACIAS!¿ALGUNA PREGUNTA?

Ignacio Sánchez Ginés@drheliusisanchez.gines@atsistemas.com

Ramón Román Nissen@rromannissenrroman@atsistemas.com