El making of del CommonsCloud – decisions tecnològiques

posted in: Uncategorized | 0

Parlem de com hem creat el projecte CommonsCloud i quines decisions tecnològiques clau hem pres fins ara per posar a caminar aquesta platforma de núvol cooperatiu i col·laboratiu.

Fa poc hem engegat un campanya de micromecentage a la plataforma Goteo i molta gent ens pregunta com hem arribat fins aquí. Va mirem als orígens, d’on venim, quines peces de software lliure hem triat i com s’ajunten. Al final compartim algunes idees pel futur proper.

Com hem arribat aquí i cap on anem

CommonsCloud és una plataforma en línia, l’alternativa a plataformes de software privatiu com Google Drive, però que és respectuosa amb la privacitat i no comercialitza amb les teves dades. L’ambició del projecte CommonsCloud és d’oferir una alternativa a plataformes de núvol privatius, sota el control de les seves usuàries, replicable com software lliure i ben documentat.

Es tracta d’aplicacions web per editar, magatzemar i compartir documents, agendes, gestionar projectes i facilitar debats i la presa de decisions col·lectiva. La manera com ho fem és a través d’una al·liança de col·lectius i entitats compromesos amb el programari lliure i la sobirania tecnològica, construint a sobre de les millors aplicacions web que tenim actualment i les ajuntem en un entorn amigable on les persones s’ajuden els uns als altres, millorant la seva conscienciació sobre el poder de l’autogevernança i la sobirania.

Les usuàries de col·lectius i individuals tindràn veu i vot en la presa de decisions del CommonsCloud, a través de la cooperativa femProcomuns. Les usuàries es converteixen en co-propietaries del CommonsCloud com cooperativistes, pagant una contribució mensual pels serveis que necessiten. Usuàries que volen provar el servei o contribuir a projectes d’altres, poden accedir amb un compte de franc els serveis bàsics. Cadascú pot triar la contribució segons la seva capacitat i necessitat.

Recentment hem engegat una campanya de micromecenatge a la plataforma Goteo i molta gent ens pregunta com vem iniciar aquest projecte. Entrem doncs a revisar d’on venim, quines peces de programari lliure hem triat fins ara i com s’ajunten. Acabarem l’article amb algunes idees pel futur proper.

Breu història e inspiracions

No vem voler reinventar la roda, o la nostra ambició hagues tingut molt poques possibilitats a esdevenir real. Podem dir que tots els col·lectius que participen en l’Aliança CommonsCloud tenen les seves experiencies auto-proveint-se de servidors d’aplicacions web de programari lliure. Des d’instancies de Wikimedia a Taiga, RedMine o canvas Wekan per la gestió col·lectiva amb metodologies agile / Kanban. Des de ownClouds a NextClouds i des d’Asterisk (VoIp) a servidors RocketChat o riot.im.

Un dels problemes amb aquestes aplicacions és que si les gestionem individualment, les nostres usuàries hauran de registrar tants comptes d’usuari i es limita les possibilitats de col·laboració entre col·lectius. I hi han tantes aplicacions que mantenir-se al dia en cadascuna és una feina en si mateixa, no algo que es pot permetre una sola persona. O sigui, és necessari construir això col·lectivament, més encara si pensem en les eines i xarxes tant potents dels amos corporatius que no serà gens fàcil seduir la gent per abondonar les seves plataformes.

Hi ha algunes plataformes que fan fàcil la gestió d’aplicacions web lliures i redueixen l’esforç de manteniment. Revisem primer les plataformes que vem provar abans d’introduir les eines del CommonsCloud.

Des del setembre 2016 hem estat corrent un servidor autogestionat amb Sandstorm. El Free Knowledge Institute encara corre la instancia (un servidor amb aquesta aplicació) i ho hem estat provant per algunes dotzenes de persones i projectes. Sandstorm permet el desplegament de més de 40 aplicacions lliures amb un sol click i encripta les dades de les usuàries en lo que ells denominen un “grà”, controlat només per l’usuària. Després d’un temps però ens vem adonar que no és especialment pràctic per trobar la informació si estàs en diferents apps, en especial si participas en diferents projectes. També no facilita que les usuàries han d’acostumar-se a tantes interfícies d’usuària, una per cada app – encara que totes estan incrustades en un entorn persistent de Sandstorm. Resumint: és un projecte molt interessant, però no era exactament lo que estavem buscant.

Després vem estudiar Cloudron i vem correr algunes instancies, vem parlar amb els fundadors, vem provar una dotzena d’aplicacions. En aquesta plataforma també s’ofereix el desplegament d’un sol click de més de 50 aplicacions. En aquest cas les apps s’instal·len en un contenidor docker, que demana molt poc esforç de manteniment. L’oferta de serveis que fan els fundadors de Cloudron és una subscripció de 8€/mes per rebre les actualitzacions de manteniment de la plataforma i totes les apps, que per correr un servidor autogestionat és realment una proposta de servei molt decent. Potser aquesta proposta ja s’apropaba una mica més a lo que voliem, però vem sentir que ens faltava control sobre les aplicacions. Pot ser que aquesta solució està dissenyada per col·lectius sense administradors de sistemes…

Després hi ha un cas molt inspirador a Francia: Framasoft, que ha posat en marxa diferents serveis web per una multitud d’aplicacions útils que les usuàries poden accedir amb un sol compte. Des de fulls de càlcul a videoconferencies, pads de notes, framadate (alternativa a Doodle), des de calendaris a mindmaps, etc.

Un dels aspectes interessants és el seu model de sostenibilitat que es basa principalment en donacions (uns 300.000 euro/any), una aliança de col·lectius que contribueix amb el desenvolupament, el manteniment i ús i un equip de 7 persones asalariades per mantenir la operació, d’uns 300.000 usuàries.

Hi ha però algunes diferencies importants amb el CommonsCloud. Després de varies sessions de cocreació vem decidir de reduir el nombe d’interficies web. Enlloc de tenir varies dotzenes, comencem amb tres plataformes principals que intentem integrar dins de lo possible, però cadascuna ofereix una ampla franja de funcionalitats. Una altra diferencia clau és que posem en marxa aquesta iniciativa com una cooperativa de plataforma, on les usuàries esdevenen copropietaries. Dit això, ens encanta la campanya de Framasoft de “De-googlifiar-Internet“!

Doncs, com varem començar el CommonsCloud? La primera trobada la vem tenir al gener del 2017: ens vem trobar deu persones de diferents col·lectius a Barcelona per sembrar els fonaments. Vem posar en comú les nostres experiencies, com les que acabem de revisar breument a dalt. Altres aplicacions de núvol col·laboratiu interessants que hauriem de mencionar inclouen Cloudy que desenvolupen companys de Guifi.net i la UPC com una distribució GNU/Linux per infrastructures de núvol i Cozy com una solució de núvol personal. Marco Fioretti, membre de la junta del Free Knowledge Institute, ha estat treballant els ultims cinc anys per dissenyar una proposta d’arquitectura per núvols personals o “PERcloud” que permetria a cada usuària de tenir el seu núvol a la seva maquina local en una arquitectura distribuida. Aquesta visió ha influenciat les decisions de disseny de l’arquitectura del CommonsCloud, encara que l’arquitectura actual s’enfoca a solucions de núvol col·laboratiu cogestionats en mans de les usuaràries. Després de la sessió de co-creació durant el Mobile Social Congress 2017 a Barcelona varem crear un grup de treball internacional amb un espai al FKI wiki i una llista de correu CommonsCloud. Des d’aquí el treball ha continuat en part online i en part offline, en paral.lel amb la constitució de la cooperativa femProcomuns. I així fins ara, que ambdos estan preparats per prendre el pas següent: entrar en la fase de producció.

L’arquitectura principal de software
Keep it simple i amaga la complexitat.

Un compte d’usuari per single sign-on
Lo primer que totes les plataformes mencionades tenen en comú és un servidor de comptes que permet a les usuàries a fer login a tots els diferents serveis (single sign-on). LDAP – el Lightweight Directory Access Protocol – és l’estandàrd obert per organitzar directoris de comptes, i la majoria d’aplicacions web tenen plugins per facilitar la gestió dels comptes d’usuari a través d’un servidor de LDAP.

Hem dissenyat l’arbre d’infromació del directori LDAP de tal manera per facilitar que altres col·lectius entrin a formar part de l’Aliança i poder compartir el servidor de LDAP com un servidor mancomunat. Cada usuària pot pertanyer a diferents col·lectius o grups i cada col·lectiu o grup pot tenir diferents serveis i grups d’ACL (control d’acces). Tothom sabem l’importancia del onboarding (registrar nous usuàries). Donat el repte creixent per mantenir el SPAM sota control, nosaltres optem per tornar a introduir la validació humana. T’en recordas quan el teu wiki es quedava ple de SPAM i per tant s’havia de tancar la possibilitat de autoregistrar-se nous comptes? Ho vem veure en diferents contextos. Com remedi hem dissenyat un procés d’onboarding que va així:

  • una persona es registra e indica la seva pertinença a un col·lectiu primari i valida el seu compte de mail
  • els admins d’aquell col·lectiu primari reben una notificació i validen el compte (i es crea un registre a l’arbre LDAP)
  • la persona usuària rep una notificació per definir la seva contrasenya i pot entrar en els diferents serveis: els serveis públics que estan oberts per tothom més els serveis especifics del col·lectiu primari.

Des d’aquest moment la persona pot gestionar el seu perfil i demanar ser inclosa en altres col·lectius per accedir els serveis pertinents. El nostre Chris ha estat desenvolupant una interficie web per facilitar aquest procés. Encara ens queda molta feina per millorar l’arbre LDAP i les interficies d’usuària per una millor experiencia d’usuària.

Phabricator – com la plataforma de autogestió comunitària de PROJECTES
Basat en les demandes d’usuàries hem prioritzat tres principals àrees d’aplicacions amb un “guanyador” en cada àrea, per la plataforma que hem vist com la més solida i estrategica.

Phabricator és una plataforma per gestionar projectes, que poden ser obertes/tancades, visibles/amagats, amb equips o comunitats de voluntaris/professionals i permet organitzar-se la seva feina amb metodologies agile i kanban (tipus Trello, Wekan, Kanboard) complementat de varies dotzenes d’aplicacions que un pot integrar facilment dins d’un grup quan així ho desitja. També ofereix una caixa fort per guardar contrasenyes i altres secrets, un wiki hierarchic, un motor de documentació, una eina per fer enquestes, un pad de notes, medalles (“badges”), blogs, etc. Membres de l’associació Barcelona: Free Software – que formen part de l’Al·liança han compartit la seva experiencia de la comunitat global de KDE que fan servir Phabricator per gestionar el desenvolupament de codi amb els repositoris git i altres que facilita la gestió d’aquest tipus de projectes; la comunitat de Wikipedia també corre el seu servidor amb una instancia de Phabricator. Com pots apreciar, Phabricator no és només pel desenvolupament de codi (com p.e. github) però ofereix un entorn i caixa d’eines molt ampli per equips no-tecnics per autogestionar els seus projectes de producció comunitària.

NextCloud com la plataforma d’OFICINA online
NextCloud és una bifurcació (fork) comunitària de ownCloud i molta gent ho considera la millor solució de núvol online. Permet magatzemar i compartir arxius, calendaris i contactes. Amb els plugins adients també permet l’edició online de documents ofimatics. Aquesta part ho considerem la killerapp que les nostres usuàries necessiten per poder migrar de Google Drive. Hi han varies opcions per editar documents online de forma col·laborativa. Ara mateix tenim integrat el CollaboraOffice, que ofereix un servidor LibreOffice amb un interfaz web per editar. També estem mirant altres opcions, com OnlyOffice que prometen fer aquesta feina. Estem explorant col·lectivament quina és la millor solució per posar-ho en producció. Sabem de ben segur que moltes de les nostres usuàries tenen la necessitat d’editar online de forma col·laborativa i els pads no sempre son la solució més adient, i mentres no resolem aquesta necessitat, sembla clar que Google Drive segueix sent el seu “amic”.

NextCloud fa poc ha incoporat lo que diuen “Cercles”, lo qual permet a les usuàries de definir i autogestionar grups d’usuàries amb qui poden compartir documents fàcilment. A la vegada estem explorant les funcionalitats de Grups, una opció que ara estem gestionant basant-nos en el directori LDAP on registrem en quins grups/col·lectius està cada usuària.

És cert que NextCloud disposa de moltes més aplicacions que es poden afegir mitjançant plugins, però per ara hem preferit no activar-les. Primer volem tenir una base de usuàries pioneres que s’acostuma a les tres plataformes i després ens seiem en algunes sessions de co-creació per definir quines son les features i apps que la gent necessita i prioritza i pensem junts de la millor manera d’integrar-les.

Un dels aspectes meravelloses del NextCloud és la sinconització d’arxius, calendaris i contactes entre el servidor i el movil, portatil o ordinador d’escriptori. Quan estàs editant un arxiu online, pots decidir de seguir amb el mateix document que tens sincronitzat en local a través del teu LibreOffice, i automaticament es sincronitza permetent que tu o les teves companyes amb qui comparteixes el document, segueixen editant en el seu dispositiu. Tot això en principi funciona de forma automatica, sense intervenció humana.

Discourse com l’AGORA, la plataforma que facilita els debats en linia i la presa de decisions col·lectives
Els debats online necessiten una bona plataforma, una cosa dificil, perque cadascú tenim experiencies diferents. Alguns son fans de forums online, altres de llistes de correu. Discourse combina les dues en un amb un entorn web amigable i flexible. Nosaltres ho hem trobat un complement més que decent a les altres plataformes triades.

Alguns aspectes de la Experiencia d’Usuaria
Lo primer que ja hem mencionat és la voluntat de limitar el nombre de interfícies d’usuària. o sigui de plaformes diferents. Ara mateix tenim tres: Phabricator, NextCloud i Discourse, a més a més de l’interfície web per facilitar el registre i gestió d’usuaries en un servidor de directori d’openLDAP. Intentarem de triar les noves aplicacions que la base d’uauries desitgi, dins de l’entorn d’aquestes tres plataformes, però segurament també afegirem alguna o altre plataformaen un futur proper. Per exemple la plataforma d’autogestió econòmica per actors de l’economia social i solidaria OdooCoop (basat en odoo) que s’està desenvolupant en una altra al·liança al voltant de la cooperativa femProcomuns. I possiblement altres, depenent de les necessitats de les usuàries i les propostes dels desenvolupadors.

Un segon aspecte és el procés d’onboarding mateix. Basat en les experiencies previes, hem descartat la possibilitat de tenir una validació totalment automàtica dels nous comptes que la gent demani, pels riscos de SPAM que implica. Tampoc no voldriem un procés completament centralitzat on un o pocs admins haurien de validar cada petició, i per tant podria ralentir molt el procés. Hem optat per un camí entremig, on les usuàries en el formulari d’alta d’un nou compte trien un “col·lectiu primari” a que pertanyen. Després de validar el seu mail, els admins d’aquest col·lectiu reben una notificació i poden validar (o no) el nou compte demanat. Així els col·lectius que participen del CommonsCloud tenen la seva responsabilitat i poder d’autogestionar els comptes del seu col·lectiu i a la vegada les persones poden amb un mateix compte formar part de multiples col·lectius.

Un tercer aspecte és la combinació de serveis públics del CommonsCloud – com els tres serveis explicats abans, e instàncies privades de serveis especifics per cada col·lectiu que ho desitgi. Així una persona pot tenir accés al NextCloud públic i a la vegada a un servidor privat del col·lectiu en que participa. Amb un sol compte, i – volem tambe – amb una interficie d’usuària unificada, aquesta persona pot accedir a tots els seus serveis. L’interfície d’usuari haurà de combinar aquestes opcions en una interfície fàcilment intel·legible.

Modes de producció
La manera en que produïm aquests serveis és basada lo màxim possible en la voluntat de les persones, connectant amb la motivació de cadascuna i basada en la missió compartida. Sabem que la nostra ambició és gran i dificil i independentment dels diners ho volem portar a terme. A la vegada busquem una remuneració justa.

Podem distinguir tres nivells d’involucrar-se:

  • Grup Impulsor, de dissenyadors, admins de sistemes, comunicadors etc: ells i elles prenen la iniciativa per portar-ho a terme; son també les primeres persones a rebre ingressos, que aquests els distribuirem en funció de la feina feta;
  • Membres de l’Al·liança: comparteixen coneixement al nivell de I+D, participen en les decisions estrategiques i volen que existeixi aquesta iniciativa;
  • Usuàries finals: tenen consciencia de la necessitat de construir col·lectivament alternatives als núvols corporatius en forma dún procomú; contribueixen en funció de les seves necessitats i capacitats per fer realitat aquesta plataforma. Usuàries finals poden ser o individuals o col·lectius que necessiten un servidor privat d’alguns o tots els serveis oferts.

En un següent article compartirem el model de governança que estem posant en marxa per guiar i organitzar la nostra feina.

Queden moltíssims detalls per definir, però estem treballant seguint les linies que acabem d’explicar aquí per fer el salt. T’apuntas? Contribueix al CommonsCloud.