Publicaciones hechas en octubre, 2012

OpenStack: Swift, Parte I

Publicado por el 11 de octubre, 2012 en Clusters | 0 comentarios

Como necesidad de contar con un sistema de almacenamiento robusto, escalable y de bajo costo, en Agosto del 2009, Rackspace empieza el diseño y desarrollo de Swift.

La motivación nace desde el momento en que empezamos a buscar soluciones de almacenamiento clusterizadas y de bajo costo. Swift es una herramienta ideal con la que se puede contar para el almacenamiento de objetos a gran escala, redundante, de bajo costo de mantención e implementación.

En un comienzo, la mayoría de las soluciones Cloud eran propietarias y/o implicaban un alto costo en Hardware o en Software.

Con la ambición de encontrar un sistema de almacenaje que sea capaz de funcionar como cluster, que sea tolerante a fallos, que no necesite de contraloras de arreglo de discos costosas para su buen funcionamiento y que, además sea capaz de guardar petabytes de información de forma redudante, es que nace el proyecto Swift.

La fotografía es © de Velo Steve

Leer más

OpenStack: Nova, Parte I

Publicado por el 11 de octubre, 2012 en Cloud | 0 comentarios

Con lo rápido que avanzan las necesidades de tener máquinas virtuales funcionando en poco tiempo y poder dar acceso clientes o usuarios, Nova presenta la solución a cómo gestionar de forma fácil y rápida todo lo necesario para proveer máquinas virtuales.

OpenStack es un conjunto de herramientas, si bien, no es posible en una presentación acotada cubrir todas las herramientas, Nova es una de las aplicaciones importantes y que cubre gran parte de lo necesario para resolver la problemática de las máquinas virtuales.

En los últimos años la tecnología ha evolucionado camino a lo que es hoy, siempre exigiendo con respecto a rendimiento y velocidad. Hoy las personas tienen conexiones mas rápidas, y con ello, los ambientes de servidores han debido evolucionar. Una de esas evoluciones es lo que conocemos como la Nube.

Los costos iniciales de hardware y hospedaje en un datacenter son muy altos para empresas pequeñas, costo que muchas veces no tiene sentido, aquí es cuando hacen su aparición las maquinas virtuales, que por un costo menor, son capaces de brindar un servicio estable con los requerimientos que el usuario necesite.

Las dificultades de gestionar la creación de maquinas virtuales en un entorno GNU Linux son tan altas como la cantidad de servidores y maquinas virtuales que estos contenga, aquí es donde aparece Nova, proyecto parte del stack de aplicaciones del proyecto OpenStack.

La fotografía es © Burningphotography

Leer más

MySQL Galera Cluster: Parte I

Publicado por el 11 de octubre, 2012 en Clusters | 0 comentarios

Durante nuestra experiencia desarrollando proyectos de plataformas de servicios con alta disponibilidad hemos experimentado una piedra de tope en el crecimiento de plataformas de bases de datos utilizando MySQL: la imposibilidad de utilizar sistemas de rápida implementación de clusters SQL sin tener que alterar los sistemas de storage o modificar los sistemas separando escritura y lectura con maestros-esclavos.

Hasta ahora, de querer utilizar sistemas distribuidos o de alta performance utilizando MySQL se debió acudir a MySQL cluster. De otra forma se debía proceder a inseguras y engorrosas configuraciones de maestros y esclavos con separacion de lectura y escritura entre ellos.

En vista de esta problemática, en situaciones donde es imposible por diseño el utilizar un sistema de storage diferente al elegido o con el fin de evitar las engorrosas configuraciones maestro-esclavo es que surge Galera, un sistema de replicación multi-maestro síncrono que permite subsanar dichas problemáticas.

El caso de uso más común, al utilizar MySQL como motor de base de datos para aplicaciones web, se siguen varios pasos.

La instalación básica consiste en un solo servidor que brinde tanto el contenido de aplicación web, y a su vez albergue el motor de bases de datos. Con esto tenemos un servidor sin especialización.

Segundo paso consistiría en especializar la plataforma separando el motor de bases de datos del servidor de aplicaciones. Con esto tenemos dos servidores especializados.

Tercer paso en la escalabilidad de la aplicación web consiste en incluír un nuevo servidor de aplicaciones a la plataforma e incluso incluír un balanceador de carga frontal entre ellos. Con esto tenemos tres, o cuatro, servidores especializados, dos de aplicaciones y un motor de bases de datos, más el balanceador de carga.

Siguiente paso sería implementar clusterizar la anterior plataforma agregando un proceso de failover para el servidor frontal. Con esto aun seguiríamos utilizando solo un servidor para motor de bases de datos.

¿Qué sigue? Segmentación de bases de datos con sistemas de replicación, que permitan separar la carga en el motor de base de datos entre las lecturas y las escrituras solicitadas por la aplicación web.

Finalmente ¿qué nos resta? Si podemos clusterizar con mediana facilidad la plataforma de servicio de aplicaciones, aun nos resta cómo realizar algo similar con la plataforma de motor de bases de datos. Requerimos una plataforma multimaster robusta, que permita control de salud y exclusión de nodos con fallos. Nace entonces MySQL Galera.

La fotografía es © Strt’s Photos.

Leer más