Amazon Web Services es una plataforma de servicios en la nube que ofrece almacenamiento de bases de datos, entrega de contenido, balanceo de ancho de banda y otras funcionalidades para ayudar a las empresas a tener sus productos o servicios en la web con un consumo de recursos bajo demanda.

Los servicios de alojamiento tradicionales (hosting) que ofrecían varias alternativas con características diferentes dependiendo del proveedor, espacio en disco duro, límites de ancho de banda, servidores compartidos o privados, posibilidades de seguridad, etc. fueron la antesala de servicios como AWS en la nube. El servicio de alojamiento típico mantenía plataformas pre-configuradas que se elegían según la conveniencia del usuario en base a criterios de funcionalidad y costo. Sin embargo uno no se podía salir de los márgenes establecidos en cada modelo ofertado.

La plataforma de AWS fue preparada como una alternativa escalable y fue lanzada a finales de 2006 con un modelo de «Infraestructura Como Un Servicio» (IAAS por su siglas en inglés). Las ventajas: granjas de servidores mucho más amplias, stacks muy amplios de servicios que uno podía definir desde el inicio como si de un servidor propio se tratase.

A manera de ejemplo, para mi empresa o proyecto decido utilizar un servidor con sistema Linux de 64 bits, con 2GB en memoria RAM, un ancho de banda de 15 GB para procesamiento de datos, 30GB de almacenamiento en disco. AWS me ofrece esa configuración como parte de muchas otras variantes con la ventaja de que se pueden extender o disminuir recursos «bajo demanda» cuando así se lo requiera.

La evaluación de las características del servicio es factible mediante la Capa gratuita de AWS de acceso libre con límites bastante generosos que permite probar la plataforma durante 12 meses, en ese tiempo el usuario se puede familiarizar con el sistema, probar varios ambientes de configuración, medir su capacidad de consumo, calcular los costos del servicio en la capa pagada entre otras opciones.

Amazon fue uno de los pioneros en ofrecer un servicio de «Cloud Computing» de esas características, pronto empresas como Netflix, Foursquare y Pinterest empezaron a ser grandes usuarios de este servicio y muchos miles de empresas y personas empezaron a probarlo.

De esto ha pasado algún tiempo, el servicio ha crecido en variedad de servicios pero también ha tenido algunos fallos importantes que fueron resueltos en su momento y las preocupaciones de ciertos sectores sobre su volumen, estabilidad y los aspectos éticos con los que se maneja Amazon han dado paso para que otras empresas en la nube ajustaran sus ofertas para ofrecer servicios similares y ser parte de este segmento de innovación tecnológica.

LAS ALTERNATIVAS DE MAYOR VOLUMEN

Si bien la variedad es amplia y algunos servicios son muy complejos, hablaremos de estas alternativas a AWS tratando de encontrar elementos comunes de análisis.

Los 2 grandes competidores a la vista son Microsoft Azure y Google Cloud Platform que siguen creciendo en opciones de servicio hasta llegar a una complejidad importante que no deja de ser beneficiosa para grandes grupos de usuarios.

GOOGLE CLOUD PLATFORM

La variedad de los servicios de Google no tiene márgenes visibles para la comparación, las grandes categorías que cubre fácilmente equiparan o superan la oferta de Amazon. La prueba gratuita en este caso es de 60 días + USD 300,00 de crédito para uso de los servicios de la nube de Google. El crédito se convierte en un valor real si el usuario se registra a la versión pagada antes del final del período de pruebas, de lo contrario al finalizar los 60 días caduca y se inhabilitan los servicios de la nube elegidos para la prueba. Veamos algunos de los servicios de la plataforma en la nube de Google en sus categorías principales:

Potencia de Cómputo

  • Motor de Cómputo (Compute Engine): Ejecuta cargas de trabajo a gran escala en las máquinas virtuales alojadas en la infraestructura de Google
  • Derecho Preferente a Máquinas Virtuales (Preemptible VMs): Es una opción de bajo costo para las cargas de trabajo distribuidas con tolerancia a fallos
  • Motor de Aplicaciones (App Engine): Una plataforma para la creación de aplicaciones móviles y web escalables
  • Motor de Contenido (Container Engine): Ejecuta contenedores acoplables en la infraestructura de Google, gestionado por Kubernetes (servicio de manejo de contenido open source, multi-nube).

Almacenamiento

  • Almacenamiento en la nube: Servicio de almacenamiento económico de gran alcance, con parámetros de cacheo global
  • Nearline: Una solución disponible para copia de seguridad y recuperación de desastres
  • SQL en la Nube: Almacenamiento y gestión de datos utilizando bases de datos relacionales MySQL completamente gestionadas
  • Almacén de datos: Un servicio NoSQL, sin esquema de base de datos para el almacenamiento de datos no relacionales
  • Bigtable: Es un servicio rápido en la nube totalmente gestionado, de escalabilidad masiva para bases de datos NoSQL

Redes

  • Red en la Nube: Conecta a la red de Google directamente, a través de una VPN segura o un servicio de terceros. Utiliza DNS fiables, resistentes y de baja latencia. Balancea el tráfico de carga entre instancias de «Compute Engine» con HTTP o vía red con TCP / UDP.

Big Data

  • BigQuery: Analiza grandes volúmenes de datos en la nube. Gestiona rápidamente consultas SQL-like contra petabytes de datos en cuestión de segundos
  • Flujo de datos: Servicio de procesamiento de datos en tiempo real por lotes y flujos de datos
  • Dataproc: Servicio rápido, accesible y de bajo costo, que mantiene instancias gestionadas de Spark (Asistencia Remota) y Hadoop (Sistema de Archivos Distribuido de Apache)
  • Datalab: Herramienta para la exploración interactiva, análisis y visualización de datos a gran escala
  • Pub/Sub: Conecta los servicios de mensajería alojados en la infraestructura de Google, de muchos-a-muchos de manera fiable y asíncrona

Servicios

  • API de Traducción: Crea aplicaciones multilingües y traduce el texto a otros idiomas mediante programación
  • API de Predicción: Usa algoritmos de aprendizaje automático de Google para analizar los datos y predecir resultados futuros, utilizando una interfaz REST familiar
  • Cloud Endpoints: Crea servicios REST de código accesible a los clientes iOS, Android, y JavaScript utilizando App Engine
  • Monitoreo en la Nube: Obtiene información sobre el rendimiento y la disponibilidad de aplicaciones gestionadas en la nube
  • Gestor de despliegue de la nube: Servicio que permite a los desarrolladores, diseñar, compartir, desplegar y gestionar soluciones complejas de «Google Cloud Platform» usando plantillas declarativas simples.
  • Registro de Contenedores: Permite el rápido almacenamiento de imágenes de Docker (Virtualizador de aplicaciones en contenedores Linux) en la plataforma
  • Nube de Registros Log: Administra todos los datos de registros Log de «Compute Engine» y «App Engine» para investigar y depurar cuestiones del sistema, obtiene una visión operativa y de negocio mientras satisface las necesidades de seguridad y cumplimiento del software.

Lista de completa de productos de Google Cloud Platform (en inglés).

MICROSOFT AZURE

Azure admite una amplia selección de sistemas operativos, lenguajes de programación, marcos, herramientas, bases de datos y dispositivos. Ejecuta contenedores de Linux con integración de Docker; compila aplicaciones con varios lenguajes de lado del servidor; crea back-ends para dispositivos con iOS, Android y Windows.

Las aplicaciones en la nube de Microsoft a través de Azure están transformando la evolución «lenta» de sus aplicaciones de oficina en un uso dinámico de las posibilidades remotas.

La prueba gratuita de Azure es de 30 días + USD 200,00 de crédito para uso de los servicios de la nube de Microsoft.

Esta es una referencia de algunos de sus servicios por categorías:

Potencia de Cómputo

  • Máquinas Virtuales de Windows y Linux (Windows and Linux Virtual Machines): Paquetes de virtualización de Sistemas Operativos que incluyen Windows Server, SQL Server, Oracle, IBM y SAP
  • Servicios en la nube (Cloud Services): Servicio enfocado en las aplicaciones que implementa aplicaciones y APIs de manera escalable con alta disponibilidad, soporta lenguajes como Java, Node.js, PHP, Python, .NET y Ruby
  • Aplicaciones Remotas (RemoteApp): Sirve aplicaciones de Microsoft remotamente para acceso desde dispositivos Windows, iOS, Mac OS X y Android

Almacenamiento

  • Almacenamiento (Storage): Almacenamiento escalable en la nube para aplicaciones con protección de datos. Duradero y de alta disponibilidad global
  • Base de datos SQL: Base de datos en la nube administrada para desarrolladores de aplicaciones
  • DocumentDB: Servicio NoSQL para aplicaciones de alta disponibilidad y globalmente distribuidas
  • Caché en Redis: Acceso consistente a datos, de baja latencia y alta capacidad de proceso para implementar aplicaciones de Azure rápidas y escalables

Redes

  • Red Virtual: Red privada en la nube con infraestructura híbrida, direcciones IP propias y servidores DNS. Trae protección de conexiones para redes VPN IPSec o ExpressRoute
  • Administrador de Tráfico: Enruta geográficamente el tráfico entrante a aplicaciones específicas para mejorar el rendimiento y la disponibilidad
  • Equilibrador de Carga: Mejora el rendimiento de red y provee alta disponibilidad para las aplicaciones. Equilibra la carga del tráfico de red privado y de Internet, escala fácilmente y trae reglas NAT flexibles para obtener mayor calidad en protocolos de seguridad

Analytics

  • HDInsight: Provee servicios administrados en la nube con instancias de Apache Hadoop, Spark, R (Servidor para lenguajes de programación de estadística), HBase (Base de Satos NoSQL de código abierto) y Storm (Sistema de Cálculo en tiempo real, de código abierto, distribuido y con tolerancia a errores).
  • Machine Learning: Aprendizaje automático que ofrece análisis de gran eficacia basado en la nube, incorpora la suite de Cortana Intelligence (Conjunto de Big Data y análisis avanzado)
  • Análisis de Transmisiones: Procesamiento de flujos de transmisiones en tiempo real en la nube. Soluciones IoT (Internet de las cosas), transmite millones de eventos por segundo, permite crear paneles en tiempo real y alertas sobre los datos de dispositivos y aplicaciones.
  • Factoría de Datos: Crea y organiza servicios de datos a escala, visualiza la ascendencia de los datos y se conecta a orígenes de datos locales y en la nube.

Servicios

  • Servicio de Visual Studio para Equipos: Permite que los equipos compartan código, realicen el seguimiento del trabajo y envíen software (para cualquier lenguaje, todo en un solo paquete)
  • Application Insights para Visual Studio: Detecta, evalúa y diagnostica problemas en los servicios y las aplicaciones web
  • Laboratorio de Desarrollo y Pruebas: Ofrece entornos de desarrollo y pruebas rápidos, sencillos y ligeros
  • HockeyApp: Permite el desarrollo, distribución y pruebas de versiones beta de aplicaciones móviles

Lista completa de productos de Microsoft Azure

Hay muchas más opciones en los servicios de Azure y Google Compute Cloud que no tocaremos de momento, en notas posteriores trataremos de manera más amplia y detallada cada propuesta.

OTRAS ALTERNATIVAS

Hay 3 proveedores de servicios en la nube que sin ser de la magnitud de los que mencionamos arriba están haciendo buenos esfuerzos para equiparar las ofertas de servicios de las casas de software más grandes.

RACKSPACE

Inició formalmente en 1998 y ha crecido de manera constante para proporcionar servicios en la nube convincentes con bastante prestigio.

La empresa contribuyó con el código fuente de su producto Cloud Files al proyecto OpenStack bajo la licencia Apache para convertirse en el componente de OpenStack Object Storage, este sistema introduce un nuevo panel de control, así como servicios adicionales en la nube que ofrecen bases de datos, monitoreo de servidores, almacenamiento en bloques, y la creación de redes virtuales.

Se puede visitar una demostración del sitio de Rackspace para ver una versión limitada del panel de control en acción, antes de tener que registrarse.

Una opción inteligente de Rackspace es que ofrece sus servicios en su propia nube o a través de AWS o Microsoft Azure

Entre sus categorías de oferta en la nube tiene: Ecommerce, Manejo de Contenido Web, Email, Productividad y Colaboración, Alojamiento de Sitios Web, Aplicaciones Web, Servicios de Base de Datos, Seguridad y Conformidad Administrados.

JOYENT

Es una compañía de software y servicios con sede en San Francisco, California especializada en la virtualización de aplicaciones y cloud computing. Desde su creación, hace algo más de diez años, se autodenomina una empresa de vanguardia en la innovación técnica.

El equipo de Joyent fue pionero en la computación pública en la nube (y del uso híbrido de la nube), apoyó el crecimiento de Node.js como un estándar de facto para la arquitectura en la web, en móviles y en Internet de las Cosas.

Este proveedor también fue uno de los primeros en utilizar e industrializar contenedores, almacenamiento de objetos de computación centralizados y lo que está llegando a ser conocido como la computación sin servidor.

Joyent ofrece 2 grandes productos para gestión en la nube:

Tritón
Un stack de contenedores nativos para operaciones y aplicaciones. Se promociona como la opción perfecta para lanzar Docker.

Manta
Un servicio de almacenamiento de objetos distribuidos escalable con cálculo integrado que permite almacenar y procesar datos en cualquier momento vía llamadas a la API en la web. Es un entorno de computación de rendimiento completo que incluye R, Python, Node.js, Perl, Ruby, Java, C / C ++, Ffmpeg, Grep, AWK entre otros.

IBM CLOUD COMPUTING

Ofrece la infraestructura Softlayer como una solución global en la nube de alto rendimiento.

SoftLayer es una infraestructura creada para ofrecer rendimiento, selección de servidores virtuales o bare metal para flexibilidad y rendimiento. Red de redes – públicas, privadas, y de gestión, une centros de datos globales de manera segura y eficiente.

Tiene precios iniciales flexibles por hora o mensuales que incluyen almacenamiento, ancho de banda y soporte. Servidores bare metal con rendimiento confiable y capacidad para escalar. Control de la nube mediante una API, un portal web y un conjunto de aplicaciones móviles.

La infraestructura de IBM Cloud Computing

OTROS SERVICIOS

Existen otros servicios en la nube que siguen la tendencia de AWS pero que por su tamaño o tiempo en el mercado aún no alcanzan grados de relevancia, sin embargo la oferta sigue creciendo pues el futuro apunta hacia la globalización de este tipo de soluciones. Como desarrolladores y usuarios nos veremos beneficiados con la presencia continua de opciones novedosas en este cuadrante que iremos analizando de acuerdo a su importancia.