Todos hemos trabajado en empresas que tienen curiosas políticas de seguridad. La cosa es mas cierta en la generación de passwords, cuando te piden mayúsculas, minúsculas, dígitos y otros símbolos arcanos. Cuando los administradores tenemos que asignarlas a miles, ya no es divertido y tenemos que generarlas de forma automática.
Aunque no está muy extendido, Telegram es un magnífico cliente de mensajería instantánea. Tiene varios puntos a favor, como por ejemplo seguridad, rapidez y su condición de libre. Lo que no se conoce tanto es que dispone de una API para crear bots que pueden responder automáticamente a sus usuarios.
Estaba yo el otro día buscando un servidor de aplicaciones para aplicaciones python, y entre todas las opciones encontré uno que es una auténtica joya: uWSGI. Se trata de un servidor modular, que permite servir un amplio abanico de posibilidades en cuanto a lenguajes se refiere, usando un plugin adecuado.
El otro día estuve optimizando unos scripts hechos en bash que había hecho otro. Como resultado del lenguaje usado era un caos de comandos, muchos de ellos para limpiar la salida y darle la forma adecuada. Los reescribí en python usando la librería cx_Oracle, que compilé en un fichero wheel.
Cuando nos encontramos delante de servidores únicos, es bastante fácil su gestión. Sin embargo, cuando tenemos 8 instancias de cada tipo de servidor, las tareas se vuelven lentas y repetitivas. Podemos incluso automatizar la gestión de una sola máquina para hacer su entorno fácilmente reproducible, en vistas a su reconstrucción.
Siempre que estoy trabajando en un servidor CentOS o RedHat, veo que las versiones de python que usan son bastante viejas. De hecho, hay una gran mejora de python entre las versiones 2.4, 2.6 y 2.7; así que es frecuente compilar una versión superior para nuestro uso.
En el artículo anterior de esta serie montamos el cluster de la base de datos que íbamos a necesitar para las aplicaciones que conformaban este entorno de ejemplo. Ahora que tenemos la base de datos, falta poner los servidores de aplicaciones que sirven nuestras aplicaciones y que usan el cluster.