Contenedores y el Futuro
del Despliegue de
Aplicaciones
Daniel Lopez,
CEOOracle Code Mexico City
Tecnologías clave
Aplicaciones Cloud Native
• Fácil despliegue
• Escalabilidad
• Actualizaciones graduales sin interrupciones
• Optimización de recursos
• Consistencia desarrollo/test/producción
Aplicaciones Cloud Native
• Containerized: reproducibilidad, transparencia,
aislamiento de recursos
• Orquestración dinámica: optimizar la carga
• Microservicios: Agilidad en el depliegue, desarrollo
y mantenimiento de aplicaciones complejas
Ejemplos Cloud Native
“Hay que entender el
pasado para comprender
el presente”
- Carl Sagan
Bitnami
• 150+ Aplicaciones y
entornos de desarrollo
• Millones de usuarios
• Disponible en el Oracle
Cloud Marketplace
Loved by Devs. Trusted by Ops
La Evolución del Despliegue de Aplicaciones
Nativo VMs Cloud Contenedores
Condicionado por las posibilidades y limitaciones de la infraestructura
Los 90: Despliegue Manual
Los Inicios
• Compilación manual y los primeros sistemas de
gestion de paquetes (rpm, apt-get)
• Primeras aplicaciones web: binarios CGI, PHP, Java
Servlets
• Dependencias mínimas en el entorno (intérprete
de PHP, JRE + Tomcat, etc)
• Despliegue manual (i.e. scp o FTP)
Herramientas y Análisis
• La infraestructura limita severamente el nivel de automatización.
Diferencias individuales a nivel de servidor
• Dependencias simples y relativamente estáticas
• Mínima automatización
Automatización
Código de aplicación
Lang Runtime Base de datos
Sistema Operativo
Servidor Web
Hardware
Manual
Principios 2000: Virtualización
Automatización de Servidores Físicos
• Estallido de la burbuja punto com:
consolidación y ahorro de costes
• Emergencia de la virtualización
• Provisionamiento automático de servidores
físicos
Herramientas y Análisis
• Virtualización: Golden Images, Kickstarts, Network Boot (PXE)
• Control de versiones, shell scripting
• Soluciones a medida
• Cierta reproducibilidad, pero varía de compañía a compañía. No hay
reusabilidad ni estandarización
Automatización
Código de aplicación
Lang Runtime Base de datos
Sistema Operativo
Servidor Web
Hardware
Manual
Automático
Finales 2000: Gestión configuración
Modern Application Development
• Web 2.0 : Ruby on Rails, NodeJS, Django
• Expansión de la virtualización en
entornos corporativos
• ¡Llega el Cloud!
Herramientas
• Integración Continua: Hudson/Jenkins…
• PaaS: Plataforma como Servicio: Heroku,
Cloud Foundry
• DevOps y gestión de la configuración: Chef,
Puppet, …
Análisis Gestión de la Configuración
• Gestión del ciclo de vida de servidores
• Idealmente requiere adopción total de desarrollo a producción
• Curva de aprendizaje: formación específica de admins y desarrolladores
• Dependencia de versiones específicas de Linux y gestores de paquetes
• Estandarización y reusabilidad
• Infraestructura como código: versionado, reproducible
Gestión de la configuración
Código de aplicación
Lang Runtime Base de datos
Sistema Operativo
Servidor Web
Hardware
Manual
Automático
Análisis PaaS
• 12-factor apps: Separar estado de código
• Facilidad de uso y administración
• Ganancias en productividad
• Escalabilidad horizontal
• Límites de arquitectura, lenguajes,
dependencias, etc.
PaaS
Código de aplicación
Lang Runtime Base de datos
Sistema Operativo
Servidor Web
Hardware
Manual
Automático
2010s-presente: cloud, contenedores
Cloud y Contenedores
• Adopción masiva de infraestructura como
servicio en el Cloud (IaaS)
• Contenedores (Docker, Kubernetes)
• “Stacks” cada vez mas complejos: NoSQL,
microservicios, etc.
• Serverless en sus inicios
Análisis Cloud
• Automatización de principio a fin, no solo de
la aplicación sino de la infraestructura
• Hay una API para todo
• Flexibilidad: Cloud Native vs. Lift-and-shift
• Infraestructura inmutable, despliegue
continuo
Cloud
Código de aplicación
Lang Runtime
Sistema Operativo
Hardware
Inmutable Cloud VM
Servidor Web
Base de datos
Análisis Contenedores
• Docker: Contenedores para desarrollo
• Consistencia, reproducibilidad sin necesitar
virtualización completa (Kernel es
compartido)
• Elimina la dependencia con el S. Operativo
• Fácil adopción
Contenedores
Código de aplicación
Lang Runtime
Sistema Operativo
Hardware
Contenedor
Servidor Web
Base de datos
Análisis Contenedores
• Kubernetes: Contenedores para producción
• Productización de tecnología de Google
• PaaS “Universal”
• Elimina la necesidad de gestión de ciclo de
vida de servidores
• Automatizar ya no es opcional
Encuesta de usuarios de Bitnami
• Más de 18.000 formularios completados
• Gran número de empresas 250+ empleados
• Cubre todo tipo de plataformas y tecnología,
desarrollo y operaciones
¿Cómo usa su compañía contenedores?
Source: Bitnami User Survey 2017, companies >250 employees
Número de plataformas en uso
51%
Source: Bitnami User Survey 2017, companies >250
¿Usa Serverless?
Source: Bitnami User Survey 2017, companies >250 employees, developers only
• No hay soluciones mágicas: beneficios en desarrollo normalmente
implican complejidad en producción y viceversa
• Contenedores están aquí para quedarse pero no van a reemplazar
tecnologías existentes.
• El mundo real va a seguir siendo multi-plataforma
Conclusiones
Contenedores y el Futuro del Despliegue de Aplicaciones

Contenedores y el Futuro del Despliegue de Aplicaciones

  • 1.
    Contenedores y elFuturo del Despliegue de Aplicaciones Daniel Lopez, CEOOracle Code Mexico City
  • 2.
  • 3.
    Aplicaciones Cloud Native •Fácil despliegue • Escalabilidad • Actualizaciones graduales sin interrupciones • Optimización de recursos • Consistencia desarrollo/test/producción
  • 4.
    Aplicaciones Cloud Native •Containerized: reproducibilidad, transparencia, aislamiento de recursos • Orquestración dinámica: optimizar la carga • Microservicios: Agilidad en el depliegue, desarrollo y mantenimiento de aplicaciones complejas
  • 5.
  • 6.
    “Hay que entenderel pasado para comprender el presente” - Carl Sagan
  • 7.
    Bitnami • 150+ Aplicacionesy entornos de desarrollo • Millones de usuarios • Disponible en el Oracle Cloud Marketplace Loved by Devs. Trusted by Ops
  • 8.
    La Evolución delDespliegue de Aplicaciones Nativo VMs Cloud Contenedores Condicionado por las posibilidades y limitaciones de la infraestructura
  • 9.
  • 10.
    Los Inicios • Compilaciónmanual y los primeros sistemas de gestion de paquetes (rpm, apt-get) • Primeras aplicaciones web: binarios CGI, PHP, Java Servlets • Dependencias mínimas en el entorno (intérprete de PHP, JRE + Tomcat, etc) • Despliegue manual (i.e. scp o FTP)
  • 11.
    Herramientas y Análisis •La infraestructura limita severamente el nivel de automatización. Diferencias individuales a nivel de servidor • Dependencias simples y relativamente estáticas • Mínima automatización
  • 12.
    Automatización Código de aplicación LangRuntime Base de datos Sistema Operativo Servidor Web Hardware Manual
  • 13.
  • 14.
    Automatización de ServidoresFísicos • Estallido de la burbuja punto com: consolidación y ahorro de costes • Emergencia de la virtualización • Provisionamiento automático de servidores físicos
  • 15.
    Herramientas y Análisis •Virtualización: Golden Images, Kickstarts, Network Boot (PXE) • Control de versiones, shell scripting • Soluciones a medida • Cierta reproducibilidad, pero varía de compañía a compañía. No hay reusabilidad ni estandarización
  • 16.
    Automatización Código de aplicación LangRuntime Base de datos Sistema Operativo Servidor Web Hardware Manual Automático
  • 17.
    Finales 2000: Gestiónconfiguración
  • 18.
    Modern Application Development •Web 2.0 : Ruby on Rails, NodeJS, Django • Expansión de la virtualización en entornos corporativos • ¡Llega el Cloud!
  • 19.
    Herramientas • Integración Continua:Hudson/Jenkins… • PaaS: Plataforma como Servicio: Heroku, Cloud Foundry • DevOps y gestión de la configuración: Chef, Puppet, …
  • 20.
    Análisis Gestión dela Configuración • Gestión del ciclo de vida de servidores • Idealmente requiere adopción total de desarrollo a producción • Curva de aprendizaje: formación específica de admins y desarrolladores • Dependencia de versiones específicas de Linux y gestores de paquetes • Estandarización y reusabilidad • Infraestructura como código: versionado, reproducible
  • 21.
    Gestión de laconfiguración Código de aplicación Lang Runtime Base de datos Sistema Operativo Servidor Web Hardware Manual Automático
  • 22.
    Análisis PaaS • 12-factorapps: Separar estado de código • Facilidad de uso y administración • Ganancias en productividad • Escalabilidad horizontal • Límites de arquitectura, lenguajes, dependencias, etc.
  • 23.
    PaaS Código de aplicación LangRuntime Base de datos Sistema Operativo Servidor Web Hardware Manual Automático
  • 24.
  • 25.
    Cloud y Contenedores •Adopción masiva de infraestructura como servicio en el Cloud (IaaS) • Contenedores (Docker, Kubernetes) • “Stacks” cada vez mas complejos: NoSQL, microservicios, etc. • Serverless en sus inicios
  • 26.
    Análisis Cloud • Automatizaciónde principio a fin, no solo de la aplicación sino de la infraestructura • Hay una API para todo • Flexibilidad: Cloud Native vs. Lift-and-shift • Infraestructura inmutable, despliegue continuo
  • 27.
    Cloud Código de aplicación LangRuntime Sistema Operativo Hardware Inmutable Cloud VM Servidor Web Base de datos
  • 28.
    Análisis Contenedores • Docker:Contenedores para desarrollo • Consistencia, reproducibilidad sin necesitar virtualización completa (Kernel es compartido) • Elimina la dependencia con el S. Operativo • Fácil adopción
  • 29.
    Contenedores Código de aplicación LangRuntime Sistema Operativo Hardware Contenedor Servidor Web Base de datos
  • 30.
    Análisis Contenedores • Kubernetes:Contenedores para producción • Productización de tecnología de Google • PaaS “Universal” • Elimina la necesidad de gestión de ciclo de vida de servidores • Automatizar ya no es opcional
  • 31.
    Encuesta de usuariosde Bitnami • Más de 18.000 formularios completados • Gran número de empresas 250+ empleados • Cubre todo tipo de plataformas y tecnología, desarrollo y operaciones
  • 32.
    ¿Cómo usa sucompañía contenedores? Source: Bitnami User Survey 2017, companies >250 employees
  • 33.
    Número de plataformasen uso 51% Source: Bitnami User Survey 2017, companies >250
  • 34.
    ¿Usa Serverless? Source: BitnamiUser Survey 2017, companies >250 employees, developers only
  • 35.
    • No haysoluciones mágicas: beneficios en desarrollo normalmente implican complejidad en producción y viceversa • Contenedores están aquí para quedarse pero no van a reemplazar tecnologías existentes. • El mundo real va a seguir siendo multi-plataforma Conclusiones