Entrevista: Guilhem Moulin acerca de la infraestructura y los servicios de LibreOffice
Un gran proyecto de software libre y de código abierto como LibreOffice requiere mucha infraestructura para dar soporte a nuestros usuarios, desarrolladores y a la comunidad mundial. Hoy hablamos con Guilhem Moulin, que está a cargo de la infraestructura y los servicios de TDF, sobre nuevos desarrollos y cómo otros pueden participar….
Para empezar, por favor, danos una visión general de la infraestructura pública de TDF.
La infraestructura pública está impulsada por unas 50 máquinas virtuales (KVM) basadas en el núcleo, repartidas en 4 hipervisores conectados a un conmutador interno de 10 Gbps y alojadas en Manitu en St. Wendel (Alemania), y gestionadas con libvirt y su controlador KVM/QEMU. Las imágenes de disco virtual se almacenan normalmente en volúmenes GlusterFS -distribuidos a través de los hipervisores- excepto en algunos discos transitorios (como la caché) donde la necesidad de IOPS es mayor y la redundancia menos importante.
Todas nuestras máquinas virtuales públicas ejecutan Debian GNU/Linux (actualmente una mezcla de Jessie -que se actualizarán- y Stretch), cada una de las cuales suele alojar un único servicio para un mejor aislamiento. El resto de la pila es bastante habitual: systemd como PID 1 y gestor de servicios, una mezcla de MySQL y PostgreSQL como RDMS, y nginx como destino final SSL/TLS y proxy HTTP inverso. Todo esto está orquestado y gestionado con saltstack.
Alrededor de la mitad de nuestras Máquinas Virtuales alojan sitios web orientados al público; la otra mitad se utiliza para instancias de prueba, varios backends de producción y servicios internos, así como para buzones de correo y otras máquinas virtuales de hacking. Algunos de estos sitios web son en su mayoría útiles para los desarrolladores, como nuestras instancias de Bugzilla o gerrit – una visión general de los sitios centrados en el desarrollo se puede encontrar en https://devcentral.libreoffice.org. Los sitios restantes incluyen el sitio web principal de LibreOffice, la página de descargas, el Wiki, Askbot y, por supuesto, el blog.
Además de estas máquinas virtuales, también operamos un puñado de otras máquinas para copias de seguridad, supervisión y sistemas de correo, que se alojan fuera del sitio por razones obvias.
¿Cuáles han sido los desarrollos infra más significativos en los últimos seis meses?
El Single Sign On (SSO) es probablemente lo que ha sido más visible para la comunidad. Tradicionalmente cada frontend (Wiki, Bugzilla, Askbot, etc.) tiene su propio backend de autenticación privada, así que una vez que alguien inicia sesión en múltiples servicios, tendría que recordar múltiples conjuntos de credenciales, lo cual es engorroso y dificulta la rotación de contraseñas y correos electrónicos.
Ahora tenemos un sistema de autenticación central (que utiliza un DIT LDAP como backend), pero no está apuntando servicios individuales a él, ya que 1/ expondría las credenciales compartidas a todos los servicios y, por lo tanto, aumentaría la superficie de ataque; y 2/ no resuelve el hecho de que los usuarios tendrían que introducir su contraseña para cada servicio individualmente. En lugar de ello, estamos implementando una solución que utiliza el protocolo SAML 2.0: los usuarios no autenticados son redirigidos a un portal de autenticación contra el cual pueden autenticarse, y luego son redirigidos a la página protegida.
No todos los servicios han sido migrados a SSO todavía. Un problema es que tenemos que unificar cuentas (la gente usa diferentes nombres de usuario en diferentes servicios); y aunque queremos una «masa crítica» de cuentas de usuario activas en LDAP antes de migrar un servicio, ha sido bastante difícil llegar a la gente – ¡incluso entre los funcionarios de TDF! – y convencerlos de crear una cuenta en el nuevo sistema. Afortunadamente desde que migramos el sistema de autenticación de nuestro wiki, más y más personas (entre las cuales muchas cuentas inactivas, probablemente spammers desafortunadamente) comenzaron a usar el nuevo sistema.
Aunque sólo es visible para los miembros del equipo de infra, también hemos sustituido nuestro sistema de monitorización basado en Graphite (+ Carbon + Icinga2) por Prometheus (+ exportadores de datos + gestor de alertas). Además, en la parte pública de la monitorización, acabamos de desplegar un nuevo servicio, CachetHQ, para mostrar una rápida visión general del estado de la infraestructura de TDF: https://status.documentfoundation.org.
Por último, pero no por ello menos importante, a principios de esta primavera estuvimos bastante ocupados con el cumplimiento del GDPR.
¿En qué estás trabajando en este momento y cuáles son tus planes para los próximos seis meses?
Aparte del mantenimiento diario y las emergencias ocasionales (caídas del sistema, hipo de hardware, problemas de rendimiento, etc.), los miembros del equipo de infra todavía invierten mucho tiempo en lo anterior, ya que esto no está completamente terminado todavía. Los proyectos para el próximo año incluyen trabajar en una mejor solución de copia de seguridad, en particular en lo que respecta a las instantáneas de la base de datos. El sistema de recolección de datos para las métricas de descarga también necesita algunas mejoras.
Finalmente, ¿qué cosas geniales pueden hacer los nuevos administradores voluntarios para involucrarse y ayudar al proyecto?
Tenemos una amplia variedad de sistemas, que van desde los más sensibles (elecciones, correo interno, LDAP DIT, monitorización de whitebox) hasta los más completos, además de los registros de acceso (bitergia dashboard, monitorización de blackbox). No podemos dar acceso directo al lado sensible del espectro a todo el mundo, pero también hay cosas con las que ayudar en el otro lado (los servicios centrados en los desarrolladores suelen ser menos sensibles, ya que el desarrollo está abierto de todos modos).
A veces también empezamos de nuevo y reemplazamos un servicio con algo equivalente en una contenedor nuevo; en ese caso no hay datos sensibles en juego, y es una gran manera para que los nuevos administradores voluntarios ganen confianza. Mencioné la migración de monitorización anteriormente; también podríamos imaginarnos reemplazar nuestro viejo despliegue de MirrorBrain por una solución más moderna como, por ejemplo, Mirrorbits.
Gracias a Guilhem por tu tiempo y ayuda. Si estás interesado en unirte a nuestra comunidad infra y adquirir una valiosa experiencia en un gran proyecto de FOSS, visita esta página para empezar.
Interview: Guilhem Moulin on LibreOffice infrastructure and services