Este documento describe la evolución del despliegue de aplicaciones desde los años 90 hasta la actualidad, pasando por la virtualización en los 2000 y la gestión de configuración a finales de esa década. Explica cómo los contenedores y la nube han permitido una automatización casi completa del ciclo de vida de las aplicaciones desde el desarrollo hasta producción de forma reproducible e inmutable. Finalmente, presenta datos sobre el uso extendido de contenedores y plataformas múltiples en empresas.
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
6. “Hay que entender el
pasado para comprender
el presente”
- Carl Sagan
7. Bitnami
• 150+ Aplicaciones y
entornos de desarrollo
• Millones de usuarios
• Disponible en el Oracle
Cloud Marketplace
Loved by Devs. Trusted by Ops
8. La Evolución del Despliegue de Aplicaciones
Nativo VMs Cloud Contenedores
Condicionado por las posibilidades y limitaciones de la infraestructura
10. 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)
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
14. 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
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
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 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
21. Gestión de la configuración
Código de aplicación
Lang Runtime Base de datos
Sistema Operativo
Servidor Web
Hardware
Manual
Automático
22. 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.
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ó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
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
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 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
32. ¿Cómo usa su compañía contenedores?
Source: Bitnami User Survey 2017, companies >250 employees
35. • 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