liquid day - microservicios y contenedores

31
Ya eres parte de la evolución INTEGRACIÓN Y ENTREGA CONTINUA CON MICROSERVICIOS Y CONTENEDORES DE LINUX Hugo Guerrero [email protected] | @hguerreroo #sgnext

Upload: software-guru

Post on 24-Jan-2018

236 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Liquid Day - Microservicios y contenedores

Yaerespartedelaevolución

INTEGRACIÓNYENTREGACONTINUACONMICROSERVICIOSYCONTENEDORES

DELINUXHugoGuerrero

[email protected] |@hguerreroo#sgnext

Page 2: Liquid Day - Microservicios y contenedores

HUGOGUERRERO

• SENIORSOLUTIONARCHITECT• REDHATMÉXICO•

- Desarrollador/Consultor/ArquitectodeSoftware- EspecialistadeMiddleware- EvangelistadeOpenSource- Entusiastadelacomida,losviajesylahistoria-

• @hguerreroo|[email protected]

Page 3: Liquid Day - Microservicios y contenedores

MICROSERVICIOS

Page 4: Liquid Day - Microservicios y contenedores

MICROSERVICIOS

l Es un enfoque para desarrollar unaAplicación como un conjuntocoordinado de pequeños servicios,cada uno corre dentro de su propioprocesos y se comunican entre símediante un mecanismo liviano,usualmente HTTP REST.

l

l Adrian Cockcroft de Netflix, defineuna Arquitectura de Microservicios,como una Arquitectura Orientada aServicios compuesta de elementosbajamente acoplados los cualesestán delimitados por contextos.

Page 5: Liquid Day - Microservicios y contenedores

MICROSERVICIOS

Microservicios es acerca de

AGILIDADEntrega, Despliegue y Mejora Continua

Page 6: Liquid Day - Microservicios y contenedores

MICROSERVICIOS

Page 7: Liquid Day - Microservicios y contenedores

MICROSERVICIOS

l BENEFICIOSl Cadaservicioesdesplegado

independientemente,fácilparadesplegarnuevasversiones.

l Múltiplesequipospuedentrabajarparalelamenteenunagranaplicación.

l Suaislamientoprotegeelrestodeloscomponentesdelaaplicación.

l Eliminalosciclosdedesarrollodemasiadolargos.

l DESAFÍOSl Losdesarrolladoresdeben

enfrentar:- Eltestingpuedesercomplejo- Implementaruncasodeusosin

transaccionesdistribuidaspuedesercomplejo.

- Implementarcasosdeusoquerequierenmúltiplesserviciosrequiereunacoordinaciónespecial

l Eldespliegueylaadministraciónpuederesultarentareasadicionalesconrespectoaarquitecturastradicionales.

l IncrementoenconsumodeMemoria

Page 8: Liquid Day - Microservicios y contenedores

MICROSERVICIOS

Petición de Cambio

36 Semanas

De-construyendo el monolito – en servicios independientemente desplegables – microservicios desplegados en contenedores de Linux

Monolito

Page 9: Liquid Day - Microservicios y contenedores

OPENBANKPORTAL

Page 10: Liquid Day - Microservicios y contenedores

ENCAJANPERFECTOENCONTENEDORESDELINUXl Permiteconstruir,desplegaryejecutarrápidamentelosservicios

l Agnósticosdelatecnología

l AislamientodeprocesosOOTB

l Uncontenedoressólounproceso

Page 11: Liquid Day - Microservicios y contenedores

VMvsContenedor

Page 12: Liquid Day - Microservicios y contenedores

IMÁGENES

l Las imágenes de los contenedores son plantillas de sólolectura. Se pueden utilizar como punto de partida paraconstruir contenedores, apiladas una encima de otra comoun pastel multicapa.

Page 13: Liquid Day - Microservicios y contenedores

¿Porquécontenedores?

l Infraestructura inmutablel Entorno de ejecución reproduciblel Aislamientodelprocesol Distribucióndelaplicación(ysuambiente)

- UncontenedortrabajadelamismaformaencualquiermáquinaLinux

- Envíofácildedesarrolloaproducciónl Estandarización

Page 14: Liquid Day - Microservicios y contenedores

¿Porquécontenedores?

Page 15: Liquid Day - Microservicios y contenedores

¿Porquécontenedores?

l Las aplicaciones que corren en contenedoresestán diseñadas para asumir que los nodos endonde se ejecutan VAN a fallar.

l La orquestación de contenedores esta diseñadapara matar y re desplegar contenedores en unclúster si estos “se portan mal”.- Incluyenescalabilidadmediantecalendarización- Actualizacionesdelaimagenunoporunootodosalmismo

tiempo

Page 16: Liquid Day - Microservicios y contenedores

CI/CD

l CONTINUOUS INTEGRATION- Es una práctica que requiere que los desarrolladores integren

código en un repositorio compartido constantemente. Cadacheck-in es entonces verificado por un proceso de construcciónautomatizado, permitiendo que los equipos de desarrollodetecten problemas en una fase temprana. - Martin Fowler(www.thoughtworks.com/continuous-integration)

l CONTINUOUS DELIVERY- Es la habilidad de poder llevar cambios de todo tipo – incluyendo

nueva funcionalidad, cambios de configuración, bug fixes yexperimentos – a producción, o las manos de los usuarios, demanera rápida y segura en modo sustentable. - Jez Humble(continuousdelivery.com)

Page 17: Liquid Day - Microservicios y contenedores

COMPONENTES

CI/CD

ARTEFACTOS

ISSUES

CALIDAD

PMCVS

Page 18: Liquid Day - Microservicios y contenedores

OPENSHIFTHABILITACI/CD

Page 19: Liquid Day - Microservicios y contenedores

ESTRATEGIASPARAIMPLEMENTARCI/CDl Existen varias estrategias para implementar yejecutar ambientes de CI/CD con OpenShift- Usar funcionalidad “Out of the Box” (webhooks, S2I,

imagestreams, y triggers)- Integrar ambientes empresariales de CI/CD usando los API's de

OpenShift.- Mantener la administración actual aprovechando los beneficios

de cómputo elástico.- Ambientes empresariales de CI/CD completamente desplegados

como contenedores de Linux en OpenShift.

Page 20: Liquid Day - Microservicios y contenedores

INFRAESTRUCTURAEXISTENTEDECI/CDl API de fácil integración con OpenShift paraherramientas existentes- Ambiente empresarial de CI/CD- Pipelines de construcción y/o despliegue- Flujos de trabajo de desarrollo y/u operaciones

l La infraestructura actual de CI/CD provee- Motor de orquestación- Pipelines de construcción y despliegue- Componentes modulares e independientes

l Transición flexible al computo elástico de nube

Page 21: Liquid Day - Microservicios y contenedores

INFRAESTRUCTURAEXISTENTEDECI/CD

Page 22: Liquid Day - Microservicios y contenedores

CI/CDEXTERNACONAGENTESENOPENSHIFTl Infraestructura master CI/CD external Agentes corriendo en contenedores de OpenShiftl Habilita características de cómputo elásticol Acercamiento híbrido y flexiblel Habilita capacidades existentes y nuevas

Page 23: Liquid Day - Microservicios y contenedores

CI/CDEXTERNACONAGENTESENOPENSHIFT

Page 24: Liquid Day - Microservicios y contenedores

CI/CDENCONTENEDORES

l Utiliza una parte de las plantillas proporcionadaspor OpenShift.

l Permite crear un entorno de CI/CD completo encontenedores dentro de OpenShift.

l Habilita el poder de los contenedores y elcómputo elástico para:- Pipelines de construcción y despliegue- Aplicaciones y servicios

Page 25: Liquid Day - Microservicios y contenedores

CI/CDENCONTENEDORES

Page 26: Liquid Day - Microservicios y contenedores

DEMOEMPRESARIAL

Desarrolladores

Operaciones

Page 27: Liquid Day - Microservicios y contenedores

PIPELINEDECONSTRUCCIÓNYDESPLIEGUE

Page 28: Liquid Day - Microservicios y contenedores

ECOSISTEMAEMPRESARIAL

GITLAB NEXUS

Control de Versiones Repositorio de Artefactos

JENKINS

OPENSHIFT

Construcción / Orquestación

Todo corriendo en OpenShift!

Page 29: Liquid Day - Microservicios y contenedores

DEMO

Page 30: Liquid Day - Microservicios y contenedores

DEVELOPERS?

Page 31: Liquid Day - Microservicios y contenedores

¿Preguntas?linkedin.com/company/red-hatfacebook.com/redhatincyoutube.com/redhat

twitter.com/RedHatNewsplus.google.com/+RedHat