#dotNetSpain2016
.NET Conference 2016Spain
#dotNetSpain2016
Adrián Díaz CerveraSoftware Architect Lead at Encamina@AdrianDiaz81
Docker para desarrolladores .NET
Patrocinadores
Colaboradores
#dotNetSpain2016
#dotNetSpain2016
Software Architect Lead
http://blogs.encamina.com/desarrollandosobresharepointhttp://geeks.ms/blogs/adiazcervera
@AdrianDiaz81
Adrián Díaz Cervera
#dotNetSpain2016
Introducción a Docker Terminología de los artefactos DockerDocker vs Máquina VirtualBeneficio del uso de los contenedoresCrear una arquitectura Microservicios con Docker
Agenda
#dotNetSpain2016
Introducción a Docker
• Error despliegue Apps• Colisión de aplicaciones• Versiones de librerías distintas• Dependencias• Sistema Operativo• Versión del Navegador• FrameWork
=>Empresas con software obsoleto
¿Cuál es el problema?
#dotNetSpain2016
Inspiración de los Contenedores
Muc
hos ti
pos d
e
mer
canc
ias
Mul
titud
de
met
odos
de
tran
spor
te y
am
lace
nam
ient
o
¿ Me preocupa
como puede
intersactuar las m
ercancias?
¿Puedo transporter de form
a rápida y sin problem
as?Una inspiración: Transportorte Pre-1960
Mul
tiple
s m
erca
ncia
s
Mul
titud
de
met
odos
de
tran
spor
te y
al
mac
enm
aint
o
No m
e preocupa com
o interactuan los inm
uebles entre si
Se puede transportar la
mercancia
rápidamente y sin
problemas
Solución: Transporte en contenedores
. Y en medio pueden ser cargados y descargados, apilados, que se transportan en largas distancias y se cambian de un medio a otro
Un contenendor que se carga cuan cualquier mercancia y permance sellada hasta el destino final.
#dotNetSpain2016
Contenedores hoy90% de la carga se envía en un contenedor
Reducción de costes y de tiempos en la carga de barcosReducción masiva de perdidas por pérdida o daños
Enorme reducción en el coste de los productos finales (de < 25 % a > 3 % )5.000 barcos entregan 200 M de contenedores por año
Pre-
1960
Hoy
#dotNetSpain2016
• Proyecto de código abierto
• Automatiza el despliegue de App usando contenedores
• Proporcionando una capa adicional de abstracción y automatización a nivel de OS
#dotNetSpain2016
• Una unidad de desplieuge• Corre en un SO• En SO Virtualizados• Arranque rápido• Portable
¿Qué es un contenedor?
Front-End Back-End
#dotNetSpain2016
AppA
Hypervisor (Type 2)
Host OS
Server
GuestOS
Bins/Libs
AppA’
GuestOS
Bins/Libs
AppB
GuestOS
Bins/Libs
App A’
Host OS
Server
Bins/Libs
App ABins/Libs
App B
App B’
App B’
App B’VM
Container
Los contenedor estan aislados pero comparten el kernel
GuestOS
GuestOS
…el resultado es un despliegue más rapido, con menos costoso y más fácil
VMs vs Containers
Docker Deamon
#dotNetSpain2016
No hay que preocuparse acerca de la configuración y el mantenimiento de los entornos
=> Centrado en el desarrollo
• Acelera el desarrollo• Evita problemas con el entorno• Libertar de elección al desarrollador
Cómo Docker ayudar a construir mejor software
#dotNetSpain2016
Desarrollo orientado a => Mobile First Cloud FirstPorqué utilizar Contenedores
Contenedores ofrecen => • productividad y libertad• Abstracción para
microservicios• Desplegados en apps
distribuidas en modelo IaaS/Paas
• Ejecución en cualquier entorno
Familiacion con los modelos de despliegueEstandarización de entornos: desarrollo, QA y producciónAbstrae las diferencias entre los diferentes Sistemas OperativosRápido escalado
Integra personas, procesos y herramientas para optimizar el proceso de desarrolloOperaciones se centra en estandarizar las infraestructurasDevelopers se centran en construir, desplegar y testear sus apps
Click icon to add picture
Demo TimeDeploy Docker con Visual Studio
Revisión de Terminos• Docker Client es la interfaz de usuario que
permite la comunicación entre el usuario y el Docker Daemon
• Docker Daemon alojado en la maquina y se encarga de atender las solicitudes.
• Docker Hub es un registro centralizado que permite la copia de seguridad de imágenes de contenedores tanto publicos como privados.
• Docker Containers son los responsables de la ejecución de las aplicaciones e incluye el Sistema opertivo, los archivos añadiso por el usuario y los métadados
• Docker Images son templates de solo lectura que nos ayudan a lanzar los contenedores Docker
• DockerFile es un fichero que tiene las intrucciones para automatizar la creación de las imagenes.
Como desplegamos nuestra APP ASP.NET en un contenedor
Host MachineDocker Client
Docker Hub
Docker Deamon
Container A
Container B
…
Source Code Repo
Create
Delete
List
Push
Pull
#dotNetSpain2016
DockerFile es la receta Un fichero de texto donde nosotros indicamos a Docker que es lo que contiene la imagen Docker
Tomamos una captura de cada comando, utiliza cache por el rendimiento
#dotNetSpain2016
1. Cliente Docker vs host Docker• El Cliente Docker es CLI Docker• Host Docker es una VM ejecutando un daemon Docker
2. Image Docker vs Docker Container• Image=> La definición -> Literalmente un solo fichero (My Web)• Contenedor => Una instancia de una imagen (3 instancias de My
Web)3. Docker Hub – una colección de imágenes
reutilizables• 50,000+ imágenes -> WordPress, Nginx, Redis, MySql, Logstats• Usar uno publico o crear un hub privado
Algunas preguntas frecuentes
#dotNetSpain2016
Windows Server Containers -> más densidad, menos aislamientoHyper-V Container -> Mas aislamiento, menos densidadAmbos se comunican utilizando el cliente de Docker
Porque sobre Windows?
Click icon to add picture
DEMO TIMEDeploy Docker con Comandos
#dotNetSpain2016
“IMMUTABLE INFRAESTRUCTURE”
WebSite -> Actualizas tu app usando Web Deploy or CI/CDDocker -> Reemplazas el contenedor en ejecución, no actualizas el viejo contenedor
Despliegues reemplazan a las actualizaciones
#dotNetSpain2016
Windows Server Containers
#dotNetSpain2016
Arquitectura Microservicios
#dotNetSpain2016
Microservicios
#dotNetSpain2016
• Combinar los servicios como nos interesen
• Escalar a nivel de microservicio• Simplificamos el mantenimiento• Su fallo no arrastra a todo el sistema• El despliegue puede ser progresivo.
Ventajas Microservicios
#dotNetSpain2016
Como anillo al dedo:
• Un microservicio alojado en un contenedor
• Se puede escalar según necesidades
Implementando Microservicios con Docker
#dotNetSpain2016
Redis
Ejemplo
App
Nginx
Services
DEMO TIMECrear una Arquitectura de Microservicios con Docker
#dotNetSpain2016
• Que es Docker• Integración Op+Dev• Beneficios de su uso• Ejemplo
Resumen
Q&A
#dotNetSpain2016
http://aka.ms/DOTNETT5S2
No olvides realizar la encuesta¡Gracias!
#dotNetSpain2016
Adrián Díaz CerveraSofware Architech Lead ad Encamina@AdrianDiaz81 http://aka.ms/DOTNETT5S2
QR Code
Top Related