¿Qué hay detrás de Amazon SimpleDB?

Estos días he estado informándome sobre los Amazon Web Services, más concretamente el relativamente reciente SimpleDB, un poco por escepticismo hacia la moda del Cloud Computing, o mejor dicho, a la moda de hablar sobre el Cloud Computing (qué queréis que os diga, tampoco me parece tan novedoso el invento). El servicio es un gestor de BBDD no relacional y no orientado a objetos, situado en nosedonde, gestionado de nosequé manera (cloud computing, vamos). Este gestor de BBDD es tan sencillo de entender como que tenemos dominios y, dentro de los dominios, registros con pares propiedad-valor. Estos pares no están definidos, por lo que podemos decir que es una base de datos sin esquema, sin estructura previamente definida. Genial, parece útil para ciertos programas.

El caso es que desde hace algún tiempo estoy recopilando información sobre Oracle BerkeleyDB (Oracle compró SleepyCat, desarrolladora original), un gestor de bases de datos embebido, no relacional, no orientado a objetos, y encima Open Source. Genial, parece útil para ciertos programas. Coño, dejá vu. Y encima voy a la web de BerkeleyDB y me encuentro este case study de Julio de 2008 en el que Tim Kohn, jefe de servicios explica que BerkeleyDB es usado como caché para la gran base de datos de Amazon (como tienda, no como proveedor de servicios web), delante de un Oracle DB normal (el artículo indica el talento que tienen en Amazon).

Interesante. Buscando un poco más me encuentro con que el desarrollo de Amazon para integrar BerkeleyDB, Oracle y los demás sistemas ha evolucionado y le han llamado Dynamo. Aunque su autor empieza diciendo que:

Dynamo is not directly exposed externally as a web service; however, Dynamo and similar Amazon technologies are used to power parts of our Amazon Web Services, such as S3.

…aunque teniendo en cuenta que fue publicado hace un año, la verdad es que es bastante probable que SimpleDB sea una interfaz, o directamente instancias, de Dynamo, esa combinación de BerkeleyDB y MySQL:

[...] BDB can handle objects typically in the order of tens of kilobytes whereas MySQL can handle objects of larger sizes. Applications choose Dynamo’s local persistence engine based on their object size distribution. The majority of Dynamo’s production instances use BDB Transactional Data Store.

Conclusiones:

  • Leyendo ambos artículos uno se da cuenta de lo buenos que son los informáticos de Amazon. Normal, dado que son una de las empresas más potentes de Internet y manejan una de las Base de Datos comerciales más grandes del mundo.
  • Open Source matters, como dicen los de Joomla. Y las empresas lo saben, cada vez mejor. Y sobre todo por las malas lenguas que desprecian a MySQL como RDBMS incompleto en comparación con PostgreSQL. Soy fanático de MySQL y es cierto que es un DBMS muy sencillo, está algo verde y en algunas cosas resulta “de juguete” (sobre todo en comparación con el gigante Oracle), pero la escalabilidad y rendimiento que ofrecen lo hacen líder para Internet y entornos como los de AmazonWS.
  • En el caso de BerkeleyDB ha habido una apuesta fuerte por parte de Oracle, aunque Amazon ya la usaba antes de ser adquirida por el grande de Redwood City. Un DBMS original, sencillo, que desafía a los tradicionales RDBMS que nos enseñan en la universidad como la única solución posible. Además, existe BerkeleyDB XML, una interesante Base de Datos estructurada que emplea XQuery. Puede dar mucho que hablar en el futuro, sobre todo de cara a las BBDD semánticas.
  • El cloud computing en BBDD, como las demás tendencias 2.0 (odio esa etiqueta, la odio, la odio!!) no aporta ninguna innovación tecnológica (en este caso Dynamo ha sido un implementación para hacer posible una aplicación, pero BDB y MySQL ya existían), pero es una gran oportunidad para ahorrar costes en mantenimiento y tiempo en desarrollo.

¿Qué opinión os merece SimpleDB? ¿Y los servicios de cloud computing en general? ¿Os gustan, no os gustan, ponen en peligro vuestros empleos…?

Por

2 comentarios

  1. Es verdad que no hay ninguna innovación tecnológica, pero sí un cambio en cómo se hacen las cosas. Y es que para bien de unos o para mal de otros es muy necesario ese tipo de cambios para que la tecnología esté más al alcance de todos.
    Definitivamente un dejá vu. Me recuerda los inicios del Internet, cuando hacer una página web era algo exclusivo de informáticos y la única herramienta era el bloc de notas. Luego aparecieron los programas como Frontpage y una gran parte de la comunidad de webmaster se oponía por el exceso de código que creaba tan sólo para hacer las cosas más fáciles a los webmasters con menos conocimiento. Recuerdo que mostraban con orgullo en sus páginas web que todo fue desarrollado usando Bloc de Notas. Y la cosa ha estado cambiando hasta llegar a los blogs.
    En mi opinión cloud computing no es ninguna amenaza para empleos, pero sí hará obsoleto o innecesarios algunos conocimientos actualmente muy valorados.
    Por mi parte, recién voy a comenzar a probar SimpleDB. Hace 5 años que aprendí Oracle DB pero nunca tuve necesidad de utilizarlo. Y ahora que por primera vez necesito un DB veo que SimpleDB es justo lo que necesito.
    Tampoco me gustaba que sean otros los que gestionen o hagan aquello que yo mismo puedo hacer. Pero con el tiempo aprendí que es mejor relegar tareas a otros para no perder mi tiempo y concentrarme en lo que realmente quiero.

    Y felicidades por tu blog, es el primer articulo que leo y me gustó tu investigación. Realmente muy informativo.