14
Xeround, una alternativa de autoescalado de Mysql en Amazon
No comments · Posted by Alicia Alcalde Delgado in Cloud Computing
Una de las carencias a las que nos hemos enfrentado al utilizar el servicio de Amazon RDS, es el autoescalado. En algunos proyectos, nos ha sido insuficiente la creación de una instancia RDS de replica lectura y puesto que actualmente Amazon no dispone de ninguna opción para balanceo de las mismas, decidimos buscar posibles alternativas.
Xeround nos ofrece una solución a bajo coste, permitiendo autoescalar en función del consumo de CPU, número de conexiones y tamaño de la Base de Datos, pagando por los GB de almacenamiento y los GB transferidos. Xeround está disponible para AWS ( Europa y EEUU) y para Rackspace, Keroku, Engine Yard y HP Cloud Services.
Arquitectura
A continuación, detallamos las tres capas de las que se compone la arquitectura de Xeround:

- Capa de Balanceo. Si superamos el umbral de conexiones, Xeround autoescalará inmediatamente tantos balanceadores como sean necesarios, repartiendo la carga entre ellos de una manera transparente para el cliente. Dicho en otras palabras, no tendremos que realizar ningún cambio de configuración de nuestra aplicación.
- Capa de Motor de SQL. Esta capa es la encargada de acceder y manipular la información de la base de datos y por tanto, la que realizará todas las consultas a la base de datos. Xeround ha creado un motor de almacenamiento en Mysql, el cual funciona como un componente independiente, proporcionando la capacidad de aprovisionar en función del consumo de CPU, tantos componentes como sean necesarios.
- Capa de Almacenamiento de Datos. Esta capa es la encargada de manejar los datos en memoria y en disco. En el momento, en que el volumen de información superé el umbral establecido, Xeround asignará más memoria RAM y almacenamiento para nuestra instancia de base de datos.
En definitiva, Xeround nos ofrece alta disponibilidad, detección automática y reparación en caso de fallo, consistencia y elasticidad a un precio reducido.
No tags
Un paso previo, pero necesario antes de empezar a instalar y configurar Centreon es la compilación e instalación de NDOUtis, un addon para Nagios que sirve para almacenar la información generada por Nagios en Mysql.
14
Amazon ELB. Error: Malformed input-Unrecognized
No comments · Posted by Alicia Alcalde Delgado in Cloud Computing
El objetivo de este post, es compartir uno de los problemas que nos encontramos al usar la API de ELB. En nuestro caso, creamos un balanceador a través de la interfaz web de AWS y al intentar visualizar sus propiedades a través del comando elb-describe-lbs, nos apareció el error Malformed input-Unrecognized.
Para solucionarlo, simplemente es necesario definir las siguientes variables de entorno:
export AWS_CREDENTIAL_FILE=/rutadelfichero/aws_credenciales.txt export EC2_REGION=eu-west-1
El formato del fichero aws_credenciales.txt será el siguiente:
AWSAccessKeyId= XXXX AWSSecretKey=YYYY
No tags
28
Trabajando con Scrum
No comments · Posted by Veronica Algaba in BBVA GlobalNet, Métodos ágiles de trabajo
Durante el último periodo hemos querido implantar Scrum como método ágil de trabajo.
Jorge nos explicó en un post anterior qué era Scrum, pero, ¿cómo lo hemos llevado a cabo y cuál ha sido nuestra opinión al respecto?
Llevaba tiempo oyendo hablar de Scrum, pero no sabía si era una técnica, una plantilla de trabajo de referencia, un software de gestión… y así llegue a la primera reunión de planificación para el proyecto de diseño y desarrollo de nuestra página web.
Lo primero que aprendí es que Scrum es una forma de trabajar aplicable a casi cualquier tipo de proyecto. Y que se basa en la entrega de tareas con tiempos cortos preestablecidos (sprints).
Nosotros comenzamos con una primera reunión donde analizamos y planificamos el proyecto dividiéndolo en 2 sprints de 2 semanas cada uno. Fijamos todas las tareas y las clasificamos por tipo, por rol y por tiempo. Es decir, de todas las tareas, clasificábamos las que haríamos en el primer sprint, cuáles de ellas eran de desarrollo y cuáles de diseño, y dentro de estos dos grupos, los integrantes de cada uno, nos repartíamos las tareas. Esta clasificación y el desarrollo en general del proyecto se realizaban con la intervención de todos, aunque fuimos guiados por Jorge, nuestro Scrum Master.
Ya sabíamos qué tareas eran para ese primer Sprint. Después, pasábamos a seleccionar aquellas para cada día y al día siguiente por la mañana hacíamos una reunión de 15 minutos para ver cuáles se habían cumplido, cuáles no y por qué, y qué tareas seleccionábamos para el día siguiente.
Una de las cosas que más me ha gustado de esta forma de trabajo es el control que se tiene sobre el desarrollo del proyecto. Se ve en todo momento el progreso y motiva mucho ver pasar los post-it’s de las tareas “Por realizar” a la columna de “Realizados”. Saber que el trabajo es en equipo y que no estás sólo en el desarrollo de una tarea también ha sido muy positivo.
Por otro lado, algo que me ralentizaba el trabajo al principio, era precisamente la coordinación del trabajo con el resto del grupo. Antes de trabajar con scrum, estaba acostumbrada a dividirme las tareas por prioridad y dentro de esto, por tiempo que me ocuparían. En Scrum no importa cómo trabajes más rápido sino el avance del trabajo del grupo. Por lo que mis tareas iban en función de lo que Diseño y Desarrollo necesitaban. Si esta organización al inicio me parecía torpe, más tarde fue una de las cosas que más me ha gustado de Scrum. Por que se avanza en distintas líneas de trabajo a la vez y con un objetivo visible y marcado.
A modo de valoración personal considero que nuestro progreso fue muy ágil y según nuestras expectativas. Era la primera vez que trabajábamos de esta forma y llegamos casi exactamente a todas las tareas fijadas para todos los sprints. Además la organización y la relación del equipo han sido muy buenas.
Si tengo que aprender de algo para mejorar en siguientes proyectos con Scrum pondría en primera línea y a modo personal, mi propia organización de los tiempos, ya que un mal cálculo de ello implica al resto del grupo.
Desde el punto de vista de grupo, pienso que sobre todo deberíamos cuidar la parte final del proyecto, ya que es donde más prisa y más tensión hay, los detalles se olvidan un poco y la priorización de tareas pasó a segundo plano.
Me parece que es una metodología que efectivamente agiliza la ejecución del proyecto y que da seguridad tanto a los que estábamos en el proyecto como a la persona que iba a valorar nuestro trabajo (Product Owner). Lo veo muy recomendable y pienso que será bueno si lo llevamos a cabo en muchos más proyectos.
Podéis contarnos cuál es vuestra opinión sobre Scrum y si lo aplicáis en vuestro trabajo.
16
Configurar cubos de AWS S3 como filesystems de tipo FUSE (Linux)
No comments · Posted by ruben.martin in Cloud Computing
Amazon S3 (Simple Storage Service) es el servicio que provee Amazon para el almacenamiento de datos en la nube. Cuenta con diversas herramientas para la gestión de los datos almacenados, entre las cuales se encuentra s3cmd, que permite la administración de las unidades de almacenamiento (cubos) creadas en S3 mediante una interfaz de línea de comandos.
Una forma de facilitar la gestión de los datos almacenados en los cubos de S3 consiste en poder montarlos como filesystems de Linux. De este modo podemos trabajar con las carpetas y ficheros almacenados en un cubo utilizando las interfaces propias del sistema Linux (nautilus, comandos shell, …), obteniendo además los beneficios en cuanto a funcionalidad que ello supone. Una limitación existente en los filesystems montados a partir de cubos de S3 es que solamente el usuario root puede trabajar sobre ellos, y por lo tanto el punto de montaje que se utilice debe pertenecer también a este usuario.
Todo lo explicado anteriormente es posible mediante el uso de la herramienta s3fs, la cual permite montar un cubo de S3 como un sistema de ficheros de Linux de tipo FUSE (Filesystem in Userspace). El objetivo de este post es ofrecer un procedimiento de instalación y configuración de la herramienta s3fs, así como un pequeño tutorial con el fin de facilitar el uso de la misma.
Para llevar a cabo la instalación y configuración de la herramienta s3fs deberemos realizar los siguientes pasos:
1.- Descarga del software: Buscando esta herramienta en internet, se pueden encontrar dos versiones (s3fs y s3fs-c) cuyas diferencias son notables en lo que a funcionalidad se refiere. Tras haber probado ambas, finalmente me decanté por s3fs-c debido principalmente a que soporta los objetos de carpeta creados a través de la consola de gestión de AWS (la versión s3fs no visualiza este tipo de objetos). Podéis descargaros la versión s3fs-c en la siguiente URL, donde además podréis encontrar una descripción del producto en la que se indican las diferencias existentes entre ambas versiones:
2.- Requisitos previos a la compilación de la herramienta: Con el fin de asegurarnos de que el sistema disponga de todas las librerías y utilidades necesarias para poder llevar a cabo la compilación de s3fs-c, instalar los siguientes paquetes en función del sistema operativo con el que estemos trabajando:
- Para Linux Debian / Ubuntu:
$ sudo apt-get install build-essential libfuse-dev fuse-utils libcurl4-openssl-dev libxml2-dev mime-support
- Para Linux Red Hat / Fedora / CentOS:
$ sudo yum install gcc libstdc++-devel gcc-c++ fuse fuse-devel curl-devel libxml2-devel openssl-devel mailcap
3.- Instalación y configuración de s3fs-c: Una vez descargado el paquete. deberéis descomprimir su contenido y por último compilarlo:
$ unzip tongwang-s3fs-c-650f867.zip
$ cd tongwang-s3fs-c-650f867
$ ./configure --prefix=/usr
$ make
$ sudo make install
4.- Configuración de las credenciales de acceso: Para que s3fs pueda establecer conexión con los cubos de S3 que tengamos creados, deberemos configurar las credenciales de seguridad que se van a utilizar en la conexión. Existen tres tipos de credenciales asociadas a cada cuenta de AWS, aunque en este caso trabajaremos con las denominadas claves de acceso. Para configurar s3fs-c deberemos especificarle estas credenciales de seguridad mediante cualquiera de los siguientes métodos:
- Utilizando la opción de fichero de credenciales (passwd_file) mediante línea de comando.
- Definiendo en el sistema las variables de entorno AWSACCESSKEYID y AWSSECRETACCESSKEY.
- Configurando el fichero .passwd-s3fs en el $HOME del usuario.
- Configurando el fichero de sistema /etc/passwd-s3fs.
En este post nos centraremos en explicar el primer y el cuarto método::
- Añadir la opción de fichero de credenciales (passwd_file) mediante línea de comando: Para utilizar este método deberéis definir previamente el fichero de credenciales y referenciarlo por medio de la variable de entorno AWS_CREDENTIAL_FILE. Es posible que esto ya lo tengáis hecho debido a que este fichero es el mismo que utiliza la herramienta s3cmd, pero en caso contrario podéis realizarlo del modo que se indica a continuación:
$ cat <<_EOF >$HOME/<nom_fichero>.keys # Seleccionar la ruta que se desee para guardar el fichero AWSAccessKeyId=<id_clave_de_acceso> AWSSecretKey=<clave_de_acceso_secreta> _EOF $ export AWS_CREDENTIAL_FILE=$HOME/<nom_fichero>.keys $ echo "export AWS_CREDENTIAL_FILE=$HOME/<nom_fichero>.keys" >> /etc/profile # Ejecutar con usuario root
- Configuración del fichero de sistema /etc/passwd-s3fs: Para ello bastará con ejecutar, asumiendo el rol del usuario root, el siguiente comando:
$ cat <<_EOF >/etc/passwd-s3fs AKIAIMDP7ZH33EVZIHGA:l7A1G5NrB4pU1unCgovRVwK6rBTU8yTH4KlBvYVR _EOF $ chmod 640 /etc/passwd-s3fs
Una vez realizados los pasos descritos anteriormente, ya tendremos configurada la herramienta s3fs-c en el sistema. A continuación, y a modo de pequeño tutorial, os indico los comandos y configuraciones más comunes que podemos usando esta herramienta:
- Montaje de un cubo: Para ello podemos ejecutar el siguiente comando:
$ sudo s3fs [ -o passwd_file=$AWS_CREDENTIAL_FILE ] <cubo_s3> <punto_de_montaje>
Por ejemplo:
$ sudo s3fs bucketwebsite /s3/bucketwebsite $ mount /dev/sda5 on / type ext4 (rw,errors=remount-ro,commit=0) . . . . . . //192.168.1.166/compartido on /home/rmartin/globdatos/compartido type cifs (rw) s3fs on /s3/bucketwebsite type fuse.s3fs (rw,nosuid,nodev)
* NOTA: La ruta especificada como punto de montaje debe ser propiedad del usuario root:root.
- Configuración de filesystems montados a través de s3fs-c en el fichero /etc/fstab: Para que durante el arranque del sistema se realice el montaje automático de un sistema de ficheros montado a partir de un cubo de S3, deberemos añadir al fichero /etc/fstab la siguiente línea de configuración:
# sudo vi /etc/fstab s3fs#<cubo_S3> <punto_de_montaje> fuse defaults 0 0
Por ejemplo:
# sudo vi /etc/fstab s3fs#bucketwebsite /s3/bucketwebsite fuse defaults 0 0
No tags
11
Scrum orgánico
No comments · Posted by Jorge Fernandez in Desarrollo, Métodos ágiles de trabajo
Durante los días 17 y 18 de octubre, 7 miembros del departamento de Desarrollo de BBVA GlobalNet asistimos a un curso de certificación en Scrum Master impartido por los Scrum Trainers Alan Cyment y Ariel Ber.
Todos los miembros asistentes, con conocimiento previo de Scrum, queremos comenzar a implantar estas técnicas de trabajo de forma orgánica en BBVA GlobalNet. Para ello, y tras solicitar consejo a Alan y Ariel, vamos a ir incorporando diversas técnicas a todas las áreas de trabajo de la corporación de forma progresiva, con la intención de que sean los diferentes grupos humanos los que finalmente decidan si las acogen o no. Como primer paso para nuestro objetivo, nuestra intención es informar a todo el equipo, cuales son los cimientos sobre los que se basa Scrum.
¿Qué es Scrum?
Scrum es un marco o framework de trabajo, esto es, un conjunto de técnicas y herramientas que nos va a permitir ayudar al cliente en su visión de negocio.
Como todo marco de trabajo, el objetivo es utilizarlo para llevar a cabo un resultado, por tanto, es un medio y no un fin. Tampoco nos va a decir qué es lo que debemos hacer o qué debemos utilizar, sino que nos va a dar las pautas y seremos responsables de ver qué es lo que necesitamos en cada momento para llegar al resultado, para aportar valor al cliente.
Scrum no es tener tarjetas, usar Jira o Excel; Scrum no es tener XP o TDD; Scrum no es tener integración contínua. Scrum es utilizar lo necesario para conseguir la satisfacción del cliente a través de entregas tempranas y contínuas de software valioso.
Scrum se basa en el manifiesto ágil cuyos valores son:
- Valorar más a los individuos y su interacción que a los procesos y las herramientas.
- Valorar más el software que funciona que la documentación exhaustiva.
- Valorar más la colaboración con el cliente que la negociación contractual.
- Valorar más la respuesta al cambio que el seguimiento de un plan.
¿Qué roles existen en Scrum?
Un proyecto desarrollado bajo el marco de trabajo Scrum va a tener una o varias personas interesadas (stakeholders) en que la empresa llegue a su fin. Estas personas hacen llegar sus necesidades de forma más o menos frecuente a un encargado del producto (product owner), quien conoce de primera mano cuales son los requisitos del proyecto en cada momento.
Mediante reuniones periódicas, el propietario del producto se reune con el equipo de trabajo para conocer el estado de los requisitos funcionales del proyecto, y aceptarlos o no, y dar prioridad a los requisitos que quedan por desarrollar.
Por su parte, el Scrum Master acompaña en sus diferentes reuniones (diaria, de retrospectiva y de planificación de sprint) al equipo, para tratar de guiar al equipo en el uso de las técnicas de Scrum y servir de apoyo constante.
¿Qué aporta Scrum?
Scrum ayuda mediante el cambio de paradigma a que el rendimiento sea más efectivo, trabando en conjunto y permitiendo exponer de forma clara cualquier problema que se ponga en su camino para que el equipo se pueda inspeccionar y adaptar en consecuencia.
El funcionamiento de Scrum es sencillo: tras cada salto (ciclo de desarrollo), el equipo realiza un ejercicio de inspección interna para adaptarse antes de volver a saltar.
El uso de Scrum es un medio que proporciona a BBVA GlobalNet beneficios en cuanto a calidad y competitividad:
- Productos potencialmente entregables en un corto período de tiempo, y de forma continuada en el tiempo. Esto conlleva ciertas ventajas, como gestión de las expectativas del cliente, adaptabilidad a cambios del cliente o mercado, gestión del retorno de inversión (ROI) y mitigación de los riesgos gracias a la identificación sistemáticas de inconvenientes del proceso (filosofía LEAN).
- Productividad y calidad del software entregado al poner el foco en el desarrollo continuo de la aplicación.
- Alineamiento entre el cliente y el equipo de desarrollo, lo cual provoca confianza.
- Moral y responsabilida del equipo, gracias a la motivación, colaboración y cooperación.
¿Cómo vamos a implantar?
En primer lugar, los responsables tienen claro que queremos comenzar con la implantación, con determinación y compromiso para la constante mejora, pues el comienzo puede ser doloroso.
Como primera medida, es muy importante introducir Scrum, sus fundamentos y valores, a todos los miembros de la compañía. Para ello, a través del blog y cursos de formación, todos podremos conocer los roles, artefactos, cómo se crea y estima un backlog, cómo se transforma en un sprintlog, cómo se gestiona un gráfico de burndown y se calcula la velocidad del equipo, etc. En definitiva, los equipos de trabajo deben conocer herramientas y forma de trabajo.
Para realizar Scrum de forma orgánica, queremos realizarlo poco a poco, mejorando día a día. Una buena forma de comenzar es por las reuniones retrospectivas. A partir de aquí, se irá realizando un proceso de mejorar, mejorar y mejorar, compartiendo experiencias, aprendiendo unos de otros y teniendo en cuenta que nunca existirá una lista de "las mejores prácticas en Scrum", ya que el contexto en importante.
No tags
En un post anterior hablamos de los beneficios que ofrecia Centreon, la cual es una herramienta que nos brinda una gestión mas cómoda y amigable de los ficheros de configuración de Nagios, ya que estos se pueden convertir en un verdadero problema de mantener cuando trabajamos en entornos de gran tamaño
Por lo que en esta entrega, mostraremos un breve tutorial sobre como instalar nagios y sus plugins, los que, a su vez nos servirán de base para nuestra instalación de Centreon que se detallara en una entrega posterior (más…)
6
Configurar el “Check spelling” de FCKeditor en WordPress
No comments · Posted by Edgard Zelaya in Utilidades
Tal y como comentábamos en el post anterior, me ha gustado mucho este nuevo editor para WordPress, sin embargo, me he encontrado que el “Check Spelling” no viene configurado por defecto. Así que me decidí a escribir esta segunda entrada sobre los pasos necesarios para configurarlo en un entorno Linux, ya que para entornos Windows esta opción sí que viene configurada.
Después de haber dejado el tema abandonado por un tiempo, decidí realizar una nueva búsqueda con el de encontrar un editor con el que poder reemplazar el viene instalado por defecto en WordPress que, en mi opinión personal, dificulta mucho la edición de post. Tras mucho investigar encontré la solución: “FCKeditor”. Este editor gratuito puede ser instalado fácilmente como un plugin adicional del WordPress, ofreciendo un comportamiento más sencillo y similar al editor de un procesador de textos como pueden ser OppenOffice Writer, Microsoft Word,…
¡Animate a formar parte de nuestro equipo!
Actualmente tenemos dos ofertas de empleo. Puedes verlas a través del siguiente enlace: http://www.bbvaglobalnet.com/bolsa-de-empleo/
desarrollo · empleo · j2ee · php
Ayer día 14 de abril de 2011 se celebró en el Centro de Innovación del BBVA, organizado por ReadWriteWeb.es, el primer AppCircus en Madrid, uno de los eventos de movilidad más relevantes a nivel mundial y no nos lo podíamos perder!
appcircus · bbva · cibbva · madrid · numlet · pyont · videopuzzle
