Ya eres parte de la evolución INTEGRACIÓN Y ENTREGA CONTINUA CON MICROSERVICIOS Y CONTENEDORES DE LINUX Hugo Guerrero [email protected] | @hguerreroo #sgnext
Yaerespartedelaevolución
INTEGRACIÓNYENTREGACONTINUACONMICROSERVICIOSYCONTENEDORES
DELINUXHugoGuerrero
[email protected] |@hguerreroo#sgnext
HUGOGUERRERO
• SENIORSOLUTIONARCHITECT• REDHATMÉXICO•
- Desarrollador/Consultor/ArquitectodeSoftware- EspecialistadeMiddleware- EvangelistadeOpenSource- Entusiastadelacomida,losviajesylahistoria-
• @hguerreroo|[email protected]
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