34
#dotNetSpain2016 .NET Conference 2016 Spain

Docker para desarrolladores .NET

Embed Size (px)

Citation preview

Page 1: Docker para desarrolladores .NET

#dotNetSpain2016

.NET Conference 2016Spain

Page 2: Docker para desarrolladores .NET

#dotNetSpain2016

Adrián Díaz CerveraSoftware Architect Lead at Encamina@AdrianDiaz81

Docker para desarrolladores .NET

Page 3: Docker para desarrolladores .NET

Patrocinadores

Colaboradores

#dotNetSpain2016

Page 4: Docker para desarrolladores .NET

#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

#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

#dotNetSpain2016

Introducción a Docker

Page 7: Docker para desarrolladores .NET

• 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

#dotNetSpain2016

Inspiración de los Contenedores

Page 9: Docker para desarrolladores .NET

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

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

#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

#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

#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

#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

#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

#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

Click icon to add picture

Demo TimeDeploy Docker con Visual Studio

Page 18: Docker para desarrolladores .NET

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

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

#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

#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

#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

Click icon to add picture

DEMO TIMEDeploy Docker con Comandos

Page 24: Docker para desarrolladores .NET

#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

#dotNetSpain2016

Windows Server Containers

Page 26: Docker para desarrolladores .NET

#dotNetSpain2016

Arquitectura Microservicios

Page 27: Docker para desarrolladores .NET

#dotNetSpain2016

Microservicios

Page 28: Docker para desarrolladores .NET

#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

#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

#dotNetSpain2016

Redis

Ejemplo

App

Nginx

Services

Page 31: Docker para desarrolladores .NET

DEMO TIMECrear una Arquitectura de Microservicios con Docker

Page 32: Docker para desarrolladores .NET

#dotNetSpain2016

• Que es Docker• Integración Op+Dev• Beneficios de su uso• Ejemplo

Resumen

Page 33: Docker para desarrolladores .NET

Q&A

#dotNetSpain2016

http://aka.ms/DOTNETT5S2

Page 34: Docker para desarrolladores .NET

No olvides realizar la encuesta¡Gracias!

#dotNetSpain2016

Adrián Díaz CerveraSofware Architech Lead ad Encamina@AdrianDiaz81 http://aka.ms/DOTNETT5S2

QR Code