docker: containers evolved - dynamic instantiation of microservices
TRANSCRIPT
Dynamic instantiation of Microservices
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
EntryPoint
IndexerServiceBuilder
ImageBuilder
Deployer Notifier
Indexer Deployer
Generacion
dinamica de
servicios
FeignJava API
Construccion
dinamica de
imagenes
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
Despliegue
dinamico en
Swarm
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
docker -H :2375 info
docker -H :2375 ps
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]