Sunteți pe pagina 1din 88

OpenShift - Visión General

Jhon Inga
Middleware Solutions Architect
jhon@redhat.com
Openshift se instala en cualquier infraestructura

OPENSHIFT
Sea ambiente virtual...
Homologado para:

OPENSHIFT
Nube privada...
Homologado para:

OPENSHIFT
O nube pública
Homologado para:

OPENSHIFT
Los nodos son instancias de RHEL donde su aplicación se
ejecutará

OPENSHIFT
Las aplicaciones se ejecutan en varios
nodos

OPENSHIFT
Master orquesta las aplicaciones en
nodos

OPENSHIFT
Toda comunicación es segura en el Openshift

OPENSHIFT
Máster proporciona una API para usuarios y
clientes

OPENSHIFT
Máster utiliza una base de datos (clave-valor)
llamado etcd

OPENSHIFT
Master proporciona un "programador" de
aplicaciones

OPENSHIFT
La programación de las aplicaciones se basa en
políticas

OPENSHIFT
En el momento de la creación de la aplicación, se eligen los mejores
nodos

OPENSHIFT
Puede separar aplicaciones en entornos

DEV

QA

OPENSHIFT
Servicio permite que la aplicación se comunique
internamente

App puede comunicarse:

● postgresql:5432
● <service>.<pod_namespace>.svc.
cluster.local:<port>
● variables internas

OPENSHIFT
Replication Controller gestiona el ciclo de vida de la
aplicación

OPENSHIFT
Registry es donde se almacena las imágenes de la
aplicación

OPENSHIFT
Openshift administra el balanceo automáticamente
Balancer

OPENSHIFT
Y si la aplicación falla?
Balancer

OPENSHIFT
Openshift la recupera y crea una nueva automáticamente
Balancer

OPENSHIFT
¿Y la sesión de los usuarios?
Balancer

OPENSHIFT
La sesión se puede replicar
Balancer

JDG

JDG JDG JDG

JDG

OPENSHIFT
O externalizar
Balancer

JDG

JDG JDG JDG

JDG

OPENSHIFT
¿Y si la aplicación no está lista para ser usada?
Balancer

OPENSHIFT
Openshift agrega la aplicación al balanceo cuando está lista
Balancer

OPENSHIFT
¿Y si quiero separar el tráfico en balanceadores diferentes?
Balancer

DEV

QA

OPENSHIFT
Openshift permite un enfoque multitenant
Balancer

DEV

Balancer
QA

OPENSHIFT
Openshift bloquea la comunicación entre entornos de
aplicación

DEV

QA

OPENSHIFT
Y si la aplicación intenta consumir todo los recursos
del nodo?

OPENSHIFT
Y si la aplicación intenta consumir todo los recursos
del nodo?

OPENSHIFT
Y si la aplicación intenta consumir todo los recursos
del nodo?

OPENSHIFT
Openshift la impedirá por medio de las cuotas y
límites

OPENSHIFT
Y si un nodo falla o necesita mantenimiento?

OPENSHIFT
Openshift migrará las aplicaciones a otros nodos

OPENSHIFT
Y si las instancias de mi aplicación no son suficientes?

OPENSHIFT
Openshift realizará un auto-scaling (scale-out)

OPENSHIFT
Y también el scale será en automático

OPENSHIFT
¿Y si necesito ahorrar más recursos?

OPENSHIFT
Openshift pondrá la app en idle

OPENSHIFT
Cuando se tiene acceso a OpenShift se iniciará una app
nuevamente

Cliente

OPENSHIFT
Y cómo agrego mi app en Openshift?

OPENSHIFT
Openshift construye apps usando Source-to-Image (sti/s2i)

OPENSHIFT
Sólo tienes que identificar al repositorio del
Git Repo
código fuente

OPENSHIFT
Y una plantilla o entorno del lenguaje
Git Repo
(opcional)

OPENSHIFT
Openshift crea la imagen y la guarda en el
Git Repo
Registro

OPENSHIFT
Y ejecuta la imagen de la aplicación recién
Git Repo
creada

OPENSHIFT
Además de la fuente, también es posible usar el binario de la
aplicación

JAR/WAR/EAR

OPENSHIFT
STI también se aplica para otros templates como Httpd
Git Repo

OPENSHIFT
Y si quiero ejecutar el proceso batch?

OPENSHIFT
Openshift ejecutará cron jobs

Cron:

*/1 * * * *

OPENSHIFT
Y si hay un error de seguridad en mi aplicación?

OPENSHIFT
Openshift actualizará la aplicación de manera automática

OPENSHIFT
Y si quiero supervisar los recursos de la aplicación?

OPENSHIFT
Openshift permite monitorear:

● CPU

● Memoria

● Red

OPENSHIFT
Por medio de Hawkular, Heapster y Cassandra

NODE

RED HAT
POD POD
CONTAINER METRICS CLOUDFORMS
NODE
FLUENTD
POD POD
API OPENSHIFT WEB
HEAPSTER HAWKULAR
POD POD CONSOLE

NODE USER
RHEL
FLUENTD CUSTOM
POD POD DASHBOARDS
POD POD ELASTI
CADVISOR

ELASTI
C
CCASSANDRA
RHEL
POD POD

RHEL

OPENSHIFT
Y si deseo supervisar los logs de mi aplicación de manera
centralizada?

OPENSHIFT
Openshift ya viene con el stack EFK

● ElasticSearch

● Fluentd

● Kibana

OPENSHIFT
Openshift ya viene con el stack EFK

NODE

POD POD
OPERATION LOGS

NODE
ELASTI ELASTI
FLUENTD ELASTI ELASTI
POD POD C C
ELASTICSEARCH
C C KIBANA
POD POD
ADMIN
NODE
RHEL APPLICATION LOGS
FLUENTD
POD POD
POD POD
FLUENTD

ELASTI ELASTI
ELASTI ELASTI
C C
RHEL ELASTICSEARCH
C C KIBANA
POD POD
USER

RHEL

OPENSHIFT
Y si un nodo se satura de instancias de mi aplicación?

OPENSHIFT
Openshift creará nuevas aplicaciones usando QoS

● Guaranteed
● Burstable
● BestEffort

OPENSHIFT
Y si todos los nodos se saturan?

OPENSHIFT
CloudForms agrega más nodos

OPENSHIFT
Las aplicaciones pueden utilizar un storage para servicios
stateful

OPENSHIFT
Compatible con las principales tecnologías
del mercado
Homologado para:

OpenStack
NFS Azure Disk AWS EBS
Cinder

GlusterFS iSCSI Azure File FlexVolume

GCE Persistent VMWare


Ceph RBD Fiber Channel
Disk vSphere VMDK

OPENSHIFT
Y puede utilizar persistencia con contenedores

MASTER

NODE NODE NODE NODE

RHGS RHGS POD POD RHGS POD POD POD POD POD

POD POD POD

POD POD POD

OPENSHIFT
La capa de enrutamiento permite el acceso externo a la
aplicación

OPENSHIFT
Y si quiero probar nuevas versiones de mi aplicación?

OPENSHIFT
Openshift ejecuta un rolling update como canary deploy

vv21 v1.0 v1.0


..00

vv21 v2.0 v2.0


..00

OPENSHIFT
Y también hace rollback manual o automático

vv21 v1.0 v1.0


..00

vv21 v1.0 v1.0


..00

OPENSHIFT
Openshift realiza el A/B Testing

90% v1.0 | 10% v2.0

v1.0 v1.0 v2.0

v1.0

OPENSHIFT
Y el Blue Green Deployment
Balancer

v2.0 v2.0 v2.0 v1.0

v2.0 v1.0 v1.0

OPENSHIFT
Y si quiero implementar implementar CI/CD?

OPENSHIFT
Openshift ya viene integrado con Jenkins y sus slaves

S S S

OPENSHIFT
Los slaves se quitan después de su ejecución

S S S

OPENSHIFT
Openshift también se comunica con servicios externos

External Database

OPENSHIFT
Desarrollador accede a Openshift por la web, CLI o IDE

OPENSHIFT
CONTAINERS EN PRODUCCIÓN USANDO EL
RED HAT OPENSHIFT
Otros Clientes que usan Openshift

79 OpenShift
Demo
time!
DEMO OPENSHIFT CI/CD

Sonar Nexus
Qube Reposit.

Jenkins:
Coverage Static
Analysis

Jenkins: Jenkins: Jenkins: Jenkins: Jenkins:


Git Build Package Archive Artifacts Trigger Image Build Integration Promote Image
in Nexus Deploy to DEV Test Deploy to STAGE

Jenkins:
Unit Tests OpenShift: OpenShift:
Build Docker Image Promote Image
Deploy to DEV Deploy to STAGE

81 OpenShift
Muchas gracias
plus.google.com/+RedHat facebook.com/redhatinc

linkedin.com/company/red-hat twitter.com/RedHatNews

youtube.com/user/RedHatVideos
CAMBIOS FUNDAMENTALES

Monolith Datacenter Waterfall

N-Tier Hosted Agile

Microservices Hybrid DevOps

Aplicaciones Infraestrutura Procesos


¿Qué son los Contenedores?

Depende quién pregunte

Sys-Admins / Ops Developers


● Procesos de aplicación aislados en un ● Sirve para empaquetar mi aplicación y
kernel de sistema operativo Linux todas sus dependencias
compartido
● Implementar en cualquier entorno en
● Más simple, más ligero y más denso que segundos y habilitar CI / CD
las máquinas virtuales
● Accede y comparta componentes en
● Portátil en diferentes entornos contenedores
VIRTUAL MACHINES AND CONTAINERS

VIRTUAL MACHINES CONTAINERS

VM Container Container Container Container


App OS App OS App OS
App App App App
App
deps deps deps

OS Dependencies OS deps

Kernel Container Host (Kernel)

Hypervisor
Hardware
Hardware

virtual machines are isolated containers are isolated


apps are not so are the apps
APPLICATION PORTABILITY WITH CONTAINERS

Containers + Container Host = Guaranteed Portability


Across Any Infrastructure

Container Container Container Container Container


Application OS Application OS Application OS Application OS Application OS

dependencies dependencies dependencies dependencies dependencies

Container Host Container Host Container Host Container Host


Container Host
Guest VM Virtual Machine Virtual Machine Virtual Machine

LAPTOP BARE METAL VIRTUALIZATION PRIVATE CLOUD PUBLIC CLOUD


DevOps con Containers a través de Cloud Híbrida:

Físico

Virtual

Source CI/CD
Dev Container Nube Privada
Repository Engine

Nube Pública
DEMO OPENSHIFT CI/CD

88 OpenShift

S-ar putea să vă placă și