13.1 - ¿Qué automatizar?

Es difícil encontrar tiempo para automatizar procesos, así que tenemos que ser selectivos. No podemos automatizarlo todo. Los problemas de los que se ocupan los SAs se dividen en cuatro categorías generales:

  • Cosas sencillas que se hacen una vez. La categoría 1 incluye la mayor parte del trabajo diario. Si es sencillo y se hace una sola vez, no tiene sentido automatizarlo. Se tardaría más en automatizar que en hacer la tarea.
  • Las cosas difíciles se hacen una vez. La categoría 2 contiene las tareas que son un poco difíciles de hacer bien la primera vez, y al registrar el comando final (de trabajo) en un script, se obtiene un registro gratuito de cómo hacer la tarea la próxima vez. Si lo tienes que hacer una vez, lo tendrás que volver a hacer en algún momento. Las cosas en esta categoría también incluyen las secuencias de comandos múltiples que se prueban mejor de un comando a la vez, hasta que tengas la secuencia completa funcionando. Entonces podrás utilizar la secuencia con la seguridad de que funcionará.
  • Cosas sencillas hechas a menudo. La categoría 3 es el caso obvio en el que la automatización dará sus frutos con mayor impacto. El tiempo que inviertas en automatizar el procedimiento se verá recompensado pronto, ya que se trata de una tarea que realizas con frecuencia. Automatice siempre las cosas aburridas y repetitivas.
  • Las cosas difíciles que se hacen a menudo. En la categoría 4 es donde muchos SA se quedan atascados porque han mordido más de lo que pueden masticar. Esta es la categoría en la que hay que tratar de convencer a la dirección para que asigne más recursos (tiempo y dinero) a la solución de este problema. El resultado puede ser la compra de un producto comercial, la integración de herramientas gratuitas y/o de código abierto para realizar la tarea, o el desarrollo de una solución interna.

Ahora, para los pensadores visuales, puede ser útil ver estas categorías en forma de gráfico (Figura 13-1).

Figura 13-1. Categorías de tareas SA

La gente suele sorprenderse al ver que automatizo cosas sencillas que se hacen a menudo. Si son sencillas, ¿por qué automatizarlas? Automatizo una gran variedad de procesos dentro de las categorías 2 y 3, desde las tareas más grandes hasta las líneas de comando más pequeñas, por la misma razón. La automatización de tareas me proporciona repetibilidad, escalabilidad y ejecución sin errores:

  • Repetibilidad significa que puedo hacer algo de forma consistente muchas veces. Por ejemplo, al configurar nuevas máquinas, quiero que todas empiecen con la misma configuración de software y preferencias. De lo contrario, darles soporte va a ser una pesadilla. Si automatizo el proceso de instalación, se convierte en algo repetible, y cada máquina empieza igual. Si he descubierto algo que funciona, quiero hacerlo exactamente así cada vez.
  • La automatización puede reemplazar la necesidad de memorizar algo complicado que se hace pocas veces. A veces, simplemente se tarda mucho tiempo en averiguar el conjunto correcto de opciones de la línea de comandos para conseguir que algo funcione. Convierto el comando único en un script para que dentro de unos meses no tenga que reinventar la rueda. Eso es repetibilidad a largo plazo. Por ejemplo, en Mac OS X, puedo grabar una imagen ISO en un CD-ROM con el comando hdutil. Sin embargo, en lugar de leer la página del manual cada vez para ayudarme a recordar todas las diferentes opciones que me gusta usar, he encapsulado ese comando de una línea en un script. Incluso si no utilizo ese script, puedo consultarlo para ver qué combinación de opciones me ha funcionado.
  • Escalabilidad. Esto significa que puedo realizar el proceso sin importar el tamaño de mi red. Una vez que automatizo un proceso, puedo ejecutar el script en todas mis máquinas, escalando mis conocimientos para que afecten a todos los hosts de mi red. Por ejemplo, modificar una configuración particular del servidor SSH es bastante fácil para una máquina. Unos segundos con un editor de texto, y sshd_config está cambiado. Sin embargo, si automatizo el proceso, puedo utilizar ese procedimiento en cientos de máquinas, posiblemente dejando que se ejecute durante la noche. No tengo que estar allí para cada uno. No tengo que preocuparme de si hay 10 o 10,000 máquinas que se actualizan.
  • La automatización puede ayudar a sustituir los procedimientos propensos a errores. Hay un montón de procedimientos cortos que son simplemente difíciles de escribir correctamente cada vez. Hay una breve secuencia de comandos que escribo a menudo. En esas pocas líneas, tuve que repetir el ID de inicio de sesión de un usuario (su nombre) tres veces y su UID de Unix (el número) dos veces. Es sencillo de teclear, pero es fácil cometer un error tipográfico. Al convertir esta tarea en un script, evito la posibilidad de cometer un error tipográfico. Aunque la secuencia sólo tiene unas pocas líneas, vale la pena tenerla como un script.

Volver al índice