Mise en Place para SysAdmins

Uno de los mayores aportes de los franceses a la humanidad ha sido su gastronomía. Y, dentro de ese amplísimo aporte, está la metodología para el manejo profesional de una cocina. Una de esas metodologías (¿O debería llamarle más bien «procedimiento»?) es el «Mise en place», que no es otra cosa que -como dice su traducción- la puesta en sitio de los implementos, ingredientes y materiales que requieres en el servicio, así como todo el proceso de preparación previa.

Hay gente que considera el Mise en place como una religión (Hello, Mr. Bourdain), por lo vital que es dentro de una cocina. ¿Cuántas veces no les ha pasado que vienen con un plato en mente, y cuando llegan a casa, no hay un ingrediente vital para la preparación? O, peor: empezar a cocinar y darte cuenta que ese ingrediente falta. Sin una preparación previa, e incluso sin un estudio situacional de tu área de trabajo, los resultados son, en la franca mayoría de las ocasiones, un completo desastre en el que la improvisación termina siendo el pan del día y las soluciones dejan de ser tales para ser «pañitos de agua caliente».

Una de las áreas en las que eso se nota con mayor énfasis es en la de Administración de Sistemas (O servidores), en donde una práctica descuidada puede traer consecuencias realmente graves. Y aquí habla mi experiencia personal: Las veces que no se hace un estudio previo, se toman en cuenta todas las posibles situaciones y se realizan planes de acción acordes a ellos, se suele terminar dando carreras de última hora tratando de solventar esa situación que no se preveyó en su momento y que, en el mejor de los casos, sólo te quita tiempo. Pero, la verdad sea dicha, suele quitarte también dinero y un poquito de orgullo.

Entonces, ¿qué tiene que ver los procedimientos de cocina francesa con el System Administration? Pues, precisamente el Mise en place, como podrán haber notado. Casi en cualquier carrera, puedes hacer una variante de la puesta a punto para poder trabajar lo menos estresado posible. Ahora bien, ¿Qué cosas en concreto se pueden hacer?

1. Documentarse, siempre documentarse: El viejo refrán dice «El saber no ocupa espacio». Antes de realizar una implementación, o de saltar a decir «TE LO TENGO» sin siquiera saber de qué diantres hablan, es mejor usar un par de horas (o de días, depende de la magnitud del requerimiento y nuestro sempiterno nivel de ignorancia) para hojear y luego leer en profundidad aquellas literaturas relacionadas con el tema que ocupa. Admitir desconocimiento es bueno. Es mejor decir «No domino el tema, pero si me das un par de días, te puedo dar una respuesta e incluso hacerte un presupuesto» que luego llegar con la pata de palo y el loro en el hombro.

2. Estudiar la situación: Sí, claro… me presionan y quiero salir de ese rollo rápido. Pero, como les dije anteriormente, es preferible perder un par de horas analizando cada posible detalle y planteándose cada mínimo escenario para, de ese modo, no tener que llevarse sorpresas -mayormente desagradables- en el camino de la implementación. No hay preguntas tontas, sino tontos que no preguntan. El realizar todas las preguntas que aclaren todas las dudas, y dejar que tu contraparte haga todas las preguntas, detalle todos los requerimientos y sea absolutamente claro con la forma en la que espera que las cosas salgan. Ese período en el que la comunicación fluye y las diferencias de opinión surgen debe ser aprovechado, para de ese modo saber exactamente qué toca hacer.

3. Tener siempre a mano un servidor de pruebas: Con la posibilidad de crear máquinas virtuales en equipos con cada vez mayores y mejores prestaciones de hardware, es prácticamente un pecado no tener entornos en los que se pueda probar y, -más frecuentemente de lo que se quisiera admitir- romper. Allí, en ese espacio confinado y cerrado como un laboratorio, podrás hacer todas las pruebas, con un enfoque más o menos metodológico, dependiendo de tus capacidades o de la naturaleza de las pruebas. A través del ensayo y error, y error, y error, y error, y error…

4. Preparar los ingredientes: En el caso particular del System Administration, implementar un servicio en particular, o realizar alguna labor de respaldo o recuperación, requiere de cierta cantidad de software e incluso de configuración en mitad de la implementación. Entonces, a medida que vayas necesitando una librería, un paquete de desarrollo, un addon, un plugin o todo un paquete, asegúrate de tomarlo en cuenta mientras estés en tu entorno de pruebas. De ese modo, al pasar a producción, podemos aplicar esas correcciones o preparaciones de una manera más o menos automática.

5. Crear tu libro de recetas: Complementando los dos puntos anteriores, una vez que ya perfeccionaste la técnica, que manejas y respetas los ingredientes, que tienes una idea clara de qué tiempos manejar y cómo preparar todo, puedes pasar a hacer tu receta para la implementación. Eso logra dos cosas: 1- Regular el proceso, logrando de esa manera un estándar (que puede o no haber sido ya definido), y 2- Permitirte crear scripts de shell que hagan el trabajo por ti. Pueden creerme cuando les digo que llega un momento en el que instalar y configurar BIND9+Apache2+PHP5+MySQL+Postgres+RVM+Ruby 1.9.3+Rails 3.0+Git+Capistrano+Perolitos de seguridad diversos llega a ser fastidioso.

6. Cocinar (o administrar) como un rockstar: Y, no… No me refiero a consumiendo drogas, en un camerino con groupies o en medio de una gira. Me refiero a hacerlo con confianza, a hacerlo incluso con un poco de arrogancia. Si todo tu Mise en place fue bien hecho, vas a disfrutar la experiencia de [cocinar/implementar un servidor] sin ningún contratiempo ni sobresalto. Es decir, las cosas saldrán fluidas porque te encargaste de que el proceso estuviese libre de stress. Total, el stress ya lo pasaste en los cinco pasos previos.

Estoy confiado en que disfrutaron la lectura, aunque no hayan sido más que respuestas obvias. Pero, si Paulo Coelho hace tanto dinero haciendo exactamente lo mismo, ¿Por qué yo no puedo escribir sandeces? ¡¡Hasta otra!!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *