Curso de Introducción a la Nube

Microservicios, funciones y contenedores en la nube

Curso de Introducción a la Nube

Contenido del curso

Microservicios, funciones y contenedores en la nube

Resumen

Si estás dando tus primeros pasos en cloud o DevOps, hay tres conceptos que cambian la forma en que se construyen aplicaciones modernas: infrastructure as code, funciones serverless y microservicios. Aquí los verás aplicados a Platzi Wallet, una app de pagos digitales que sirve como caso práctico para entender cómo encajan entre sí.

¿Qué es infrastructure as code y por qué es clave en la nube?

Infrastructure as code (IaC) es la práctica de definir y desplegar la infraestructura cloud usando código en lugar de configurarla manualmente desde una consola. En el caso de Platzi Wallet, eso significa que el servidor, el almacenamiento y la base de datos se describen en archivos que cualquier proveedor cloud puede ejecutar [3:05].

Esta práctica te da tres beneficios concretos:

  • Reutilización: puedes pasarle la plantilla a otra persona para que despliegue su propia versión de la app.
  • Disaster recovery: si algo falla, vuelves a levantar todo en minutos.
  • Portabilidad: puedes mover la infraestructura entre proveedores cloud.

¿Qué herramientas existen para infrastructure as code? En AWS está CloudFormation, en Google Cloud está Deployment Manager, en Azure tienes ARM Templates y Azure Bicep. Si quieres algo agnóstico al proveedor, usa Terraform o Pulumi.

La regla de oro: si vas a desplegar algo en la nube, hazlo siempre vía IaC. Es una best practice que te ahorra horas de trabajo manual y reduce errores.

¿Qué es una función serverless y cómo funciona?

Una función es un bloque de código que se ejecuta bajo demanda y se activa con un evento. Lo interesante es que es serverless, lo que no significa que no haya servidor, sino que tú no tienes que administrarlo: el proveedor cloud se encarga de todo el mantenimiento por debajo [5:30].

Las opciones más conocidas son:

  • AWS Lambda Functions.
  • Azure Functions.
  • Google Cloud Functions.

¿Programar funciones es igual que programar un monolito? No. Desarrollar para funciones tiene su propia lógica basada en eventos y ejecuciones cortas, así que si vienes del desarrollo tradicional, prepárate para aprender un paradigma distinto.

¿Cómo se usa una función en Platzi Wallet?

Imagina que Andrea Gómez se registra en Platzi Wallet y se toma una selfie. Esa foto pesa mucho por la resolución de los celulares modernos, así que se sube a un object storage en la nube [7:45].

En cuanto la imagen llega al bucket, este dispara un evento que despierta a la función. La función recibe la imagen, ejecuta código en Java, Node.js, Go o Python, y la convierte en un thumbnail que la app usa como foto de perfil. Antes del evento, la función estaba dormida y sin consumir recursos.

¿Qué diferencia hay entre un contenedor Docker y un microservicio?

Un contenedor Docker es un paquete ejecutable e independiente que incluye todo lo necesario para que una aplicación funcione: código, librerías y dependencias. Es portable y se ejecuta igual en cualquier entorno [10:15].

Un microservicio, en cambio, es un concepto arquitectónico: una pieza pequeña y especializada de una aplicación más grande. Platzi Wallet, por ejemplo, no es un solo programa gigante, sino un conjunto de microservicios que se comunican entre sí.

¿Cómo se conectan los microservicios en Platzi Wallet?

Piensa en los servicios reales de una billetera digital y verás que cada uno puede ser un microservicio independiente:

  1. Microservicio de pagos: procesa transacciones cuando pagas Netflix u otro servicio.
  2. Microservicio de consulta de saldo: revisa cuánto dinero tienes antes de aprobar un pago.
  3. Microservicio de suscripciones: gestiona pagos recurrentes mes a mes.
  4. Microservicio de QR: uno genera el código para cobrar, otro lo escanea para pagar.
  5. Microservicio de retiros y depósitos: añade o saca dinero de tu wallet.

El flujo se ve así: escaneas un QR de $50, el microservicio de QR le avisa al de pagos, este consulta al de saldo, que revisa la base de datos no relacional y responde que tienes $100. Con saldo confirmado, el de pagos ejecuta la transacción y la base de datos se actualiza a $50 [13:20].

¿Por qué dividir una app en microservicios? Porque cada pieza se desarrolla, escala y falla de forma independiente. Si el microservicio de QR cae, el de pagos sigue funcionando.

¿Qué habilidades cloud deberías priorizar ahora?

Si tu meta es trabajar como cloud engineer o DevOps engineer, estos son los pilares mínimos que necesitas dominar:

  • Infrastructure as code con Terraform o la herramienta nativa de tu proveedor.
  • Funciones serverless y sus casos de uso por evento.
  • Contenedores Docker como unidad de despliegue.
  • Arquitectura de microservicios y cómo se comunican entre ellos.

¿Cuál de estos conceptos aplicarías primero en un proyecto propio? Cuéntame en los comentarios qué microservicio diseñarías para tu propia versión de Platzi Wallet.