Artículo original en DataCenter1, publicado aquí con autorización de Guillermo Calvo de DataCenter1.
Introducción al Cloud Hosting
Durante más de 6 meses he estado investigando acerca de las diferentes plataformas cloud, esto me ha llevado a probar casi todos los productos de software disponibles en el mercado tanto de código abierto como productos comerciales, adicionalmente he analizado los productos y servicios de diferentes proveedores, incluso a intentar desarrollar un software cloud propio, si bien esta labor investigatíva no me convierte en un experto en cloud, si me ha dado la base teórica y el conocimiento necesario como para hacer recomendaciones a aquellos que desean contratar servicios cloud o para empresas que desean desarrollar sus propios clouds.
Mucho se ha hablado acerca del cloud y suele venderse como la solución a todos los problemas de alojamiento, pero ¿es esto realmente cierto? ¿es Cloud Hosting la solución a todos los problemas? la respuesta la veremos más adelante.
Objetivo:
Mi intención no es más que informar y asesorar, especialmente a empresas que están considerando ofrecer servicios cloud, sin embargo esta información es importante incluso para posibles compradores de servicios cloud hosting.
En términos simples ¿que es Cloud Hosting?
Cloud Hosting es una tecnología que permite adquirir los recursos (CPU, Memoria, Almacenamiento y transferencia) por uso, al igual que como pagamos por servicios como luz, teléfono, etc. a diferencia de servidores dedicados y VPS en donde pagamos una renta fija con x cantidad de recursos ya sea que hagamos uso de ellos o no, por ejemplo en un dedicado, así el servidor no esté en uso o su uso sea muy bajo, igual tendremos que pagar la mensualidad del servicio al proveedor, en Cloud Hosting podemos variar dinámicamente el tamaño de los recursos, es decir podemos comprar 2 GHz de CPU y 2GB de memoria y aumentar los recursos cuando los necesitemos o reducirlos si la demanda baja, como cuando vamos al supermercado a hacer las compras de la semana y compramos un poco más cuando sabemos que nuestros primos vienen a visitarnos.
Adicionalmente a los expuesto arriba, para que una solución sea llamada Cloud Hostind no solo debe ser facturada como servicio y ser expansible dinámicamente, también debe ofrecer redundancia, capacidades de tolerancia a fallos y estar basados en virtualización.
Para que sirve un Hosting Cloud:
Las aplicaciones son muy variadas, pero en líneas generales sirven para cualquier aplicación que normalmente estaría alojada en un VPS o Dedicado, en mi opinión no sustituyen a ninguno de estos servicios, pero le dan al usuario final la posibilidad de elección, por ejemplo para una web de alta demanda, Cloud Hosting podría ser ideal, ya que permite dinámicamente ampliar los recursos en horas pico y disminuirlos en horas de bajo tráfico.
¿Es Cloud Hosting la solución a todos los problemas de hosting?
Cloud Hosting se ha vendido como la solución a todos los problemas de hosting, si bien es cierto que simplifica muchas cosas tanto para usuarios como para proveedores pero no es la solución a todos los problemas de clientes, existen muchas falsas creencias en cuando a estos servicios.
Mitos y Realidades
Cloud Hosting es a prueba de fallas: Falso, las estadísticas demuestran que hasta los grandes nombres en la industria de Cloud Hosting han experimentado extensos períodos de downtime, esto probablemente debido al hecho de que aún es una tecnología nueva y requiere tiempo para madurar o al simple hecho de que nada es totalmente a prueba de fallos.
Cloud Hosting puede ser expandido ilimitadamente: Falso, una máquina virtual solo puede ser tan potente como el servidor físico en donde se aloja menos los recursos que necesita el sistema operativo y el propio cloud, por ejemplo si el proveedor utilza servidores DUAL XEON 5520 como plataforma cloud, el nodo más potente solo podrá tener la misma potencia de un servidor Dual Xeon 5520 menos aproximadamente un 5% de recursos, que es lo que requiere el sistema de cloud y el sistema operativo, normalmente la expansión más allá de una nodo se logra balanceando la cargas entre múltiples máquinas virtuales.
Puedo tener ilimitadas maquinas virtuales bajo cloud hosting: Teoricamente es posible, pero siempre estará sujeto a la capacidad que tenga instalada el proveedor, por ejemplo si hoy tenemos 10 maquinas virtuales y queremos expandir mañana a 1000 maquinas virtuales, probablemente el proveedor no tenga capacidad instalada para satisfacer esa demanda de forma inmediata.
Cloud Hosting es más barato que VPS y Dedicados: Falso, Cloud Hosting requiere de una costosa infraestructura, lo cual aumenta los costos para el proveedor, adicionalmente el proveedor debe dejar una parte de la infraestructura sin uso para que los usuarios puedan expandir y para tolerancia a fallos, esto también aumenta los costos, por lo general VPS y Dedicados son más económicos si se compara con recursos similares en Cloud, la ventaja del cloud es que dispone de precios de entrada más bajos, mayor redundancia y tolerancia a fallos.
Cloud Hosting es mucho más veloz que VPS y Dedicados: Esto puede o no puede ser cierto, depende del proveedor y la implementación que haya hecho, en cloud hosting la data se guarda en sistemas de almacenamiento SAN/NAS esto quiere decir que su data no está físicamente en el mismo servidor en donde se ejecutan los procesos (Memoria y CPU) mover la data de servidores externos puede ser mucho más lento que tener los discos directamente instalados en el servidor y para obtener velocidades superiores se requiere tecnología bastante costosa, por esta razón muchos cloud pueden tener un desempeño de lecturas y escrituras a disco inferior a un dedicado.
Ventajas
Los cloud presentan muchas ventajas:
Por diseño son tolerantes a fallos: los cloud separan los procesos (cpu y memoria) de la data (almacenamiento) de esta forma es posible reemplazar un nodo que falla de manera instantánea, es terminos simples la data estará en sistemas de almacenamiento SAN y esta será montada en los servidores que proporcionan el cpu y la memoria, en caso de que el servidor falle, el sistema cloud puede montar rápidamente la dada en otro servidor que tenga recursos disponibles, si el almacenamiento falla, el proveedor debe tener un sistema de almacenamiento secundario, en caso de fallas de red (switches, routers, tarjetas de red, firewall, etc) el proveedor deberá tener un sistema completamente redundante para minimizar las fallas.
Recurso bajo demanda: La capacidad de ampliar o disminuir recursos dinámicamente.
Bajo Costo de inicio: el poder contratar pocos recursos al inicio e ir aumentando a medida que se requieran permite que el costo inicial sea bajo en comparación con dedicados en donde se debe pagar por la totalidad del servidor así solo se use una pequeña porción de recursos.
Desventajas
Los clouds también presentan algunas desventajas, sin embargo estás desvantajas son más del proveedor que de la tecnología en si.
Precios: Comparando recursos entre cloud y dedicados, cloud hosting puede ser más costoso, arriba expliqué porque los costos de cloud son más elevados.
Posibles problemas de I/O: dependiendo de la tecnología usada por el proveedor, cloud hosting puede ser más lento en rendimiento de discos que servidores dedicados (más adelante explicaré como hacer test de rendimiento)
Para proveedores y/o empresas considerando ingresar al mercado de Cloud Hosting
Las siguientes secciones son de tipo más técnico y financiero para proveedores de hosting
¿ Debo ingresar al mercado de Cloud Linux?
Absolutamente, si aún no tienes planes de hacerlo ya es hora de comenzar, esto será la tecnología dominante para los próximos años, tal y como durante muchos años fue el hosting compartido, dedicados y VPS.
Si aún no tienes una resolución para el 2011, aquí te dejo una buena: Entrar al mercado de cloud Hosting
Hace muchos años predije que la industria del hosting cambiaría y los planes se venderían por recursos en lugar de el tradicional espacio/ transferencia, el tiempo me ha dado la razón, es hora de entrar al cloud o correrás el riesgo de quedarte fuera. Durante el 2011 los grandes actores del cloud mantendrán los precios actuales , esto impulsado por dos razones: La escasa competencia en este sector (por ahora) y al hecho de que han tenido que hacer fuertes inversiones en infraestructura que deben recuperar, esto puede cambiar radicalmente en el año 2012, fecha en que la competencia en el sector cloud, será tan fiera como lo es el segmento de hosting compartido, VPS y Dedicados, sumado a esto muchas empresas ya habrán recuperado sus inversiones de infraestructura, por lo que seguramente bajaran los precios para desalentar a la competencia y la entrada al mercado de nuevos rivales.
La parte financiera:
Como ya expliqué anteriormente, Cloud Hosting requiere de una buena infraestructura, sin embargo esto no quiere decir que esté fuera del alcance de pequeñas empresas, existen varias formas en las cuales un pequeño proveedor puede competir favorablemente en el mercado de Cloud Hosting, aquí analizaremos varias:
Alianzas: Un buena alternativa es construir un cloud entre varias empresas, en donde todos comparten los costos y cada una venta los servicios independientemente la unas de las otras, cloud permite esta capacidad de forma transparente.
Alquilar la infraestructura: Siempre es posible alquilar los equipos e infraestructura necesaria en el DatacenterUn centro de datos o centro de procesamiento de datos (CPD) ..., sin embargo alquilar puede salir más costoso a largo plazo que adquirir los equipos
Comprar y colocar: Probablemente la mejor opción, comprar los equipos y colocarlos en el Datacenter.
Revender los servicios de algún proveedor Cloud, es una buena y económica forma de comenzar, sin embargo no tendrás control sobre la infraestructura.
Software
De todos los productos evaluados, dos llamaron favorablemente mi atención y son:
Abiquo sin duda una pieza de arte en tecnología, dispone de una versión comunitaria gratuita y una versión Enterprise, tiene la ventaja (por aquello del Idioma) que los desarrolladores son Españoles hasta donde tengo entendido, soporta praticamente todas las tecnologías de virtualización existentes: VMWare, Xen, Windows Hypervisor, CitrixXen-Server y KVM.
OnApp Otro excelente producto, el cual tiene una gran atractivo, ofrece licencias gratis por un año o 100 cores, este producto parece estar destinado a convertirse en el de facto de los proveedores de hosting, ha sido desarrollado por y para proveedores de hosting, incluye integración con WHMCS, soporte para reseller combinado como una bella e intuitiva interfaz.
Personalmente he escogido a OnApp, básicamente su soporte para resellers e integración con WHMCS ha sido el punto fuerte a la hora de decidir.
Hardware
Asumo que ya tienes un red y la misma cuenta con todo lo necesario: Switches, Firewall, Routers y demás juegutes caros a los geeks nos encantan !
Para cualquier cloud, deberás comenzar con al menos:
- 2 servidores dedicados para las máquinas virtuales
- 1 Servidor de almacenamiento NAS
- 1 Servidor de panel de control
El hardware puede variar grandemente, aquí te ofrezco una lista para un sencillo cloud
- 3 servidores Xeon 3450 16 GB RAM + Disco SSD de 32 GB para el sistema operativo
- 1 Servidor NAS Xeon 3450 * GB RAM 4 x Discos SATA 1 TB RAID 10
- 1 Servidor Dual Core 4 GB para el servidor de panel de control
Alquilar estos 4 equipos cuesta alrededor de $1000.00/Mes y adquirirlos alrededor de $6000 + la colocación en el Datacenter
En esta setup, se disponen de los siguientes recursos para las máquinas virtuales (note que he restado algunos reservado algunos recursos para el sistema operativo y el sistema cloud)
- RAM Utilizable: 45 GB
- CPU Utilizable en Mhz: 30000 Mhz (12 cores x 2.66 Ghz )
- Espacio Utilizable: 2000 Gb.
Ahora supongamos que creamos un bloque de recursos:
512 RAM, 25 GB Disco + 500 MHz + x transferencia y le asignamos el precio de $30 por bloque
Al dividir la ram disponible (la suma de ram utilizable de todos los servidores para máquinas virtuales) tenemos 45 GB/ 512 = 90, es decir hay suficiente RAM para 90 bloques
Al dividir el CPU total 3000 GHz/ 500 Mhz tenemos que hay suficiente CPU para 60 Bloques
Al dividir el espacio de almacenamiento de 2000 Gb./25 Gb = nos da que tenemos espacio para 80 bloques
Ahora con estos número ya sabemos que en este hardware se pueden vender como máximo 60 bloques de CPU/Memoria/Almacenamiento combinados y aún sobrarán recursos de memoria y almacenamiento, esta información nos permite calcular los precios y el hardware, por ejemplo puedo bajar ligeramente la ram y el precio del servicio para mayor rentabilidad o puedo bajar el CPU para tener más bloques disponibles,
Es necesario hacer nuestras cuentas en función del hardware, precios que se desea ofrecer y el mercado al que va dirigido, en el ejemplo anterior, el cluster puede tener hasta 60 maquinas virtuales a un precio de venta de 30 dólares por máquina virtual, lo que haría un total de 1800.00 dólares, sin embargo en términos reales, esto no es cierto, primero no están representados muchos costos (soporte, licencias de software, etc) y en segundo lugar, no es recomendable tener el sistema al 100% de ocupación, esto no deja espacio para cuando un cliente desea ampliar sus recursos o peor aún, si un servidor físico falla, las máquinas virtuales de ese servidor no pueden ser recreadas en otro unidad porque no hay unidades con recursos disponibles, lo ideal según el ejemplo anterior sería solo vender 40 maquinas virtuales, de esta forma si un servidor físico falla, las 20 máquinas de ese servidor pueden ser colocados entre los otros dos servidores restantes.
Como pueden ver no es tan rentable con una infraestructura rentada, sin embargo si lo es si la infraestructura es propia.
La rentabilidad aumenta en la medida de que usamos hadware de mayor potencia, por ejemplo si en lugar de usar Xeon 3450, utilizamos dual Xeon 5630, podremos colocar el doble de máquinas virtuales por servidor físico
Mi consejo aquí es usar el hardware más potente que se pueda, por ejemplo en nuestro cloud (actualmente en desarrollo) utilizamos CPU Opteron 6174 en un arreglo de 4 CPUs por servidor, esto nos da unos impresionantes 48 cores físicos por servidor para un total de más de 100 GHz de cpu aprovechable, es decir un servidor de esta capacidad puede alojar 200 maquinas virtuales de 500 Mhz cada una, un servidor de esta capacidad cuesta varias veces más que de un Xeon 3450 o dual Xeons, pero nos permite concentrar una alta cantidad de potencia en poco espacio, lo que a la larga se traduce en ahorros.
La elección del hardware es probablemente la parte crítica del sistema, para los que desean utilizar OnApp, ellos ofrecen asesoría gratuita.
Almacenamiento
El almacenamiento es el corazón del sistema Cluod, en pocas palabras tu cloud será tan confiable y veloz como lo sea tu sistema de almacenamiento y es aquí donde fallan muchos de los proveedores actuales, desafortunadamente un sistema NAS de alto rendimiento cuesta tanto como un coche deportivo y hasta más, sin embargo hay algunas opciones que nos permiten crear un buen sistema de almacenamiento
Algunos productos que sugiero considerar son (productos de software, requieren uno o varios servidores con arreglos de discos):
Una excelente sugerencia es utilizar discos SSD (estado sólidoLa unidad de estado sólido o SSD (acrónimo inglés de Soli...) son bastante más costosos que los discos tradicionales SATA/SAS pero a cambio ofrecen un rendimiento insuperable.
Tambien es posible utilizar soluciones de hardware como los dispositivos Netapp los cuales ofrecen un excelente rendimiento
Otro punto a considerar es la conexión entre el sistema de almacenamiento SAN y los servidores, para clouds pequeños es posible conectar directamente el servidor al NAS vía tarjeta de red de 1GbE, es importante activar Jumbo Frames en ambas tarjetas y tendrá una comunicación de 1000 mbps entre el almacenamiento y los servidores de procesos, el algunos casos 1000 mbps no son suficientes, se puede utilizar más de una tarjeta de red en paralelo o utilizar tarjetas de red 10 GbE para una velocidad de conexión de 10000 mbps.
Para cluster más grandes, se necesita un switch dedicado para el almacenamiento, puede usar un switch 1 GbE pero es posible que en el futuro deba ampliar a 10 GbE
Recomiendo el uso de redes Ethernet y evitar Fiber e Infinitband, especialmente si no se tiene experiencia con estas tecnologías. Fiber e Infinitband dan excelentes resultados pero agregarán complejidad a nuestro setup.