Docker swarm - Catecbol

Docker provee abstracción a nivel de virtualización del Sistema Operativo ... Docker Engine soporta múltiples Sistemas Operativos, Nubes Publicas e.
1MB Größe 45 Downloads 92 vistas
Catecbol www.catecbol.com

Capacitación Tecnológica Científica para Bolivia facebook.com/catecbol

@catecbol

Contenedores Docker Ronny Bazan Antequera Estados Unidos

La unión es la fuerza

[email protected]

Introducción Personal Ronny Bazan Antequera • Licenciatura en Informática – UMSA • Promoción de Gobierno Electrónico mediante Software Libre – Japón • Administración/Configuración de Servidores y configuración de Redes de Datos Avanzada – India • Maestría en Ciencias de la Computación de Universidad de Missouri Columbia – EEUU • Cursando un doctorado en Ciencias de la Computación • Investigación en el área de Computación en Nube y redes de datos – EEUU

Contenedores Docker • Implementación del concepto de contenedores mediante la utilización de Docker

• Desplegar infraestructura multicapa utilizando nodos en la nube • Aplicar conceptos de balance de carga sobre un cluster de nodos Docker.

El gran reto

Múltiples métodos de transporte y almacenamiento

Variedad de objetos

Solución - estandarización Debería preocuparnos saber como los objetos interactúan entre si? Un contenedor estándar que contiene virtualmente cualquier objeto, se mantiene sellado hasta que llega al destino final

(Ejemplo, cajas al lado de barriles)

Durante su transporte, es cargado, descargado, empilado, transportado eficientemente sobre grandes distancias usando diferentes medios de transporte

Puedo realizar el transporte rápidamente? (Ejemplo desde un barco a un tráiler)

El gran reto en el área de sistemas Sitio web estático

Frontend

Backend

Usuarios de BD

Análisis de BD

Multi-capa

Solución - estandarización «Build, Ship and Run Any App, Anywhere» «Construir, Enviar y Ejecutar cualquier App, en Cualquier Lugar» Sitio web estático

Frontend

Backend

Usuarios de BD

Análisis de BD

Multi-capa

Que es Docker? • Es un proyecto de software libre que automatiza la disposición de aplicaciones dentro de contenedores software, mediante la provisión de una capa de abstracción • Docker provee abstracción a nivel de virtualización del Sistema Operativo

Virtualización regular

Docker

Como funciona? • Interior del contenedor: Código Librerías Package manager Aplicaciones Datos • Todos los servidores Linux parecen ser iguales

Devs

DevOps

– Desarrolladores

• Exterior del contenedor: Logging Acceso remoto Monitoreo Configuración de red de datos • Todos los contenedores tienen un comportamiento homogéneo

Ops

que se interesan en infraestructura informática – SysAdmins que tienen pasión por scripting y coding para desarrollo de herramientas de test y provisión

Entendiendo el eco sistema Docker • Docker Engine soporta múltiples Sistemas Operativos, Nubes Publicas e incluso Nubes privadas

Herramientas Docker • Docker hub

• Docker engine • Docker compose • Docker swarm

Docker Hub (Repositorio)

commit

Usuario

pull

Auto build

Github / BitBucket

Docker Hub

Host

Existen cientos de imágenes/Apps personalizadas (en repositorios públicos o privados), que pueden ser fácilmente descargados y reutilizados, usando simples comandos Docker Visitar Docker hub

Docker engine – Servidor Web Apache Bin/Libs Docker 130.127.215.160

Debian 8

Ubuntu 14.01.1 LTS

Sistema local

docker run -p 80:80 -d eboraas/apache

docker exec -it bash

docker images

docker stop

docker ps

docker images rm -f

Docker engine – Servidor Web con contenido

Apache Bin/Libs Docker 130.127.215.160 Sistema local

docker run -p 80:80 -d eboraas/apache

^

-v /opt/catecbol/:/var/www/html/

Docker compose docker-compose.yml base de datos: build: command: ports: volumes: links:

web server: image: wordpress depends on: database

Base de datos Acceso a datos mysql

web APP PHP

Presentación

Ejemplo Docker compose - Wordpress version: '2' services: db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: wordpress wordpress: depends_on: - db image: wordpress:latest ports: - "8000:80" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_PASSWORD: wordpress volumes: db_data:

Acceso a datos

Presentación

Múltiples servicios, múltiples puertos Apache

Bin/Libs

Wordpress

mysql

Bin/Libs Bin/Libs Docker 130.127.215.160

Sistema local

docker-compose up –d ssh -L 9090:localhost:8000 [email protected] Solo como ejemplo: Reenvío SSH, para utilizar nuestro navegador local para visualizar contenido en nodos remotos con IPs privadas

Docker swarm Servidor Web Bin/Libs

Diagrama físico

Docker

Docker

Docker

130.127.215.165

130.127.215.161

130.127.215.162

Master Node 130.127.215.165

Diagrama lógico worker1

worker2

130.127.215.161

130.127.215.162

Docker swarm - replicas En master docker swarm init --advertise-addr

Servidor Web Bin/Libs Master Node 130.127.215.165

En workers docker swarm join … Verificación docker node ls

worker1

worker2

130.127.215.161

130.127.215.162

Instalación de servicio en master docker service create --replicas 1 -p 80:80 --name web nginx Agregar replicas docker service ls

/

Agregar replicas docker service ps web

docker service scale web=2

Casos de Uso • • • • • •

Habilitar entorno de trabajo Integración de pruebas Evaluación rápida de software Microservicios Multi-Tenancy (recursos compartidos) Unificación para desarrollo, pruebas y producción

Quieres aprender mas? • Play-with-Docker http://labs.play-with-docker.com/

• Autoaprendizaje https://training.docker.com/category/self-paced-online

Catecbol www.catecbol.com

Capacitación Tecnológica Científica para Bolivia facebook.com/catecbol

@catecbol

Gracias [email protected] Ronny Bazan Antequera

La unión es la fuerza

[email protected]

Extras

Cumpleaños # 4 de Docker Docker esta reclutando “Docker Campus Ambassadors” (un estudiante capaz de aprender y transmitir conocimientos Docker en su Universidad. Docker proveerá - 5 repositorios privados - Un nodo en Docker Cloud por un año - Acceso al directorio de la comunidad estudiantil Docker

- Apoyo en la organización de eventos Docker - Entrenamiento especial - Swag (poleras, bolígrafos, etc)

Como aplicar? El contacto Catecbol en su Universidad deberá enviar un email con los datos de un representante a [email protected]

Instalación Docker engine - Ubuntu Trusty $ sudo apt-get -y update $ sudo apt-get install apt-transport-https ca-certificates $ sudo apt-key adv \ --keyserver hkp://ha.pool.sks-keyservers.net:80 \ --recv-keys 58118E89F3A912897C070ADBF76221572C52609D $ echo deb https://apt.dockerproject.org/repo ubuntu-trusty main | sudo tee \ /etc/apt/sources.list.d/docker.list $ sudo apt-get -y update $ sudo apt-get -y install linux-image-extra-$(uname -r) linux-image-extra-virtual $ sudo apt-get -y install docker-engine $ sudo service docker start $ sudo usermod -aG docker catecbol https://docs.docker.com/engine/getstarted/step_one/

Instalación Docker compose $ sudo apt-get install curl $ sudo curl -L "https://github.com/docker/compose/releases/download/1.11.1/dockercompose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose $ sudo chmod +x /usr/local/bin/docker-compose $ docker-compose --version