Despliegue de Aplicaciones .Net Core en Docker

22

Transcript of Despliegue de Aplicaciones .Net Core en Docker

Page 1: Despliegue de Aplicaciones .Net Core en Docker
Page 2: Despliegue de Aplicaciones .Net Core en Docker

Despliegue de aplicaciones .net Core en DockerErnesto Cárdenas Cangahuala

@fisica3www.consultorinternet.com 200

Page 3: Despliegue de Aplicaciones .Net Core en Docker

Presentación

• Ing. Informático• Microsoft Influencer

Developer• Fotógrafo aficionado• Algún tiempo “fuera” ;)• @agileperu• www.consultorinternet.c

om

Page 4: Despliegue de Aplicaciones .Net Core en Docker

Un poco de contexto..

Page 5: Despliegue de Aplicaciones .Net Core en Docker

Historia de las aplicaciones distribuidas

Page 6: Despliegue de Aplicaciones .Net Core en Docker

Static website

Web frontend

User DB

Queue Analytics DB

Background workers API

endpoint

nginx 1.5 + modsecurity + openssl + bootstrap 2

postgresql + pgv8 + v8

hadoop + hive + thrift + OpenJDK

Ruby + Rails + sass + Unicorn

Redis + redis-sentinel

Python 3.0 + celery + pyredis + libcurl + ffmpeg + libopencv + nodejs + phantomjs

Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client

Development VM

QA server

Public Cloud

Disaster recovery

Contributor’s laptopProduction

Servers

Aplicaciones distribuidas…M

ultip

licity

of

Stac

ks

Mul

tiplic

ity o

f ha

rdw

are

envi

ronm

ents

Production Cluster

Customer Data Center

Do services and apps interact

appropriately?

Can I migrate

smoothly and quickly?

Page 7: Despliegue de Aplicaciones .Net Core en Docker

Gestión y despliegue de aplicaciones distribuidas

Static website

Web frontend

Background workers

User DB

Analytics DB

Queue

Dev VM QA ServerSingle Prod

ServerOnsite Cluster Azure Contributo

r laptopCustomer Servers

? ? ? ? ? ? ?

? ? ? ? ? ? ?

? ? ? ? ? ? ?

? ? ? ? ? ? ?

? ? ? ? ? ? ?

? ? ? ? ? ? ?

Page 8: Despliegue de Aplicaciones .Net Core en Docker

La inspiración para los contenedores

Page 9: Despliegue de Aplicaciones .Net Core en Docker

Mul

tiplic

ity o

f Go

ods

Mul

tipili

city

of

met

hods

for

tran

spor

ting

&

stor

ing

Do I worry about

how goods interact

(e.g. coffee beans next to spices)

Can I transport quickly and sm

oothly(e.g. from

boat to train to truck)

La Inspiración: Transporte de mercancias Pre-1960

Page 10: Despliegue de Aplicaciones .Net Core en Docker

Mul

tiplic

ity o

f Go

ods

Mul

tiplic

ity o

f m

etho

ds fo

r tr

ansp

ortin

g/st

orin

g

Do I worry about

how goods interact

(e.g. coffee beans next to spices)

Can I transport quickly and sm

oothly(e.g. from

boat to train to truck)

Solución: Ecosistema Intermodal de Contenedores de carga

…in between, can be loaded and unloaded, stacked, transported efficiently over long distances, and transferred from one mode of transport to another

A standard container that is loaded with virtually any goods, and stays sealed until it reaches final delivery.

Page 11: Despliegue de Aplicaciones .Net Core en Docker

Ecosistema Intermodal de Contenedores de carga

90% de toda la carga es ahora despachada en un contenedor estandar

Grandes reducciones de coste y de tiempo de carga/descarga de los barcos

Disminución de perdidas debido a robo o daño

Enorme reducción en costos de flete como parte del precio final de los bienes (de >25% a <3%)

Globalización masiva

5000 barcos despachan 200M de contenedores por año

Pre-

1960

Toda

y

Page 12: Despliegue de Aplicaciones .Net Core en Docker

Desplegando usando contenedores

Page 13: Despliegue de Aplicaciones .Net Core en Docker

Static website

Web frontend

Background workers

User DB

Analytics DB

Queue

Dev VM QA ServerSingle Prod

ServerOnsite Cluster Azure Contributo

r laptopCustomer Servers

Los contenedores eliminan la matriz

Page 14: Despliegue de Aplicaciones .Net Core en Docker

Ecosistema DockerHost MachineDocker Client

Docker Hub

Docker Deamon

Container A

Container B

Source Code Repo

Create

Delete

List

Push

Pull

Page 15: Despliegue de Aplicaciones .Net Core en Docker

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 Contenedores están aislados, pero comparten el kernel y eventualmente librerías del SO

GuestOS

GuestOS

…lo que resulta en un despliegue mas rápido, menos carga, migración sencilla y reinicio mas rápido

MVs vs Contenedores

Docker Deamon

Page 16: Despliegue de Aplicaciones .Net Core en Docker

Y por otro lado, aquí…

Page 17: Despliegue de Aplicaciones .Net Core en Docker

2014…¡Qué bien pinta eso de Docker!

Official Repos & 14K+ Dockerized Apps

Community640+ Contributors250+ Meetups on Docker38M Downloads16K Projects on GitHub

SupportEnterprise SupportRobust DocumentationImplementation, Integration, Training Network of Partners

The Docker Platform

Docker Engine Docker Hub Build, Ship, and Run

Partners

Content

Users

Official Repos &35 K Dockerized Apps

Page 18: Despliegue de Aplicaciones .Net Core en Docker

2015 A ver probemos…

Page 20: Despliegue de Aplicaciones .Net Core en Docker

¡Manos a la obra!

Page 21: Despliegue de Aplicaciones .Net Core en Docker

Lecciones aprendidas• Hyper-V facilita el trabajo con

Docker a los desarrolladores Windows (¡No excusas!)

• Visual Studio Team Services provee una orquestación clara para el despliegue de contenedores Docker

• .Net Core ya esta listo para usar, pero hay que fijarse en los detalles

• Docker sigue evolucionando, asegurémonos que todas nuestras versiones estén alineadas

• A ver que nos trae Nano Server

Page 22: Despliegue de Aplicaciones .Net Core en Docker

¿Preguntas?

@fisica3

Click icon to add picture

www.consultorinternet.comwww.colinsalmcorner.comwww.donovanbrown.com