Decidimos preparar una serie de resúmenes con reseñas de los proyectos de código abierto más populares. La lista incluye las soluciones de código abierto más comentadas en Hacker News. El tema de la primera colección es
herramientas y servicios para trabajar con registros y bases de datos .
/ foto AKT.UZ PDHablaremos de soluciones como
FoundationDB ,
LogDevice y
Queryparser . El año pasado, fueron discutidos activamente en Hacker News. El interés fue causado por el hecho de que grandes empresas de TI (Apple, Uber y Facebook estaban involucradas en su desarrollo). Esto significa que las tres herramientas son adecuadas para trabajar con una infraestructura de TI a gran escala y altamente cargada.
FoundationDB es un DBMS multimodelo de tipo
NoSQL . Fue presentado en 2012 por tres ingenieros de Visual Sciences,
que trabajaron en una plataforma de visualización de datos (hoy es parte de Adobe Analytics).
A diferencia de otros sistemas similares, las operaciones en FoundationDB cumplen con los principios de
ACID : atomicidad, consistencia, aislamiento y durabilidad de los datos. Los DBMS que se adhieren a este modelo se consideran los más confiables y predecibles, pero en NoSQL algunos principios de ACID a menudo se sacrifican para un mejor rendimiento.
Otra ventaja de FoundationDB es su potente interfaz de bajo nivel. Con su ayuda, cualquier sistema puede usar un DBMS para el almacenamiento de datos distribuidos. Por ejemplo, sobre la base de FoundationDB, puede crear interfaces para DBMS universales más grandes.
Gracias a estas características, FoundationDB se hizo rápidamente popular. Fue implementado por varios servicios en la nube: el servicio de monitoreo Wavefront (ahora parte de VMware) y los sistemas de almacenamiento Snowflake y SkuVault. La popularidad de FoundationDB también estuvo influenciada por el hecho de que desde su inicio, el código fuente del proyecto ha estado abierto.
Todo cambió en 2015 cuando Apple
adquirió la compañía. El gigante de TI ha cerrado el acceso al código FoundationDB y ha comenzado a usar el DBMS en sus propios servicios en línea. Esta solución causó algunos problemas a los desarrolladores que
utilizaron FoundationDB en sus proyectos. Pero en abril de 2018, Apple decidió devolver el DBMS de código abierto. Esto ha beneficiado no solo a la comunidad de TI, sino también a la propia Apple. En dos semanas
, más de siete mil desarrolladores
mostraron interés en el proyecto, y se abrieron cien nuevos hilos en el
foro temático .
El gigante de TI ha decidido seguir adhiriéndose a la estrategia de "apertura". En noviembre de 2018, se
introdujo un nuevo componente DBMS, Document Layer, que le permite crear repositorios de documentos. En el futuro, se planea desarrollar herramientas adicionales. Y cualquiera puede contribuir a la creación del producto. Puede aprender cómo hacer esto en el repositorio oficial en GitHub: hay
una instrucción detallada .
LogDevice es un sistema de almacenamiento de registro distribuido creado en Facebook. Está optimizado para registrar datos entrantes secuencialmente: cualquier información en el sistema no se guarda como un archivo separado, sino como parte de un cierto "flujo de grabación". Esto le permite determinar con precisión el orden en que se reciben los datos.
Inicialmente, el proyecto se utilizó para tareas internas de Facebook, pero en septiembre de 2018, la compañía abrió su código fuente. Hasta ese momento, LogDevice no era tan conocido en la comunidad de TI, pero algunos de los lectores de Hacker News ya estaban interesados en la herramienta. Por ejemplo,
señaló su potencial en los sistemas de almacenamiento para el aprendizaje automático.
Pero existe la opinión de que la solución de Facebook ganará popularidad lentamente. Hay una gran cantidad de herramientas similares en el mercado (por ejemplo, Apache Kafka). Y ya tienen una gran cantidad de integraciones, y LogDevice solo tiene que obtenerlas. Por cierto, ahora los desarrolladores de la herramienta
están trabajando para introducir la integración de LogDevice con el sistema de orquestación de contenedores Kubernetes.
Todos están invitados a participar: los requisitos del código se describen
en un documento de repositorio separado en GitHub .
/ foto Alexander Day CC BY
Queryparser es un sistema de análisis para tres dialectos SQL: Vertica, Hive y Presto. Al igual que LogDevice, Queryparser se creó originalmente para las tareas internas de una gran empresa de TI, esta vez el proyecto se originó en Uber.
En 2015, los ingenieros de la compañía decidieron actualizar el sistema de denominación de objetos en las bases de datos y reemplazar los nombres en el formato de enteros con números de acuerdo con el estándar
UUID . Para reescribir todos los identificadores, los ingenieros tuvieron que identificar todos los enlaces en las tablas. Esto resultó ser una tarea difícil: decenas de miles de tablas con datos que pertenecían a diferentes departamentos de la compañía se almacenaron en Uber. Para establecer conexiones entre varias bases de datos, los desarrolladores crearon Queryparser.
La herramienta completó con éxito la tarea, pero los ingenieros encontraron otras posibles aplicaciones para ella. Por ejemplo, monitoreo automático de cambios en bases de datos. Queryparser guarda todas las consultas sobre la combinación de flujos de datos o la creación de nuevos y notifica a los usuarios de la base de datos afectados por estos cambios.
Queryparser también ayudó a Uber a recopilar estadísticas sobre consultas SQL y optimizar el almacenamiento: se eliminaron las tablas raramente utilizadas y se combinaron las bases de datos que a menudo se referían entre sí.
El código fuente de Queryparser estaba abierto desde el comienzo del proyecto, pero solo en 2018 Uber lanzó un artículo detallado sobre la herramienta. Se puede considerar como una guía para trabajar con el sistema. Y en el repositorio puede encontrar instrucciones de instalación e instrucciones para aquellos que desean participar en el desarrollo de Queryparser.
En el futuro, Uber
planea desarrollar aún más la solución. Por ejemplo, agregue soporte para nuevos dialectos SQL: PostgreSQL, MySQL y SQLite. Además, entre las tareas de la compañía está agregar el tipo de datos que verifican las consultas y traducir las consultas de un dialecto a otro.
La próxima vez continuamos la historia sobre los populares proyectos de código abierto de 2018. Hablemos de las soluciones de gestión de nube de código abierto y las herramientas para desarrolladores.
Un par de publicaciones del primer blog corporativo de IaaS:
Sobre qué escribimos en el canal Telegram: