Soluciones de almacenamiento en Azure

¿Qué es Azure?

Azure es un servicio de computación en la nube extremadamente flexible con tipos de servicios PaaS (Plataforma como servicio), SaaS (Software como servicio) o IaaS (Infraestructura como servicio) que soporta además arquitecturas completamente en la nube o hibridas, dejando así a los desarrolladores enfocarse en el código sin lidiar con mantenimiento de servidores o gestión de hardware y software.

Una parte importante de los servicios que Azure oferta es que una gran cantidad de ellos se paga por lo que se usa, de esta manera se incentiva la experimentación y la adopción de nuevas tecnologías. Si quisiéramos que nuestra empresa use un SQL Data Warehouse, nos tomaría probablemente semanas o meses para que éste se encuentre operativo on-premise además de la alta inversión inicial. Azure nos permite tener este servicio funcionando en minutos.

Dentro de las muchas ofertas tecnológicas de Azure, una de ellas es el manejo de datos y es en la que se enfocarán estos artículos.


Esta imagen muestra los servicios de Azure en datos, aunque no está actualizada nos servirá en este artículo ya que ilustra la intención de Microsoft de mantenerse en la vanguardia tecnológica y ofrecer un servicio completo a diferentes tipos de necesidades que el cliente o el desarrollador tenga, todo esto en la nube.

Para resumir, ¿Por qué migrar a la nube, y en particular a Azure, mis necesidades de datos?

  • Facilidad de migración y gestión. La creación y gestión de servicios son fáciles y rápidos ya que pueden ser realizados desde el portal de Azure o automatizados usando Azure CLI. La migración es segura y confiable usando herramientas como Microsoft Data Migration Assistant o el servicio de Azure Data Box para grandes cantidades de datos.
  • Compatibilidad y flexibilidad. Usando servicios como Azure Data Factory se puede dirigir los flujos de datos de muchas aplicaciones de forma sencilla ya que existen conectores para SAP, Microsoft Dynamics o AWS. Azure permite también el uso de arquitecturas hibridas o completamente en la nube.
  • Tecnología de punta en unos cuantos clicks. Big Data, Machine Learning, IoT son tecnologías que están siendo usadas exitosamente por una gran cantidad de empresas. El desarrollo y la infraestructura necesaria para usarlas supone un costo prohibitivo. Azure tiene todo listo para que esta tecnología sea aprovechada por el desarrollador sin preocupaciones extra.

¿Qué servicios usar?

La gran cantidad de opciones que tenemos puede llegar a intimidar y aunque existen muchos recursos en línea para ayudarnos con nuestras dudas, algunos son contradictorios o no son del todo claros.

Para hablar con claridad acerca de los servicios de Azure debemos recordar algunas definiciones que nos ayudaran a distinguir y hacer una buena elección.

  • Datos Estructurados. Mejor conocidos como SQL, son tabulares y generalmente relacionales. Datos muy organizados que siguen un esquema.
  • Datos Semiestructurados. No necesariamente siguen un esquema y no son tan organizados. Por ejemplo, datos Json o XML.
  • Datos no estructurados. Datos difíciles de interpretar como logs binarios, vídeos o imágenes.

Además de diferentes tipos de datos hay diferencias en los objetivos de las bases de datos.

  • Transaccional. Generalmente operativas, se enfocan en garantizar velocidad e integridad al realizar operaciones. Una transacción es aquella que cumple la propiedad ACID (Atomicidad, Consistencia, Aislamiento y Durabilidad). Por ejemplo, bases de datos bancarias.
  • Analítica. Almacena datos históricos que pueden ser usados para obtener información de negocio y alimentar el proceso de toma de decisiones. Por ejemplo, SQL Data Warehouse.

Una vez recordado estas definiciones la siguiente imagen que muestra algunos servicios importantes de Azure que pueden ser de utilidad para planear un proyecto en la nube de almacenamiento.

* CosmosDB soporta transacciones únicamente al usar Stored Procedures o Triggers

Si mi negocio necesita almacenar imágenes o vídeos para algún tipo de catálogo y no tengo interés en tecnología analítica, alguna implementación de Azure Blob Storage sería lo indicado.

Tengo necesidad de almacenar operaciones transaccionales Azure SQL DB o Azure Cosmos DB es de mi interés. Cosmos DB sería especialmente útil si los datos que voy a almacenar no siguen siempre el mismo esquema o patrón.

Azure Data Lake Gen 2 y Azure Synapse Analytics son bases de datos analíticas enfocadas a big data donde ASA(Azure Synapse Analytics) es la combinación de los servicios de SQL Data Warehouse y Data Lakes, si nuestro negocio tiene necesidad de almacenar transacciones históricas para hacer análisis buscaría usar Azure SQL Data Warehouse, si mis datos no son de bases de datos relacionales usaría Azure Data Lake Gen 2 y si tengo necesidad de ambos Azure Synapse Analytics podría ser la mejor solución.

Además de estas características otro factor que influenciará nuestra decisión es el costo ya que no todas cobra de la misma manera.

¿Por qué usar Data Lake cuando puedo usar Synapse? ¿Si sólo me interesa el almacenamiento sin los servicios de análisis aun así debería de usar un Data Lake? Para responder estas preguntas será necesario hacer un análisis de costos y Microsoft nos apoya también con esto.

Usando esta herramienta y con ayuda de documentación podemos encontrar los servicios de mayor utilidad y menor precio.

En los próximos artículos hablaré un poco mas a detalle de Azure Cosmos DB y Azure Data Lakes haciendo también una pequeña arquitectura con estas herramientas.

Crea una cuenta de Azure gratis.

Documentación.