An evening with... Docker

Preview:

Citation preview

An evening with… DockerArkho Innova Meetup series

September 2017

ARKHO Innova Meetup series

Gracias por su asistencia!!!

• Un espacio para compartir experiencias y conocimiento • Un espacio para hacer relaciones entre personas y

equipos con intereses afines • Un espacio para pasarla bien

Docker Container

Container (Contenedor)DEFINICIÓN: Es un componente (imagen) de software que tiene la capacidad empaquetar todo un ambiente de forma aislada para la ejecución de una aplicación.

Características: • Liviano en el uso de recursos • Incluye todo lo necesario para la ejecución

de una app: • Código, librerías, SO, Settings,

System tools • Ambiente aislado

Imagen• Una imagen es una configuración de S.O. de solo lectura • Cada contenedor depende de una imagen para su

ejecución • Se puede ejecutar directamente o ser base para otras

configuraciones • Permite crear otras configuraciones más complejas • Una imagen contiene:

• S.O. Base • Configuración especifica del S.O. • Configuración de librerías • Aplicación a ejecutar • Variables de ambiente

¿Cómo funciona?Cada contenedor lleva consigo:

• Configuración de ambiente • Librerías • Imagen de S.O • Su propio File System

• Cada contenedor toma exactamente la cantidad de recursos que necesita la aplicación

• La administración de recursos lo hace el controlador de contenedores

• La aplicación dentro del contenedor esta aislada

• El huésped podría incluso ejecutar otras aplicaciones

Desarrollo Tradicional• Existen muchos ambientes: Desarrollo, QA,

Certificación y Producción

• A pesar del esfuerzo, los ambientes normalmente no son iguales

• Sacar provecho del Hardware físico puede o es una prioridad

• Al agregar una nueva aplicación también deben agregarse su configuración especifica y sus librerías

• Esto puede producir un conflicto con otras aplicaciones

• Este problema se minimiza en la medida de que los limites de Hardware son amplios

Desarrollo contenedores• Orientado al desarrollo transversal:

• El ambiente va en el contenedor • Foco está en la aplicación

• Build, Ship and Run • No es Virtualización • Los recursos de cada contenedor son

exactamente los que usa la aplicación como proceso

• Cada aplicación viaja con su propio ambiente como en una cápsula (contenedor)

• Asegura su correcto funcionamiento • No importa el S.O subyacente ni el hardware • Corre en Hardware físico como On Cloud

Build, Ship and Run• Build: Elaboración de un contenedor, construir un ambiente para la ejecución

• Ship: Generar una imagen con la configuración y distribuirla a otros ambientes

• Run: Ejecutar el contenedor donde quiera que este

“Contenerización” Vs Virtualización

Diferencias¿Si existe Software para virtualizar por que ir a Docker?

Docker esta orientado a la aplicación

Virtualización esta orientado a la plataforma

Mejor uso de recursos para maquinas virtuales o HW físico

La comparación de que es mejor no aplica

Docker puede correr sobre máquinas virtuales

No son tecnologías excluyentes, mas bien complementarias

Docker Registry

• Repositorio de imágenes • Base para la reutilización • Registro de aplicaciones • Accesible a través de la red • Cada desarrollador puede registrar

nuevas imágenes • Es base fundamental para el ecosistema

de una arquitectura dockerizada

Arquitectura Docker (Ecosistema)

Arquitecturas Productivas

Docker Compose

¿Qué es docker compose? • Una Herramienta capaz de orquestar y

crear un pequeño ecosistema para dos o mas contenedores como un solo servicio

Docker Compose

• Cada contenedor ejecuta una y solo una aplicación • La escalabilidad se logra a través de la composición de

contenedores • Los contenedores pueden cooperar entre ellos y formar redes

mas complejas a través de Docker Compose • Docker Compose posibilita la composición de Stack de

aplicaciones: Ej. Web Server + Base de datos • Ayuda la creación de un ecosistema mucho mas rico • Es esencial para crear aplicaciones multi-capa.

Docker-Compose

Docker Swarm

Docker SwarmArquitectura General

Docker SwarmArquitectura General

Docker SwarmBalancing

Docker en Números

En comparación

Recommended