Tecnología
Nov 7, 2020

¿Cuál es la Base de datos más adecuada?

En nuestra más reciente participación en el black belt program de AWS, encontramos información muy interesante sobre la evolución de las bases de datos y cómo se han construido los modelos de información alrededor de estas piezas fundamentales en el desarrollo de aplicaciones.

Antes de partir, es quizás bueno dar un poco de historia y el modelo de evolución de las bases tradicionales y modernas, para ello tenemos que remitirnos a la historia, donde por la década de 1970 Edgar Frank “Ted” Codd inventó el modelo relacional, muy bien conocido en la industria de la Tecnologías de Información, y que ha sido la base de la construcción de muchísimos productos que han acompañado la evolución de los repositorios de datos.

Evolución de las Bases de datos

Como podemos ver en el gráfico, por 20 años las bases de datos relacionales reinaron y muchos productos comerciales que hoy en día conocemos tuvieron un auge a pasos agigantados. Sin embargo, la historia de los últimos 10 años, está demostrando una proliferación de bases de datos especializadas que llama bastante la atención. ¿Por qué esta tendencia? Radicalmente el hardware ha cambiado, la capacidad de cómputo en la nube y escalamiento han cambiado las reglas del juego, mientras que por el lado del desarrollo de software, nuevos lenguajes y servicios crecen a un ritmo increíble, por último, las nuevas demandas de los usuarios para las aplicaciones, han hecho re-diseñar muchísimas decisiones que antes no se discutían.

Los requerimientos de las aplicaciones modernas, están acelerando la forma que se desarrollan las aplicaciones en todas las industrias: E-commerce, Streaming, Redes sociales, Juegos en línea y economía colaborativa. La facilidad de acceso y los nuevos dispositivos que hoy hacen parte del un ecosistema hiper-conectado, sumado a la demanda extrema de los usuarios que generalmente se encuentra insatisfechos y sorprendentemente informados.

Requerimiento de Aplicaciones modernas: +Desempeño +Escala +Disponibilidad

Las bases de datos en la nube han permitido desacoplar la necesidad de contar con grandes expertos, evitar la compra de hardware y soporte temporal, reducir el diseño e implementación de complejas labores administrativas, y por último la no necesidad de incurrir en un modelo de licenciamiento con poco poder de negociación.

Amazon Aurora es un motor de base de datos relacional completamente administrado compatible con MySQL y PostgreSQL. Aurora fue concebido de forma nativa en la nube, aprendiendo las lecciones de bases de datos comerciales, y tomando lo mejor de modelos Open Source tan ampliamente difundidos. ¿Sabías cual es el servicio de más alto crecimiento en AWS? Este es un dato importante, porque desde su lanzamiento, Aurora ha sido quien se lleva esta distinción, y ¿Por qué de su éxito? Básicamente se puede resumir en tres factores concebidos desde su creación:

  1. Los usuarios quieren partir por algo básico y si funciona, crecer masivamente sin que la infraestructura limite su desarrollo.
  2. Contar con una infraestructura pensada para el fallo, que reduzca eventuales fallas de servicio (Siempre de alguna u otra forma van a ocurrir).
  3. Reducir el riesgo de impacto. Los negocios necesitan reducir puntos críticos de fallo.

* Mayor información de cómo se construyó Aurora: Blog post de Werner Vogels CTO de Amazon.com

Ahora bien, hablando de desempeño, Amazon Aurora puede proporcionar hasta cinco veces el rendimiento de MySQL y hasta tres veces el rendimiento de PostgreSQL sin requerir cambios en la mayoría de las aplicaciones existentes.

¿Quienes se están yendo para Aurora? La siguiente tabla ayuda a entender en que cuadrante podríamos estar:

¿Quiénes están pensando en Aurora?

Aurora es una pequeña parte del ecosistema de datos de AWS y junto con RDS, cubre todo lo que son las bases de datos relacionales, pero volviendo al objetivo de esta publicación, ¿es en rigor un modelo relacional lo que necesitan mis aplicaciones hoy en día? Amazon Web Services ha conservado una estrategia de diseño (diferente a sus competidores) de bases de datos con único propósito, diseñadas para solucionar problemas específicos y optimizadas para su uso. La explosión de datos que vemos hoy en día, hacen pensar que no todo se tiene que solucionar de la misma manera, y entre mejor definamos el dominio del problema, va a ser más fácil la elección tecnológica adecuada que va a permitir acelerar el desarrollo de las soluciones y brindar mayor agilidad a los negocios con modelos flexibles y auto-administrados. La siguiente imagen expone el ecosistema de soluciones de datos en AWS.

Portafolio de Bases de Datos en AWS.

Entonces ahora surge la pregunta, ¿Cuál es la base de datos adecuada? Y como muchas buenas respuestas, esta también parte por un depende… Y para poder pensar un poco fuera del modelo tradicional, debemos dejar de responder con un “porque así se ha hecho siempre” o “esa decisión no es mía”. Haciéndonos cargo de una elección adecuada, compartimos lo que AWS llama el triangulo de hierro de los datos, donde eligiendo dos de los vértices de acuerdo con las necesidades, llegamos a un dominio de bases de datos para resolver nuestros problemas particulares. El primer triangulo está orientado a las soluciones de mercado y el segundo en el ecosistema AWS.

Triangulo de hierro de los datos Parte 1
Triangulo de hierro de los datos Parte 2

Para mayor información, los invitamos a reproducir un webinar en el que hablamos de esta temática de manera más extendida.

¿Aún tienes dudas sobre cuál es la elección más recomendada? Contáctanos.

Otras entradas