¿Buscas nuestro logo?
Aquí te dejamos una copia, pero si necesitas más opciones o quieres conocer más, visita nuestra área de marca.
¿Buscas nuestro logo?
Aquí te dejamos una copia, pero si necesitas más opciones o quieres conocer más, visita nuestra área de marca.
techbiz
David Morales y Alejandro Cavero Hace 6 días Cargando comentarios…
Platform Engineering desarrolla una plataforma que se comporta como una capa de software extra utilizada por equipos de desarrollo, operaciones y otros stakeholders. Por ello, es esencial gestionar la plataforma como un producto de software, con el mismo nivel de rigor, planificación y enfoque user-centric que se aplicaría a cualquier producto destinado a clientes finales.
El equipo de plataforma debe construir y mantener la plataforma en entornos de desarrollo propios y aislados. Esta separación garantiza que el desarrollo de la plataforma no interfiera con el desarrollo habitual de aplicaciones, permitiendo al equipo de plataforma experimentar, innovar e iterar sin comprometer la estabilidad de los entornos productivos.
La plataforma debe evolucionar con versiones claramente definidas, siguiendo una convención de versionado consistente. Esto asegura que los usuarios (tus clientes internos) siempre estén informados sobre cambios, mejoras y posibles peticiones. Comunicar regularmente estas actualizaciones ayuda a que los equipos comprendan cómo evoluciona la plataforma y cómo impacta en su trabajo.
Las funcionalidades deben incorporarse de manera gradual, con distintos niveles de madurez en cada release. Este enfoque incremental permite que la plataforma evolucione en alineación con las necesidades y feedback de los usuarios, asegurando que cada nueva funcionalidad aporte valor y estabilidad.
El equipo de plataforma debe establecer una trazabilidad clara sobre la evolución, las funcionalidades y el ciclo de vida de la plataforma. Esto implica documentar cambios, hacer un seguimiento del nivel de madurez de cada funcionalidad y mantener un roadmap que detalle los desarrollos futuros. Esta transparencia genera confianza en los usuarios y garantiza que la plataforma siga alineada con los objetivos estratégicos de la organización.
Los equipos de desarrollo deben construir sus aplicaciones sobre la plataforma, asegurando que el código que producen sea compatible con los sistemas desplegados en producción. Esta práctica elimina el problema de “en mi máquina funciona”, ya que los entornos de desarrollo y producción son consistentes.
La plataforma debe integrarse en el proceso de integración continua (CI) para garantizar la calidad. Al ejecutar tests y validaciones en entornos específicos de la plataforma, el equipo puede asegurarse de que todos los cambios cumplen con los estándares requeridos antes de ser liberados.
Las nuevas versiones de los productos desarrollados se alinearán con las versiones soportadas de la plataforma para asegurar su compatibilidad. Estas versiones se tienen que probar de forma exhaustiva para garantizar su correcto funcionamiento, minimizando el riesgo de problemas en producción.
El equipo de plataforma crea Golden Paths, workflows y herramientas estandarizadas basadas en buenas prácticas, permitiendo a los equipos consumir las funcionalidades de la plataforma de forma eficiente. Estos Golden Paths simplifican procesos complejos y ofrecen una forma clara y optimizada de aprovechar las funcionalidades de la plataforma.
Los Golden Paths deben gestionarse como contratos entre los equipos internos y el equipo de plataforma. Al igual que las APIs, estos contratos definen las expectativas, entradas y salidas de las funcionalidades de la plataforma. Este enfoque garantiza que los Golden Paths sean confiables, mantenibles y puedan evolucionar sin afectar a los equipos que dependen de ellos.
Los Golden Paths tienen que ser accesibles a través de recursos de alto nivel como librerías de código, templates o mediante un portal de desarrollo. Este portal actúa como un hub centralizado donde se puede acceder a documentación, ejemplos y herramientas para interactuar con la plataforma de manera eficiente. Este enfoque user-centric facilita la adopción y el uso de las funcionalidades de la plataforma, impulsando la satisfacción de los equipos internos.
El Whitepaper de Platform Engineering publicado por la CNCF ofrece un buen enfoque sobre este tema:
A continuación, se presentan los capability domains que deberíamos considerar al construir plataformas para entornos cloud native:
Capability | Descripción | Proyectos CNCF/CDF de referencia |
---|---|---|
Portales web para aprovisionamiento y observabilidad | Publicar documentación, catálogos de servicios y plantillas de proyectos. Proveer telemetría sobre sistemas y características. | Backstage |
APIs para aprovisionamiento automático | Formatos estructurados para crear, actualizar, eliminar y observar servicios automáticamente. | Kubernetes, Crossplane, Operator Framework, Helm, KubeVela |
Plantillas y documentación de Golden Paths | Composiciones predefinidas de código y servicios bien integrados para acelerar el desarrollo. | ArtifactHub, Score |
Automatización de construcción y pruebas | Automatizar la construcción y prueba de productos y servicios digitales. | Tekton, Jenkins, Buildpacks, ko, Carvel |
Automatización de despliegue y verificación de servicios | Automatizar y monitorear la entrega de servicios. | Argo, Flux, Keptn, Flagger, OpenFeature |
Entornos de desarrollo | Habilitar la investigación y desarrollo de aplicaciones y sistemas. | Devfile, Nocalhost, Telepresence, DevSpace |
Observabilidad de aplicaciones | Instrumentar aplicaciones, recopilar y analizar telemetría y compartir información con las partes interesadas. | OpenTelemetry, Jaeger, Prometheus, Thanos, Fluentd, Grafana, OpenCost |
Servicios de infraestructura | Ejecutar código de aplicación, conectar componentes y gestionar la persistencia de datos. | Kubernetes, KubeVirt, Knative, WasmEdge CNI, Istio, Cilium, Envoy, Linkerd, CoreDNS Rook, Longhorn, Etcd |
Servicios de datos | Persistencia de datos estructurados para aplicaciones. | TiKV, Vitess, SchemaHero |
Servicios de mensajería y eventos | Permitir comunicación asíncrona entre aplicaciones. | Strimzi, NATS, gRPC, Knative, Dapr |
Servicios de identidad y gestión de secretos | Proveer credenciales y localizadores para workloads. Facilitar la autenticación entre servicios. | Dex, External Secrets, SPIFFE/SPIRE, Teller, cert-manager |
Servicios de seguridad | Monitorear comportamiento en tiempo de ejecución, detectar y remediar anomalías. Asegurar que los builds y artefactos no contengan vulnerabilidades. Aplicar restricciones según políticas empresariales. | Falco, In-toto, KubeArmor, OPA, Kyverno, Cloud Custodian |
Almacenamiento de artefactos | Almacenar, publicar y asegurar artefactos generados para producción. Gestionar caché y análisis de artefactos de terceros. Gestionar código fuente. | ArtifactHub, Harbor, Distribution, Porter |
Nuestra experiencia nos dice que, además de las características sugeridas por la CNCF, existen otras igualmente relevantes como gestión de actualizaciones de la plataforma, recuperación ante desastres o gestión de APIs.
Un punto clave sobre el alcance del equipo de plataforma destacado en el whitepaper es el siguiente:
Si bien las plataformas proporcionan características esenciales, es fundamental entender que los equipos de plataforma no siempre deben implementar estas características por sí mismos. Proveedores de servicios gestionados o equipos internos dedicados pueden encargarse de las implementaciones subyacentes, mientras que la plataforma actúa como la capa más delgada posible que garantiza coherencia entre estas implementaciones y satisface los requisitos de la organización.
Por lo tanto, es fundamental establecer una definición clara de responsabilidades para cada característica, evitando así zonas grises en el stack tecnológico que puedan generar confusión sobre qué equipo es responsable de cada parte.
Los comentarios serán moderados. Serán visibles si aportan un argumento constructivo. Si no estás de acuerdo con algún punto, por favor, muestra tus opiniones de manera educada.
Cuéntanos qué te parece.