(O del por qué DevOps es sólo una parte...)
En esta columna intentaré definir y explicar los conceptos de Platform Engineering, SRE y DevOps, y por qué es importante entenderlos, diferenciarlos y saber cuándo usarlos.
Nota: Como todo blog, ésta es una nota basada en experiencias y opiniones personales, no es una guía oficial ni un documento técnico. Toda corrección, sugerencia o comentario es bienvenido.
Platform Engineering
Proceso de desarrollo, mantenimiento y mejora de una plataforma o ecosistema donde vivirá tu proyecto, que puede incluir desde la creación de una infraestructura hasta APIs para la provisión interna de los servicios e infraestructura, en conjunto con sistemas tipo "Internal Developer Portals" (IdP) y similares.
[
Internal Developer Platform - SREDevOps.org - SRE, DevOps, Cloud Native, Linux, AI/ML, Platform Engineering, OpenSource
SREDevOps.org - SRE, DevOps, Cloud Native, Linux, AI/ML, Platform Engineering, OpenSource
](sredevops.org/tag/internal-developer-platform)
Site Reliability Engineering (SRE)
enfoque para garantizar la disponibilidad y el rendimiento de un sistema o aplicación. Se centra en automatizar y optimizar procesos para garantizar que el sistema esté disponible y funcione correctamente en todo momento.
[
SRE - SREDevOps.org - SRE, DevOps, Cloud Native, Linux, AI/ML, Platform Engineering, OpenSource
SREDevOps.org - SRE, DevOps, Cloud Native, Linux, AI/ML, Platform Engineering, OpenSource
DevOps
DevOps es una cultura y conjunto de prácticas que busca unir el desarrollo de software y la operación de sistemas para mejorar la velocidad y la eficiencia del desarrollo de aplicaciones.
[
DevOps - SREDevOps.org - SRE, DevOps, Cloud Native, Linux, AI/ML, Platform Engineering, OpenSource
SREDevOps.org - SRE, DevOps, Cloud Native, Linux, AI/ML, Platform Engineering, OpenSource
En resumen, Platform Engineering se enfoca en desarrollar y mantener una plataforma tecnológica, SRE en garantizar la disponibilidad y rendimiento de un sistema y DevOps en unir el desarrollo de software y operación de sistemas para mejorar la velocidad y eficiencia del desarrollo de aplicaciones.
Nombre
Ideas clave ->
Platform Eng. ->
cultura org.
proyectos
automatización
integraciones
self service
SRE ->
arquitectura
observabilidad
infraestructura
estabilidad
escalabilidad
DevOps ->
colaboración
desarrollo
entrega continua
integración
cultura ágil
Pero, qué realmente necesito y para qué lo haría?
El tiempo y esfuerzo requerido para una adopción exitosa de SRE, DevOps o Ingeniería de Plataformas puede variar dependiendo de la organización específica y del estado actual de su infraestructura y procesos de TI. Por lo general, se tarda varios meses a varios años para que una organización adopte completamente y vea los beneficios de estas prácticas.
Un ejemplo de estudio de caso de una adopción exitosa de SRE es Google. Desarrollaron el concepto de SRE y lo han estado utilizando durante muchos años. Google ha reportado un aumento significativo en la eficiencia, disponibilidad y confiabilidad de sus sistemas desde la adopción de SRE. En su caso, se tardaron varios años en integrar completamente las prácticas de SRE en su cultura y procesos de ingeniería, pero los resultados valieron la pena el esfuerzo.
Otro ejemplo de adopción exitosa de DevOps es Spotify, comenzaron su viaje en 2010 y lograron un aumento significativo en la eficiencia y velocidad de entrega al implementar prácticas de integración continua y entrega continua, así como otras metodologías de DevOps.
Según la literatura y los expertos en la industria, hay varios errores comunes que las organizaciones cometen al implementar DevOps
Existen varios errores comunes que cometen las organizaciones al intentar adoptar DevOps, Platform Engineering, etc, entre ellas están:
- Falta de objetivos y metas claros: Sin una comprensión clara de los resultados deseados y beneficios de la ingeniería de plataformas, puede ser difícil medir el progreso y determinar si la implementación es exitosa.
- Recursos insuficientes: Adoptar la ingeniería de plataformas requiere una inversión significativa de tiempo y recursos. Sin recursos adecuados, puede ser difícil implementar y mantener la infraestructura y procesos necesarios.
- Falta de comunicación y colaboración: La ingeniería de plataformas requiere un alto nivel de colaboración y comunicación entre equipos. Sin una comunicación efectiva, puede ser difícil coordinar esfuerzos y asegurar que todos trabajen hacia los mismos objetivos.
- Enfoque excesivo en la tecnología: Las organizaciones también deben enfocarse en construir una cultura y procesos que respalden la ingeniería de plataformas.
- Negligencia de la seguridad y cumplimiento: La ingeniería de plataformas requiere un enfoque en la seguridad y cumplimiento para garantizar que los sistemas sean seguros y cumplan con las regulaciones de la industria.
- Negligencia de la monitorización y observabilidad: La ingeniería de plataformas requiere un enfoque en la monitorización y observabilidad para garantizar que los sistemas funcionen correctamente y que los problemas puedan ser identificados y resueltos rápidamente.
- No involucrar a los miembros del equipo adecuados: La ingeniería de plataformas requiere un equipo diverso con diferentes experticias y antecedentes. No involucrar a las personas adecuadas puede llevar a malentendidos y soluciones inefectivas.
Para tener éxito con una cultura de ingeniería de plataformas, las organizaciones deben enfocarse en objetivos y metas claros, proporcionar recursos suficientes, comunicarse y colaborar efectivamente, enfocarse en construir una cultura y procesos que respalden, priorizar la seguridad y cumplimiento, invertir en monitorización y observabilidad, e involucrar a los miembros del equipo adecuados