Boost Academy
FormaciónEvaluacionesPerfil
Volver
  • En directo

gRPC — Avanzado

8h de clase en directo·HACK A BOSS·Español

Skills que aprenderás

  • gRPC

Convocatorias

Necesitas un plan activo

Para acceder a los cursos en directo necesitas un plan activo. Estamos trabajando para que los planes estén disponibles pronto — ¡mantente atento!

No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.

Descripción

Objetivos

Temario

Requisitos técnicos

Conocimientos previos

Detalles de la convocatoria

Recursos

No hay recursos disponibles todavía para esta convocatoria

Dirigido a ingenieros de software con experiencia previa en gRPC y Go que necesitan operar sistemas distribuidos en producción bajo requisitos exigentes de rendimiento, seguridad y mantenibilidad. A lo largo de las ocho horas del curso, los participantes analizarán los trade-offs de diseño que determinan la elección de patrones de comunicación en arquitecturas multi-servicio, aplicarán técnicas avanzadas de optimización de latencia y uso de memoria, implantarán seguridad mTLS end-to-end con rotación automatizada de certificados, integrarán telemetría basada en OpenTelemetry mediante interceptores no intrusivos y automatizarán la detección de breaking changes en pipelines CI/CD. Al finalizar, cada participante será capaz de tomar decisiones de arquitectura fundamentadas en métricas propias y de entregar servicios gRPC en Go que cumplan objetivos cuantificables de rendimiento, resiliencia y observabilidad.

Al finalizar el curso, el participante será capaz de:

  1. Justificar con criterios medibles —latencia, acoplamiento y escalabilidad— la elección de patrones de comunicación unario, server-streaming o bidireccional en un sistema multi-servicio gRPC, explicando las implicaciones arquitectónicas de cada decisión.
  2. Comparar diseños alternativos de API gRPC evaluando sus trade-offs de versionado Protobuf, incluyendo retrocompatibilidad, forward-compatibility y escenarios de migración reales.
  3. Aplicar técnicas de reutilización de conexiones, compresión y ajuste del pool de workers para reducir la latencia P99 y el uso de memoria de un servicio gRPC en Go en al menos un 20 % respecto a la línea base medida.
  4. Diseñar un esquema de seguridad mTLS end-to-end que contemple la configuración de autoridades certificadoras, la rotación de certificados y políticas de autorización a nivel de método mediante interceptores.
  5. Implementar estrategias de backpressure, retry con backoff exponencial y deadline propagation en streams bidireccionales de alta carga, validadas mediante pruebas de caos controladas.
  6. Integrar interceptores de telemetría OpenTelemetry —trazas distribuidas, métricas RED y logs estructurados— en un sistema gRPC sin modificar la lógica de negocio de los servicios.
  7. Automatizar el ciclo de compilación y validación de archivos .proto en un pipeline CI/CD que detecte breaking changes, genere código Go y publique artefactos versionados sin intervención manual.
  8. Producir una recomendación fundamentada en benchmarks propios, coste operativo y madurez del ecosistema sobre la conveniencia de adoptar gRPC frente a REST o GraphQL en un caso de uso concreto.

Bloque 1 — Diseño arquitectónico y selección de patrones de comunicación

Este bloque establece los fundamentos de decisión para sistemas multi-servicio gRPC. Se estudia cómo seleccionar el patrón de comunicación adecuado —unario, server-streaming o bidireccional— a partir de criterios medibles como latencia esperada, grado de acoplamiento entre servicios y necesidades de escalabilidad horizontal. Se abordan también las implicaciones de cada patrón sobre la gestión del ciclo de vida de las conexiones y los contratos Protobuf, y se analiza cuándo gRPC resulta más conveniente que REST o GraphQL a partir de benchmarks propios y consideraciones de coste operativo y madurez del ecosistema.

Bloque 2 — Versionado de contratos Protobuf y gestión de cambios en CI/CD

Se examinan los principios de retrocompatibilidad y forward-compatibility en Protobuf, y se comparan diseños de API alternativos mediante escenarios de migración reales que evidencian sus trade-offs. A continuación, se traslada esa disciplina al pipeline de integración continua: configuración de herramientas de detección de breaking changes, generación automatizada de código Go y publicación de artefactos versionados sin intervención manual, integrando el ciclo .proto → artefacto como una fase de primera clase en el flujo de entrega.

Bloque 3 — Optimización de rendimiento y resiliencia en producción

El bloque combina dos dimensiones complementarias del trabajo en producción. En la parte de rendimiento, se aplican técnicas de reutilización de conexiones HTTP/2, selección de algoritmos de compresión y dimensionamiento del pool de workers para alcanzar reducciones cuantificables de latencia P99 y uso de memoria. En la parte de resiliencia, se implementan estrategias de backpressure, retry con backoff exponencial y propagación de deadlines en streams bidireccionales de alta carga, y se valida su eficacia mediante pruebas de caos controladas.

Bloque 4 — Seguridad mTLS y observabilidad con OpenTelemetry

El bloque cierra el curso con las capas transversales que todo sistema gRPC en producción requiere. En seguridad, se diseña e implanta un esquema mTLS end-to-end que abarca la configuración de autoridades certificadoras internas, la automatización de la rotación de certificados y la definición de políticas de autorización a nivel de método mediante interceptores de servidor y cliente. En observabilidad, se instrumentan esos mismos interceptores para integrar trazas distribuidas, métricas RED y logs estructurados con OpenTelemetry, consiguiendo visibilidad completa del sistema sin alterar la lógica de negocio de ninguno de los servicios.

  • Go 1.22 o superior instalado localmente.
  • protoc con los plugins protoc-gen-go y protoc-gen-go-grpc en la versión compatible con el material del curso.
  • Herramienta de detección de breaking changes en Protobuf (buf CLI recomendada).
  • Docker y Docker Compose para levantar los entornos de laboratorio (servicios auxiliares, autoridad certificadora local, colectores de telemetría).
  • Acceso a un pipeline CI/CD con capacidad de ejecutar contenedores (GitHub Actions, GitLab CI u otro).
  • SDK de OpenTelemetry para Go y un backend de observabilidad accesible (Jaeger, Prometheus + Grafana o equivalente gestionado).
  • Editor con soporte para Go y Protobuf (VS Code con extensiones recomendadas o GoLand).
  • Manejo fluido de Go: goroutines, channels, interfaces y gestión de errores.
  • Conocimiento sólido de gRPC: definición de servicios en Protobuf, generación de código, comunicación unaria y streaming básico (cubierto en GRPC01 y GRPC02).
  • Experiencia con herramientas de línea de comandos, Git y un entorno de CI/CD (GitHub Actions, GitLab CI o equivalente).
  • Comprensión básica de HTTP/2 y TLS.
  • Familiaridad con conceptos de observabilidad (métricas, logs, trazas) a nivel operativo.