¿Qué le pareció este contenido?
Argumentos a favor de las bases de datos personalizadas
Por Cullen Dejean, Sr. Solutions Architect en AWS, y Matthew de Anda, Startup Solutions Architect en AWS.
Las startups en fase inicial tienen que tomar muchas decisiones técnicas mientras buscan la adaptación del producto al mercado. Algunas de estas decisiones técnicas son reversibles, mientras que otras son coyunturas críticas con impactos a largo plazo. La selección de una base de datos tiende a caer en esta última categoría, razón por la cual un enfoque único con una base de datos relacional ya no funciona. Debe dar un paso atrás y revisar los casos de uso exactos de los que disponga antes de pasar a seleccionar una base de datos. Cambie su expectativa de que una base de datos puede hacer todo y, en su lugar, elija el servicio de base de datos que mejor se adapte a la tarea en cuestión. AWS ofrece una cartera amplia y exhaustiva de bases de datos personalizadas que admiten diversos modelos de datos y le permiten crear aplicaciones distribuidas, altamente escalables y basadas en datos. En esta entrada del blog, abordaremos los factores que una startup en fase inicial debe tener en cuenta al analizar las opciones de bases de datos en AWS.
Factores que se deben tener en cuenta al seleccionar una base de datos
Experiencia
Las startups en fase inicial deben centrarse en crear un producto mínimo viable (PMV) y demostrar tracción y crecimiento, por lo que cualquier decisión debe tomarse teniendo en cuenta la velocidad de comercialización y las habilidades disponibles. Elegir una tecnología con la que su equipo no tenga experiencia suele aumentar los plazos y hacer que los PMV sean más difíciles de modificar en respuesta a los comentarios de los usuarios. Esta es una razón habitual por la que el uso de una base de datos relacional puede seguir siendo el enfoque correcto al principio. Si su equipo tiene experiencia con un servicio de datos específico (p. ej., relacional, documental, etc.), empezar por ahí puede ser la mejor opción.
Escalamiento futuro
El escalamiento futuro es otro factor que las startups en fase inicial deben tener en cuenta. La elección de una tecnología conocida que permita una entrega más rápida debe equilibrarse volviendo a analizar el caso de uso y determinando las necesidades de escalamiento futuras. Poder aprovechar las soluciones de escalamiento automático y, al mismo tiempo, seguir funcionando según lo esperado puede ser un factor multiplicador. Siempre es posible migrar a una tecnología diferente más adelante, pero tenga en cuenta que las migraciones se harán más complejas a medida que crezcan sus datos. Algunas migraciones, como las que se realizan entre Amazon Relational Database Service (Amazon RDS) y Amazon Aurora, son reversibles, lo que denominamos “decisiones bidireccionales”. Estas decisiones permiten una experimentación más rápida y adoptan un enfoque de respuesta rápida a los errores. En la siguiente sección, analizaremos con más detalle los servicios de bases de datos como Amazon RDS y Aurora.
Bases de datos personalizadas y sus casos de uso
Durante mucho tiempo, las bases de datos relacionales como MySQL y PostgreSQL dominaron el panorama de las bases de datos. Ahora hay muchos más tipos de bases de datos entre los que elegir. Para tomar una decisión informada, resulta útil evaluar las bases de datos según sus características de acceso y la forma de los datos.
Bases de datos relacionales
Una base de datos relacional se describe a sí misma, porque permite a los desarrolladores definir el esquema de la base de datos, así como las relaciones y restricciones entre las filas y tablas de la base de datos. Los desarrolladores confían en la funcionalidad de la base de datos relacional y no en el código de la aplicación para aplicar el esquema y preservar la integridad referencial de los datos de la base de datos. Entre los casos de uso típicos de una base de datos encontramos las aplicaciones web y móviles. Las startups utilizan Amazon RDS y Amazon Aurora para aplicaciones escalables y de alto rendimiento en AWS. Tanto RDS como Aurora son bases de datos escalables y completamente administradas.
NoSQL: bases de datos de documentos y de clave-valor
A medida que el sistema crece, grandes cantidades de datos suelen estar en forma de datos de clave-valor, en los que una sola fila se asigna a una clave principal. Las bases de datos de clave-valor son altamente divisibles y permiten el escalamiento horizontal a niveles que otros tipos de bases de datos no pueden alcanzar. Los casos de uso como los juegos, la tecnología publicitaria y el IoT se prestan especialmente bien al modelo de datos de clave-valor, en el que los patrones de acceso requieren operaciones GET y PUT de pares clave-valor conocidos con baja latencia.
Amazon DynamoDB es una base de datos NoSQL de clave-valor sin servidor y completamente administrada que ofrece un rendimiento de milisegundos de un solo dígito a cualquier escala. Para casos de uso de clave-valor de alto rendimiento, también ofrecemos Amazon Keyspaces, un servicio de base de datos escalable, administrado y de alta disponibilidad compatible con Apache Cassandra.
Otro tipo de base de datos relevante es una base de datos de documentos. Los desarrolladores pueden usar este tipo de base de datos de forma intuitiva, ya que los datos de la aplicación suelen representarse como un documento JSON. Las bases de datos de documentos son populares para casos de uso como el almacenamiento y la consulta de datos del sistema de administración de contenido, así como para la gestión de los perfiles de usuario, las preferencias y las solicitudes a fin de generar recomendaciones y permitir las transacciones.
En el caso de los datos de los documentos, los desarrolladores pueden conservar los datos con el mismo formato de modelo de documento que utilizan en el código de la aplicación, mediante el modelo de esquema flexible de Amazon DocumentDB (con compatibilidad con MongoDB), una base de datos duradera y completamente administrada para lograr la eficiencia de los desarrolladores y admitir millones de lecturas de documentos por segundo a la par que se escala el procesamiento y el almacenamiento de forma independiente.
Almacenamientos de datos
Al determinar la necesidad de almacenamientos de datos, es importante distinguir entre bases de datos transaccionales (OLTP) y analíticas (OLAP). Las bases de datos OLAP son bases de datos más grandes para el almacenamiento y el archivado de datos. Para muchas startups en fase inicial, considerar el uso de Amazon Athena para administrar los casos de uso de OLAP puede ser la elección correcta. Amazon Athena es una interfaz de consulta SQL sin servidor que permite analizar los datos almacenados en Amazon Simple Storage Service (Amazon S3) con SQL estándar.
Cuando sus aplicaciones comienzan a requerir consultas más complejas y acuerdos de nivel de servicio más estrictos, aquí es donde la potencia de los almacenamientos de datos puede ayudar a escalar sus requisitos y estrategia de datos. Amazon Redshift es un servicio de almacenamiento de datos en la nube a escala de petabytes completamente administrado.
Bases de datos en memoria
Las bases de datos en memoria se utilizan para aplicaciones que requieren acceso en tiempo real a los datos entregados con una latencia de microsegundos. Las aplicaciones web, móviles, de servicios financieros, comercio electrónico y juegos han utilizado bases de datos en memoria para crear tablas de clasificación, almacenar sesiones, almacenar en caché y realizar análisis en tiempo real. Las bases de datos en memoria pueden reducir la carga de las bases de datos relacionales, ofrecer resultados con menor latencia o reemplazar la base de datos relacional y convertirse en el almacén de datos principal de pares clave-valor en memoria.
Amazon ElastiCache facilita la configuración, la administración y el escalamiento de un entorno de almacén de datos en memoria o de caché. Amazon ElastiCache funciona con los motores Redis y Memcached. Amazon MemoryDB para Redis es un servicio de bases de datos en memoria, duradero y compatible con Redis que ofrece un rendimiento ultrarrápido. Está diseñado específicamente para aplicaciones modernas con arquitecturas de microservicios. Una forma de decidir entre estas ofertas depende de si su caso de uso es efímero o requiere más durabilidad. Amazon ElastiCache se utiliza a menudo como base de datos independiente, pero solo para aplicaciones que no requieran durabilidad. Por el contrario, MemoryDB está diseñada para ser una base de datos principal. El otro factor sería la familiaridad de su equipo con los motores Redis o Memcached.
Búsqueda
Las bases de datos de búsqueda ofrecen análisis y búsquedas casi en tiempo real. Entre los casos de uso comunes de las bases de datos de búsqueda encontramos el análisis de registros, la supervisión de aplicaciones en tiempo real y el análisis de las secuencias de clics.
Amazon OpenSearch Service le facilita la realización de análisis de registros interactivos, la supervisión de aplicaciones en tiempo real, la búsqueda en sitios web y mucho más. Amazon OpenSearch Service es compatible con OpenSearch y con el OSS Elasticsearch heredado.
Bases de datos de grafos
El propósito de una base de datos de grafos es facilitar la creación y ejecución de aplicaciones que funcionen con conjuntos de datos altamente conectados. Entre los casos de uso típicos de una base de datos de grafos encontramos las redes sociales, los motores de recomendaciones, la detección de fraudes y los grafos de conocimiento. Para decidir si una base de datos de grafos es la opción correcta, primero hay que determinar si la mejor forma de representar los datos es mediante una estructura de grafos. ¿Están aumentando la amplitud y la profundidad de las relaciones? Las consultas a las bases de datos relacionales se harán más lentas a medida que las relaciones se hagan más complejas. ¿Los modelos en sí mismos cambian lo suficiente como para que los cambios en el esquema se conviertan en una carga para su equipo? Por último, ¿tendrá que responder a las preguntas sobre las relaciones de sus datos? Las bases de datos de grafos proporcionan este tipo de flexibilidad y, al mismo tiempo, ofrecen consultas complejas sobre estas relaciones. Amazon Neptune es un servicio de bases de datos de grafos rápido, fiable y completamente administrado.
Bases de datos de libro mayor
Las bases de datos de libro mayor pueden ayudar a rastrear todo el linaje de los datos. Amazon Quantum Ledger Database (QLDB) es una base de datos de libro mayor completamente administrada que proporciona un registro de transacciones transparente, inmutable y verificable mediante criptografía propiedad de una autoridad central de confianza.
Bases de datos de series temporales
Las bases de datos de series temporales gestionan casos de uso en los que las aplicaciones administran datos de series temporales y necesitan analizarlos rápidamente mediante funciones analíticas integradas. Amazon Timestream es un servicio de bases de datos de series temporales rápido, escalable y sin servidor para aplicaciones operativas y de IoT.
Tipo de base de datos | Casos de uso | Servicio de AWS |
Relacional | Aplicaciones tradicionales, comercio electrónico, transacciones OLTP | Amazon AuroraAmazon RDS |
Clave-valor | Aplicaciones web de alto tráfico, sistemas de comercio electrónico, aplicaciones de videojuegos, comercio financiero | Amazon DynamoDBAmazon Keyspaces |
Documento | Gestión de contenidos, catálogos, perfiles de usuario | Amazon DocumentDBAmazon AthenaAmazon Elasticache |
En memoria | Almacenamiento en caché, administración de sesiones, marcadores de juegos, aplicaciones geoespaciales | Amazon MemoryDB para Redis |
Buscar | Registro consolidado, búsqueda personalizada | Amazon OpenSearch |
Gráficos | Detección de fraudes, redes sociales, perfiles de usuario | Amazon Neptune |
Registro | Sistemas de registro, cadenas de suministros, registros y transacciones bancarias | Amazon QLDB |
Series temporales | IoT, DevOps, telemetría industrial | Amazon Timestream |
Conclusión
Una de las decisiones más importantes que tendrá que tomar una startup en fase inicial es qué tipo de tecnología de base de datos va a utilizar. Cuando revise las bases de datos personalizadas que ofrece AWS, comience por el caso de uso y defina los requisitos necesarios para poder filtrar qué servicios de bases de datos son adecuados. Luego, combine la velocidad de comercialización y las habilidades disponibles de su equipo, pero asegúrese de equilibrar esos factores con sus necesidades futuras. Ahora es importante dedicar tiempo a considerar estos factores y seleccionar el servicio de base de datos que mejor se adapte al trabajo.
AWS Editorial Team
El equipo de marketing de contenido para startups de AWS colabora con startups de todos los tamaños y sectores para ofrecer contenido excepcional que eduque, entretenga e inspire.
¿Qué le pareció este contenido?