docker para desarrolladores .net
TRANSCRIPT
![Page 1: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/1.jpg)
#dotNetSpain2016
.NET Conference 2016Spain
![Page 2: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/2.jpg)
#dotNetSpain2016
Adrián Díaz CerveraSoftware Architect Lead at Encamina@AdrianDiaz81
Docker para desarrolladores .NET
![Page 3: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/3.jpg)
Patrocinadores
Colaboradores
#dotNetSpain2016
![Page 4: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/4.jpg)
#dotNetSpain2016
Software Architect Lead
http://blogs.encamina.com/desarrollandosobresharepointhttp://geeks.ms/blogs/adiazcervera
@AdrianDiaz81
Adrián Díaz Cervera
![Page 5: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/5.jpg)
#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
![Page 6: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/6.jpg)
#dotNetSpain2016
Introducción a Docker
![Page 7: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/7.jpg)
• 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?
![Page 8: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/8.jpg)
#dotNetSpain2016
Inspiración de los Contenedores
![Page 9: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/9.jpg)
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
![Page 10: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/10.jpg)
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.
![Page 11: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/11.jpg)
#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
![Page 12: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/12.jpg)
#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
![Page 13: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/13.jpg)
#dotNetSpain2016
• Una unidad de desplieuge• Corre en un SO• En SO Virtualizados• Arranque rápido• Portable
¿Qué es un contenedor?
Front-End Back-End
![Page 14: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/14.jpg)
#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
![Page 15: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/15.jpg)
#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
![Page 16: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/16.jpg)
#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
![Page 17: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/17.jpg)
Click icon to add picture
Demo TimeDeploy Docker con Visual Studio
![Page 18: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/18.jpg)
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.
![Page 19: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/19.jpg)
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
![Page 20: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/20.jpg)
#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
![Page 21: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/21.jpg)
#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
![Page 22: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/22.jpg)
#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?
![Page 23: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/23.jpg)
Click icon to add picture
DEMO TIMEDeploy Docker con Comandos
![Page 24: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/24.jpg)
#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
![Page 25: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/25.jpg)
#dotNetSpain2016
Windows Server Containers
![Page 26: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/26.jpg)
#dotNetSpain2016
Arquitectura Microservicios
![Page 27: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/27.jpg)
#dotNetSpain2016
Microservicios
![Page 28: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/28.jpg)
#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
![Page 29: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/29.jpg)
#dotNetSpain2016
Como anillo al dedo:
• Un microservicio alojado en un contenedor
• Se puede escalar según necesidades
Implementando Microservicios con Docker
![Page 30: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/30.jpg)
#dotNetSpain2016
Redis
Ejemplo
App
Nginx
Services
![Page 31: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/31.jpg)
DEMO TIMECrear una Arquitectura de Microservicios con Docker
![Page 32: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/32.jpg)
#dotNetSpain2016
• Que es Docker• Integración Op+Dev• Beneficios de su uso• Ejemplo
Resumen
![Page 33: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/33.jpg)
Q&A
#dotNetSpain2016
http://aka.ms/DOTNETT5S2
![Page 34: Docker para desarrolladores .NET](https://reader033.vdocuments.site/reader033/viewer/2022052312/587122ee1a28abe4448b5785/html5/thumbnails/34.jpg)
No olvides realizar la encuesta¡Gracias!
#dotNetSpain2016
Adrián Díaz CerveraSofware Architech Lead ad Encamina@AdrianDiaz81 http://aka.ms/DOTNETT5S2
QR Code