Requisitos previos
• Se necesita saber como funciona una aplicación backend en Go a nivel nativo o con frameworks
• Conocer PostgreSQL a nivel básico o intermedio
• Git y Github para el seguimiento de cambios
• Docker básico (deseable)
Descripción del curso
En este curso aprenderás a desarrollar microservicios con Go (Golang), partiendo de una aplicación monolítica y transformándola progresivamente en una arquitectura distribuida. Comprenderás los conceptos fundamentales del desarrollo backend con Go y fortalecerás tus habilidades para construir aplicaciones profesionales.
Go es un lenguaje ampliamente utilizado en el desarrollo backend y DevOps. En este curso te enfocarás en el desarrollo de microservicios, comunicación entre servicios y migración de arquitecturas, aplicando los conceptos en un proyecto práctico.
¿Qué hace diferente este curso? Aprenderás a evolucionar una aplicación monolítica hacia una arquitectura de microservicios, abordando los desafíos de la migración, la comunicación entre servicios y la organización del código. El objetivo es que comprendas cómo funciona cada componente y cómo integrarlo en una solución completa.
¿Cómo está estructurado el curso?
A lo largo del curso trabajarás con diferentes herramientas y patrones para transformar una aplicación monolítica en una arquitectura distribuida, comprendiendo cómo dividir responsabilidades, comunicar servicios y gestionar su interacción.
- De monolito a microservicios: División de servicios, migración de código y aplicación del patrón Strangler.
- Diseño y organización: Domain-Driven Design (DDD), Data Ownership y gestión de referencias externas.
- Comunicación entre servicios: Integración con gRPC, Protocol Buffers y herramientas relacionadas.
- Contenedores: Uso de Docker para facilitar la comunicación entre servicios.
- Arquitectura orientada a eventos: Implementación de comunicación basada en eventos con NATS y JetStream.
- Acceso y enrutamiento: Construcción de un API Gateway, uso de proxies y gestión de rutas.
Conceptos y herramientas que aprenderás:
- División de servicios: Separar las responsabilidades de una aplicación monolítica.
- Strangler Pattern: Migrar progresivamente de un monolito a microservicios.
- DDD y Data Ownership: Organizar el dominio y definir la propiedad de los datos.
- Docker: Preparar y conectar los servicios de la aplicación.
- sqlc: Generar código Go a partir de consultas SQL.
- Code Migration: Gestionar la transición del código durante la migración arquitectónica.
- Middlewares: Incorporar lógica compartida en el procesamiento de solicitudes.
- gRPC y Protocol Buffers: Definir contratos y establecer comunicación entre servicios.
- grpcurl y Buf: Trabajar con servicios gRPC y herramientas de su ecosistema.
- Reflection: Explorar mecanismos de reflexión para interactuar con servicios.
- Deadlines y Cancellation: Controlar los tiempos de ejecución y la cancelación de operaciones.
- Metadata e Interceptors: Gestionar información adicional y lógica transversal en las llamadas gRPC.
- NATS y JetStream: Implementar comunicación asíncrona y mensajería basada en eventos.
- API Gateway y Proxy: Centralizar el acceso a los servicios y gestionar el enrutamiento.
- Trazabilidad: Facilitar el seguimiento de las solicitudes entre servicios.
¿Cuál es el objetivo del curso?
El objetivo es que aprendas a utilizar Go en el desarrollo de microservicios, prestando especial atención a las decisiones y los desafíos que aparecen al migrar desde un monolito. Aprenderás a comunicar servicios independientes y a exponer sus funcionalidades desde un punto de entrada común.
¿Para quién es este curso?
- Desarrolladores que desean fortalecer sus conocimientos de Go aplicados al backend.
- Programadores interesados en aprender a diseñar y construir arquitecturas de microservicios.
- Desarrolladores que necesitan comprender cómo migrar aplicaciones monolíticas de forma progresiva.
- Quienes buscan aprender herramientas y patrones para comunicar, organizar y mantener servicios independientes.
- Personas que desean ampliar sus habilidades para trabajar en proyectos backend profesionales.
Resultados al finalizar:
Al finalizar el curso tendrás conocimientos prácticos para:
- Trabajar en proyectos backend con Go y arquitecturas de microservicios.
- Comprender y aplicar estrategias para migrar de un monolito a servicios independientes.
- Implementar mecanismos de comunicación síncrona y asíncrona entre servicios.
- Integrar herramientas como gRPC, Docker, NATS y JetStream en tus proyectos.
- Aplicar estos conocimientos en equipos de desarrollo o en tus propios proyectos.
🚀 Fortalece tus habilidades en Go y aprende a construir aplicaciones backend con microservicios, desde la migración inicial hasta la comunicación y el acceso a los servicios.