DevOps Mashup: Special Champion Edition - Madrid DevOps 2016
-
Upload
rromannissen -
Category
Software
-
view
44.867 -
download
0
Transcript of DevOps Mashup: Special Champion Edition - Madrid DevOps 2016
Ignacio Sánchez Ginés@drhelius
Ramón Román Nissen@rromannissen
GRACIAS
m4.2xlarge
m4.large (x2)
m4.large
t2.micro
Nodo 1
Registry
···
Nodo 4
Master
¿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
VAYAMOS
POR PARTES
Herbert Von Karajan
Teletraan
https://github.com/pinterest/
https://github.com/pinterest/
EntryPoint
IndexerServiceBuilder
ImageBuilder
Deployer Notifier
Indexer Deployer
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'] %>"
}
}
}
}
}
EntryPoint
IndexerServiceBuilder
ImageBuilder
Deployer Notifier
Indexer Deployer
FeignJava API
Service Builder
Aplicar Arquetipo
Construir Proyecto
Desplegar Artefacto
EntryPoint
IndexerServiceBuilder
ImageBuilder
Deployer Notifier
Indexer Deployer
Image Builder
Parametrizar Dockerfile
Build Dockerfile
Push Docker Image
Jenkins Slave
FROM java:8
ARG SERVICE_ID
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 –Xmx32m –Xss256k -
Djava.security.egd=file:/dev/./urandom
-jar /indexed-service.jar
EntryPoint
IndexerServiceBuilder
ImageBuilder
Deployer Notifier
Indexer Deployer
Deployer
Pull Docker Image
Run Docker Image
Reconfiguración NGINX
upstream indexed-service-xxxxxx {
least_conn;
{{range service "indexed-service-xxxxxx"}}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 /xxxxxx/ {
proxy_pass http://indexed-service-xxxxxx/;
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 :2375 pull 10.0.0.223:9022/ indexed-service-
xxxxxx
docker -H :2375 run -d -P –e reschedule:on-node-failure
10.0.0.223:9022/indexed-service-xxxxxx
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é[email protected]@atsistemas.com
Ramón Román Nissen@[email protected]