Date post: | 21-Jan-2018 |
Category: |
Software |
Upload: | eduard-tomas |
View: | 65 times |
Download: | 3 times |
#PlainConceptsTechDay
20.12.2017
Plain Concepts
Tech Day
Eduard Tomàs
Docker y todo eso… más o
menos
RANDOM KEY PRESS DEVELOPER
#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
#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
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”]
Qué veremos
#PlainConceptsTechDay 5
#PlainConceptsTechDay 6
Contenedores… ¿qué son?
@plainconcepts
#PlainConceptsTechDay
• Mecanismo para empaquetaraplicaciones
• Mecanismo para ejecutaraplicaciones
Contenedores
@plainconcepts
#PlainConceptsTechDay8
• 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
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
• Cliente (herramienta CLI)
• Servidor (daemon dockerd)
Docker
@plainconcepts
#PlainConceptsTechDay11
Ciclo de vida de un contenedor
@plainconcepts
#PlainConceptsTechDay12
En ejecución Parado
docker stop
docker start
docker rundocker create
#PlainConceptsTechDay 13
Demo: Imágenes y contenedores
#PlainConceptsTechDay 14
Desarrollo con Docker
Fichero que define los pasos a realizar para crear una imagen
A partir de un Dockerfile se puede crear una imagen
Dockerfile
@plainconcepts
#PlainConceptsTechDay15
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
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
#PlainConceptsTechDay 18
Demo: Multistage build
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
#PlainConceptsTechDay 20
Kubernetes
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
Es un orquestador de contenedores open source inicialmente desarrollado por
Kubernetes (aka k8s)
@plainconcepts
#PlainConceptsTechDay22
• 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
#PlainConceptsTechDay 24
Demo: Hello k8s
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
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
¡Estamos
CONTRATANDO!
27
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
¡GRACIAS!www.plainconcepts.com
@plainconcepts
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