SRE y la caja de herramientas
Al dedicarse a una tarea tan importante, los Ingenieros de Fiabilidad de Sitio (SRE) necesitan contar con aplicaciones y lenguajes que garanticen su éxito profesional. En este artículo, cubriremos las principales herramientas de SRE y el uso de cada una de ellas.
En su trabajo, los médicos utilizan el estetoscopio, el bisturí o el tensiómetro para garantizar la salud del paciente. Un chef tiene cuchillos, espátulas y termómetros para asegurarse de que el plato está en su punto. ¿Y los Ingenieros de Fiabilidad de Sitio (SRE)? Al igual que otros profesionales, también utilizan herramientas especializadas para realizar diversos procesos sin errores o adaptados a lo que se necesita.
Quizás un buen número de estas herramientas no se llevan en el cuello, pero funcionan exactamente igual, cada una con un propósito específico. ¿Cuáles son? Veámoslas en detalle.
Herramientas de SRE
Python: Es obvio. Este lenguaje de programación es como la Roma de los desarrolladores: todos los caminos conducen a ella. Gracias a su facilidad de uso y al hecho de que suele ser uno de los primeros protagonistas en la vida de un SRE, dominar Python es a menudo como la carne de la hamburguesa.
Golang/Kotlin/Rub/Java: Un SRE que trabaje en el desarrollo de software o aplicaciones web debe tener en cuenta estos lenguajes adicionales, cada uno con particularidades y ventajas. Por ejemplo, algunos prefieren Kotlin a Java o viceversa, mientras que otros prefieren la velocidad de Golang o el alma libre de Ruby que, si se combina con Rails, se convierte en algo así como un super saiyajín. Elige lo que mejor se adapte a tu trabajo.
Prometheus: En 2012, dos Prometheus cobraron vida: la película de Ridley Scott (que no conquistó nuestros corazones) y la aplicación gratuita de código abierto, que nos llevó a las estrellas. Su versatilidad para recoger métricas en tiempo real sobre determinadas bases de datos, la visualización que ofrece de las mismas y el hecho de que disponga de su propia reserva de datos lo convierten en un caballo de batalla entre los SRE.
Docker: ¿Te vas de viaje y haces milagros para comprimir todo en tu maleta? Digamos que Docker funciona de forma similar, pero sin estrés ni sobrecarga. Lo que hace este software de código abierto es "empaquetar" los códigos fuente en contenedores digitales, liberándolos de los problemas del sistema operativo u otros dolores de cabeza. Docker hace que el código sea portátil, lo que ayuda mucho a automatizar y acelerar las aplicaciones.
Kubernetes: Desde 2014, este piloto o timonel (sí, eso es lo que significa el nombre en griego) organiza y gestiona estos contenedores de código, pero lo hace como un director de orquesta. El software sabe cuándo, cómo y dónde ajustar esos contenedores. Como esa palabra se menciona con Docker, se podría pensar que son competidores. No. Digamos que son perspectivas diferentes que no compiten. Kubernetes genera romance entre los SREs porque facilita la revisión de la aplicación o su ajuste sin interrumpirla, lo que es apreciado por los usuarios.
Grafana: Si alguna vez has jugado a Halo, Grafana sería una especie de Cortana (antes de que se volviera psicópata, claro) que sigue, en todo momento, el desarrollo del código abierto. Tiene una gran capacidad para analizar y monitorizar todo lo que ocurre con él, ofreciendo una visualización completa y sencilla, al tiempo que aporta soluciones (por eso lo asociamos aquí con la venerada Inteligencia Artificial del videojuego). Está escrita en lenguaje Go y comparte continuamente métricas, gráficos y estadísticas que le ayudarán a tomar la decisión correcta. Tenlo en cuenta, Master Chief.
Jenkins: Este software es bastante útil (de ahí su identidad gráfica). ¿Qué hace? La vida más fácil. Hablando en serio, Jenkins automatiza TODO dentro del proceso de desarrollo de software basado en el matrimonio de CI/CD (Integración Continua y Entrega Continua). Jenkins está escrito en Java y soporta muchos programas adicionales como Mercurial, Git, Subversion y otros similares.
Git: Este software es como un informe forense de todo lo que ocurre. Su utilidad reside en que indica todos los cambios en un código o archivo, cuándo se hicieron, dónde y cómo. Esto es muy útil cuando varios desarrolladores trabajan simultáneamente y ya no saben lo que ha hecho su compañero. Además de promover el trabajo en equipo y la concurrencia, Git mantiene un registro completo de todo lo que sucede, para que todos puedan tener éxito en lo que hacen.
Diríamos que estas son las principales herramientas utilizadas por un SRE. Nos parece muy difícil que un Ingeniero de Fiabilidad de Sitio pueda hacer su trabajo sin tener conocimientos en al menos uno de ellos. Seguro que al leer este artículo dices"ah, yo uso esto o aquello en vez de aquello" o"no soy muy fan de esto o aquello". Es muy probable. Todo dependerá de tu trabajo, años de experiencia o preferencias operativas.
Que la Fuerza te acompañe.
Revelo Content Network da la bienvenida a todas las razas, etnias, nacionalidades, credos, géneros, orientaciones, puntos de vista e ideologías, siempre y cuando promuevan la diversidad, la equidad, la inclusión y el crecimiento profesional de los profesionales en tecnología.