Categories
Hybrid Clouds In detail OpenSource

Desplegando PaaS en un “click"

enter

Siguiendo en la línea del posts sobre Infraestructura como Código (IaC) con la herramienta Terraform, os traemos un nuevo tutorial para desplegar la plataforma de PaaS Rancher de forma totalmente automatizada utilizando RKE.

RKE es el acrónimo de Rancher Kubernetes Engine y se trata de un instalador de Kubernetes escrito en Golang. Es fácil de usar y no requiere mucha preparación por parte del usuario para comenzar.

Como en el tutorial anterior utilizaremos el provider de Terraform para OpenNebula, en esta ocasión utilizaremos una versión mejorada del provider desarrollado por el equipo de Blackberry.

Para acabar recordaros que el próximo 12 y 13 de Noviembre se celebra una nueva edición de la OpenNebulaConf en esta ocasión el lugar elegido a sido Amsterdam y algunos de los miembros de Cloudadmins estaremos allí y participaremos con la ponencia: Hybrid Clouds: Dancing with “Automated” Virtual Machines

Tutorial

Install Terraform

To install Terraform, find the appropriate package for your system and download it

$ curl -O https://releases.hashicorp.com/terraform/0.11.10/terraform_0.11.10_linux_amd64.zip

After downloading Terraform, unzip the package

$ sudo mkdir /bin/terraform
$ sudo unzip terraform_0.11.10_linux_amd64.zip -d /bin/terraform

After installing Terraform, verify the installation worked by opening a new terminal session and checking that terraform is available.

$ export PATH=$PATH:/bin/terraform
$ terraform --version

Add Terraform providers for Opennebula and RKE

You need to install go first: https://golang.org/doc/install
Install Prerequisites

$ sudo apt install bzr

Use the wget command and the link from Go to download the tarball:

$ wget https://dl.google.com/go/go1.10.linux-amd64.tar.gz

The installation of Go consists of extracting the tarball into the /usr/local

$ sudo tar -C /usr/local -xvzf  go1.10.linux-amd64.tar.gz

We will call our workspace directory projects, but you can name it anything you would like. The -p flag for the mkdir command will create the appropriate directory tree

$ mkdir -p ~/projects/{bin,pkg,src}

To execute Go like any other command, we need to append its install location to the $PATH variable.

$ export PATH=$PATH:/usr/local/go/bin

Additionally, define the GOPATH and GOBIN Go environment variables:

$ export GOBIN="$HOME/projects/bin"
$ export GOPATH="$HOME/projects/src"

After go is installed and set up, just type:

$ go get github.com/blackberry/terraform-provider-opennebula
$ go install github.com/blackberry/terraform-provider-opennebula

Post-installation Step

Copy your terraform-provider-opennebula binary in a folder, like /usr/local/bin, and write this in ~/.terraformrc:

$ sudo cp ~/projects/bin/terraform-provider-opennebula /usr/local/bin/terraform-provider-opennebula

For RKE provider, download the binary and copy in the same folder:

$ wget https://github.com/yamamoto-febc/terraform-provider-rke/releases/download/0.5.0/terraform-provider-rke_0.5.0_linux-amd64.zip
$ sudo unzip terraform-provider-rke_0.5.0_linux-amd64.zip -d /usr/local/bin/terraform-provider-rke
providers {
  opennebula = "/usr/local/bin/terraform-provider-opennebula"
}
providers {
  rke = "/usr/local/bin/terraform-provider-rke"
}

Install Rancher

This repository provide a TF file to install Rancher in a high-availability configuration. The goal is easily install a Rancher on machines running CentOS 7.
Clone this repo:

$ git clone https://github.com/mangelft/terraform-rke-paas.git

Create infrastructure

First we have to initialize terraform simply with:

$ terraform init

This will read your configuration files and install the plugins for your provider.
We let terraform create a plan, which we can review:

$ terraform plan

The plan command lets you see what Terraform will do before actually doing it.
Now we execute:

$ terraform apply

terraform-apply
 
oneKubectl is the CLI tool for interacting with the Kubernetes cluster. Please make sure these tools are installed and available.
To make sure it works, run a simple get nodes command.

$ kubectl get nodes

kubectl
 
 
That’s it you should have a functional Rancher server. Point a browser at the hostname: https://rancher.my.org.
 
rancher-dashboard
 

Categories
Community General Hybrid Clouds Interoperability OpenSource

New OpenNebula VCLOUD driver: Building Hybrid Clouds with VMware cloud providers

Based in its definition, the “Hybrid Cloud Computing” is a model which combines the use of multiple Cloud services across different deployment models, including combining the use of services of public cloud services private cloud outside or inside organization / institution.
Most companies and organizations have not been born in the “cloud”, a situation that often causes the cloud resources are to be connected to traditional systems or applications with some criticality and are usually located in their own premises. This type of architecture is the most common where the keys to their success pass take into account aspects such as integration capabilities, hyper-converged management, etc.
Cloud bursting is always welcome!
Today we are one_vcloudsharing exciting news about the expansion of the number of public clouds supported by OpenNebula to build hybrid cloud deployments. As a result of the collaboration between OpenNebula and CSUC, a new addon to support VCLOUD providers has been added to OpenNebula catalogue.
“With this addon, real hybrid architectures can use OpenNebula’s rich set of infrastructure management tools to manage cloud deployments across VCLOUD private, public and hosted cloud platforms.”
 
The driver is developed for Opennebula 5.x and VCLOUD 5.5 version and is released today to be available for testing. The integration has been carried out using the ruby_vcloud_sdk, which interacts with the vCloud Director API, enabling a complete control of the lifecycle of Virtual Machines in a transparent way within an OpenNebula cloud. Thanks to these new addon, private resources can be easily supplemented with resources from external providers to meet fluctuating demands.
 
https://github.com/OpenNebula/addon-vcloud-driver

Description

This addon gives Opennebula the posibility to manage resources in VMware vCloud infraestructures. It includes virtualization and monitoring drivers.
This driver is based on vCenter Driver and uses a modified version of ruby_vcloud_sdk.
Alt text

Features

This addon has the following capabilities:

  • Deploy, stop, shutdown, reboot, save, suspend, resume and delete VM’s in the Virtual Data Centers hosted in vCloud.
  • Create, delete and revert snapshots of VM’s.
  • Change RAM and CPU values of VM.
  • It’s able to hot-attach and detach NICs to VM’s.
  • Automatized customization of the VMs instanciated.
  • Obtain monitoring information from the VDC, Datastore and VM’s.
  • In this development version we manage vApps with one VMs inside (A VM in OpenNebula equals a vApp with one VM in vCloud).
  • Each Virtual Data Center (VDC) in vCloud is managed as a Host in OpenNebula.
  • Import networks, hosts, templates and datastores hosted in vCloud using onevcloud script.

https://github.com/OpenNebula/addon-vcloud-driver
Need more information? You are welcome to use the OpenNebula community instruments to ask around (for instance, the forums tool is a good place to pose your questions) or reserve a seat to see details inside the next Open Cloud Free session in Barcelona (24/10 14:00h) https://www.eventbrite.com/e/open-cloud-free-session-inside-opennebulaconf-tickets-27753771277
As always, we value your feedback and contributions to this new feature!
Barcelona UserGroup Team –  www.cloudadmins.org

Categories
General Hybrid Clouds

Modelos de Cloud híbrido

Si buscamos una definición, el “Hybrid Cloud Computing” es un modelo el cuál combina el uso de múltiples servicios Cloud a través de diferentes modelos de despliegue, en particular combinando el uso de servicios de cloud público con servicios de cloud privado fuera o dentro de la organización/institución .

 hybrid
Figura 1- El Cloud Hibrido, actua como puente de entornos, capas y recursos.

La mayoría de empresas y organizaciones no han nacido en la “nube”, situación que provoca en muchos casos que los recursos cloud hayan de estar conectados a sistemas o aplicaciones tradicionales con cierta criticidad y que normalmente están situados en sus propias dependencias. Este tipo de arquitectura es la más habitual dónde las claves para su éxito pasan por tener muy en cuenta aspectos como las capacidades de integración o el impacto sobre los roles en la organización dónde no todo el mundo interpreta el concepto por igual.

Para un diseñador de soluciones el modelo ha de ofrecer flexibilidad, velocidad y capacidad. En el caso del equipo de infraestructuras puede interpretarse como más “cosas” a gestionar. La gente de desarrollo de negocio se preguntará si será más caro y cuál es el valor que aportará.

Sin duda, el modelo o arquitectura a implementar variará dependiendo de cada caso dónde las aplicaciones/servicios tienen mucho que decir. La pura realidad es que actualmente casi todas las organizaciones trabajan a diferentes velocidades y esto es algo que los departamentos de tecnología han de tener claro.

  • Por un lado se soportan entornos altamente cambiantes como puede ser las aplicaciones web o de movilidad.
  • Por otro lado se han de mantener otros sistemas más robustos con altos niveles de estabilidad y seguridad asociados a procesos críticos.

La adopción del modelo de cloud híbrido puede ayudar y cubrir parte de estas necesidades.

El camino hacia modelos de arquitectura de sistemas híbrida…

Nada fácil y con un alto factor de transformación para la organización. Este conlleva, se quiera o no, lanzar determinadas acciones que evolucionan/modifican perfiles, modelos de gestión de la infraestructura TIC, la prestación de servicios, etc.

  • Como primer paso una prestación compartida de servicios de CPD con agentes externos para una optimización de servicios y disponer de apoyo a infraestructuras virtuales y modelos de pago por uso favoreciendo aspectos como el ahorro en infraestructura.
  • Por otro, la adopción como proveedor de servicios interno de un modelo que permita orquestar recursos distribuidos dónde la red y las capas de gestión unificada tienen un papel estratégico.

Aquí es dónde para el proceso de integración las arquitecturas basadas en software tipo “Open Cloud” pueden ayudar en la adopción de este tipo de modelos híbridos y para diversos casos de uso.

En el próximo POST veremos un ejemplo con más detalle. Estar atentos!

Buen vuelo!

Cloudadmins.org

Categories
General Hybrid Clouds OpenSource Social

Resumen CentOS Dojo en Barcelona

El CentOS Dojo tuvo lugar el pasado 29 de Octubre, organizada por el CSUC y patrocinada por Red HatFlytech, la Universitat Oberta de Catalunya y la Universitat Politècnica de Catalunya. Fue visitada por casi un centenar de personas, hubo unas ocho ponencias que resumimos en este POST:

1 – SOLUCIONES PARA CPD

Flytech presentó varias soluciones de infraestructura para centros de datos, centrándose en el rendimiento y en aspectos relacionados con la eficiencia energética; vimos tecnologías como el Fast Path, SSD y NVMe. Muy utilizadas por empresas nacionales muy conocidas como el PIC (IFAE), Tuenti, ADW, etc. Cuyos casos de éxito se sitúan en la utilización de grandes base de datos Mysql con discos SSD’s.

2 – OPENNEBULA

En esta parte del evento se realizaron dos presentaciones de OpenNebula: Una introducción de OpenNebula por Javier Fontan (Ingeniero de OpenNebula)  y un caso de éxito de OpenNebula por Jordi Guijarro y Xavier Peralta del CSUC y de la inicativa CloudAdmins; donde nos hablaron de su experiencia de uso para la comunidad científica y académica catalana.
La primera nos presentó las funciones de ONE como Cloud IaaS. Como ONE unifica la gestión de redes, almacenamiento, maquinas virtuales y todo empaquetado bajo una misma plataforma. Luego vimos como se pueden manejar las maquinas virtuales de forma sencilla (pensada para personas no técnicas), destacando la vista de administrador dónde se provee mucha información respecto a tratamiento de logs (stdout y stdin error’s) y la facilidad en la automatización de tareas. Con esto hay grandes beneficios para el usuario y para el Sysadmin, por lo tanto ONE tiene una buena gestión de grupos de usuarios donde uno puede dar permisos específicos para cada grupo (Admin, QA, test, …)
Para automatizar vimos que tiene una API, un command line interface, un interface para perfiles de tipo admin, una para usuarios y un dashboard donde podemos graficar y monitorizar nuestro Cloud. Otra gran característica es que puede interoperar con Clouds públicos como EC2, Azure, IBM… y pueden proveer servicios como una instancia de EC2 si ellos no tienen infraestructura disponible en ese momento. Nos mostraron tambien la diferencia entre la vision de administrador y la vision de un usuario normal, los templates en los que podemos basarnos para crear un servidor (centos, ubuntu….), la posibilidad de usar GlusterFS… .
También nos avanzaron que Opennebula puede funcionar con LXC, nos recomendaron el uso de la herramienta qemu-img y recomendaron que si usamos KVM sobretodo usar virtio para red y storage que mejora mucho rendimiento.
Luego Jordi Guijarro del CSUC nos explico su experiencia ONE en el CSUC, porqué se decidieron a usar OpenNebula y no Openstack y mostraron su entorno híbrido, en el que vimos que OpenNebula tiene funcionalidades de Vmware y también de AWS . Una de las características que destacaron fue su adaptación a Openvswitch (a nivel de red) y su recomendación de usar Qcow2 a nivel de disco. A su vez, nos demostraron su política de tarifas con una orientación al pago por uso mediante templates.
En su demostración, Xavier Peralta del  CSUC. nos presentó la nueva solución de Autoscaling (funcionalidad con la que AWS se ha hecho tan famosa) disponible a partir de  version de OpenNebula 4.2, llamada OneFlow y OneGate
opennebula.org/tryout

XEN

Roger Pau Monne nos detalló sobre los tipos de guests que se pueden usar con Xen y sus distintas opciones para obtener el mejor rendimiento posible. A modo de ejemplo, quedó muy claro que no siempre es mejor full-virtualización que paravirtualización. No vale en instalar XEN y ya está, una buena recomendación es tunearlo o elegir el mejor tipo de virtualización para cada caso de uso. Quizás las siguientes imagenes les da una mejor idea de lo que se pretendía.
20141029_121836 20141029_121657 20141029_124027

.

MARIADB

Colin Charles, de la comunidad CentOS, nos mostró las diferencias entre MySQL y Maria DB (MySQL++). Introduciendo ejemplos de nuevas features, consejos, trucos para ajustar mejor el rendimiento en los desarrollos o en la escalabilidad y como enfocar distintas estrategias con MariaDB. Destacó como del global de TOP20 sites de Internet usan MariaDB, por ejemplo Google, Facebook, Youtube, Baidu, Wikipedia, Amazon, Linkedin, etc.
Empezó presentando la nueva arquitectura MariaDB, las mejoras en los storage engines de toda la vida como MyISAM, InnoDB y introdujo los nuevos storage engines usados por MariaDB del tipo clave-valor.
Como no, se compararon con Mysql. Comentando las nuevas mejoras de rendimientos en comparación con el Mysql, destacando algunos benchmarks que en Mysql se habla de milisegundos, en MariaDB mejoraban hasta Microsegundos. A parte, otras hizo distintas comparaciones y destacó su gran compatibilidad con Mysql. A parte de destacar sus 5 años de soporte que dan por versión y presentó la utilidad del MariaDB Galera Cluster 5.5, 10.0 muy buena alternativa a los Mysql vitaminados con Percona.
Por la parte de features presentó muchas cosas:
Virtual Columns, PCRE Regular Expressions, GIS, Geometry types (OpenGiS requirement) por ejemplo usado en OpenStreetMap, Synamic columns (mongodb, Redis, cassandra), SphinxSE, Full-text search via SphinxSE (como un ElasticSearch), etc.
Por la parte de conectividad y plugins, explicaron la gran posibilidad de instalar plugins, conectores externos (por ejemplo posibilidad de hacer Queries con Cassandra), además posibilidad de conectar con Oracle, MongoDB, ETL para BI o BA, Spider, etc.
A nivel performance y escalado presentaron muchas novedades y además mejoras en entornos Cloud:
Mejoras en el horizontal partitioning, built on top of partitions, sharding solutions, multiple shards backends, easy to expand, TokuDB (separate MariaDB + TokuDB), TokuDB uses fractal tree indexes instead of B-Tree, mejoras en el Threadpool, autenticación con PAM (usando /etc/shadow) podemos usar ldap, ssh pass phrases, password expiration, username mapping, multiple queries against giggles server, LIMIT ROWS EXAMINED, backups no bloqueantes, no needs for flush tables with read lock, no stalls for long running queries, consisten snapshot sees all of a transaction, or nothing, also for multi engines transactions, presentaron la solución Galera, MariaDB Galera Cluster, Multi-source replication, Global Transaction ID (GTID), support multisource replication, Automatic bin log position for master failover, change master running is simple! PARALLEL REPLICATION, NEW KILL SYNTAX (por ejemplo kill all queries by username), nuevas estadísticas, EXPLAIN enhanced, FUSION IO, OPTIMIZER maria db 10 vs mysql5.6
A nivel loggeo y auditoría presentaron el “SQL Error Logging Plugin” y el “MYSQL_AUDIT_PLUGIN”, por ejemplo muy recomendado para bancos y ciertas leyes de USA.
En resumen como se pudo ver un gran bombardeo de características nuevas, mejoras, rendimientos mejorados, etc. Vemos que MariaDB es una alternativa a Mysql o Postgres muy buena a tener en cuenta.

GETTING STARTED ON CENTOS

Fabian Arrotin, hizo un resumen de que herramientas son útiles para mantener nuestra Infraestructura con Centos.
Nos dieron una guia de “best practices” de como:
1. Instalación/deployment: Por ejemplo soluciones como PXE, Kickstart, cobbler, Foreman, VirtPlatform, CloudInit con VM.
2. Software: Usar RPM, sync, reposync, , pulp, katello, …
3. Mantenimiento: Nombró herramientas útiles como pdsh, cssh, mushh, shmxux, IaaCode (puppet/chef/ansible/Cfengine, bcfg2, SaltStack, etc.) y como no usar un GIT o un SVM, y separar el código de los datos con soluciones como (hiera).
4. Monitoring: (Agentless vs standard protocols vs agent), Nagios, Icinga, Zabbix, Zenoos .. Snmp / Ipmi, Centralizar logs con rsyslog, graylog2, ELK (Elastic search+Log stash+kibana), riemann.

DOCKER

Karanbir Singh (karan.org) hizo una guia rápida sobre Docker, explicó porqué se le da tanta importancia actualmente y como la gente lo puede utilizar.
A parte, para entender mejor Dockers, nos dio detalle de la diferencia entre virtualización y containers. Y con esta introducción nos detalló Docker, nos habló de los parecidos que tiene con Vagran según su funcionalidad, como instalarlo, como usarlo, como funciona, que sistema de ficheros usa (AUFS V/s Device mapper overlay support), ejemplos, demostraciones y finalzó la presentación haciendo una demo de un framework muy interesante para gestionar fácilmente Docker llamado Cockpit .
 

Running CentOS in the Cloud

El mismo Karanbir Singh finalmente hizo una demostración a todos los asistenes de uso de Centos en distintos entornos Cloud como el Google compute Cloud, Amazon, Rackspace, Eucalyptus, etc. A parte de sus usos con sus APIs correspondientes (GClod, AWS, EUCA,… )
 
Os dejamos algunas fotos del evento:
20141029_101650
20141029_113325 20141029_112227 20141029_124638 20141029_165455

.
.
.

 

Desde Cloudadmins queríamos agradecer tan buenas conferencias que dieron todos y por su participación. Esperamos que se hagan más en un futuro. Saludos
Marius Duch, Jordi y Alex Vaqué

Categories
General Hybrid Clouds Interoperability

Cloud Service Brokers (CSB) – 1a entrega

El establecimiento de relaciones con múltiples proveedores de la nube puede ser desalentador. Incluso después de que se establecen las relaciones, todavía es necesario realizar integraciones con diversas tecnologías de los proveedores.
cloud-broker
A día de hoy, existen diferentes iniciativas que vamos a ir explorando desde Cloudadmins mediante una nueva serie de POSTS. Hoy repasaremos tres soluciones de software libre que se alinean a este modelo de agregación de servicios cloud en la capa de infraestructura, el primero con una orientación “middleware”, el segundo enfocado a capas de servicio y el último alineado a dar soluciones en el almacenamiento de grandes volumenes de datos :

DeltaCloud

http://deltacloud.apache.org/index.html
Proyecto open source desarrollado por RedHat y la fundación Apache orientado a desarrollar un conjunto de aplicaciones, scripts y herramientas para la nube. Cada cloud particular en deltaCloud es manejado a través de un adaptador (“driver”). Soporta las siguientes plataformas cloud: Amazon EC2, Fujitsu Global Cloud Platform, GoGrid, openNebula, RackSpace, RHEV-M, RimuHosting, Terremark, Vmware vCloud, Eucalyptus, IBM smartCloud, openStack, ArubaCloud y DigitalOcean
Permite crear y eliminar instancias, detenerlas, volver a arrancarlas y reiniciarlas. Además permite listar todos los perfiles de hardware, detalles sobre las instancias, etc…
Más información sobre los drivers de DeltaCloud en
http://deltacloud.apache.org/drivers.html#drivers

CompatibleOne

CompatibleOne ofrece un único lenguaje para la descripción y administración de un ilimitado numero de proveedores de servicios cloud. La arquitectura de servicios flexible de CompatibleOne hace que la descripción y creación de los diferentes cloud sea independiente del proveedor de servicios cloud escogido (OpenStack, OpenNebula, Azure, Vcloud…) y puede abordar cualquier tipo de servicio (IaaS, PaaS, SaaS, Xaas, Bpaas, …) y cualquier tipo de despliegue de servicios cloud (público, privado, híbrido, …).
El paquete de la plataforma Accords para CentOS / Fedora / RedHat puede encontrarse en build.opensuse.org. Para Debian y Ubuntu (10.10 → 12.04) está disponible en compatibleone.org/debian/
Podemos resumir su funcionamiento (y arquitectura) a grandes rasgos como:
→ Manejo de los requisitos del usuario
→ Validación y plan de aprovisionamiento
→ Ejecución del plan de aprovisionamiento
→ Entrega de los servicios del cloud

DuraCloud

https://wiki.duraspace.org/display/DURACLOUD/DuraCloud
DuraCloud es un software de gestion de servicios que permite a organizaciones archivar contenido a través de multiples gestores de cloud. Es un proyecto open source bajo licencia apache con una comunidad de usuarios y desarrolladores que crean y comparten nuevas herramientas todo el tiempo.
Principalmente, la interfaz del usuario consiste en una serie de aplicaciones web que ofrecen tres funciones generales:
→ Gestión de almacenamiento
→ Gestión de servicios
→ Interfaz para navegar entre los diferentes gestores
Pues hasta aquí hemos visto diferentes iniciativas opensource en el ámbito del brokering, en la próxima entrega repasaremos aproximaciones similares basadas en soluciones comerciales.
Buen vuelo,
Cloudadmin

Categories
Bigdata General Hybrid Clouds OpenSource

Storm Project una "alternativa" a Hadoop

StormProject es una alternativa a Hadoop creada por Twitter y liberada el 2011 como Open Source y cada vez más adoptada por muchas compañías del mundo.
Storm permite crear una forma fácil de escribir y escalar cálculos complejos en tiempo real en un clúster de computadoras, garantizando que cada mensaje sea procesado. Este consigue tolerancia a fallos. Además permite crear gran cantidad de topologías con senzilles en un clúster usando casi cualquier lenguaje de programación (Clojure, Java, Ruby, Python, … )
Storm tiene muchos casos de uso: realtime analytics, online machine learning, continuous computation, distributed RPC, ETL y muchos más.
En definitiva es escalable, tiene tolerancia a fallos, garantiza que tus datos sean procesados y fácil de instalar y operar.

Alternativas

Un clúster de Storm es superficialmente similar a un clúster de Hadoop. Considerando que sobre Hadoop se trabaja con “MapReduce” y con Storm se trabaja con “topologías”.
Entre Hadoop y Storm hay la similitud que ambos procesan la carga de forma distribuida y fueron diseñados para distribuir el proceso entre una gran cantidad de máquinas, de esta forma pueden repartir y dividir la carga del trabajo.
Pero Hadoop no fue diseñado para trabajar con los datos en tiempo real sinó para dejar los procesos en batch, mientras se tiene que esperar que el trabajo MapReduce termine antes de cargar los resultados. En cambio Storm si ha estado pensado para trabajar de forma instantánea en tiempo real.
data:image/jpeg;base64,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
Tened en cuenta que los Sistemas más comparables con Storm no son Hadoop sino soluciones como Esper, Streambase, HStreaming y Yahoo S4. De estos el que más se asemeja es el S4 aunque Storm con comparación a este garantiza el procesamiento de los mensajes. Además vemos que ha salido el proyecto que es un híbrido Storm-Hadoop creado también por Twitter.

Funcionamiento

Storm se integra con tecnologías de gestión de colas y de base de datos que la mayoría ya conocemos y usamos. Una topología de Storm consume flujos de datos y procesa aquellas corrientes en formas arbitrariamente complejas, volviendo a particionar las corrientes entre cada etapa del cálculo.
Para aprender más de su funcionamiento les recomendamos los siguientes enlaces:
· https://github.com/nathanmarz/storm/wiki/Tutorial
· http://www.albertcoronado.com/2013/08/14/storm-framework-para-procesar-grandes-cantidades-de-datos-en-tiempo-real/
· https://blog.twitter.com/2011/storm-coming-more-details-and-plans-release
Básicamente veréis que Storm utiliza una cantidad reducida y simples de primitivas conocidas como: nodo (workers), streams, spouts, bolts, workers y topologías. Con estos elementos, el framework se encargará de repartir el trabajo entre sus diversos recursos.
A Storm topology

Rendimiento

Storm es muy rápido, permite procesar millones de mensajes por segundo en un pequeño clúster.
Se ha visto que tiene un rendimiento muy alto ya que puede procesar una gran cantidad de mensajes con una latencia muy baja. Storm puede procesar un millón de mensajes de 100 bytes por segundo en una computadora con Intel 2x E5645@2.4Ghz y 24GB de memoria.

Dependencias tecnológicas para hacer funcionar Storm

Storm se basa en las siguientes tecnologías: Apache Zookeeper, un gestor de colas de mensajes como ZeroMQ, Java, JZMQ (Java Binding for ØMQ), Python 2.6, etc. ZooKeeper es usado para gestionar los distintos componentes del cluster.

Para instalar Storm se puede utilizar GIT y Maven. Además este permite crear fácilmente entornos de desarrollo en un solo nodo de esta forma se puede desarrollar y testear topologías en local. En los siguientes enlaces se explica como instalar Storm con ubuntu, centos, on a single machine y basic installation
Una curiosidad que a nivel Cloud nos encotramos el sub-proyecto que permite arrancar un cluster Storm dentro de Amazon Web Services ( Setting up a Storm cluster y storm-deploy ).

Más información en:

· http://storm-project.net/documentation.html
· Storm Wiki
· https://github.com/nathanmarz/storm/wiki/Creating-a-new-Storm-project
· http://www.infoq.com/news/2011/09/twitter-storm-real-time-hadoop/
· http://www.javaworld.com/article/2078672/open-source-tools/open-source-java-projects–storm.html

Categories
General Hybrid Clouds Social

El Caso Spotify – En vivo en Barcelona

IMG-20130723-WA0000
We are pleased to publish the details of the last spotify event, where they explained how Spotify build datacenters and grow its infrastructure and backend in order to serve over 20 million songs to our more than 24 million active users. Emil Fredriksson (Director of Operations) and David Poblador (SRE leader) gave an overview of its infrastructure and explained what happens behind the scenes.
Take a look at the slides:
http://www.slideshare.net/davidpoblador/spotify-bcn2013slideshare
About the speakers
Emil Fredriksson is the Director of Operations at Spotify, the team in charge of developing Spotify’s infrastructure in order to deliver the best service to our current and future users.
David Poblador i Garcia (@davidpoblador) leads the Site Reliability Engineering (SRE) department at Spotify. The main mission of this team is ensuring the music never stops playing.
Thanks!
A Cloudadmin

Categories
Bigdata General Hybrid Clouds In detail OpenSource

Cassandra, analizado en la última edición de Sudoers

Hemos tenido el placer de asistir a la reunión de Mayo de Sudoers donde Roger Torrentsgenerós expuso Keepalived y Tomàs Núñez explicó Cassandra para sysadmins.

Ya hablamos de Keepalived. Y Cassandra se nombró muy brevemente aquí, pero sin entrar en muchos detalles. Así que vamos a aprovechar para hacer un resumen de la presentación sobre Cassandra.

Como ya sabéis Cassandra es una base de datos NoSQL descentralizada. Está diseñada para trabajar con grandes volumenes de datos y permite escalar horizontalmente de una manera muy fácil.

Está basada en Google Bigtable y Amazon Dynamo, fue desarrollada inicialmente por Facebook. Des de febrero de 2010 es un Top Level Project de Apache y la última versión es la 1.2.5.

Actualmente es un projecto con una comunidad muy activa y existen diversas compañías que se dedican a dar soporte, como por ejemplo Datastax. Grandes compañías tienen Cassandra en sus entornos de producción: Facebook, Twitter, Netflix, Digg, Groupalia, etc.

Los puntos fuertes de Cassandra son:

  • Las escrituras son realmente rápidas (3000x respecto a MySQL).
  • Al ser descentralizada no tiene un Single Point of Failure.
  • Alta disponibilidad viene de serie.
  • Escala horizontalmente.
  • Requiere de muy poca administración.
  • Está pensada para correr sobre hardware barato.

Respecto al modelo de datos destacar que cada objeto tiene un ID y una serie key-value-timestamp. Al ser un modelo ‘sparse’ esto le da gran flexibilidad ya que no todos los elementos de una tabla deben tenen los mismos atributos e incluso se puede alterar el número de atributos sin bloquear la tabla o tener que parar el servicio.

Respecto a la arquitectura decir que se basa en un modelo DHT (Distributed Hash Table) donde los nodos se distribuyen en forma de anillo y cada nodo es el reponsable principal para una partición y el responsable secundario para una o más particiones (dependiendo del factor de replicación que es configurable). También es posible configurar la arquitectura de manera que sea multirack o multidatacenter.

Gracias al proceso de Gossip, todos los nodos saben en todo momento los nodos disponibles, su carga y si están bajo mantenimiento o la versión de Cassandra que están corriendo.

Como ya hemos comentado las escrituras en Cassandra son muy rápidas, ya que no se preocupa de recuperar el valor (si existe) para actualizarlo, sino que escribe directamente como si el valor fuese nuevo. Esto hace que en el momento de la lectura, se tengan que recoger los valores y ver cual es el más reciente.

Como curiosidad decir que se puede definir índice secundarios y des de la versión 0.8 hay soporte para contadores.

Existe una herramienta para el mantenimiendo y admininistración de los nodos llamada nodetool, recomiendo echar un vistazo a la wiki de Apache para ver los detalles de esta versátil herramienta.

Una manera muy sencilla de hacer una copia de seguridad es definir un cluster de backup con un nodo donde se almacenaránn todos los datos, y hacer la copia de este nodo.

La parte más interesante de la presentación fue cuando el ponente hizo gala de su dilatada experiencia con Apache Cassandra y nos explicó una serie de errores frecuentes y algunas optimizaciones. Recomiendo encarecidamente su lectura http://www.tomas.cat/blog/en/cassandra-frequent-mistakes.

Tan solo felicitar a Tomas por su excelente presentación.

Por último podéis encontrar la presentación original aquí.

Espero que lo disfrutéis 😉

Lorenzo  Cubero – CloudAdmin

Categories
Bigdata General Hybrid Clouds

Ofreciendo Simple Storage Service

Hace algún tiempo, nos vimos en la tesitura de ofrecer servicios de Cloud Storage compatibles con S3. Estuvimos estudiando el mercado, y nos encontramos con Cloudian Multi-tenant S3 Cloud Storage. Básicamente se trata de una plataforma para ofrecer servicios de Cloud Storage mediante una API compatible con S3.

http://www.cloudian.com/overview.html
La idea es bastante interesante. A un cliente que ya se encuentre trabajando con los servicios de Amazon, le resultaría casi trivial cambiar de proveedor de almacenaje en la nube.
La plataforma está muy bien pensada: el contenedor final de los datos está basado en una base de datos noSQL , Apache Cassandra. Dispone de una  Consola de Administración web, que incluso genera informes contables. E incluso viene con un agente de Zabbix para la monitorización del servicio.
En cuanto al modelo de negocio de Cloudian Inc., se puede usar la plataforma de forma totalmente gratuita hasta 100TB de almacenamiento. Empezando a partir de ahí los planes de pago.
Como véis Cloudian está pensado para organizaciones que quieran ofrecer servicios de Cloud Storage a sus clientes.Aunque se trata de una solución muy joven, hay que decir que la versión 2.3 es muy estable y el soporte es muy competente. Por último comentar que Cloudian es capaz de utilizar los servicios S3 de Amazon en caso de que la demanda de almacenaje lo requiera.

Categories
General Hybrid Clouds

Storage Cloud (de mundo-storage)

Queremos presentar un artículo de Mundo-Storage, blog de un gran amigo. En este podemos encontrar artículos muy interesantes entorno el mundo del storage (hardware, storage, backup, bigdata, virtualización, cloud, etc).

STORAGE CLOUD by Mundo-Storage

http://mundo-storage.blogspot.com.es/2012/11/storage-cloud.html
Las organizaciones y en concreto los departamentos de IT en su afán de buscar un ahorro de costes en sus infraestructuras están planteando como alternativa soluciones de “Storage Cloud”, como hemos mencionado el Cloud Computing es una nueva tendencia, un nuevo modelo de negocio que abarca tecnologías ya existentes capaces de dar servicios bajo demanda, optimizando así los recursos tecnológicos en una organización.
En lo referente al “Storage Cloud” está ofrece las mismas ventajas que cualquier servicio presente en la nube, como son escalabilidad y sobretodo una gestión más simple y eficaz, esto supone para las organizaciones rentabilizar los recursos de almacenamiento con los que cuenta.

En este sentido, para la implementación de “Storage Cloud” , podemos decir que hay tres modelos fundamentales, “Public Storage Cloud” , “Private Storage Cloud”  y un tercer modelo que incluye las dos anteriores denominada “Hybrid Storage Cloud”.

En este artículo hablaremos concretamente de “Private Storage Cloud” e “Hybrid Storage Cloud”.
Private Storage Cloud
Es común que se asocie el concepto de “Cloud” como algo público, en la que se accede a servicios que son ofrecidos por terceros y que nos producen un ahorro de inversión importante en nuestra arquitectura, sin embargo el modelo de Cloud puede ser aplicado en nuestro propia infraestructura con recursos ya existentes, esta implementación sobre nuestro almacenamiento es el que se denomina “Private Storage Cloud”.

Por tanto, en nuestra organización podemos aumentar la eficiencia del almacenamiento mediante soluciones Multi-Tenant, que quiere decir que múltiples “clientes” pueden utilizar los recursos al mismo tiempo desde una misma infraestructura de almacenamiento compartido.

Generalmente las “Private Storage Cloud” se encuentran protegidas (firewall) en nuestra arquitectura, y es visible para clientes internos de nuestra organización, toda la infraestructura puede estar en nuestros centros de datos o en un “Hosting“, cuando se implementa “Private Storage Cloud” los clientes deben ser capaces de administrar su propio entorno.

Para dar servicios de “Private Storage Cloud” se debe contar con un mecanismo que nos permita medir y en algunos casos cuantificar el uso del almacenamiento en la nube, por tanto el departamento de IT se convertiría en un proveedor de servicios a otros departamentos o dependencias de la organización, en términos de gestionar presupuestos en una organización, los gastos del departamento de IT derivarían también de la “facturación” de los otros departamentos.

 Hybrid Storage Cloud
Conceptualmente es la combinación de los modelos de “Public Storage Cloud” y “Private Storage Cloud”, en este aspecto una organización puede decidir tener sus datos más críticos dentro de su infraestructura de “Private Storage Cloud”, mientras que los menos críticos en la Nube Pública, o por ejemplo los datos más accesible en la “Private Storage Cloud” y en la “Public Storage Cloud”  tener una réplica de los datos, disponibles cuando los recursos internos son sobrepasados.

Muchos proveedores ofrecen soluciones basadas en reglas que permiten la gestión simplificada a través de estos recursos, lo que nutre a las organizaciones a desarrollar una solución a medida que equilibra los beneficios de costos con la seguridad.

Implementaciones híbridas también pueden ser utilizadas para funciones de copia de seguridad, permitiendo que datos internos sean replicados en la “Nube” reduciendo así los costes de almacenamiento.

Por lo tanto, una solución de este tipo debe proporcionar capacidades de migración y portabilidad de datos entre las “Nubes”, así como las medidas de seguridad opcionales que incluyen la seguridad del transporte, el usuario y autenticación de la entidad, la autorización y control de acceso, integridad de datos, la retención de datos, protección contra malware, seguridad y capacidad de consultas.

En conclusión,  hay muchas ventajas a la utilización de nubes privadas e híbridas. En estos modelos, los departamentos de IT internos tienen más control de sus datos, sin necesidad de administrarlos activamente, dando lugar a costos significativamente más bajos que los del almacenamiento tradicional.