Azure Cosmos DB: primer servicio de base de datos multimodelo distribuido globalmente del sector

Publicado el 10 mayo, 2017

Founder of Azure Cosmos DB, Technical Fellow, Microsoft

Nos complace anunciar hoy la disponibilidad general de Azure Cosmos DB. Azure Cosmos DB es el primer servicio de base de datos distribuido globalmente que permite escalar el procesamiento y el almacenamiento de forma elástica en cualquier número de regiones geográficas con baja latencia, alta disponibilidad y coherencia garantizadas, y con el respaldo de los acuerdos de nivel de servicio más completos del sector. Azure Cosmos DB está pensado para sustentar las aplicaciones de IoT y móviles actuales, así como un futuro hambriento de inteligencia artificial.

Es la primera base de datos en la nube que admite de forma nativa un gran número de modelos de datos y las API de consultas más populares. Está basado en un novedoso motor de base de datos que puede ingerir volúmenes constantes de datos y proporciona consultas ultrarrápidas, todo ello sin tener que administrar esquemas ni índices. Y es la primera base de datos en la nube que ofrece cinco modelos de coherencia bien definidos, de modo que puede elegir el más adecuado para su aplicación.

Para crear estos cinco niveles de coherencia y muchas de las características de Azure Cosmos DB, hemos combinado la investigación de bases de datos y sistemas distribuidos que hemos realizado durante décadas con un rigor de diseño de talla mundial. Encontrará más información acerca de la investigación que hemos implementado en Azure Cosmos DB en este vídeo de un investigador de Microsoft que ha sido galardonado con el premio Turing, un gigante de los sistemas distribuidos y nuestra fuente de inspiración, Leslie Lamport.

Azure Cosmos DB transforma el desarrollo de aplicaciones basado en la nube

Creemos que Azure Cosmos DB transforma, básicamente, la forma en la que los desarrolladores crearán aplicaciones basadas en la nube:

1. Cree aplicaciones distribuidas globalmente con más facilidad

Con Azure Cosmos DB, la distribución global es cosa hecha. Con un solo clic, puede agregar o quitar cualquier número de regiones de Azure a su base de datos de Azure Cosmos DB en cualquier momento. Azure Cosmos DB replicará sus datos sin problemas dondequiera que se encuentren los usuarios.

2. Escale la capacidad de procesamiento y almacenamiento de forma elástica en cualquier momento, a petición y en todo el mundo

Azure Cosmos DB permite que su aplicación escale la capacidad de procesamiento y almacenamiento a petición en todo el mundo. Puede escalar de forma elástica desde miles hasta cientos de millones de solicitudes por segundo en todo el mundo, con una sola llamada API, y pagar solo por el procesamiento (y almacenamiento) que necesite.  Azure Cosmos DB es la única base de datos en la nube que permite escalar el procesamiento tanto por segundo como por minuto. Esto, a su vez, permite solucionar picos inesperados de las cargas de trabajo de forma predecible sin tener que aprovisionar recursos de más por estos picos de actividad.

“Utilizamos Azure Cosmos DB para nuestros sistemas de procesamiento de transacciones porque puede controlar un volumen extremadamente elevado de operaciones de escritura por segundo con una coherencia predecible, lo que aporta a nuestros sistemas el alto rendimiento y la confiabilidad que nuestros clientes demandan. La capacidad para escalar el procesamiento para cada colección nos da el control que necesitamos para ajustar el rendimiento y los costos con el fin de proporcionar el máximo valor a nuestros clientes”.

- Andrew Hochstetler, director sénior de Arquitectura de aplicaciones, Blackboard.

3. Cree aplicaciones con una gran capacidad de respuesta

Azure Cosmos DB garantiza latencias inferiores a 10 milisegundos en el percentil 99 para su aplicación, en cualquier parte del mundo. El motor de base de datos optimizado para operaciones de escritura, con estructura de registros y sin bloqueos, que es la base de Azure Cosmos DB, permite la ingesta constante de datos y consultas ultrarrápidas. Los usuarios estarán encantados con la capacidad de respuesta de su aplicación.

4. Cree aplicaciones que siempre estén “activas”

Azure Cosmos DB se asegura automáticamente de que su aplicación esté siempre “activa”. Garantizamos la alta disponibilidad de sus datos en todas las regiones. El hospedaje múltiple permite mantener la alta disponibilidad tanto de la aplicación como de los datos, incluso en el caso de que ocurran desastres regionales, sin necesidad de una reimplementación compleja de la aplicación.

“El equipo Xpander de Microsoft desarrolla uno de los servicios fundamentales en el que se basan un gran número de flujos críticos en Windows y Xbox, por lo que tienen objetivos de disponibilidad extremadamente alta y requisitos de latencia muy estrictos, distribuidos en centros de datos clave de todo el mundo.  Desde la migración de nuestra anterior solución de almacenamiento a Azure Cosmos DB, hemos visto un aumento drástico de la confiabilidad global, características de rendimiento que han mejorado considerablemente y una enorme reducción de lo que antes llamábamos “agotamiento de tiempo de espera por microinterrupciones” que afectaba a un 0,001 % de las transacciones durante menos de un minuto cada día”.

- Cary Mitchell, jefe de Ingeniería de software, Xpander

5. Elija el modelo de coherencia que mejor funcione para su aplicación

Con Azure Cosmos DB, los desarrolladores no tienen que limitarse a opciones de coherencia extremas (segura frente a posible). Ofrece cinco opciones de coherencia bien definidas: segura, obsolescencia limitada, sesión, prefijo coherente y posible. Por tanto, puede seleccionar el modelo de coherencia adecuado para su aplicación.

“Johnson Controls es una multinacional con presencia en los siete continentes. Disponer de una base de datos global como Azure Cosmos DB facilita enormemente la creación de aplicaciones que atiendan a nuestros clientes y equipos dondequiera que se encuentren. Azure Cosmos DB nos ofrece la baja latencia que necesitamos y, gracias al control pormenorizado de la coherencia, podemos elegir las opciones adecuadas para el rendimiento de nuestra aplicación. Microsoft cuenta en su equipo con algunos de los mejores profesionales del mundo y sabemos que podemos confiar en que cumplirán sus estrictos acuerdos de nivel de servicio”.

- Erik Paulson, ingeniero de datos, JCI Connected Offerings

6. Repita su aplicación con rapidez sin preocuparse por esquemas ni índices

Mantener la sincronización entre el esquema y los índices de una base de datos y el esquema de una aplicación es especialmente difícil en el caso de aplicaciones distribuidas globalmente. Con Azure Cosmos DB, ya no tiene que ocuparse de esquemas ni de índices. El motor de la base de datos es totalmente independiente del esquema.  Puesto que no es necesario administrar esquemas ni índices, tampoco tiene que preocuparse por el tiempo de inactividad de la aplicación durante la migración de esquemas. Los datos se indexan automáticamente, sin esquemas ni índices, y se ofrecen consultas ultrarrápidas.

“Citrix cambió a Azure Cosmos DB para sustentar la plataforma Citrix Identity Platform, que ofrece inicio de sesión único a más de 400 000 organizaciones y 100 millones de personas en todo el mundo. Azure Cosmos DB ayudó a Citrix a evitar un problema importante al que se enfrentaba el equipo de desarrollo, porque la base de datos NoSQL anterior requería indexación y modificaciones constantes del código. Ahora Azure Cosmos DB indexa automáticamente todas las propiedades de cada registro que ingiere, de forma predeterminada”.

- Tom Kludy, arquitecto jefe, Citrix

7. Use el modelo de datos adecuado para su aplicación

El motor de base de datos de Azure Cosmos DB está diseñado para admitir de forma nativa casi cualquier modelo de datos. Con el lanzamiento de hoy, se habilitan los tipos de clave-valor, documento y grafo, pero el motor está diseñado para poder ampliarse y admitir con eficacia nuevos tipos de modelos de datos. Permanezca atento.

8. Use las API que prefiera

Nuestro objetivo es ayudarle a escribir aplicaciones distribuidas globalmente con más facilidad, usando las herramientas y las API que ya conoce.  El motor de base de datos de Azure Cosmos DB admite de forma nativa el dialecto SQL de DocumentDB, la API de Azure Cosmos DB para MongoDB, Gremlin API (grafo) y las API de Azure Table Storage. En el futuro, se admitirán de forma nativa otras API de acceso a datos populares, lo que ampliará las opciones y la flexibilidad.

9. Acuerdos de nivel de servicio extraordinarios

Azure Cosmos DB es el primer y único servicio de base de datos distribuido globalmente del sector que ofrece acuerdos de nivel de servicio con respaldo financiero. Estos acuerdos cubren: alta disponibilidad, baja latencia en el percentil 99, coherencia y procesamiento.

“Cuando ASOS evaluó el mercado para nuestra futura plataforma NoSQL, estudiamos varias opciones, pero elegimos Azure Cosmos DB porque nos impresionó en muchos aspectos. En primer lugar, es una base de datos como servicio administrada sumamente interesante. Como minorista, no pensamos que ejecutar bases de datos tenga algún valor; el valor está en las propuestas que creas con ellas. Obviamente, esto solo se materializa si el servicio ofrece una disponibilidad y unos acuerdos de nivel de servicio de nivel empresarial. En segundo lugar, nuestros clientes eran internacionales, por tanto, la capacidad de replicar fácilmente los datos a escala global para obtener rendimiento y resistencia era fundamental. Finalmente, ASOS ejecuta una arquitectura de microservicios y, naturalmente, cada servicio tiene características diferentes de carga de trabajo y rendimiento. Por tanto, la capacidad de variar los niveles de coherencia sin tener que cambiar de tecnología nos aporta grandes ventajas. Azure Cosmos DB es ya una parte importante de la arquitectura de ASOS y todo apunta a que será fundamental para nuestra propuesta”.

- Dave Green, arquitecto de aplicaciones empresariales, ASOS

Una breve historia de Cosmos

Azure Cosmos DB se lanzó en 2010 como “Proyecto Florencia” para abordar los problemas de desarrollo que aparecen en las aplicaciones a gran escala de Microsoft. Al observar que los desafíos de la creación de aplicaciones distribuidas globalmente no eran un problema exclusivo de Microsoft, en 2015 creamos la primera generación de esta tecnología disponible para los desarrolladores de Azure con el nombre de Azure DocumentDB. Desde ese momento, hemos agregado nuevas características e incorporado nueva funcionalidad importante.  El resultado es Azure Cosmos DB.  Se trata del próximo gran salto en cuanto a bases de datos en la nube distribuidas globalmente y a escala. Como parte de esta versión de Azure Cosmos DB, los clientes de DocumentDB (con sus datos) se convierten automáticamente en clientes de Azure Cosmos DB. La transición se realiza sin problemas y ya tienen acceso al nuevo sistema y a la nueva funcionalidad excepcionales que ofrece Azure Cosmos DB.

Si desea obtener más información técnica, eche un vistazo a la primera de una serie de entradas de blog que mi equipo y yo iremos publicando aquí. Esta entrada incluye también un versión ampliada de la entrevista a Leslie Lamport titulada Foundations of Azure Cosmos DB (Fundamentos de Azure Cosmos DB).

Con Azure Cosmos DB, nuestro objetivo era ayudar a los desarrolladores de todo el mundo a crear con más facilidad aplicaciones con un gran potencial a escala cósmica. Hoy es un momento Big Bang para nosotros en el equipo de Azure Cosmos DB y estamos encantados de compartirlo con todos ustedes, nuestros desarrolladores y clientes de todo el mundo.
Pruebe #AzureCosmosDB y díganos su opinión.  Nos interesa mucho conocer sus creaciones.

— Sus amigos de Azure Cosmos DB (@AzureCosmosDB)