Azure Cosmos DB: La alternativa de Microsoft para migrar aplicaciones MongoDB a la nube
Cosmos DB, conocida como la "base de datos a una escala planetaria" de Microsoft, es uno de los servicios fundamentales de Azure, impulsando tanto sus propias aplicaciones como las tuyas. Diseñada para el desarrollo de aplicaciones distribuidas, Cosmos DB ofrece una variedad de modelos de consistencia y, lo que es más interesante, una serie de personalidades diferentes que te permiten utilizarla como uno de varios tipos de bases de datos familiares.
APIs compatibles con PostgreSQL, Graph, Cassandra y MongoDB
Estas personalidades incluyen una API compatible con PostgreSQL, una base de datos de grafos como Neo4j y su propio modelo de base de datos de documentos, así como soporte para la conocida base de datos distribuida Apache Cassandra. Una de las personalidades más populares es un conjunto de APIs que ofrecen la mayoría de las funciones de la popular base de datos NoSQL MongoDB. Esta última opción es interesante, ya que te permite llevar rápidamente aplicaciones modernas existentes en las instalaciones a la nube, preparadas para una reestructuración a escala global.
Entendiendo los costos de facturación por unidades de solicitud (RU) en Cosmos DB
Hay un problema que a menudo confunde a los desarrolladores que provienen de un entorno de desarrollo más tradicional: Cosmos DB utiliza el concepto de Unidades de solicitud (RU, por sus siglas en inglés) para manejar la facturación, además de los cargos de almacenamiento estándar de Azure.
Una RU es una forma de describir y facturar cómo una base de datos como Cosmos DB utiliza los recursos de Azure. Agrupa computación, E/S y memoria, utilizando los recursos para realizar una lectura de 1 KB de un solo ítem como base de lo que se podría considerar una moneda interna de Cosmos DB.
Con una sola lectura de un solo ítem medida como 1 RU, todas las demás operaciones se facturan de manera similar, agrupando sus acciones y uso de recursos como un valor en RU. Compras paquetes de RU que luego se gastan en operaciones de bases de datos, de manera similar a comprar fichas para un juego como Roblox. Las RU pueden usarse para administrar operaciones, con un número establecido disponible por segundo para tus operaciones, o para pagar operaciones sin servidor. También puedes usar RUs para permitir que tu base de datos escale según sea necesario, aunque esto significa que una aplicación particularmente ocupada puede volverse repentinamente muy cara de ejecutar.
El modelo RU, aunque lógico para un servicio nativo de la nube, dificulta predecir el costo de ejecutar Cosmos DB si estás acostumbrado a los modelos de costos tradicionales. Aunque es posible crear herramientas para ayudar a predecir costos, debes tener en cuenta más que solo las operaciones que usa tu base de datos, ya que el tipo de modelo de consistencia que elijas afectará el rendimiento disponible.
Domina la seguridad para proteger tu empresa al máximo por solo $79Introduciendo los vCores en Cosmos DB
Microsoft ahora ofrece una alternativa al modelo RU para los desarrolladores que llevan sus aplicaciones basadas en MongoDB a Cosmos DB. En lugar de pagar por RUs y almacenamiento, ahora puedes optar por centrarte en la combinación más familiar de instancias de aplicaciones y discos asignados. Esto te brinda acceso a un modelo que se asemeja mucho al servicio Atlas administrado de MongoDB, lo que permite una migración más predecible desde las instalaciones locales u otras nubes.
Disponible como Azure Cosmos DB for MongoDB vCore, esta nueva versión de la base de datos NoSQL de Microsoft es parte integral de tu infraestructura de Azure y ofrece shardings automatizados y una integración con la Interfaz de línea de comandos de Azure y otras herramientas de administración.
Microsoft lo describe como una forma de "modernizar MongoDB con una arquitectura familiar". El objetivo es ofrecer un conjunto de APIs compatibles lo más cercano posible, al tiempo que se ofrece escalabilidad. Por ejemplo, Microsoft nos dijo:
"Azure Cosmos DB for MongoDB vCore permite consultas de base de datos más ricas y complejas, como las búsquedas de texto completo que alimentan los chatbots basados en la nube".
Moviendo aplicaciones de MongoDB a Cosmos DB
Si tienes código que utiliza el lenguaje de consulta de MongoDB para trabajar con tus datos, debería funcionar como antes, siendo el requisito principal cambiar los puntos de conexión por las direcciones de Azure correspondientes.
Sin embargo, no todos los comandos están disponibles en Cosmos DB, ya que las características subyacentes no se mapean entre las dos bases de datos. Vale la pena prestar atención a la lista de comandos admitidos, especialmente si confías en las herramientas de control de sesiones de MongoDB, ya que gran parte de esto no está disponible actualmente en Cosmos DB. También tendrás que cambiar cualquier autenticación a herramientas nativas de Azure.
¡Aprende a desarrollar con Raspberry Pi y Arduino por solo $69.99!Mover datos entre las dos bases de datos debería ser bastante sencillo, ya que las herramientas de exportación e importación de MongoDB te permiten guardar datos como JSON para exportaciones parciales o como BSON más compacto para una base de datos completa. Si estás moviendo muchos datos como JSON, esto puede resultar costoso, ya que se te cobrará por las transferencias de datos.
El precio se basa en la infraestructura virtual estándar de Azure, utilizando sistemas de alta disponibilidad o de disponibilidad inferior. Si no necesitas un sistema de alta disponibilidad, puedes ahorrar hasta un 50% en el precio de alta disponibilidad. El almacenamiento base para un sistema de Cosmos DB vCore es de 128 GB, lo cual debería ser adecuado para muchas cargas de trabajo comunes. Puedes optar por comenzar con dos vCPUs y 8 GB de RAM y escalar hasta 32 vCPUs y 128 GB de RAM.
Aunque la mayoría de las aplicaciones funcionarán con pequeñas modificaciones, al igual que la versión RU, la versión vCore del soporte de MongoDB en Cosmos DB tiene algunas diferencias con respecto a las API oficiales. Preguntamos a Microsoft si hay planes de agregar más cobertura en futuras versiones, más allá de la transición a vCore en lugar de la versión sin servidor.
"En la mayoría de los escenarios, esto hace que las dos tecnologías sean totalmente compatibles. Según la retroalimentación de los clientes, uno de los puntos más difíciles en términos de compatibilidad entre MongoDB y Azure Cosmos DB era la necesidad de rediseñar y modificar sus bases de datos de MongoDB para adaptarlas a la arquitectura de Azure Cosmos DB. Esta versión elimina ese punto problemático, ya que las dos bases de datos son esencialmente la misma 'forma'. Además, tenemos una compatibilidad de funciones sólida entre las dos y continuaremos implementando más características a medida que esto salga de la versión de prueba y pase a un lanzamiento general", respondió un portavoz.
Esta nueva opción de MongoDB debería facilitar la migración de una carga de trabajo de MongoDB que ya hayas desarrollado a Cosmos DB y, de esta manera, evitarte tener que ejecutar tu propia infraestructura de MongoDB, o permitirte consolidar el uso de Cosmos DB como tu base de datos en la nube, trasladando bases de datos de otros proveedores de la nube a Azure, donde puedes aprovechar todos los demás recursos y servicios de Azure que los proveedores más pequeños como MongoDB no ofrecen.
Cómo solucionar problemas de conexión entre Docker Desktop y Docker Engine en LinuxEn Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Desarrollo, allí encontraras muchos artículos similares a Azure Cosmos DB: La alternativa de Microsoft para migrar aplicaciones MongoDB a la nube , tenemos lo ultimo en tecnología 2023.
Artículos Relacionados