SlideShare una empresa de Scribd logo
Migración de aplicaciones a
arquitecturas PaaS con
contenedores
Presenta:
Gloria Palma González
Me
1. Aplicaciones Enterprise
2. Cluster containers
3. Kubernetes
4. Openshift
5. Openstack
6. Acompañamiento en migraciones de aplicaciones
a PaaS
7. Containers
En :
¿De qué hablaremos?
1. El pasado, el futuro y el progreso de las
aplicaciones enterprise y su entorno.
2. Problemas recurrentes al migrar aplicaciones de
máquinas virtuales a containers y de containers a
PaaS.
3. Puntos claves que tomar en cuenta para tener
éxito en la migración de aplicaciones enterprise a
ambientes PaaS.
4. Evolución.
Contexto
1. Aplicaciones Enterprise
2. Cluster Containers
3. Cloud private
4. Cloud public
5. Plataformas PaaS
Comencemos...
El pasado…
Aún presente...
• Aplicaciones con Legacy Software
• Aplicaciones Monolíticas
• Vendor lock-in por Software
• Configuraciones embebidas
• Desarrollo para VM
Progreso...
¿Cómo empieza todo?
Futuro ...
¿Cómo termina todo?
Errores comunes
Tratar containers como máquinas virtuales
Tratar containers como máquinas virtuales
¿Cómo lo evito?
• Un contenedor, un proceso.
• Análisis, abstracción de aplicaciones.
• Diseño primero.
Tratar containers como máquinas virtuales
Debes versionar tus cambios.
No pensar en desarrollo
Pensar que es sólo subir las aplicaciones
y correrán mágicamente.
¿Cómo lo evito?
• Definición
• Arquitectura
• Integración
• Alcance
• Capacitación
No pensar en desarrollo
siendo un poco más técnicos, ayuda mucho definir
cosas como:
1. Repositorio de código ¿GitHub? ¿Gitlab?
¿Privado? ¿Público?
2. Proceso de integración y build ¿Jenkins? ¿CI-
Gitlab? ¿Cloudbees? ¿Qué? ¿ Será manual?
¿Cuáles serán las reglas?
3. Procesos de construcción automatizados.
No pensar en desarrollo
Preguntarse ...
1. ¿Mis desarrolladores ya saben qué es un
container?
2. ¿Saben cómo se gestiona un container?
3. ¿Ya saben qué es PaaS?
4. ¿Cómo deben manejar sus configuraciones?
5. ¿Saben qué es una arquitectura de servicios?
6. ¿Qué implica microservicios, containers, etc..?
Arquitectura y diseño de aplicaciones
Arquitectura y diseño de aplicaciones
¿Qué consideraciones debo tener?
1. HA
2. Circuit Breaker
3. Configuraciones externas
4. Configuraciones por ambientes
5. Error Tracing
6. No internet o sí internet?
7. Aplicaciones dentro o fuera de PaaS
Arquitectura y diseño de aplicaciones
Por ejemplo, un clásico es : Ambiente sin internet
Tu equipo no lo sabe y ya desarrolló todo asumiendo
que tendrá internet, hay que cambiar resolución de
dependencias, servicios externos y esto implica
desarrollo.
Arquitectura y diseño de aplicaciones
Configuraciones externas
El desarrollo de tus aplicaciones no lo contempla,
han puesto todo en duro o bien no contemplan la
configuración dinámica de las propiedades.
Procesos no definidos
¿Cómo evitarlo?
Si tienes que estar inventando para avanzar mejor
detente y define bien el alcance de los procesos,
antes de implementarlos.
Estrategias para no fallar en el
intento...
Estrategia : Definición
1. Definir : ¿Qué? ¿Cómo? ¿En dónde?
2. Procesos : ¿Cuántos? ¿Quienes? ¿Cómo?
3. Arquitectura : ¿Para qué? ¿Dónde? ¿Con qué?
4. Integración: ¿Con qué? ¿Cómo? ¿Cuándo?
5. Recursos: ¿Cuánto?
Estrategia : Selección
Depende de la elección de tu cloud será el PaaS que
ocupes, por lo tanto lo primero es saber si:
1. ¿Usarás cloud?
2. ¿Cuál?
3. ¿Qué opciones de PaaS tienes?
4. ¿Qué herramientas de migración tiene?
Estrategia : Aplicaciones
Si tu aplicación es compleja y hace uso de varios
servicios y aplicaciones, debes definir:
1. ¿Qué aplicaciones van en containers?
2. ¿Por qué? ¿Por qué no?
Estrategia: Aplicaciones
Como estándar tenemos las siguientes reglas:
1. No base de datos ACID en containers para
producción
2. No aplicaciones Legacy en containers, a menos
que tengan soporte para containers
3. No aplicaciones lock-in
4. No aplicaciones de las que no tengas control
Estrategia : Desarrollo
1. Manejo de ambientes, forzoso
2. Manejo de configuraciones externas (Cloud
config)
3. Manejo de dependencias
4. Aplicaciones independientes: Circuit breaker,
properties, environments, auto-build, testing.
5. Programación orientada a servicios.
Estrategia: Desarrollo
Por ejemplo, pensemos en una aplicación en Spring
Boot sobre Openshift o Kubernetes de la siguiente
manera:
Estrategia: Desarrollo
Con diversos servicios
en containers.
Estrategia : Desarrollo
¿Qué consideraciones debo tener?
• Usar Hystrix para Circuit Breaker
• Spring Cloud Config para el manejo de properties
• Config Maps en Kubernetes u Openshift
• Traza de errores con Spring Cloud Sleut y Jaeger
• API Gateway para administración de servicios
Estrategia: Integración
1. Tener ya definido y/o implementado un proceso
de integración automatizado
2. Testing
3. Repositorio para artefactos personalizados
4. Registry privado
Estrategia: Migración
Paso a paso,
cuando vas a pasar a una plataforma PaaS basada en
containers lo primero que debes poder saber hacer
es un container.
Estrategia: Migración
Y la manera más simple de comenzar hacer una
migración es:
1. Crea tus imagenes
2. Crea tus containers
3. Correr tu aplicación(s)
Recuerda, un proceso, un conteiner, una aplicación.
Estrategia: Migración
Si logras hacer correr tus aplicaciones con
containers, entonces, será fácil que subas tus
aplicaciones a un PaaS con containers.
Estrategia: Ejemplo imagen
FROM registry.access.redhat.com/jboss-fuse-6/fis-java-openshift → Imagen base
# file author / maintainer
MAINTAINER "FirstName LastName" "emailaddress@gmail.com"
COPY app.jar /deployments/ -> Mi app compilada y empaquetada
USER root
RUN chown jboss:root /deployments/app.jar
USER 185
docker build -t myapp .
docker push myregistroprivado/myapp:latest
De esta manera podrás correr esta imagen con tu aplicación donde
quieras, siguiendo la estrategia de configuración externa.
Estrategia: Automatización
Automatiza, lo que puedas
en el tiempo que puedas
pero que sea consistente.
Por ejemplo, la
construcción de
imágenes, como primer
paso.
Evolución
Evolución
Para automatizar la creación de imágenes debes
considerar:
1. Repositorio de código
2. Aplicación autónoma (build, compile, jar, war)
3. Servidor de integración
4. Registry privado o público
5. Testing
6. Integración con tu PaaS (Openshift, Kubernetes,
Cloud Foundry, etc..)
Evolución
Replicas
Datacenters
Evolución
@GloriaPalmaGlez
ZatoryPrivate
Gloria Palma González
gloria-palma-ba07a963
ing.gloriapalmagonzalez
@gmail.com
@gloriapalmagonzalez
(Medium)
gloriapalmagonzalez

Más contenido relacionado

Más de Software Guru

Democratizando el uso de CoDi
Democratizando el uso de CoDiDemocratizando el uso de CoDi
Democratizando el uso de CoDi
Software Guru
 
Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0
Software Guru
 
Taller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSTaller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJS
Software Guru
 
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
Software Guru
 
¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?
Software Guru
 
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Software Guru
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOps
Software Guru
 
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosElixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Software Guru
 
Así publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressAsí publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stress
Software Guru
 
Achieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsAchieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goals
Software Guru
 
Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19
Software Guru
 
De lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoDe lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseño
Software Guru
 
La importancia de crear User Personas y Escenarios
La importancia de crear User Personas y EscenariosLa importancia de crear User Personas y Escenarios
La importancia de crear User Personas y Escenarios
Software Guru
 
La vida después de la escuela
La vida después de la escuelaLa vida después de la escuela
La vida después de la escuela
Software Guru
 
Proyectos FOSS, desde corporativos globales hasta pequeñas empresas
Proyectos FOSS, desde corporativos globales hasta pequeñas empresasProyectos FOSS, desde corporativos globales hasta pequeñas empresas
Proyectos FOSS, desde corporativos globales hasta pequeñas empresas
Software Guru
 
Propuesta de blockchain para KYC / AML (detección de lavado de dinero)
Propuesta de blockchain para KYC / AML (detección de lavado de dinero)Propuesta de blockchain para KYC / AML (detección de lavado de dinero)
Propuesta de blockchain para KYC / AML (detección de lavado de dinero)
Software Guru
 
JamStack, el futuro de los sitios Web
JamStack, el futuro de los sitios WebJamStack, el futuro de los sitios Web
JamStack, el futuro de los sitios Web
Software Guru
 
Transformación a través del diseño
Transformación a través del diseñoTransformación a través del diseño
Transformación a través del diseño
Software Guru
 
Planear una investigación user research para usuarios con síndrome de Down
Planear una investigación user research para usuarios con síndrome de DownPlanear una investigación user research para usuarios con síndrome de Down
Planear una investigación user research para usuarios con síndrome de Down
Software Guru
 
Cómo construir una plataforma poderosa de datos en un ambiente con recursos r...
Cómo construir una plataforma poderosa de datos en un ambiente con recursos r...Cómo construir una plataforma poderosa de datos en un ambiente con recursos r...
Cómo construir una plataforma poderosa de datos en un ambiente con recursos r...
Software Guru
 

Más de Software Guru (20)

Democratizando el uso de CoDi
Democratizando el uso de CoDiDemocratizando el uso de CoDi
Democratizando el uso de CoDi
 
Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0
 
Taller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSTaller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJS
 
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
 
¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?
 
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOps
 
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosElixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
 
Así publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressAsí publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stress
 
Achieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsAchieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goals
 
Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19
 
De lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoDe lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseño
 
La importancia de crear User Personas y Escenarios
La importancia de crear User Personas y EscenariosLa importancia de crear User Personas y Escenarios
La importancia de crear User Personas y Escenarios
 
La vida después de la escuela
La vida después de la escuelaLa vida después de la escuela
La vida después de la escuela
 
Proyectos FOSS, desde corporativos globales hasta pequeñas empresas
Proyectos FOSS, desde corporativos globales hasta pequeñas empresasProyectos FOSS, desde corporativos globales hasta pequeñas empresas
Proyectos FOSS, desde corporativos globales hasta pequeñas empresas
 
Propuesta de blockchain para KYC / AML (detección de lavado de dinero)
Propuesta de blockchain para KYC / AML (detección de lavado de dinero)Propuesta de blockchain para KYC / AML (detección de lavado de dinero)
Propuesta de blockchain para KYC / AML (detección de lavado de dinero)
 
JamStack, el futuro de los sitios Web
JamStack, el futuro de los sitios WebJamStack, el futuro de los sitios Web
JamStack, el futuro de los sitios Web
 
Transformación a través del diseño
Transformación a través del diseñoTransformación a través del diseño
Transformación a través del diseño
 
Planear una investigación user research para usuarios con síndrome de Down
Planear una investigación user research para usuarios con síndrome de DownPlanear una investigación user research para usuarios con síndrome de Down
Planear una investigación user research para usuarios con síndrome de Down
 
Cómo construir una plataforma poderosa de datos en un ambiente con recursos r...
Cómo construir una plataforma poderosa de datos en un ambiente con recursos r...Cómo construir una plataforma poderosa de datos en un ambiente con recursos r...
Cómo construir una plataforma poderosa de datos en un ambiente con recursos r...
 

Último

Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
AlejandraCasallas7
 
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
IsabelQuintero36
 
Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
sofiahuarancabellido
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
Ing. Julio Iván Mera Casas
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
evelinglilibethpeafi
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
ValeriaAyala48
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
Sitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajasSitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajas
paulroyal74
 
Trabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De ProgramaciónTrabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De Programación
SofiaCollazos
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
JimmyTejadaSalizar
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial ValenciaCatalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
AMADO SALVADOR
 
herramientas de sitio web 3.0 2024
herramientas de sitio web 3.0  2024herramientas de sitio web 3.0  2024
herramientas de sitio web 3.0 2024
julio05042006
 
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial ValenciaCatalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
AMADO SALVADOR
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
durangense277
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
samuelvideos
 
algebra de boole teoria.pdf texto guia.1
algebra de boole teoria.pdf texto guia.1algebra de boole teoria.pdf texto guia.1
algebra de boole teoria.pdf texto guia.1
yuki22434
 
SISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsxSISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsx
tamarita881
 

Último (20)

Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
 
Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Sitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajasSitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajas
 
Trabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De ProgramaciónTrabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De Programación
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial ValenciaCatalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
 
herramientas de sitio web 3.0 2024
herramientas de sitio web 3.0  2024herramientas de sitio web 3.0  2024
herramientas de sitio web 3.0 2024
 
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial ValenciaCatalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
 
algebra de boole teoria.pdf texto guia.1
algebra de boole teoria.pdf texto guia.1algebra de boole teoria.pdf texto guia.1
algebra de boole teoria.pdf texto guia.1
 
SISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsxSISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsx
 

Mejores prácticas para migración a arquitecturas PaaS con contenedores

  • 1. Migración de aplicaciones a arquitecturas PaaS con contenedores Presenta: Gloria Palma González
  • 2. Me 1. Aplicaciones Enterprise 2. Cluster containers 3. Kubernetes 4. Openshift 5. Openstack 6. Acompañamiento en migraciones de aplicaciones a PaaS 7. Containers En :
  • 3. ¿De qué hablaremos? 1. El pasado, el futuro y el progreso de las aplicaciones enterprise y su entorno. 2. Problemas recurrentes al migrar aplicaciones de máquinas virtuales a containers y de containers a PaaS. 3. Puntos claves que tomar en cuenta para tener éxito en la migración de aplicaciones enterprise a ambientes PaaS. 4. Evolución.
  • 4. Contexto 1. Aplicaciones Enterprise 2. Cluster Containers 3. Cloud private 4. Cloud public 5. Plataformas PaaS
  • 7. Aún presente... • Aplicaciones con Legacy Software • Aplicaciones Monolíticas • Vendor lock-in por Software • Configuraciones embebidas • Desarrollo para VM
  • 12.
  • 14. Tratar containers como máquinas virtuales
  • 15. Tratar containers como máquinas virtuales ¿Cómo lo evito? • Un contenedor, un proceso. • Análisis, abstracción de aplicaciones. • Diseño primero.
  • 16.
  • 17. Tratar containers como máquinas virtuales Debes versionar tus cambios.
  • 18. No pensar en desarrollo Pensar que es sólo subir las aplicaciones y correrán mágicamente. ¿Cómo lo evito? • Definición • Arquitectura • Integración • Alcance • Capacitación
  • 19. No pensar en desarrollo siendo un poco más técnicos, ayuda mucho definir cosas como: 1. Repositorio de código ¿GitHub? ¿Gitlab? ¿Privado? ¿Público? 2. Proceso de integración y build ¿Jenkins? ¿CI- Gitlab? ¿Cloudbees? ¿Qué? ¿ Será manual? ¿Cuáles serán las reglas? 3. Procesos de construcción automatizados.
  • 20. No pensar en desarrollo Preguntarse ... 1. ¿Mis desarrolladores ya saben qué es un container? 2. ¿Saben cómo se gestiona un container? 3. ¿Ya saben qué es PaaS? 4. ¿Cómo deben manejar sus configuraciones? 5. ¿Saben qué es una arquitectura de servicios? 6. ¿Qué implica microservicios, containers, etc..?
  • 21. Arquitectura y diseño de aplicaciones
  • 22. Arquitectura y diseño de aplicaciones ¿Qué consideraciones debo tener? 1. HA 2. Circuit Breaker 3. Configuraciones externas 4. Configuraciones por ambientes 5. Error Tracing 6. No internet o sí internet? 7. Aplicaciones dentro o fuera de PaaS
  • 23. Arquitectura y diseño de aplicaciones Por ejemplo, un clásico es : Ambiente sin internet Tu equipo no lo sabe y ya desarrolló todo asumiendo que tendrá internet, hay que cambiar resolución de dependencias, servicios externos y esto implica desarrollo.
  • 24. Arquitectura y diseño de aplicaciones Configuraciones externas El desarrollo de tus aplicaciones no lo contempla, han puesto todo en duro o bien no contemplan la configuración dinámica de las propiedades.
  • 25. Procesos no definidos ¿Cómo evitarlo? Si tienes que estar inventando para avanzar mejor detente y define bien el alcance de los procesos, antes de implementarlos.
  • 26. Estrategias para no fallar en el intento...
  • 27. Estrategia : Definición 1. Definir : ¿Qué? ¿Cómo? ¿En dónde? 2. Procesos : ¿Cuántos? ¿Quienes? ¿Cómo? 3. Arquitectura : ¿Para qué? ¿Dónde? ¿Con qué? 4. Integración: ¿Con qué? ¿Cómo? ¿Cuándo? 5. Recursos: ¿Cuánto?
  • 28. Estrategia : Selección Depende de la elección de tu cloud será el PaaS que ocupes, por lo tanto lo primero es saber si: 1. ¿Usarás cloud? 2. ¿Cuál? 3. ¿Qué opciones de PaaS tienes? 4. ¿Qué herramientas de migración tiene?
  • 29. Estrategia : Aplicaciones Si tu aplicación es compleja y hace uso de varios servicios y aplicaciones, debes definir: 1. ¿Qué aplicaciones van en containers? 2. ¿Por qué? ¿Por qué no?
  • 30. Estrategia: Aplicaciones Como estándar tenemos las siguientes reglas: 1. No base de datos ACID en containers para producción 2. No aplicaciones Legacy en containers, a menos que tengan soporte para containers 3. No aplicaciones lock-in 4. No aplicaciones de las que no tengas control
  • 31. Estrategia : Desarrollo 1. Manejo de ambientes, forzoso 2. Manejo de configuraciones externas (Cloud config) 3. Manejo de dependencias 4. Aplicaciones independientes: Circuit breaker, properties, environments, auto-build, testing. 5. Programación orientada a servicios.
  • 32. Estrategia: Desarrollo Por ejemplo, pensemos en una aplicación en Spring Boot sobre Openshift o Kubernetes de la siguiente manera:
  • 33. Estrategia: Desarrollo Con diversos servicios en containers.
  • 34. Estrategia : Desarrollo ¿Qué consideraciones debo tener? • Usar Hystrix para Circuit Breaker • Spring Cloud Config para el manejo de properties • Config Maps en Kubernetes u Openshift • Traza de errores con Spring Cloud Sleut y Jaeger • API Gateway para administración de servicios
  • 35. Estrategia: Integración 1. Tener ya definido y/o implementado un proceso de integración automatizado 2. Testing 3. Repositorio para artefactos personalizados 4. Registry privado
  • 36. Estrategia: Migración Paso a paso, cuando vas a pasar a una plataforma PaaS basada en containers lo primero que debes poder saber hacer es un container.
  • 37. Estrategia: Migración Y la manera más simple de comenzar hacer una migración es: 1. Crea tus imagenes 2. Crea tus containers 3. Correr tu aplicación(s) Recuerda, un proceso, un conteiner, una aplicación.
  • 38. Estrategia: Migración Si logras hacer correr tus aplicaciones con containers, entonces, será fácil que subas tus aplicaciones a un PaaS con containers.
  • 39. Estrategia: Ejemplo imagen FROM registry.access.redhat.com/jboss-fuse-6/fis-java-openshift → Imagen base # file author / maintainer MAINTAINER "FirstName LastName" "emailaddress@gmail.com" COPY app.jar /deployments/ -> Mi app compilada y empaquetada USER root RUN chown jboss:root /deployments/app.jar USER 185 docker build -t myapp . docker push myregistroprivado/myapp:latest De esta manera podrás correr esta imagen con tu aplicación donde quieras, siguiendo la estrategia de configuración externa.
  • 40. Estrategia: Automatización Automatiza, lo que puedas en el tiempo que puedas pero que sea consistente. Por ejemplo, la construcción de imágenes, como primer paso.
  • 42. Evolución Para automatizar la creación de imágenes debes considerar: 1. Repositorio de código 2. Aplicación autónoma (build, compile, jar, war) 3. Servidor de integración 4. Registry privado o público 5. Testing 6. Integración con tu PaaS (Openshift, Kubernetes, Cloud Foundry, etc..)
  • 45.