Esta serie de instructivos está dirigida a desarrolladores que no tienen experiencia con Kubernetes ni Google Kubernetes Engine (GKE). En la serie, aprenderás a transformar Cymbal Books, una app monolítica de ejemplo, en una app modular alojada en contenedores que se ejecuta en un clúster de GKE.
Antes de comenzar esta serie de instructivos, es útil que tengas algo de experiencia con la programación en Python y el desarrollo de aplicaciones web. Aunque se proporciona todo el código y no necesitarás escribirlo tú, poder leer y comprender el código básico de Python te ayudará a seguir mejor el proceso. También debes sentirte cómodo usando la línea de comandos para ejecutar comandos. Si recién comienzas a usar Google Cloud, la creación de contenedores o Kubernetes, no te preocupes: estos conceptos se explican en la serie.
Costos
Puedes completar este instructivo sin incurrir en cargos. Sin embargo, seguir los pasos del instructivo final de esta serie genera cargos en tu cuenta deGoogle Cloud . Los costos comienzan cuando habilitas GKE y, luego, implementas la app de Cymbal Books en un clúster de GKE. Estos costos incluyen los cargos por clúster de GKE, como se describe en la página de precios, y los cargos por ejecutar VMs de Compute Engine.
Para evitar cargos innecesarios, asegúrate de inhabilitar GKE o borrar el proyecto una vez que hayas completado este instructivo.
¿Por qué organizar una app en contenedores?
Quizás te preguntes por qué deberías contenerizar tu app. En la siguiente lista, se explican algunas de las ventajas de las apps en contenedores:
- Aislamiento: Cada componente se ejecuta de forma independiente en su propio contenedor. Los cambios o las actualizaciones en un componente no interrumpen el resto de la app.
- Escalabilidad: Puedes escalar componentes individuales según la demanda. Si una parte de la app experimenta una carga alta, puedes escalar solo esa parte. No es necesario que escales toda la app.
- Aislamiento de fallas: Los problemas en un componente se contienen y no afectan a otros componentes. Este aislamiento facilita la depuración y la resolución de problemas sin afectar el resto del sistema.
- Desarrollo e implementación más rápidos: Los equipos pueden trabajar en diferentes componentes de la app de forma simultánea. Pueden desarrollar, probar e implementar de forma independiente, lo que puede acelerar los ciclos de desarrollo.
- Eficiencia de recursos: Los contenedores ayudan a optimizar el uso de recursos, lo que puede reducir los costos de ejecutar tu app.
- Coherencia en todos los entornos: Cada contenedor se ejecuta de la misma manera en diferentes entornos, como los de desarrollo, prueba y producción.
Instructivos de esta serie
La serie consta de los siguientes instructivos:
- Descripción general (este instructivo)
- Comprende la aplicación monolítica
- Modulariza la aplicación monolítica
- Prepara la app modular para la organización en contenedores
- Aloja la app modular en contenedores
- Implementa una app en un clúster de GKE
Cada instructivo se basa en el anterior y te ayuda a comprender los conceptos y las prácticas clave en la modularización, la contenedorización y la implementación de apps. Al final de la serie, tendrás una app que se ejecuta en GKE y un conocimiento sólido de la modularización, la contenedorización y los conceptos básicos de Kubernetes.
Para comenzar, consulta Comprende el monolito.