Luego de que Amazon lanzara en 2006 AWS, su plataforma en la nube para desarrolladores, nadie imaginó que se convertiría en referente y supere a gigantes con décadas de experiencia como IBM u Oracle
Sin embargo, otros dos competidores surgieron en este espacio y que hoy compiten codo a codo por ser los líderes: Microsoft con Azure y Google con Cloud Platform. Vamos a ver brevemente cuáles son sus ventajas y desventajas.
Amazon AWS
El servicio AWS es el claro dominador de servicios IT para empresas y desarrolladores desde hace 10 años. Provee todo tipo de herramientas para administradores de sistemas y desarrolladores, así como el servicio Amazon S3, servicio de almacenamiento para todo tipo de usuarios desde webs hasta repositorio de ficheros.
Hoy por hoy casi cualquier archivo o imagen de internet procede de este servicio o alguno de sus CDN asociados. Luego se unieron Elastic Block Storage (EBS) o Elastic FIle System (EFS) para construir archivos más complejos de datos. Tampoco nos podemos olvidar de las bases de datos: Database Service (RDS), DynamoDB NoSQL o RedShift que impulsan la interconexión de servicios y el registro de información.
Microsoft Azure
Si bien llegó relativamente tarde al mercado de la nube, pudo dar el salto gracias a su infraestructura basada en servidores Windows Server, Office, SQL Server, Sharepoint o .Net.
Su gran punto a favor es la masiva utilización de Windows en las empresas, así como la adopción del ecosistema Microsoft. Esto hace que Azure pueda ser utilizado con cualquier servicio de Microsoft en la infraestructura cloud sin mucha fricción.
Gran parte de la computación en la nube de Microsoft se basa en Virtual Machines con soporte para Linux, Windows Server, SQL Server, Oracle, IBM o SAP y posee un amplio catálogo de configuraciones. Aparte de ello, Azure cuenta con su infraestructura basada en Kubernetes y Docker Hub para utilizar contenedores que puedan ser escalados independientemente sin necesidad de preocuparse de las máquinas virtuales que necesitamos.
En cuanto al almacenamiento, Azure ofrece soluciones como Blob Storage para información desestructurada, Queue Storage para grandes volúmenes de información, File Storage para recursos compartidos y Disk Storage como HDD/SDD para empresas. Además cuenta con un amplio abanico de distintos tipos de bases de datos como SQL Database, Database for MySQL y PostgreSQL. Además de NoSQL como TableStorage y Cosmos DB.
Google Cloud Platform
Si bien llegó tarde, gracias a Kubernetes consiguió el empuje necesario para convertirse en el estándar de facto. Su principal oportunidad se encuentra en el uso extensivo de contenedores en la nube más que en ofrecer máquinas virtuales.
Todos los conocimientos de Google fueron puestos para escalar y balancear grandes infraestructuras de sistemas, muy similares a las que usa la gran G de forma interna. Sus productos destacan por el uso de BigData, herramientas de analíticas o machine learning.
En cuanto a base de datos en la nube, lo más destacado quizás sea Cloud Storage, su sistema de almacenamiento de objetos unificado, cuyo caso de éxito es Spotify almacenando y sirviendo música desde allí a través de su infraestructura. Y como bases de datos NoSQL nos encontramos con BigTable y BigQuery muy utilizado para BigData en Data Science.
Todos los proveedores de servicios en la nube están convergiendo en el uso intensivo de contenedores (CaaS) para independizarse de la plataforma dónde se despliegan las aplicaciones y el uso de serverless para ejecutar código directamente sin preocuparse de la infraestructura.
Tanto Google Cloud Engine, AWS EC2 Container Service o Azure Container service ya están preparados para que la unidad de trabajo mínima sea un contenedor docker que desplegamos en el servicio del proveedor de turno.
Google ha ido incluso más allá con Anthos, basando en Kubernetes, ofreciendo un servicio para la gestión, despliegue y monitorización de las distintas plataformas en la nube que el usuario tenga, ya sea AWS, Azure, Google Cloud o su propia infraestructura.
En cuanto a Serverless, AWS Lambda es una de las implementaciones más populares de FaaS (Function as a Service) que existen actualmente, aunque los distintos proveedores evolucionaron a alternativas como Google Cloud Functions, Azure Functions o Alibaba Cloud Functions.
La promesa de un cloud transparente y más productivo para los programadores está muy cerca que permita ejecutar aplicaciones sin depender exclusivamente de un único servicio en la nube.