+ All Categories
Home > Software > Docker y todo eso... más o menos

Docker y todo eso... más o menos

Date post: 21-Jan-2018
Category:
Upload: eduard-tomas
View: 65 times
Download: 3 times
Share this document with a friend
29
#PlainConceptsTechDay 20.12.2017 Plain Concepts Tech Day Eduard Tomàs Docker y todo eso… más o menos RANDOM KEY PRESS DEVELOPER
Transcript
Page 1: Docker y todo eso... más o menos

#PlainConceptsTechDay

20.12.2017

Plain Concepts

Tech Day

Eduard Tomàs

Docker y todo eso… más o

menos

RANDOM KEY PRESS DEVELOPER

Page 2: Docker y todo eso... más o menos

#PlainConceptsTechDay2

9:00 – 9:45 CSS Grid Layout - ¡Se acabaron los hacks, larga vida al CSS!

9:45 - 10:30 Desarrollo de aplicaciones multiplataforma utilizando Xamarin

10:30 - 11:15 Docker: de principante a pro

11:15 - 11:25 ¿Qué es la Fundación Theodora?

11:25 - 11:45 Break

11:45 - 12:30 Los autobuses de madrid en tiempo real con Azure Relay, .Net Core y una Raspberry Pi

12:30 - 13:15 Swagger Code Generation: Cuando front encontró a back

13:15 - 14:00 Entrega contínua con Visual Studio Team Services

Plain

Concepts

Tech Day

Page 3: Docker y todo eso... más o menos

#PlainConceptsTechDay3

9:00 – 9:45 CSS Grid Layout - ¡Se acabaron los hacks, larga vida al CSS!

9:45 - 10:30 Desarrollo de aplicaciones multiplataforma utilizando Xamarin

10:30 - 11:15 Docker: de principante a pro

11:15 - 11:25 ¿Qué es la Fundación Theodora?

11:25 - 11:45 Break

11:45 - 12:30 Los autobuses de madrid en tiempo real con Azure Relay, .Net Core y una Raspberry Pi

12:30 - 13:15 Swagger Code Generation: Cuando front encontró a back

13:15 - 14:00 Entrega contínua con Visual Studio Team Services

Plain

Concepts

Tech Day

Page 4: Docker y todo eso... más o menos

Dockerfile

FROM speaker:2017

WORKDIR /PlainConceptsTechDay

ENV twitter=@eiximenis company=“Plain Concepts”

COPY ./talks/2017/docker/ppt-and-code .

USER Eduard.Tomàs

ADD ./microsoft-mvp ./awards

HEALTHCHECK cat last-1h-drinks.txt | grep beer

ENTRYPOINT [“dotnet”, “docker-talk.dll”]

Page 5: Docker y todo eso... más o menos

Qué veremos

#PlainConceptsTechDay 5

Page 6: Docker y todo eso... más o menos

#PlainConceptsTechDay 6

Contenedores… ¿qué son?

Page 7: Docker y todo eso... más o menos

@plainconcepts

#PlainConceptsTechDay

Page 8: Docker y todo eso... más o menos

• Mecanismo para empaquetaraplicaciones

• Mecanismo para ejecutaraplicaciones

Contenedores

@plainconcepts

#PlainConceptsTechDay8

Page 9: Docker y todo eso... más o menos

• Los contenedores no son máquinas virtuales

• Aunque tengan una IP propia

• Aunque ejecuten un proceso de forma aislada

• Solo se pueden ejecutar contenedores de la misma arquitectura que el SO host

• Si estás en Linux/amd64… contenedores de Linux/amd64

• Ojo a “la trampa” de Docker for Windows

Containers != virtualización

@plainconcepts

#PlainConceptsTechDay9

Page 10: Docker y todo eso... más o menos

Una imagen es un binario inmutable compuesto de una serie de capas que contiene un sistema de ficheros y una configuración

Un contenedor es una imagen “ejecutándose(*)”

¿Eres desarrollador?

Imagen == clase

Contenedor == objeto

Imágenes y contenedores

@plainconcepts

#PlainConceptsTechDay10

Page 11: Docker y todo eso... más o menos

• Cliente (herramienta CLI)

• Servidor (daemon dockerd)

Docker

@plainconcepts

#PlainConceptsTechDay11

Page 12: Docker y todo eso... más o menos

Ciclo de vida de un contenedor

@plainconcepts

#PlainConceptsTechDay12

En ejecución Parado

docker stop

docker start

docker rundocker create

Page 13: Docker y todo eso... más o menos

#PlainConceptsTechDay 13

Demo: Imágenes y contenedores

Page 14: Docker y todo eso... más o menos

#PlainConceptsTechDay 14

Desarrollo con Docker

Page 15: Docker y todo eso... más o menos

Fichero que define los pasos a realizar para crear una imagen

A partir de un Dockerfile se puede crear una imagen

Dockerfile

@plainconcepts

#PlainConceptsTechDay15

Page 16: Docker y todo eso... más o menos

Docker te permite compilar binarios sin necesidad de tener ningún SDK

instalado

Basta con usar una imagen con el SDK

Levantar un contenedor

Usar volúmenes para compartir el código fuente y el resultado de la

compilación

Compilar con Docker

@plainconcepts

#PlainConceptsTechDay16

Page 17: Docker y todo eso... más o menos

Permite la compilación y generación de una imagen en un solo proceso,

levantando varios contenedores.

Cuadra el círculo: Compilas sin necesidad del SDK, ejecutas sin necesidad del

runtime

Multi-Stage build

@plainconcepts

#PlainConceptsTechDay17

Page 18: Docker y todo eso... más o menos

#PlainConceptsTechDay 18

Demo: Multistage build

Page 19: Docker y todo eso... más o menos

Herramienta que permite manejar aplicaciones compuestas de varios

contenedores

Configurar y ejecutar varios contenedores “como un todo”

Pero es útil incluso en escenarios con un solo contenedor

Docker compose

@plainconcepts

#PlainConceptsTechDay19

Page 20: Docker y todo eso... más o menos

#PlainConceptsTechDay 20

Kubernetes

Page 21: Docker y todo eso... más o menos

Un orquestador de contenedores es un sistema que maneja y ejecutaaplicaciones basadas en contenedores. Ofrecen soluciones a:

Load balancing

(Auto) Escalado

Zero-downtime deploys

Healthchecks

Service Discovery

Orquestadores

@plainconcepts

#PlainConceptsTechDay21

Page 22: Docker y todo eso... más o menos

Es un orquestador de contenedores open source inicialmente desarrollado por

Google

Kubernetes (aka k8s)

@plainconcepts

#PlainConceptsTechDay22

Page 23: Docker y todo eso... más o menos

• Pod: Conjunto de contenedores que se despliegan, paran, ponen en marcha y se replican conjuntamente

• Servicio: Define un conjunto lógico de pods y como acceder a ellos

• Deployment: Forma declarativa para definir un estado deseado sobre determinados pods (definir cuales y cuantos pods queremos que se ejecuten en todo momento)

• k8s se puede configurar imperativamente (usando kubectl) o declarativamente (con ficheros yaml)

Conceptos de k8s

@plainconcepts

#PlainConceptsTechDay23

Page 24: Docker y todo eso... más o menos

#PlainConceptsTechDay 24

Demo: Hello k8s

Page 25: Docker y todo eso... más o menos

Despliegue 1: Dos pods + frontend

@plainconcepts

#PlainConceptsTechDay25

Servicio master (80->80)

Pod master

Image: master

port: 80

Servicio slave (80->80)

Pod slave

Image: slave

port: 80http://slave:80

Servicio frontend (8080->80)

Pod frontend

Image: nginx

port:8080

http://master http://slave

IP Pública

Page 26: Docker y todo eso... más o menos

Despliegue 2: un pod + frontend

@plainconcepts

#PlainConceptsTechDay26

Servicio both (80->80, 8000->8000)

Pod both

Image: master

port: 80

Image: slave

port: 8000http://localhost:8000

Servicio frontend (8080->80)

Pod frontend

Image: nginx

port: 8080

http://both http://both:8000

IP Pública

Page 27: Docker y todo eso... más o menos

¡Estamos

CONTRATANDO!

27

[email protected]

int ledPin = 13;

void setup()

{ pinMode(ledPin, OUTPUT);

}

void loop(){ digitalWrite(ledPin, HIGH);

delay(1000); digitalWrite(ledPin, LOW);

delay(1000);

}

@plainconcepts

#PlainConceptsTechDay

www.plainconcepts.com/careers

Page 28: Docker y todo eso... más o menos

¡GRACIAS!www.plainconcepts.com

@plainconcepts

Page 29: Docker y todo eso... más o menos

www.plainconcepts.com

MADRID

Paseo de la Castellana 163, 10º

28046 Madrid. España

T. (+34) 91 5346 836

BILBAO

Calle Ledesma 10-bis 3º

48001 Bilbao. España

T. (+34) 94 6073 371

BARCELONA

Carrer Compte d’Urgell 240 4º A

08036 Barcelona. España

T. (+34) 93 7978 566

SEVILLA

Avenida de la innovación s/n

Edificio Renta Sevilla, 3º A

41020 Sevilla. España

T. (+34) 600 58 75 43

DUBAI

Dubai Internet City. Building 1

73030 Dubai. EAU

T. (+971) 4 551 6653

LONDON

Impact Hub Kings Cross

24B York Way, N1 9AB

London. UK

SEATTLE

8201 164th Ave NE

Redmond, WA 98052

Washington

T. (+1) 206 708 1285


Recommended