liquid day - microservicios y contenedores

Post on 24-Jan-2018

236 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Yaerespartedelaevolución

INTEGRACIÓNYENTREGACONTINUACONMICROSERVICIOSYCONTENEDORES

DELINUXHugoGuerrero

hguerrero@redhat.com |@hguerreroo#sgnext

HUGOGUERRERO

• SENIORSOLUTIONARCHITECT• REDHATMÉXICO•

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

• @hguerreroo|hguerrero@redhat.com

MICROSERVICIOS

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.

MICROSERVICIOS

Microservicios es acerca de

AGILIDADEntrega, Despliegue y Mejora Continua

MICROSERVICIOS

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

MICROSERVICIOS

Petición de Cambio

36 Semanas

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

Monolito

OPENBANKPORTAL

ENCAJANPERFECTOENCONTENEDORESDELINUXl Permiteconstruir,desplegaryejecutarrápidamentelosservicios

l Agnósticosdelatecnología

l AislamientodeprocesosOOTB

l Uncontenedoressólounproceso

VMvsContenedor

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.

¿Porquécontenedores?

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

- UncontenedortrabajadelamismaformaencualquiermáquinaLinux

- Envíofácildedesarrolloaproducciónl Estandarización

¿Porqué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

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)

COMPONENTES

CI/CD

ARTEFACTOS

ISSUES

CALIDAD

PMCVS

OPENSHIFTHABILITACI/CD

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.

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

INFRAESTRUCTURAEXISTENTEDECI/CD

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

CI/CDEXTERNACONAGENTESENOPENSHIFT

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

CI/CDENCONTENEDORES

DEMOEMPRESARIAL

Desarrolladores

Operaciones

PIPELINEDECONSTRUCCIÓNYDESPLIEGUE

ECOSISTEMAEMPRESARIAL

GITLAB NEXUS

Control de Versiones Repositorio de Artefactos

JENKINS

OPENSHIFT

Construcción / Orquestación

Todo corriendo en OpenShift!

DEMO

DEVELOPERS?

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

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

top related