Entradas

Introducción a DevOps

Imagen
El siguiente documento es la mejor introducción de DevOps que he leído hasta el momento. Es conciso en cuanto qué podemos esperar de una cultura organizacional de tal índole, haciendo énfasis en los pilares que la construyen. 
Los ejemplos son lúdicos y nos ayudan a imaginar algunos de los pasos a considerar si es que queremos promover dentro de nuestras organizaciones una cultura devops. Sirve como un primer manual con lo cual colocar a las personas en la sensibilidad que requerimos para comenzar el proceso de transformación del mindset.
Les recomiendo mucho su lectura, es un artículo breve que toda persona cercana a las TIs debería considerar. Lo pueden descargar sin ningún costo en Amazon o en el sitio de Oreilly (solo requiere suscripción).


split() en AWK

AWK contiene muchas funciones (aka build-in) que nos permiten manipular los string. La función split() es sumamente útil para la transformación de strings en arreglos. El string puede provenir de un archivo de texto, variable o resultado de cualquier substring.
var =split(string,array_name,separator)

Ejemplo

#!/bin/awk

{
    my_string="Hola mundo cruel!"

    ss = split(my_string,my_array," ")

    for (my_str in my_array)
          print my_str, my_array[my_str]

}
Salida en línea de comandos.

1 Hola
2 mundo
3 cruel!

Iniciando con Python

Imagen
Python programming for beginners de Jason Cannon es uno de los mejores libros introductorios que he leído. Parte del secreto de Cannon es su escritura lacónica y economía en páginas, haciendo magnífico para aquellos que tienen fundamentos de programación de otros lenguajes, haciendo sólo la absorción de la sintaxis y reforzamiento a través de ejemplos.

Con este libro podrás aprender a construir sencillos programas con Python y sus múltiples funcionalidades para trabajar con datos y fuentes externas. Recomiendo que al finalizar el libro, no se abandone el aprendizaje de Python y se continúe con libros más avanzados para afianzar el conocimiento adquirido. No cae nada mal algo de algoritmia para pensar eficientemente en la resolución de problemas.

Análisis de efectividad en lenguajes de programación.

Imagen
Últimamente me ha dado por realizar pequeñas prácticas que hace mucho realicé como parte de mi descubrimiento en algunos lenguajes de programación. He leído mucho respecto a los sabores y performance de cada lenguaje, cuyos argumentos no trataré por ser sumamente objetivos. Algunos valoran la facilidad, otros la poca verborrea que facilitan la construcción de complejos componentes de software.
A continuación expongo los códigos comparados y las salidas en terminal.
Características de la computadora. CPU: 2 CPUs con 2 Cores AMD Turion(tm) 64 X2 Mobile Technology TL-60 a 1800.000 Mhz.Memoria RAM: 3.7GSistema Operativo: Fedora release 20 (Heisenbug)

Versiones de compiladores/interpretesPython: 2.7C: gcc version 4.8.3 20140911 (Red Hat 4.8.3-7) (GCC)Java: 1.7 hotspot a 64 bitsRuby: 2.0Go: 1.4.2 64 bits
Python


for my_range in range(1,90000000):print (my_range)


Tiempo de ejecución

real    10m24.691s user    2m23.193s sys     0m7.727s

C
int i = 0; for(i=0;i<=90000000;i++) { printf("%d\n…

¿Por qué ser reactivos?

Imagen
Un documento interesante sobre algunos de los lineamientos para el diseño de arquitecturas de software resilientes, no solo dentro de la aplicación, también como parte de las capas de hardware y software. Los sistemas reactivos, en resumen, son aquellos que pueden tomar acciones ante una falla esperada en alguno de los componentes, por ejemplo, un servicio. También es mandatorio decir que se apoya en los patrones asíncronos, así evitando el desperdicio de recursos por bloqueo de hilos o conexiones. 
Ahora con el mundo on-premise, las cosas se ponen mucho más sencillas para construir arquitecturas robustas de software, aunado a la simplicidad de los orquestadores y proveedores de automatización para cualquier componente en el día a día.
Como nos tiene acostumbrados, O'reilly imprime un gran esfuerzo técnico y de edición en temas informáticos.


Les dejo aquí el PDF de libre descarga.


Pluging de HAProxy para Collectd.

Introducción Por fin encuentro un poco de tiempo para escribir. Los temas que ahora me atañen son sobre SRE (Site Reliability Engineering), y dentro de está multidisciplina podemos hallar un cantidad sorprendente de áreas que no aparecen directamente en su definición, sin embargo, la hacen posible. 
Uno de los pilares es el monitoreo de los componentes de la arquitectura que soporta las aplicaciones, incluídos los productos de software utilizados. Con el propósito de controlar el día a día (estadísticas) de comportamiento y desempeño de cada pieza, es necesario instrumentar los recolectores de métricas. 
Yo trabajo con Collectd, puesto que me facilita mucho la vida al momento de integrar agentes que me permitan la recolección de métricas en poco tiempo con un consumo trivial de recursos así como la estabilidad que el proyecto goza. 
Integración de HAProxy con Collectd
Al día de hoy existen al menos 3 plugins que el sitio de collectd.org menciona, no obstante, ninguno de ellos me funci…

Beginning Elastic Stack

Imagen
Este es un libro ideal para comenzar a dimensionar las posibilidades que ELK ofrece a sus usuarios. A pesar que es una versión vieja que utiliza, tiene mucho de la esencia que podemos encontrar en las actuales versiones de ELK. 
Su enfoque práctico hace que desde el primer capítulo pongamos en marcha la comprensión y utilización de cada uno de los componentes que hacen de ELK una solución flexible y con mucho potencial para cualquier empresa con necesidades de explotación de la información contenida en sus logs, entre otros.
Incluye desde el inicio la incorporación de filebeats, un agente sumamente versátil para el envío, y primer filtro, de la información que pretendemos centralizar y clasificar.