Llegamos a ustedes gracias a:



Reportajes y análisis

Análisis de la nube

Amazon, Microsoft, Google, IBM, y Joyent

Amazon, Microsoft, Google, IBM, y Joyent

[10/05/2016] El mensaje de la nube siempre ha sido simple: renuncien a sus preocupaciones, administradores de TI, y nos ocuparemos de todo. Olvídese de pelarse los nudillos instalando servidores, copias de seguridad de doble control, o preocupándose por mil o 10 mil cosas que podrían salir mal. Denos un número de tarjeta de crédito y sus datos. Nosotros haremos el resto.

Durante los últimos meses, una vez más he estado viviendo el sueño, construyendo un vasto imperio de computadoras que cruzaron el mundo. Máquinas de todo el mundo hicieron crujir mis datos en pequeños trozos, y luego crujieron los números aún más. Las redes privadas llevaban mis restos secretos de información entre las máquinas, para que otros pudieran trabajarlos y transformarlos a gráficos bonitos. Claro, mi computadora está un poco vieja y podría necesitar más memoria RAM, pero con mi navegador, creé un ejército mundial de máquinas con aproximadamente la misma facilidad que el aprendiz de brujo en "Fantasía".

La buena noticia es que, a diferencia del aprendiz, las máquinas más o menos desaparecieron cuando les pedí que se fueran. Esa es la belleza de la nube. Usted compra lo que quiere, cuando lo quiere. Ah, hay un cargo recurrente errante por un blob de trozos pegados en Azure Cloud de Microsoft, pero el soporte técnico está explorando opciones para borrarlo. Espero que pronto sea eliminado, junto con esas facturas de unos pocos centavos que me recordaban del blob cuando aparecían en mi tarjeta de crédito.

Todas las otras máquinas iban y venían con un pequeño cargo medido en centavos. La mayoría de tiendas en dólares han sido ingeniosamente cambiadas de nombre para incluir los productos que cuestan menos de cinco dólares, pero en la nube aún sigue siendo posible comprar máquinas como si fueran caramelos de peniques. Alguien debería resucitar el antiguo nombre de Woolworth y el slogan de cinco y diez centavos.

Asuntos de facturación

Averiguar lo que está pagando, por cierto, está volviéndose cada vez más complejo, debido a las diferentes formas en que los proveedores de la nube ofrecen descuentos. Al principio, compraba su turno por hora, y el costo de una semana era calculado multiplicando el precio por hora por 24, luego por siete.

Ahora tiene opciones. Amazon, por ejemplo, ofrece "instancias reservadas", un mecanismo para premiar a las empresas que firman un compromiso de un año o de tres años con AWS. Como se suele decir, "cuanto más se paga por adelantado, más se ahorra".

Para no quedarse atrás, Google ofrece su propio mecanismo de descuento, en donde el precio de una máquina sigue descendiendo mientras más lo utilice. No es necesario hacer un compromiso o usar la máquina constantemente. Simplemente, el precio disminuye a medida que el uso aumenta.

Esa no es la parte más difícil de la ecuación, pues los modelos de facturación no son la única diferencia. El rendimiento varía sustancialmente entre máquinas y entre aplicaciones. Todas las máquinas se parecen cuando se escribe en la línea de comandos, pero el rendimiento comienza a cambiar en base a detalles como la cantidad de RAM que elija, y si su aplicación está tratando de escribir en el disco.

Las arquitecturas y aplicaciones son tan diferentes que lo más inteligente es establecer indicadores, y luego iniciar la multiplicación de los costos. Tal vez la memoria RAM extra vale la pena, o tal vez no. A veces, querrá un grupo de N máquinas completamente cargadas; y otras, un grupo de 4N máquinas baratas que cuestan solo centavos por hora. No es una decisión fácil. Necesitará hojas de cálculo para averiguarlo.

Las diferencias clave

Una vez que empieza a descubrir que los resultados varían, a menudo de manera dramática, entre nube y nube, y que no siempre se obtiene el doble de rendimiento por el doble de pago, empieza a darse cuenta de que hay muchas diferencias sutiles detrás.

Cualquier persona que asume que las máquinas de la nube no son más que productos básicos, se está quedando con la parte equivocada del mensaje. Los equipos de marketing impulsan la idea de que la nube permite girar alrededor de computadoras y almacenamiento, como si fueran piezas de Lego intercambiables; pero eso no es exactamente cierto. Todos los proveedores están tratando de distinguir sus máquinas y servicios, ofreciendo algo un poco diferente y un poco mejor. Es probable que no valga su tiempo preocuparse por ahorrar unos pocos centavos por hora si su trabajo se va a realizar en unas pocas horas, pero las variaciones son a menudo importantes para cualquiera que lleve a cabo una gran cantidad de trabajo.

Las desviaciones comienzan cuando se elige el sistema operativo. Es fácil asumir que todo es Linux, porque Linux está en todas partes; pero eso ignora los contrastes entre las distribuciones. Si bien muchas de las distribuciones estándar, como Ubuntu, son ubicuas, las empresas han creado sus propias versiones con mejoras leves o no tan pequeñas. Amazon Web Services y Google Cloud Platform, por ejemplo, tienen su propio Linux para la nube.

Amazon Web Services  Google Cloud Platform IBM Cloud Joyent Cloud Microsoft Azure
Servicios de computación
Max. de CPUs por VM 40 32 16 32 32
Max. de RAM por VM 244GB 208GB 64GB 256GB 448GB
Max. almacenamiento por VM 48TB 64TB 8.1TB 6TB 1TB
Tipos de máquinas personalizadas X X X
Hosts dedicados X X X
Bare metal X X
Instancias de GPU X X X
Instances puntuales X X
Instancias reservadas X X
Autoscaling X X X X X
Servicios de contenedores X X X X

Linux no es la única opción. Muchas de las nubes hacen que Microsoft Windows pueda estar disponible por un cargo extra, pero normalmente no tendrá que pagar una tasa adicional con Microsoft Azure; al menos, con algunas configuraciones. Microsoft quiere atraer tiendas de Windows con servicios que hagan que mover más y más computación a la nube sea más sencillo. Cualquier persona con una inversión sustancial en la tecnología de Microsoft se sentirá más a gusto con Azure.

Luego está Joyent Cloud, que cuenta con un derivado de OpenSolaris mejorado, llamado SmartOS. Puede ofrecer un rendimiento más rápido para algunos trabajos como Java, pero sobre todo es interesante porque los ingenieros de Joyent lo han reconectado para que ejecute contenedores Docker. Es un trabajo impresionante de ingeniería.

Docker es, por supuesto, otra gran opción porque los desarrolladores están empezando a girar alrededor de los contenedores Docker, así como solían tantear con las máquinas virtuales. Todas las nubes afirman ofrecer un montón de soporte, pero hay diferencias sutiles y no tan sutiles bajo el capó. La opción de Joyent es buena para el rendimiento de bare metal. Claro está que Google hace que sea fácil usar su herramienta Kubernetes para girar los grupos de contenedores. Azure le permite elegir entre Mesos/Marathon y Docker Swarm. Y Amazon tiene su propia forma de programar contenedores. La ejecución de contenedores es un proyecto "para que uno mismo lo haga en la nube de IBM (también conocido como SoftLayer), mientras que encontrará servicios de gestión de contenedores en IBM Bluemix.

Si bien todas las máquinas de la nube están destinadas a ser indistinguibles de comprar un Intel box y ponerlo en su propio estante, la realidad es que a menudo son cuchillas de múltiples núcleos grandes que están distribuidas en las máquinas virtuales para nuestro consumo. No está alquilando una casa unifamiliar en su propia parcela de tierra -está inscribiéndose para un condominio o una multipropiedad. El código de los contenedores, el sistema operativo, y el hipervisor entran en el juego. Mientras más capas, más lenta es la máquina. Sin embargo, la única manera de saber es poniendo a prueba.

Almacenamiento de datos

Un lugar donde los efectos de la virtualización se sienten en gran medida es en el almacenamiento de datos. Las bases de datos dependen mucho de la velocidad de los canales de E/S a las unidades de disco, y cada bit adicional de virtualización puede disminuir su velocidad. Algunas nubes no están haciendo mucho para arreglar esto porque, probablemente, asumen que todo el mundo quiere ejecutar sus propias máquinas de bases de datos.

Todas las nubes ofrecen almacenamiento de objetos. Se les da una bolsa de bits, y prometen devolverla más tarde. No es una mala manera de almacenar datos. Es altamente fiable y extremadamente flexible.

Amazon Web Services Google Cloud Platform IBM Cloud Joyent Cloud Microsoft Azure
Servicios de bases de datos
MySQL X X
MariaDB X
PostgreSQL X *
Oracle Database X
Microsoft SQL Server X X
IBM DB2 *
MongoDB *
Otros NoSQL X X * X
Cache in-memory X * X
* Disponible en IBM Bluemix

Existen opciones más elegantes con más sofisticación. IBM Cloud, por ejemplo, ofrece MongoDB en máquinas separadas que están especialmente sintonizadas para la carga de trabajo. Opciones similares están disponibles en todas las nubes con bases de datos parecidas. Google ofrece cuatro opciones básicas como como Cloud Datastore, un producto NoSQL; y Cloud SQL, una versión para los que todavía usan SQL. Microsoft, por supuesto, será el anfitrión de su propio SQL Server en Azure. Amazon ofrece la gama de servicios de bases de datos, incluyendo su giro de alto rendimiento en MySQL.

Otros servicios enfatizan atributos diferentes de rendimiento. Amazon tiene una amplia colección de soluciones de almacenamiento de datos que se llevan bolsas de bits y las devuelven luego; pero puede que el más interesante sea Glacier, un servicio diseñado para cuando los tiempos de recuperación puedan llegar a ser de "varias horas" -no milisegundos, segundos, o minutos, sino horas.

Luego están los enfoques más revolucionarios como Manta de Joyent, un sistema que lleva el cálculo a los datos en lugar de lo opuesto. Joyent lo llama un "servicio de almacenamiento de objetos distribuidos con el cálculo integral". Sus objetos flotan en la nube. Cuando desea consultar algo en estos, puede escribir código que se ejecuta localmente. Manta soporta R, Python, Node.js, Java, y algunos más.

Claro, todavía es posible elegir otra máquina e instalar su opción de almacenamiento favorita, pero estas soluciones administradas pueden ser lo suficientemente tentadoras como para tomar la decisión por usted. Si una nube tiene el tipo de capa de almacenamiento de datos que le gusta, por lo general puede vivir con las otras herramientas.

Amazon Web Services Google Cloud Platform IBM Cloud Joyent Cloud Microsoft Azure
Servicios de almacenamiento
CDN X X X X
Almacenamiento en bloque X X X X X
Unidad de estado sólido X X X X X
Almacenamiento de objetos X X X X X
Almacenamiento de ficheros X X X
Almacenamiento de archivos X X X X
Nota: El servicio de almacenamiento de objetos de Joyent integra cálculos, lo que permite que los datos sean procesados.

Opciones de conectividad

Otro tema con el que uno puede emocionarse es la interconexión. Algunas nubes -como IBM Cloud- ofrecen redes privadas que enlazan las máquinas. Es sencillo crear una máquina de base de datos que solo escuche a esta red privada; lo que la vuelve un poco más segura de los tipos de agresiones que llegan a través del Internet público. No es una técnica perfecta, pues la seguridad en la nube es, bueno, un tema nublado; pero es un gran primer inicio. También, para más aislamiento del ruido vecino proverbial, es elegir las instancias de bare metal de IBM.

Algunos de los otros proveedores ofrecen distinciones geográficas más elaboradas sobre las partes de su nube. Conocer más acerca de dónde se encuentra su máquina puede ayudar a tomar decisiones acerca de dónde vas a quedar sus datos. Un personal especialmente paranoico con datos especialmente valiosos, puede crear un imperio de máquinas y encargarse de que los datos se dupliquen en diferentes regiones geográficas para obtener una mejor protección contra las tormentas, incendios y otros cataclismos locales. Google, por ejemplo, es muy transparente sobre el costo del ancho de banda entre los centros de datos independientes, y valora a estas transferencias de forma diferente que a los flujos entre máquinas en el mismo centro.

Amazon Web Services Google Cloud Platform IBM Cloud Joyent Cloud Microsoft Azure
Servicios de red
DNS X X X X X
Equilibrio de carga X X X X
Redes privadas virtuales X X X X X
VPN gateways X X X X
Conexiones dedicadas X X X X X

Los costos de banda ancha pueden llegar a ser confusos. Las nubes no suelen cobrar nada por el tráfico de entrada, un truco que simplifica la medición y contabilidad, mientras que construye una especie de motel para su información; los datos ingresan, pero no se quieren ir. Si va a crear una gran máquina que procesa datos numéricos como la de "Guía del viajero intergaláctico", que absorbe gran cantidad de información, pero solo devuelve un solo número (42) como respuesta, los planes de datos de este tipo son atractivos. Si su objetivo es competir con YouTube, por el contrario, tendrá que prestar mucha atención a las tasas de egreso.

Mas allá de lo básico

Las partes más interesantes de la nube son las máquinas de propósito especial. Generalmente, incluso si no son útiles para el código PHP que tiene que ejecutar hoy, prometen que afrontar los desafíos en el futuro sea dramáticamente más fácil. Amazon, por ejemplo, tiene un conjunto de tarjetas de video (GPU) listo para cualquier experimento que se le ocurra, y proyectado en algoritmos que son fáciles de ejecutar para estas tarjetas. Los físicos, biólogos y científicos de la computación ya están convirtiendo sus algoritmos para funcionar en las tarjetas. Es solo un ejemplo de cómo las nubes están haciendo que experimentar con nuevas arquitecturas sea más fácil para todos nosotros.

Estos stacks especiales no siempre requieren un hardware especial. Todos estos proveedores de la nube ofrecen máquinas especiales de Hadoop para alimentar el frenesí. Están ajustando el sistema operativo subyacente y optimizando la JVM para un mejor rendimiento. Joyent afirma que sus máquinas funcionan "casi 3 veces más rápido". ¿Lo hacen? Depende de lo que le pida a las máquinas. Amazon, por su parte, cuenta con una nube de máquinas que toma los trabajos de Hadoop directamente y le permite ofertar por tiempo de computadora en máquinas de repuesto.

Amazon Web Services Google Cloud Platform IBM Cloud Joyent Cloud Microsoft Azure
Servicios de análisis
BI y visualización X X * X
Almacén de datos X X * X
Procesamiento de flujos X X * X
Elasticsearch X *
Hadoop X X * X
Spark X X * X
Aprendizaje automático X X * X
Data pipelines X X * X
*Disponible en IBM Bluemix

Existen opciones para los equipos que realizan análisis de datos. Microsoft ofrece una serie de servicios de procesamiento de big data que están integrados en la nube de Azure. Una vez que carga sus datos, los algoritmos están listos para trabajar. Presiona un par de botones y gráficos sofisticados, y una visión profunda aparece. Del mismo modo, se puede aprovechar el poder de Watson y las herramientas de análisis predictivo en Bluemix de IBM. Amazon ofrece un conjunto más reducido de capacidades de aprendizaje automático, adaptadas para los desarrolladores y analistas de negocios. El servicio de aprendizaje automático de Google ha sido recientemente puesto a disposición en una vista previa limitada.

Hay otros conjuntos de funciones a los que, al final, no les di mucha importancia. Algunas de las nubes están haciendo un mejor trabajo con las mediciones de rendimiento y los paneles gráficos sofisticados, que otras. Esto me llamó la atención al principio, pero luego dejé de prestarle atención. El conocimiento de la carga total de la máquina es muy útil, pero la mayoría de los desarrolladores tendrá que hackear sus propias estadísticas para obtener una mejor sensación del rendimiento de su colección de máquinas. Sin embargo, sus necesidades pueden variar, y las características adicionales pueden ser exactamente lo que necesita.

Otro conjunto similar de funciones puede llegar a ser más significativo. Algunas de las características más recientes que aparecen en las nubes hacen que sea más fácil automatizar numerosos ejércitos de máquinas, y luego cambiar un poco la configuración de cada uno de ellos. Amazon permite crear cientos de nuevas máquinas a partir de la misma imagen, y luego pasar información de configuración que les permite modificarse a sí mismos. No hay necesidad de iniciar sesión en cada máquina de forma independiente y configurarlo.

El valor de las funciones de este tipo depende, en gran medida, de los tipos de trabajo que está llevando a cabo. Si sus stacks son bastante estáticas, esta característica no hará mucha diferencia. Pero si está construyendo y destruyendo grandes colecciones de máquinas, la capacidad de automatizar la configuración es esencial. Espere más ayuda para funciones de este tipo, para dominar las opciones para las personas que están procesando ráfagas esporádicas de big data.

Amazon Web Services Google Cloud Platform IBM Cloud Joyent Cloud Microsoft Azure
Servicios de desarrollo y de la plataforma X X * X
Gestión del código fuente X X * X
Implementación del código X X * X
Integración continua X * X
Event-driven compute X X * X
Flujo de trabajo X * X
Reglas empresariales * X
Gestión de API X * X
SDKs móviles y back end X X * X
Plataforma de IoT X X * X
Cola de mensajes X X X X
Notificaciones push X X * X
Envío por email X X X
Búsqueda X X * X
Transcodificación de medios X X X
* Disponible en IBM Bluemix

La nube adecuada para usted

Si hay una lección de todo esto, es que la respuesta nunca es definitiva. La máquina más barata para usted puede no ser la máquina más barata para mí. El mejo precio de plan de ancho de banda para usted, puede ser prohibitivamente caro para mí. Los puntos de referencia varían, así como los precios de almacenamiento de datos. Cada uno de nosotros se ve obligado por el sistema a pasar tiempo calculando cifras y ejecutando pruebas antes de tomar una decisión.

Esto es parte de la diversión. Puede parecer que la nube suaviza toda la complejidad que implica la ejecución de un grupo de servidores, pero lo que los proveedores están haciendo en realidad es resolver todos los problemas pesados, mientras que otorgan la libertad de elegir diferentes arquitecturas. Cada vez se vuelve más fácil y transparente tomar las opciones, ahora que no tenemos que preocuparnos tanto de generadores de emergencia y capacidad de bastidor. Después de pasar unos meses jugando con mi vasto imperio, me he dado cuenta de que no he terminado realmente.

Peter Wayner, InfoWorld (EE.UU.)