SlideShare una empresa de Scribd logo
1 de 22
Descargar para leer sin conexión
Introducción a Microservicios y Contenedores
DIA 1 - 17/05/16 Raúl Sánchez y Carlos Crisóstomo
Workshop Día 1
Indice
1. Microservicios - ¿Qué son los microservicios?
a. Arquitectura tradicional - Limitaciones
i. Escalabilidad
ii. Portabilidad
iii. Inmutabilidad
b. Nuevo modelo de arquitectura basada en contenedores - Microservicios
i. Contenedores y microservicios
ii. Mejoras con respecto a arquitectura tradicional
2. Implementación de microservicios usando contenedores - La plataforma
Docker
a. ¿Qué es Docker?
b. Imágenes
c. Características técnicas
d. Funcionalidad básica
1. ¿Qué son los microservicios?
Arquitectura tradicional - Ejemplo LAMP (I)
Funcionalidades :
- Pagos
- Inventario
- Envíos
- ...
Arquitectura LAMP básica :
- Servidor Web (+PHP)
- Base de datos
Arquitectura tradicional - Ejemplo LAMP (II)
DESARROLLO INTEGRACIÓN PRODUCCIÓN
Ciclo de vida del servicio web tradicional
DESARROLLO INTEGRACIÓN PRODUCCIÓN
- Time to Deploy (TTD) - Aprox. >10min.
- Complex to Scale (CTS) - Muchas dependencias.
- Hard Coupling (HC) - Cambiar una única funcionalidad.
- Difficult to Replicate (DTR) - Reproducir un entorno nuevo.
3 GRANDES LIMITACIONES
- ESCALABILIDAD
- PORTABILIDAD
- INMUTABILIDAD
Contenedores y microservicios (I)
El contenedor v1.0 incluye :
- Sistema Operativo Mínimo
- Aplicación (Funcionalidad 1)
- Dependencias (Bibliotecas y Servicios)
Creamos una versión del entorno de ejecución
de Funcionalidad 1 que es :
- Autocontenido
- Reproducible
- Aislado
- Inmutable
Contenedores y microservicios (II)
“Los microservicios son un conjunto de contenedores que funcionan de manera
coordinada para proveer un único servicio al usuario.”
MAPA DE
MICROSERVICIO
(PIEZAS)
DESPLIEGUE USANDO MICROSERVICIOS
Mejoras respecto a arquitectura tradicional (I)
DESARROLLO INTEGRACIÓN PRODUCCIÓN
Tenemos siempre los mismos componentes versionados desde el principio.
Utilizamos las mismas piezas pero en escalas diferentes.
Mejoras respecto a arquitectura tradicional (II)
DESARROLLO INTEGRACIÓN PRODUCCIÓN
- Time to Deploy (TTD) - Aprox. 10 sec (0 downtime con a/b testing y canary release).
- Easy to Scale (ETS) - La versión es idéntica y las dependencias están incluídas.
- Low Coupling (LC) - Cambiar una única funcionalidad es atómico y sencillo.
- Easy to Replicate (ETR) - Reproducir un entorno nuevo o replicarlo es igualmente sencillo.
TESTS OK
Mejoras respecto a arquitectura tradicional (III)
DESARROLLO INTEGRACIÓN PRODUCCIÓN
2. Implementación de Microservicios
usando contenedores
-
La Plataforma Docker
¿Qué es Docker? (I)
Docker es una plataforma para desarrollar, desplegar y ejecutar aplicaciones
utilizando contenedores.
Esta plataforma incluye varios productos y herramientas :
- Docker Engine
- Docker Hub
- Docker Trusted Registry
- Docker Machine
- Docker Swarm
- Docker Compose
- Kinematic
- Docker Cloud
¿Qué es Docker? (II)
Docker utiliza imágenes para crear los contenedores. Estas imágenes son :
- Conjunto de ficheros + metadatos.
- Formadas por múltiples capas, entre ellas una
capa inicial (Base Layer). Cada una de estas
capas incluye un componente software. Las
capas son son sólo-lectura y cada una además
forma una imagen en sí misma.
- Docker puede compartir capas para optimizar
espacio y memoria (no hace falta descargarlas
de nuevo)
- Para la ejecución del contenedor en su capa
más alta se utiliza un sistema llamado copy-on-
write.
Características técnicas
Principales tecnologías utilizadas en Dockers :
- CGroups
- Namespaces
- Copy-On-Write filesystems
Funcionalidad básica (I)
Parámetros de una imagen Docker :
- Puertos
- Volúmenes de datos
- Enlaces a otros Dockers
- Variables de entorno
Funcionalidad básica (II)
Repositorios Oficiales
- Los repositorios oficiales son un conjunto de repositorios de imágenes
Docker certificadas y mantenidas al día por los propios desarrolladores.
- Se localizan en el llamado Docker Hub, un repositorio donde se almacenan
estas imágenes.
- Las imágenes oficiales son una mezcla de :
- Imagenes base de sistemas operativos Linux (Ubuntu, CentOS, Debian, etc…)
- Imágenes de herramientas para desarrollo, lenguajes de programación, servicios web y
aplicaciones, etc…
- Se pueden crear versiones y tags de las imágenes para identificarlas.
Funcionalidad básica (III)
Dockerfiles : Ficheros de configuración que
contienen instrucciones para crear una imagen
Docker. Permite entre otras cosas definir :
- Imagen base a utilizar.
- Variables de entorno.
- Enlaces con otros dockers.
- Comandos a ejecutar.
- Copia de archivos dentro del docker.
- ...
Se crea el fichero y se ejecuta docker build .
Funcionalidad básica (IV)
CONTENEDORES
- Ciclo de vida : create,rename,run,rm,update
- Parada/Arranque del contenedor : start,stop,
restart,pause,unpause,wait,kill,attach
- Información : ps,logs,inspect,events,port,top,
stats,diff
- Importación/Exportación : cp,export
- Ejecución : exec
Comandos básicos : docker <comando>
IMAGENES
- Ciclo de vida : images,import,build,commit,
rmi,load,save
- Información : history,tag
...
Docker Cheat Sheet - https://github.com/wsargent/docker-cheat-sheet
Recursos y bibliografía - Microservicios
Web
- Microservices architecture : http://microservices.io/index.html
- An introduction to microservices : https://opensource.com/resources/what-
are-microservices
- Artículo de Martin Fowler : http://martinfowler.com/articles/microservices.html
- Neal Ford slices: http://nealford.com/abstracts.html
Libros
- Building microservices - Sam Newman (O’Reilly)
- Microservices: Flexible Software Architectures - Eberhard Wolff
Recursos y bibliografía - Dockers
Web
- Documentación oficial - https://docs.docker.com/
- Docker 101 Tutorial - https://blog.docker.com/tag/docker-101/
Libros
- Docker: Up & Running - Karl Matthias y Sean P.Kane (O’Reilly)
- Docker in Action - Jeff Nickolofff (Manning)
Cursos
- Official Docker Training - https://training.docker.com/
¡GRACIAS!
¡Nos vemos en la segunda parte!

Más contenido relacionado

La actualidad más candente

Alta disponibilidad y balanceo de carga con Linux y nginx
Alta disponibilidad y balanceo de carga con Linux y nginxAlta disponibilidad y balanceo de carga con Linux y nginx
Alta disponibilidad y balanceo de carga con Linux y nginxPlain Concepts
 
BEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA_es
 
Docker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJCDocker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJCMicael Gallego
 
Docker - Sysmana 2014
Docker - Sysmana 2014Docker - Sysmana 2014
Docker - Sysmana 2014quaip
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a DockerOpen Canarias
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualizaciónMarcelo Ochoa
 
nerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshopnerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshopRestorando
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJCMicael Gallego
 
Introduccion Power BI Report Server
Introduccion Power BI Report ServerIntroduccion Power BI Report Server
Introduccion Power BI Report ServerEduardo Castro
 
Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Eduardo Castro
 
Solapas principales Ver(solapa activa) Editar Gestionar present...
 Solapas principales      Ver(solapa activa)     Editar     Gestionar present... Solapas principales      Ver(solapa activa)     Editar     Gestionar present...
Solapas principales Ver(solapa activa) Editar Gestionar present...Software Guru
 

La actualidad más candente (20)

introducción a Docker
introducción a Dockerintroducción a Docker
introducción a Docker
 
Semana 1 Microservicios
Semana 1   MicroserviciosSemana 1   Microservicios
Semana 1 Microservicios
 
Alta disponibilidad y balanceo de carga con Linux y nginx
Alta disponibilidad y balanceo de carga con Linux y nginxAlta disponibilidad y balanceo de carga con Linux y nginx
Alta disponibilidad y balanceo de carga con Linux y nginx
 
DevOps+[Chef/Docker]
 DevOps+[Chef/Docker] DevOps+[Chef/Docker]
DevOps+[Chef/Docker]
 
Docker desde cero
Docker desde ceroDocker desde cero
Docker desde cero
 
BEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA | Introducción a Docker
BEEVA | Introducción a Docker
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
Presentación Docker
Presentación DockerPresentación Docker
Presentación Docker
 
Docker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJCDocker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJC
 
Docker - Sysmana 2014
Docker - Sysmana 2014Docker - Sysmana 2014
Docker - Sysmana 2014
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualización
 
nerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshopnerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshop
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJC
 
Introduccion Power BI Report Server
Introduccion Power BI Report ServerIntroduccion Power BI Report Server
Introduccion Power BI Report Server
 
Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker
 
Usando docker
Usando dockerUsando docker
Usando docker
 
Solapas principales Ver(solapa activa) Editar Gestionar present...
 Solapas principales      Ver(solapa activa)     Editar     Gestionar present... Solapas principales      Ver(solapa activa)     Editar     Gestionar present...
Solapas principales Ver(solapa activa) Editar Gestionar present...
 
FROM lost to the docker
FROM lost to the dockerFROM lost to the docker
FROM lost to the docker
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 

Destacado

Branding and marketing
Branding and marketing  Branding and marketing
Branding and marketing Api Murugathas
 
Evidence of progress2
Evidence of progress2Evidence of progress2
Evidence of progress2kirstyswifty
 
Llista dels Treballs Naturals 3r ESO 2015 16
Llista dels Treballs Naturals 3r ESO 2015 16Llista dels Treballs Naturals 3r ESO 2015 16
Llista dels Treballs Naturals 3r ESO 2015 16Rafael Alvarez Alonso
 
23 novembre power point corrigé
23 novembre power point corrigé23 novembre power point corrigé
23 novembre power point corrigéharlicot
 
INFORME DE CIM CENTRO INTEGRADO DE MANUFACTURA
INFORME DE CIM CENTRO INTEGRADO DE MANUFACTURA INFORME DE CIM CENTRO INTEGRADO DE MANUFACTURA
INFORME DE CIM CENTRO INTEGRADO DE MANUFACTURA Luis Alberto Zapata Ojeda
 
harlicot Jnmg paris 2014 cnit
harlicot Jnmg paris 2014 cnitharlicot Jnmg paris 2014 cnit
harlicot Jnmg paris 2014 cnitharlicot
 
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker Ecosystem: Engine, Compose, Machine, Swarm, RegistryDocker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker Ecosystem: Engine, Compose, Machine, Swarm, RegistryMario IC
 
Diu gynecologie medicale Rennes partie 2
Diu gynecologie medicale Rennes partie 2Diu gynecologie medicale Rennes partie 2
Diu gynecologie medicale Rennes partie 2harlicot
 
Opensouthcode: Microservicios sobre MEAN Stack
Opensouthcode: Microservicios sobre MEAN StackOpensouthcode: Microservicios sobre MEAN Stack
Opensouthcode: Microservicios sobre MEAN StackPedro J. Molina
 

Destacado (13)

Arquitecturas de microservicios - @cibbva
Arquitecturas de microservicios - @cibbvaArquitecturas de microservicios - @cibbva
Arquitecturas de microservicios - @cibbva
 
Branding and marketing
Branding and marketing  Branding and marketing
Branding and marketing
 
asdasds
asdasdsasdasds
asdasds
 
MCSA Wind 7
MCSA Wind 7MCSA Wind 7
MCSA Wind 7
 
Evidence of progress2
Evidence of progress2Evidence of progress2
Evidence of progress2
 
MCTS Windows 7
MCTS Windows 7MCTS Windows 7
MCTS Windows 7
 
Llista dels Treballs Naturals 3r ESO 2015 16
Llista dels Treballs Naturals 3r ESO 2015 16Llista dels Treballs Naturals 3r ESO 2015 16
Llista dels Treballs Naturals 3r ESO 2015 16
 
23 novembre power point corrigé
23 novembre power point corrigé23 novembre power point corrigé
23 novembre power point corrigé
 
INFORME DE CIM CENTRO INTEGRADO DE MANUFACTURA
INFORME DE CIM CENTRO INTEGRADO DE MANUFACTURA INFORME DE CIM CENTRO INTEGRADO DE MANUFACTURA
INFORME DE CIM CENTRO INTEGRADO DE MANUFACTURA
 
harlicot Jnmg paris 2014 cnit
harlicot Jnmg paris 2014 cnitharlicot Jnmg paris 2014 cnit
harlicot Jnmg paris 2014 cnit
 
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker Ecosystem: Engine, Compose, Machine, Swarm, RegistryDocker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
 
Diu gynecologie medicale Rennes partie 2
Diu gynecologie medicale Rennes partie 2Diu gynecologie medicale Rennes partie 2
Diu gynecologie medicale Rennes partie 2
 
Opensouthcode: Microservicios sobre MEAN Stack
Opensouthcode: Microservicios sobre MEAN StackOpensouthcode: Microservicios sobre MEAN Stack
Opensouthcode: Microservicios sobre MEAN Stack
 

Similar a Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Google Campus Madrid)

Microservices: Ya funciona en mi máquina… Y en producción, ¿qué?
Microservices: Ya funciona en mi máquina… Y en producción, ¿qué?Microservices: Ya funciona en mi máquina… Y en producción, ¿qué?
Microservices: Ya funciona en mi máquina… Y en producción, ¿qué?Plain Concepts
 
Docker 10 02_18
Docker 10 02_18Docker 10 02_18
Docker 10 02_18enyert
 
Game of pods - Kubernetes
Game of pods - KubernetesGame of pods - Kubernetes
Game of pods - Kubernetesjdezine
 
De desarrollo a producción usando docker
De desarrollo a producción usando dockerDe desarrollo a producción usando docker
De desarrollo a producción usando dockerChristian Rodriguez
 
Docker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJSDocker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJSJan Sanchez
 
Docker para Dummies
Docker para DummiesDocker para Dummies
Docker para DummiesRaúl Unzué
 
docker.pdf
docker.pdfdocker.pdf
docker.pdfKenn70
 
Dynamics saturday madrid 2018 bc-on-docker - jakub
Dynamics saturday madrid 2018   bc-on-docker - jakubDynamics saturday madrid 2018   bc-on-docker - jakub
Dynamics saturday madrid 2018 bc-on-docker - jakubDemian Raschkovan
 
administracion de sistemas de informacion
administracion de sistemas de informacionadministracion de sistemas de informacion
administracion de sistemas de informacionStivenLopez46
 
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019 Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019 Santi Macias Rodriguez
 
Iniciando con containers en azure
Iniciando con containers en azureIniciando con containers en azure
Iniciando con containers en azureOscar Gensollen
 
Instalacion y uso basico de Docker.
Instalacion y uso basico de Docker.Instalacion y uso basico de Docker.
Instalacion y uso basico de Docker.Moisés Elías Araya
 
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Keopx
 
Docker y todo eso... más o menos
Docker y todo eso... más o menosDocker y todo eso... más o menos
Docker y todo eso... más o menosEduard Tomàs
 
Docker: de principante a pro
Docker: de principante a proDocker: de principante a pro
Docker: de principante a proPlain Concepts
 
Corriendo SQL Server en Docker
Corriendo SQL Server en DockerCorriendo SQL Server en Docker
Corriendo SQL Server en DockerJavier Villegas
 
FROM lost to the Docker 2020
FROM lost to the Docker 2020FROM lost to the Docker 2020
FROM lost to the Docker 2020BelnGonzlezGarca1
 

Similar a Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Google Campus Madrid) (20)

Curso gratuito de Docker
Curso gratuito de DockerCurso gratuito de Docker
Curso gratuito de Docker
 
Microservices: Ya funciona en mi máquina… Y en producción, ¿qué?
Microservices: Ya funciona en mi máquina… Y en producción, ¿qué?Microservices: Ya funciona en mi máquina… Y en producción, ¿qué?
Microservices: Ya funciona en mi máquina… Y en producción, ¿qué?
 
Docker 10 02_18
Docker 10 02_18Docker 10 02_18
Docker 10 02_18
 
Game of pods - Kubernetes
Game of pods - KubernetesGame of pods - Kubernetes
Game of pods - Kubernetes
 
De desarrollo a producción usando docker
De desarrollo a producción usando dockerDe desarrollo a producción usando docker
De desarrollo a producción usando docker
 
Docker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJSDocker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJS
 
Docker para Dummies
Docker para DummiesDocker para Dummies
Docker para Dummies
 
docker.pdf
docker.pdfdocker.pdf
docker.pdf
 
Dynamics saturday madrid 2018 bc-on-docker - jakub
Dynamics saturday madrid 2018   bc-on-docker - jakubDynamics saturday madrid 2018   bc-on-docker - jakub
Dynamics saturday madrid 2018 bc-on-docker - jakub
 
administracion de sistemas de informacion
administracion de sistemas de informacionadministracion de sistemas de informacion
administracion de sistemas de informacion
 
Taller girona
Taller gironaTaller girona
Taller girona
 
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019 Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019
 
Iniciando con containers en azure
Iniciando con containers en azureIniciando con containers en azure
Iniciando con containers en azure
 
Instalacion y uso basico de Docker.
Instalacion y uso basico de Docker.Instalacion y uso basico de Docker.
Instalacion y uso basico de Docker.
 
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
 
Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf
 
Docker y todo eso... más o menos
Docker y todo eso... más o menosDocker y todo eso... más o menos
Docker y todo eso... más o menos
 
Docker: de principante a pro
Docker: de principante a proDocker: de principante a pro
Docker: de principante a pro
 
Corriendo SQL Server en Docker
Corriendo SQL Server en DockerCorriendo SQL Server en Docker
Corriendo SQL Server en Docker
 
FROM lost to the Docker 2020
FROM lost to the Docker 2020FROM lost to the Docker 2020
FROM lost to the Docker 2020
 

Último

investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 

Último (12)

investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 

Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Google Campus Madrid)

  • 1. Introducción a Microservicios y Contenedores DIA 1 - 17/05/16 Raúl Sánchez y Carlos Crisóstomo Workshop Día 1
  • 2. Indice 1. Microservicios - ¿Qué son los microservicios? a. Arquitectura tradicional - Limitaciones i. Escalabilidad ii. Portabilidad iii. Inmutabilidad b. Nuevo modelo de arquitectura basada en contenedores - Microservicios i. Contenedores y microservicios ii. Mejoras con respecto a arquitectura tradicional 2. Implementación de microservicios usando contenedores - La plataforma Docker a. ¿Qué es Docker? b. Imágenes c. Características técnicas d. Funcionalidad básica
  • 3. 1. ¿Qué son los microservicios?
  • 4. Arquitectura tradicional - Ejemplo LAMP (I) Funcionalidades : - Pagos - Inventario - Envíos - ... Arquitectura LAMP básica : - Servidor Web (+PHP) - Base de datos
  • 5. Arquitectura tradicional - Ejemplo LAMP (II) DESARROLLO INTEGRACIÓN PRODUCCIÓN
  • 6. Ciclo de vida del servicio web tradicional DESARROLLO INTEGRACIÓN PRODUCCIÓN - Time to Deploy (TTD) - Aprox. >10min. - Complex to Scale (CTS) - Muchas dependencias. - Hard Coupling (HC) - Cambiar una única funcionalidad. - Difficult to Replicate (DTR) - Reproducir un entorno nuevo. 3 GRANDES LIMITACIONES - ESCALABILIDAD - PORTABILIDAD - INMUTABILIDAD
  • 7. Contenedores y microservicios (I) El contenedor v1.0 incluye : - Sistema Operativo Mínimo - Aplicación (Funcionalidad 1) - Dependencias (Bibliotecas y Servicios) Creamos una versión del entorno de ejecución de Funcionalidad 1 que es : - Autocontenido - Reproducible - Aislado - Inmutable
  • 8. Contenedores y microservicios (II) “Los microservicios son un conjunto de contenedores que funcionan de manera coordinada para proveer un único servicio al usuario.” MAPA DE MICROSERVICIO (PIEZAS) DESPLIEGUE USANDO MICROSERVICIOS
  • 9. Mejoras respecto a arquitectura tradicional (I) DESARROLLO INTEGRACIÓN PRODUCCIÓN Tenemos siempre los mismos componentes versionados desde el principio. Utilizamos las mismas piezas pero en escalas diferentes.
  • 10. Mejoras respecto a arquitectura tradicional (II) DESARROLLO INTEGRACIÓN PRODUCCIÓN - Time to Deploy (TTD) - Aprox. 10 sec (0 downtime con a/b testing y canary release). - Easy to Scale (ETS) - La versión es idéntica y las dependencias están incluídas. - Low Coupling (LC) - Cambiar una única funcionalidad es atómico y sencillo. - Easy to Replicate (ETR) - Reproducir un entorno nuevo o replicarlo es igualmente sencillo. TESTS OK
  • 11. Mejoras respecto a arquitectura tradicional (III) DESARROLLO INTEGRACIÓN PRODUCCIÓN
  • 12. 2. Implementación de Microservicios usando contenedores - La Plataforma Docker
  • 13. ¿Qué es Docker? (I) Docker es una plataforma para desarrollar, desplegar y ejecutar aplicaciones utilizando contenedores. Esta plataforma incluye varios productos y herramientas : - Docker Engine - Docker Hub - Docker Trusted Registry - Docker Machine - Docker Swarm - Docker Compose - Kinematic - Docker Cloud
  • 14. ¿Qué es Docker? (II) Docker utiliza imágenes para crear los contenedores. Estas imágenes son : - Conjunto de ficheros + metadatos. - Formadas por múltiples capas, entre ellas una capa inicial (Base Layer). Cada una de estas capas incluye un componente software. Las capas son son sólo-lectura y cada una además forma una imagen en sí misma. - Docker puede compartir capas para optimizar espacio y memoria (no hace falta descargarlas de nuevo) - Para la ejecución del contenedor en su capa más alta se utiliza un sistema llamado copy-on- write.
  • 15. Características técnicas Principales tecnologías utilizadas en Dockers : - CGroups - Namespaces - Copy-On-Write filesystems
  • 16. Funcionalidad básica (I) Parámetros de una imagen Docker : - Puertos - Volúmenes de datos - Enlaces a otros Dockers - Variables de entorno
  • 17. Funcionalidad básica (II) Repositorios Oficiales - Los repositorios oficiales son un conjunto de repositorios de imágenes Docker certificadas y mantenidas al día por los propios desarrolladores. - Se localizan en el llamado Docker Hub, un repositorio donde se almacenan estas imágenes. - Las imágenes oficiales son una mezcla de : - Imagenes base de sistemas operativos Linux (Ubuntu, CentOS, Debian, etc…) - Imágenes de herramientas para desarrollo, lenguajes de programación, servicios web y aplicaciones, etc… - Se pueden crear versiones y tags de las imágenes para identificarlas.
  • 18. Funcionalidad básica (III) Dockerfiles : Ficheros de configuración que contienen instrucciones para crear una imagen Docker. Permite entre otras cosas definir : - Imagen base a utilizar. - Variables de entorno. - Enlaces con otros dockers. - Comandos a ejecutar. - Copia de archivos dentro del docker. - ... Se crea el fichero y se ejecuta docker build .
  • 19. Funcionalidad básica (IV) CONTENEDORES - Ciclo de vida : create,rename,run,rm,update - Parada/Arranque del contenedor : start,stop, restart,pause,unpause,wait,kill,attach - Información : ps,logs,inspect,events,port,top, stats,diff - Importación/Exportación : cp,export - Ejecución : exec Comandos básicos : docker <comando> IMAGENES - Ciclo de vida : images,import,build,commit, rmi,load,save - Información : history,tag ... Docker Cheat Sheet - https://github.com/wsargent/docker-cheat-sheet
  • 20. Recursos y bibliografía - Microservicios Web - Microservices architecture : http://microservices.io/index.html - An introduction to microservices : https://opensource.com/resources/what- are-microservices - Artículo de Martin Fowler : http://martinfowler.com/articles/microservices.html - Neal Ford slices: http://nealford.com/abstracts.html Libros - Building microservices - Sam Newman (O’Reilly) - Microservices: Flexible Software Architectures - Eberhard Wolff
  • 21. Recursos y bibliografía - Dockers Web - Documentación oficial - https://docs.docker.com/ - Docker 101 Tutorial - https://blog.docker.com/tag/docker-101/ Libros - Docker: Up & Running - Karl Matthias y Sean P.Kane (O’Reilly) - Docker in Action - Jeff Nickolofff (Manning) Cursos - Official Docker Training - https://training.docker.com/
  • 22. ¡GRACIAS! ¡Nos vemos en la segunda parte!