Posts

Mysql Fabric is eager to do failover

Image
I've leanrt that Mysql Fabric is really handy in terms of decrease the pain when sysadmins try to create or enable High Availability on Mysql Servers. I'd like to mention a few configuration values that I think are worth to have in mind, specially in environments when the load in your database servers is high enough to making you worry, those values are the ones inside the [failure_tracking] group. Because, in order to detect failures in the cluster and promote  the most updated slave to be the new shiny master, some elements should be accomplished first. The formula sounds like this: "let us wait detection_timeout seconds among the trials detections during a detection_interval ", after that period of time. Then if detections has reached the max, then Fabric will promote a slave to master. However, in some environments maybe is worth to touch those values and increase them, for instance, maybe this is acceptable in your cluster, "if we detect 4 times wit

Gevent, monkey patching + threads en python

Hay ocasiones en que las coroutines  y hebras en python no se llevan muy bien, eso sucede cuando aplicas parches utilizando gevent en gran parte de bibliotecas generales. Me pasó que empecé a ver un error muy extraño: Exception KeyError : KeyError ( 9182734645 ,) in < module 'threading'...   Lo extraño es que no estaba trabajando con hebras, sino que necesitaba aplicar coroutines  a la biblioteca de sockets. A decir verdad, no quise usar tiempo en investigar porque sucedía y necesitaba hacer que mi código funcionara, por lo que simplemente fui más específico en aplicar el parche y solo toqué las bibliotecas relacionadas con sockets. Luego de eso obviamente, el error extraño desapareció. Lo bueno es que ser más específico tampoco fue difícil. > from gevent import monkey; monkey.patch_socket()

La manera de balancear carga a "la chilena" (hacerla cortita)

En este última época he dedicado un tiempo a la investigación de áreas que son de mi interés en particular, como el balanceo de carga. (Sí, soy un geek) y llegué a una area muy específica que es el balanceo de carga con memcached. Me entero que una forma de hacerlo muy simple es con un método que se le denomina ingenuo ("naive"), porque realmente hace la pega pero tiene algunos inconvenientes. Inconvenientes que trataré de abordar en un próximo artículo. Si de inmediato se te vino a la mente "round robin", déjame decirte que hay mejores formas de encontrar una solución. Este método utiliza el resultado de una función hash a una consulta cualquiera y el operador matemático módulo (el mismo que si estudiabas programación, usabas para determinar números pares e impares), con esto se determina fácilmente cual es el nodo que debería tener el registro que buscas y poder distribuir. Por lo tanto, si necesito distribuir carga en N servidores, la fórmula para determinar el

En la carrera por la Virtualización

Image
Preludio La compañía en la cual trabajo actualmente (Aguas San Pedro S.A.) es una de las pocas que es parte de un Holding que tiene a su haber una larga trayectoría junto a proyectos de código libre. El impulsor de esto es Fernando San Martín; a grandes rasgos todo esto se gestó y consolidó cuando él junto a su equipo de desarrolladores convencieron a los dueños de realizar el software contable y de presupuestos usando Python, Gtk y PostgreSQL. Desde entonces (varios años atrás), el uso de FLOSS no ha sido tema para el resto de las empresas. Luego de ese preludio (que quizás fue innecesario) comentaré sobre el resultado final de nuestra evaluación rápida de Hypervisors. Desde un inicio que se crea el area de TI que hemos usado virtualización utilizando Linux + KVM, mediante libvirt. La performance es buenísima y personalmente la recomiendo. Sin embargo, a mi parecer la configuración y mantención a largo plazo requiere de dedicación y un personal técnico muy calificado, por ende e

¿Extrañando a Gnome 2 en Ubuntu 12?

Image
Tenemos algunas máquinas que son estaciones de trabajo para atención de público, las cuales las tenemos con Ubuntu 12.04LTS. Aun no me acostumbro a Gnome 3 y compiz estaba haciendo de las suyas con nuestras estaciones, así que finalmente nos decidimos por ver la posibilidad de tener la interfaz clásica y deshacernos de compiz, es relativamente fácil. Abres un terminal y ejecutas: #quitamos compiz sudo apt-get remove --purge compiz -y #agregamos la interfaz antigua sudo apt-get install gnome-session-fallback Seleccionar Gnome Classic (o "No effects) Interfaz clásica

La relevancia "del Software"

Image
 En un mundo donde todo requiere una rentabilidad y utilidad alta, y donde el negocio pareciera ser lo más importante del día, es cuanto más las decisiones se tornan críticas. Sí, hablo de compañías pero en otra circunstancia ¿has visto un niño recibir sus primeras monedas o su primera mesada? De un momento a otro llegó a tener lo que sus padres usan para ir a comprar y para salir, un poder que tienen los niños grandes para pastillas, juguetes, pastillas y juguetes y... quizás en algo más pero no soy capaz de recordar como era.  Cuando convertimos esta analogía a las empresas, lo podemos asemejar a una inyección económica reciente que permitirá crecer, desarrollar un producto o mejorar en algo que hasta ahora solo ha sido soñado. Sin embargo, al igual que ese papá se preguntará (o quizás recomendará que hacer) que ha hecho su pequeñín en los meses posteriores, así también un inversionista querrá saber que se está haciendo con su dinero y cuales son las proyecciones, rentabilidades, p

Cambiando un "class MyClass(object):..." por papeles y reuniones

En mis épocas de estudiante no imaginaba otro futuro que trabajar como desarrollador, ser parte de un grupo de gente talentosa y creativa lo cual se convirtió en realidad desde 2009 con empresas como Mandriva Linux y Tubaloo. Estaba en donde "las papas queman" más contento que "perro con pulgas" y más emocionado que "chancho con afrecho" Pero en  la actualidad ... me he migrado casi en su totalidad de crear software y sistemas a ser alguien metido en reuniones discutiendo cosas como centros de costos, cuentas contables, inversión y mantenimiento de sistemas, todo un CTO de una , empresa de servicios. Empresa pequeña con varios sistemas, usuarios, cachos, alegrías y retos interesantes, retos que nunca había visto como por ejemplo tomar desiciones como ¿Debemos comprar un ERP?, ¿Como optimizamos el plan de cuentas?, ¿Como administramos el activo fijo? o ¿Cuál es el plan de crecimiento en TI?. Sí, una lata podrás decir pero me he dado cuenta, dado cierta