Docker para desarrolladores .NET

Post on 08-Jan-2017

766 views 2 download

Transcript of Docker para desarrolladores .NET

#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