spinny:~/writing $ vim platform-engineering-internal-developer-platform.md
1~2A medida que los sistemas de software se vuelven más complejos - microservicios, Kubernetes, multi-cloud, pipelines CI/CD, stacks de observabilidad - los desarrolladores dedican más tiempo a la infraestructura y menos tiempo a construir productos. El **Platform Engineering** resuelve esto creando una plataforma interna que abstrae la complejidad y proporciona a los desarrolladores herramientas de autoservicio para entregar más rápido.3~4Gartner predice que para 2027, el **80% de las organizaciones de ingeniería de software** establecerán equipos de plataforma. En esta guía, exploraremos qué es el Platform Engineering, por qué importa y cómo construir una Internal Developer Platform desde cero.5~6## ¿Qué es el Platform Engineering?7~8El Platform Engineering es la disciplina de diseñar y construir cadenas de herramientas y flujos de trabajo que habilitan capacidades de autoservicio para las organizaciones de ingeniería de software. El resultado es una **Internal Developer Platform (IDP)** - una capa que se sitúa entre los desarrolladores y la infraestructura.9~10```mermaid11graph TD12 subgraph "Developers"13 D1[Frontend Team]14 D2[Backend Team]15 D3[Data Team]16 end17~18 subgraph "Internal Developer Platform"19 Portal[Developer Portal]20 Templates[Service Templates]21 CICD[CI/CD Pipelines]22 Infra[Infrastructure Abstraction]23 end24~25 subgraph "Infrastructure"26 K8s[Kubernetes]27 Cloud[Cloud Services]28 DB[Databases]29 Monitor[Monitoring]30 end31~32 D1 --> Portal33 D2 --> Portal34 D3 --> Portal35 Portal --> Templates36 Portal --> CICD37 Portal --> Infra38 Infra --> K8s39 Infra --> Cloud40 Infra --> DB41 CICD --> Monitor42```43~44### Platform Engineering vs DevOps45~46El Platform Engineering no es un reemplazo del DevOps - es la siguiente evolución. DevOps dijo "tú lo construyes, tú lo operas." Platform Engineering dice "haremos que construir y operar sea sin esfuerzo."47~48| Aspecto | DevOps | Platform Engineering |49|---------|--------|---------------------|50| **Enfoque** | Cultura y prácticas | Productos y autoservicio |51| **Aproximación** | Cada equipo gestiona la infra | El equipo de plataforma abstrae la infra |52| **Carga Cognitiva** | Alta (cada equipo aprende todo) | Baja (golden paths proporcionados) |53| **Resultado** | Pipelines CI/CD, scripts IaC | Internal Developer Platform |54| **Usuarios** | Todo ingeniería | El equipo de plataforma sirve a ingeniería |55~56## Por Qué el Platform Engineering Importa57~58### El Problema de la Carga Cognitiva59~60En una organización moderna típica, un desarrollador necesita entender:61~62- Flujos de trabajo Git y estrategias de branching63- Configuración de pipelines CI/CD64- Construcción de contenedores y gestión de registros65- Manifiestos de Kubernetes y Helm Charts66- Servicios del proveedor cloud (AWS/GCP/Azure)67- Redes, DNS, certificados TLS68- Configuración de monitoreo, logging y alertas69- Aprovisionamiento y migraciones de bases de datos70- Políticas de seguridad y cumplimiento71~72Es una carga cognitiva enorme que desvía el enfoque del producto real.73~74### El Golden Path75~76El Platform Engineering introduce el concepto de **golden paths** - caminos con opinión, bien soportados y documentados para tareas comunes. Un golden path no es un mandato; los desarrolladores *pueden* desviarse, pero la plataforma hace que lo correcto sea lo fácil.77~78```mermaid79flowchart LR80 Dev[Developer] -- "Create new service" --> Portal[Portal]81 Portal -- "Select template" --> Template[Service Template]82 Template -- "Auto-provision" --> Repo[Git Repository]83 Template --> Pipeline[CI/CD Pipeline]84 Template --> Infra[Kubernetes Namespace]85 Template --> Monitor[Dashboards + Alerts]86 Repo --> Ready[Ready to Code!]87```88~89**Ejemplo de golden path para crear un nuevo microservicio:**901. El desarrollador selecciona "Nuevo Servicio Backend" en el portal912. Elige lenguaje/framework (Node.js, Go, Python)923. La plataforma crea automáticamente: repositorio Git, pipeline CI/CD, namespace de Kubernetes, dashboards de monitoreo y reglas de alertas934. El desarrollador clona el repositorio y empieza a programar inmediatamente94~95## Construir una Internal Developer Platform96~97### Capa 1: Developer Portal98~99El portal es el punto de entrada único para los desarrolladores. La opción open source más popular es **Backstage** (creado por Spotify, ahora un proyecto CNCF).100~101Características clave:102- **Catálogo de servicios**: Cada servicio, su propietario, documentación y dependencias103- **Templates de software**: Scaffolding para nuevos servicios con las mejores prácticas integradas104- **Documentación técnica**: Documentación como código, renderizada y buscable105- **Ecosistema de plugins**: Extensible con funcionalidad personalizada106~107```yaml108# backstage/catalog-info.yaml109apiVersion: backstage.io/v1alpha1110kind: Component111metadata:112 name: user-service113 description: Manages user accounts and authentication114 annotations:115 github.com/project-slug: myorg/user-service116 backstage.io/techdocs-ref: dir:.117spec:118 type: service119 lifecycle: production120 owner: team-auth121 system: identity-platform122 dependsOn:123 - resource:postgresql-main124 providesApis:125 - user-api126```127~128### Capa 2: Abstracción de Infraestructura129~130Los desarrolladores no deberían escribir Terraform o YAML de Kubernetes directamente. La plataforma debería proporcionar abstracciones.131~132**Herramientas:**133- **Crossplane**: Aprovisionamiento de infraestructura nativo de Kubernetes134- **Terraform con módulos**: Módulos de infraestructura pre-construidos y probados135- **Pulumi**: Infraestructura como código real (TypeScript, Python, Go)136~137```yaml138# Example: Crossplane composition for a database139apiVersion: database.example.com/v1140kind: PostgreSQLInstance141metadata:142 name: user-db143spec:144 size: small # Abstraction: small = 2 vCPU, 4GB RAM145 version: "16"146 backup: daily147 team: auth-team148```149~150En lugar de configurar parámetros RDS, subredes VPC, grupos de seguridad y políticas de respaldo, el desarrollador simplemente especifica `size: small` y `backup: daily`. La plataforma se encarga del resto.151~152### Capa 3: Estandarización CI/CD153~154Estandariza CI/CD para que los equipos no construyan cada uno sus propios pipelines.155~156```yaml157# .github/workflows/platform-ci.yml158# Teams just include the shared workflow159name: Build and Deploy160on:161 push:162 branches: [main]163~164jobs:165 pipeline:166 uses: myorg/platform-workflows/.github/workflows/standard-pipeline.yml@v2167 with:168 language: node169 deploy-target: production170 secrets: inherit171```172~173**Prácticas clave:**174- Templates CI/CD compartidos que los equipos incluyen (no copian)175- Escaneo de seguridad automático (SAST, auditoría de dependencias)176- Estrategias de despliegue estandarizadas (canary, blue/green)177- Rollback automático en caso de health checks fallidos178~179### Capa 4: Observabilidad180~181Monitoreo pre-configurado para que los desarrolladores obtengan dashboards y alertas listos para usar.182~183- **Métricas**: Prometheus + Grafana con dashboards estándar por servicio184- **Logging**: Logging estructurado con recolección centralizada (Loki, ELK)185- **Tracing**: Tracing distribuido con OpenTelemetry186- **Alertas**: Integración con PagerDuty/Opsgenie con valores predeterminados sensatos187~188```mermaid189graph LR190 Service[Your Service] -- "OpenTelemetry SDK" --> Collector[OTel Collector]191 Collector --> Prometheus[Prometheus]192 Collector --> Loki[Loki]193 Collector --> Tempo[Tempo]194 Prometheus --> Grafana[Grafana Dashboards]195 Loki --> Grafana196 Tempo --> Grafana197 Grafana --> PagerDuty[PagerDuty Alerts]198```199~200## Medir el Éxito201~202¿Cómo saber si tu plataforma funciona? Sigue estas métricas:203~204### Métricas DORA205- **Frecuencia de despliegue**: Con qué frecuencia el código llega a producción206- **Tiempo de entrega para cambios**: Tiempo desde el commit hasta producción207- **Tasa de fallos en cambios**: Porcentaje de despliegues que causan fallos208- **Tiempo medio de recuperación**: Tiempo para restaurar el servicio después de un incidente209~210### Métricas Específicas de la Plataforma211- **Tiempo hasta el primer despliegue**: Cuánto tiempo desde "nuevo servicio" hasta el primer despliegue en producción212- **Satisfacción del desarrollador (NPS)**: Encuesta a tus usuarios regularmente213- **Ratio de autoservicio**: % de solicitudes de infraestructura gestionadas sin tickets214- **Adopción del golden path**: % de servicios siguiendo el camino recomendado215~216## Errores Comunes217~218### 1. Construir Demasiado, Demasiado Pronto219Empieza con el mayor punto de dolor, no con una gran visión. Si los despliegues son dolorosos, empieza ahí. Si el aprovisionamiento toma semanas, empieza ahí.220~221### 2. No Tratar la Plataforma como un Producto222El equipo de plataforma necesita un product manager, investigación de usuarios y ciclos de feedback. Los desarrolladores son tus clientes - entiende sus necesidades.223~224### 3. Imponer en Lugar de Atraer225Las mejores plataformas se adoptan voluntariamente porque facilitan la vida de los desarrolladores. Si tienes que imponer el uso, tu plataforma no es lo suficientemente buena.226~227### 4. Ignorar la Developer Experience228Una plataforma con una UX terrible no se usará. Invierte en documentación clara, mensajes de error útiles y ciclos de feedback rápidos.229~230## Cómo Empezar231~232Una hoja de ruta práctica para construir tu primera IDP:233~234```mermaid235flowchart TD236 A[Month 1-2: Discovery] --> B[Month 3-4: MVP]237 B --> C[Month 5-6: Iterate]238 C --> D[Month 7+: Scale]239~240 A --> A1[Interview developers]241 A --> A2[Map pain points]242 A --> A3[Choose first golden path]243~244 B --> B1[Deploy Backstage]245 B --> B2[First service template]246 B --> B3[Standardized CI/CD]247~248 C --> C1[Gather feedback]249 C --> C2[Add infrastructure abstraction]250 C --> C3[Improve docs and onboarding]251~252 D --> D1[More templates and golden paths]253 D --> D2[Self-service infrastructure]254 D --> D3[Advanced observability]255```256~257### Plataforma Mínima Viable258~2591. **Catálogo de servicios** (Backstage) - saber qué existe y quién es el responsable2602. **Un template de servicio** - golden path para tu tipo de servicio más común2613. **CI/CD estandarizado** - pipeline compartido que los equipos incluyen2624. **Documentación básica** - cómo usar la plataforma, dónde obtener ayuda263~264Puedes construir este MVP en 2-3 meses con un equipo de 2-3 ingenieros.265~266## Conclusión267~268El Platform Engineering no se trata de construir la plataforma perfecta desde el primer día. Se trata de reducir incrementalmente la carga cognitiva de los desarrolladores para que puedan enfocarse en construir productos. Empieza pequeño, mide el impacto e itera basándote en el feedback de los desarrolladores.269~270Las organizaciones que inviertan en Platform Engineering tendrán una ventaja competitiva significativa: entrega más rápida, desarrolladores más felices y sistemas más confiables.271~272**Recursos:**273- [Team Topologies](https://teamtopologies.com/) - el libro que popularizó los equipos de plataforma274- [Backstage](https://backstage.io/) - el portal para desarrolladores open source de Spotify275- [CNCF Platforms White Paper](https://tag-app-delivery.cncf.io/whitepapers/platforms/) - definición de la comunidad y mejores prácticas276- [platformengineering.org](https://platformengineering.org/) - comunidad, eventos y recursos277~
NORMAL · platform-engineering-internal-developer-platform.md [readonly]277 lines · :q to close