Blog de dada

DevOps, bidouilleur et routard plein de logiciels libres

Archives 2019

VLC, un conte moderne

Rédigé par dada / 05 mai 2019 / 2 commentaires


On parle peu de VLC, personne ne sait vraiment d'où vient ce logiciel et pourtant, tout le monde, ou presque, s'en sert. Pour vous donner une idée de ce qui se cache derrière le plot de chantier, je vous propose une vidéo de l'excellente chaîne Mi-figue, mi-raison.


Bon, en étant un peu honnête, on peut quand même souligner que Le Monde s'est récemment fendu d'un superbe article sur le sujet. À lire, vraiment. 

Et pour être tout à fait honnête, ce billet n'a qu'un seul but : faire la promo de cette nouvelle chaîne qui possède et met en avant des comptes dans le Fédiverse :
Bon visionnage et n'hésitez pas à les suivre !

Classé dans : Médias / Mots clés : aucun

J'ai lu : Cyberstructure

Rédigé par dada / 26 mars 2019 / Aucun commentaire


Bosser dans le numérique et être militant du Libre permet d'avoir une vision marquée de l'informatique : on devient rapidement méfiant envers les géants du secteur tout en s’inquiétant de l'influence de quelques décideurs sur la vie de millions, voire milliards, d'internautes.

Avec l'ouvrage de Stéphane BORTZMEYER, on s'enfonce dans les tréfonds de la structure de l'Internet, dans des concepts qui nous sont familiers, à nous les professionnels, et qui permettent à toute cette merveilleuse machine de fonctionner. Point important : il n'est absolument pas nécessaire d'être un technicien pour arpenter les pages de ce livre, bien au contraire, tout est expliqué et vulgarisé au maximum.


Je ne vais pas m'aventurer dans un mauvais résumé des plus de 250 pages qui constituent ce bouquin : je me contenterais de vous inviter chaleureusement à prendre quelques heures pour vous y perdre. C'est de l'histoire, de la culture et de la politique.

Que vous soyez un ou une simple utilisatrice ou un professionnel : foncez ! Vous y trouverez de quoi donner à manger à votre cerveau !

De l'économie du numérique et du libre

Rédigé par dada / 14 mars 2019 / 8 commentaires


Avec des projets plein la tête, ou plutôt des envies, et le temps libre que j'ai choisi de me donner en n'ayant pas de boulot depuis quelques mois, j'ai le loisir de m’interroger sur l'économie du numérique. Je lis beaucoup d'articles et utilise énormément Mastodon pour me forger des opinions.

Ce billet a pour origine cet entretien de Frédéric Fréry sur France Culture  : Plus Uber perd, plus Uber gagne.

Uberisation d'Uber

Je vous invite à vraiment prendre le temps de l'écouter, c'est franchement passionnant. On y apprend, en gros, que l'économie des géants du numérique est, pour certains, basée sur une attitude extrêmement agressive : il faut être le moins cher possible, perdre de l'argent à en crever et lever des fonds à tire-larigot pour abattre ses concurrents avec comme logique un pari sur la quantité d'argent disponible à perdre par participants. Celui qui ne peut plus se permettre de vider les poches de ses actionnaires a perdu. Tout simplement. Si ces entreprises imaginent, un jour, remonter leurs prix pour envisager d'être à l'équilibre ou rentable, l'argument du "ce n'est pas possible puisque ça rouvrira une possibilité de concurrence" sortira du chapeau de ces génies pour l'interdire. Du capitalisme qui marche sur la tête.

L'investissement sécurisé

La deuxième grande technique des géants du numérique est basée sur la revente de statistiques collectées auprès de ses utilisateurs. Ces données privées que vous fournissez à Google, Facebook Inc, Twitter & co permettent à ces sociétés de disposer d'une masse d'informations telle que des entreprises sont prêtes à dégainer leurs portefeuilles pour en dégager des tendances.
Je m'amuse souvent à raconter que si les séries et les films se ressemblent beaucoup, ce n'est pas uniquement parce que le temps passe et qu'on se lasse des vieilles ficelles, c'est aussi parce que les énormes investissements engagés dans ces productions culturelles sont basés sur des dossiers mettant en avant le respect d'un certain nombre de "bonnes pratiques" captant l'attention du plus gros panel possible de consommateurs ciblés.
Avec toutes ces données, il est simple de savoir quel acteur ou quelle actrice est à la mode, pour quelle tranche d'âge, quelle dose d'action, de cul ou de romantisme dégoulinant il faut, trouver la période de l'année pour la bande annonce, sortie officielle, etc. Ça donne une recette presque magique. Comme les investisseurs sont friands de rentabilité, on se retrouve avec des productions culturelles calquées sur des besoins connus : c'est rassurant, c'est rentable, c'est à moindre risque. Pas de complot autour de l'impérialisme américain, juste une histoire de gros sous.
Cette capacité de retour sur investissement est aussi valable pour le monde politique, avec Barack OBAMA comme premier grand bénéficiaire ou encore cette histoire de Cambridge Analytica.
C'est ça, ce qu'on appelle le Big Data, ses divers intérêts au service du demandeur et la masse de pognon qu'il rapporte aux grands collecteurs de données.

La pub

Une troisième technique consiste à reprendre les données collectées auprès des utilisateurs pour afficher de la pub ciblée, donc plus efficace, donc plus cher. C'est une technique connue, alors je ne développe pas. Chose marrante, quand même, je ne retrouve pas l'étude (commentez si vous mettez la main dessus !) mais je sais que la capacité de ciblage est tellement précise qu'elle peut effrayer les consommateurs. Pour calmer l'angoisse des internautes, certaines pub sans intérêt vous sont volontairement proposées pour corriger le tir.

Les Hommes-sandwichs

Une autre technique est plus sournoise. Pas pour nous autres, vieux loubards, mais pour les jeunes : le placement produit. Même si certain Youtubeurs en font des blagues pas drôles (Norman...), ce truc est d'un vicieux.
Nos réseaux sociaux n'attirent pas autant de monde qu'espéré pour une raison assez basique : les influenceurs et influenceuses. Ces derniers sont des stars, au choix parce qu'ils sont connus de par leurs activités précédentes (cinéma, série, musique, sport, etc) ou parce que ces personnes ont réussi à amasser un tel nombre de followers qu'un simple message sur Twitter, Youtube ou Instagram se cale sous les yeux d'un monstrueux troupeau. Ils gagnent le statut d'influenceur de part la masse de gens qui s'intéresse à leurs vies (lapsus, j'ai d'abord écrit vide à la place de vie). J'ai en tête l'histoire de cette jeune Léa, par exemple. Ces influenceurs sont friands de plateformes taillées pour leur offrir de la visibilité et clairement organisées pour attirer l’œil des Directeurs de Communication des marques. Mastodon, Pixelfed, diaspora* et les autres ne permettent pas de spammer leurs utilisateurs, n'attirent donc pas les marques, qui sont la cible des influenceurs, ces derniers n'y dégageant, in fine, aucun besoin d'y être présents.
Ces gens-là deviennent les nouveaux "hommes-sandwichs". Ils ou elles sont contactés pour porter tel ou tel vêtement, boire telle boisson ou pour seulement poster un message avec le nom d'un jeu. Les marques les adorent et l'argent coule à flot.

On peut attendre

Bref, l'économie du numérique n'est pas si difficile que ça à cerner, même si je ne parle pas de tout. Ce qui m'intéresse dans toutes ces histoires est la stabilité de ces conneries sur le long terme et la possibilité de proposer autre chose. On peut attendre que les Uber se cassent la figure calmement, on peut attendre que le droit décide enfin de protéger les données des utilisateurs, on peut aussi attendre le jour où les consommateurs comprendront qu'ils sont les seuls responsables de l'inintérêt de ce qu'ils regardent à la télé, au cinéma, en photos ou encore que les mastodontes du numériques soient démantelés. Bref, on peut attendre. La question est : qu'aurons-nous à proposer quand tout ceci finira par se produire ?

La LowTech

Après la FinTech, la LegalTech, etc, faites place à la LowTech ou SmallTech. Je ne connaissais pas ces expressions avant de tomber sur cet article dans le Framablog et celui de Ubsek & Rica d'Aral. On y apprend que c'est un mouvement qui s'oppose frontalement aux géants, ce qui est fantastique. C'est une vision du monde qui me va très bien, en tant que militant du Libre depuis plus de 10 ans maintenant. On peut visiblement le rapprocher de l’initiative CHATONS.
Cependant, j'ai du mal à saisir les moyens qui pourraient être mis en œuvre pour sa réussite.

Les mentalités

Les mentalités actuelles sont cloisonnées : le Libre, même s'il s'impose dans quelques domaines, reste mal compris. Rien que l'idée d'utiliser un programme au code source ouvert donne des sueurs froides à bon nombre de DSI. Comment peut-on se protéger des méchants si tout le monde peut analyser le code et en sortir la faille de sécurité qui va bien ? Comment se démarquer des concurrents si tout le monde se sert du même logiciel ? Regardez le dernier changelog : il est plein de failles béantes : ce n'est pas sérieux !
Parlons aussi de son mode de fonctionnement : qui se souvient d'OpenSSL utilisé par tout le monde et abandonné pendant des années au bénévolat de quelques courageux qui n'ont pas pu empêcher l'arrivée de failles volontaires ? Certains projets sont fantastiques, vraiment, mais les gens ont du mal à réaliser qu'ils sont, certes, très utilisés mais peu soutenus. Vous connaissez beaucoup d'entreprises pour lesquelles vous avez bossé qui refilent une petite partie de leurs bénéfices aux projets libres qui les font vivre ?

Le numérique libre est la Presse

Les gens, les éventuels clients des LowTech, ont plus ou moins grandi dans une société du gratuit. L'autre jour, je m'amusais à comparer les services informatiques à la Presse. Les journaux ont du mal à se sortir du modèle gratuit. Certains y arrivent (Mediapart, Arrêts sur Image : abonnez-vous !), d'autres, largement majoritaires, non.
Il n'est pas difficile de retrouver les montants des subventions que l'État français offrent à ces derniers. Libération en parle ici. Après avoir noué des partenariats tous azimuts avec les GAFAM, après avoir noyé leurs contenus dans de la pub, les journaux en ligne se tournent doucement vers le modèle payant pour se sortir du bourbier dans lequel ils se sont mis tout seul. Le résultat est très moyen, si ce n'est mauvais. Les subventions sont toujours bien là, le mirage des partenariats avec les GAFAM aveugle toujours et les rares qui s'en sont sortis se comptent sur les doigts d'une main.
On peut faire un vrai parallèle entre la situation de la Presse en ligne et les services numériques. Trouver des gens pour payer l'accès à un Nextcloud, un Matomo ou que sais-je est une gageure. La seule différence qui me vient à l'esprit est que des services en ligne arrivent à s'en sortir en coinçant leurs utilisateurs dans des silos : vous avez un Windows ? Vous vous servirez des truc de Microsoft. Vous avez un compte Gmail, vous vous servirez des trucs de Google. Les premiers Go sont gratuits, les autres seront payants. Là où les journaux généralistes ne peuvent coincer leurs lecteurs, les géants du numérique le peuvent sans trop de soucis.

Et le libre

Dans tout ça, les LowTech libres peuvent essayer de s'organiser pour subvenir aux besoins éthiques de leurs clients. Réflexion faite, cette dernière phrase n'a pas tant que ça de sens : comment une entreprise peut-elle s'en sortir alors que l'idéologie derrière cette mouvance favorise l'adhésion à des associations ou à rejoindre des collectifs ? Perso, je l'ai déjà dit, j'adhère volontiers à cette vision du monde horizontale et solidaire. Malgré tout, mon envie de travailler, d'avoir un salaire, une couverture sociale, une activité rentable, et peut-être un jour une retraite, me pousse à grimacer. Si les brides d'idéologie LowTech orientent les gens vers des associations, comment fait-on pour sortir de terre une entreprise éthique, rentable et solidaire ?
On ne s'en sort pas, ou très difficilement, ou je n'ai pas réussi à imaginer comment. L'idée, connue, serait de s'attaquer au marché des entreprises et des collectivités pour laisser celui des particuliers aux associations sérieuses. Mais là encore, on remet un pied dans le combat pour les logiciels libres contre les logiciels propriétaires dans une arène encerclée par des DSI pas toujours à jour. Sans parler de la compétitivité, ce mot adoré par notre Président, et de l'état des finances de ces entités. Faire le poids face à la concurrence actuelle, même avec les mots "éthique, solidaire et responsable" gravés sur le front, n'est pas évident du tout.

Proie

Si je vous parle de tout ça, c'est parce que j'estime que nous sommes dans une situation difficile : celle d'une proie. Je ne vais pas reparler de l'achat de Nginx, de ce qu'il se passe avec Elasticsearch ou du comportement de Google qui fork a tout va pour ses besoins dans Chrome. Cette conférence vue au FOSDEM, The Cloud Is Just Another Sun, raisonne terriblement en moi. L'intervenant y explique que les outils libres que nous utilisons dans le cloud sont incontrôlables. Qui vous certifie que vous tapez bien dans un MariaDB ou un ES quand vous n'avez accès qu'a une boite noire qui ne fait que répondre à vos requêtes ? Rien.
Nous n'avons pas trouvé le moyen de nous protéger dans le monde dans lequel nous vivons. Des licences ralentissent le processus de digestion en cours par les géants du numérique et c'est tout. Notre belle vision du monde, globalement, se fait bouffer et les poches de résistance sont minuscules.

Pour finir

Pour finir, ne mettons pas complètement de côté l'existence réelle d'un marché : Nextcloud en est la preuve, tout comme Dolibarr et la campagne de financement réussie d'OpenDSI. Tout n'est peut-être pas vraiment perdu. C'est juste très compliqué.
La bonne nouvelle, s'il y en a bien une, c'est qu'en parlant de tout ça dans Mastodon, je vous assure que si une entreprise du libre se lançait demain, nous serions un bon nombre prêt à tout plaquer pour y travailler. À attendre d'hypothétiques clients, qu'on cherche toujours, certes, mais dans la joie et la bonne humeur.

Enfin voilà, des réflexions, des idées, beaucoup de question. On arrive à plus de 1900 mots, de quoi faire plaisir à Cyrille BORNE.

Des bisous.

Du rachat de Nginx

Rédigé par dada / 12 mars 2019 / 6 commentaires



C'est la grande nouvelle du moment : F5 Networks, société spécialisée dans l'équipement réseau, rachète Nginx. Cette annonce dégouline dans les réseaux sociaux et les premières craintes apparaissent.

Les protagonistes

F5 Networks m'était complètement inconnue. Jamais avant cette annonce je n'avais entendu parler de cette société. Pourtant, il semblerait qu'elle ait les moyens de poser presque un demi milliard d'euros pour acheter une entreprise concurrente. Concurrente ? Oui, puisqu'il semblerait que F5 ait pour spécialité les répartiteurs de charge, ce qu'est le boulot originel de Nginx.

Les précédents

Les débats démarrés dans Mastodon font remonter à la surface des souvenirs douloureux : lorsqu'une entreprise met la main sur un logiciel libre, les choses évoluent souvent de la même façon :

- OpenOffice, porté par Sun Microsystems, a été forké quelques de temps après le rachat de Sun par Oracle. Nous utilisons tous LibreOffice maintenant.
- ZFS, avec encore Sun et Oracle dans la partie, est devenu OpenZFS.
- MySQL, toujours avec les mêmes protagonistes, est maintenant complètement supplanté par MariaDB.
- OwnCloud est devenu Nextcloud quand l'entreprise derrière le projet s'est mise à mal gérer les contributions de sa communauté.

N'hésitez pas à aller voir la liste des forks connus. C'est impressionnant.

La licence

Nginx est sous licence BSD et F5 propose des services de répartiteur de charge (loadbal', en bon langage technique) : il n'est donc pas déconnant d'imaginer que F5 va vouloir mettre en avant ses propres solutions en y intégrant les atouts de Nginx. Tout ceci en n'étant pas le moins du monde obligé de redistribuer les améliorations qu'ils ne manqueront pas d'apporter à leur nouveau jouet hors de prix.

De fait, la licence BSD nous certifie que la dernière version de Nginx nous restera en l'état : accessible, modifiable, etc. C'est du libre (sans l'éthique). Cependant, rien n’oblige F5 à reverser les améliorations futures à la communauté. C'est la magie des licences maladroitement appelées Open Source face aux licences dites Libres.

La place de Nginx

Je me souviens avoir très (trop ?) souvent trollé Nginx quand il est arrivé dans le monde de l'hébergement. Je savais bien que c'était un excellent proxy mais je n'arrivais pas du tout à l'imaginer en tant que serveur web. J'étais clairement du côté d'Apache.
Avec le temps, les choses ont beaucoup évolué et je suis loin d'être le seul à avoir foutu du Nginx absolument partout, en loadbal, proxy et serveur. Mon infrastructure ne contient quasiment plus d'Apache. Là où il est encore présent est justifié par la flemme de le virer et de réécrire des configurations pour des gains en performance minimes.

Bref, Nginx est absolument partout, même si Apache revient dans la partie avec des performances de plus en plus proches, dans certains cas.

La suite ?

Comme dirait l'autre, bien malin est celui capable de faire des prévisions, surtout quand celles-ci concernent le futur. Pourtant, le monde libriste regorge d'exemples pouvant indiquer la direction possible que va prendre Nginx : le fork.
Tout dépendra de la réputation de F5 Networks, des choix qui vont être fait et de l'humeur des membres de la communauté Nginx. La suite de l'aventure va être passionnante à suivre et, là je peux le parier, la communauté s'en sortira par le haut, avec ou sans F5 Networks.

Crontab ? Non, Cronjob !

Rédigé par dada / 15 février 2019 / Aucun commentaire



On sait tous, pour peu que notre métier consiste à passer trop d'heure devant des écrans branchés en SSH à des serveurs, qu'une action répétitive doit être gérée par la Crontab. C'est normal.
Kubernetes s'est amusé à reprendre ce principe pour y glisser du Docker, parce que voilà. Pas vraiment étonnant. Regardons ensemble ce qu'est un CronJob, l'équivalent Crontab de l'orchestrateur.

CronJob

L'idée du CronJob, c'est d'aller effectuer le travail de la Crontab alors qu'il n'est pas possible de savoir combien de conteneurs font tourner notre application. Eh oui, avec un seul conteneur, il est possible de prendre un peu de temps pour lui glisser le paquet qui va bien et ajouter la ligne de configuration qui fait le boulot, mais avec Kubernetes, c'est une autre affaire. Imaginez que vous fassiez ça avec plusieurs conteneurs : vous avez beau vous amuser à calculer le temps d'exécution du processus et ainsi décaler son lancement à la louche, vous allez vite vous retrouver avec des nœuds qui load et des données corrompues. Bref.

Matomo et son CronJob

En exemple, voici ce que je fais avec mon Matomo. Rappel rapide: Matomo est un outil d'analyse de fréquentation d'un site web bien plus propre que ses concurrents et qui, pour un logiciel libre, ne néglige pas les beaux graphiques.

La configuration

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: matomo-archive
spec:
  schedule: "*/30 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: matomo-cron
            image: matomo:3.7
            volumeMounts:
            - name: pv-matomo
              mountPath: /var/www/html
            args:
            - /bin/bash
            - -c
            - /usr/local/bin/php /var/www/html/console core:archive --url=https://url.de.mon.matomo/
          restartPolicy: OnFailure
          volumes:
          - name: pv-matomo
            flexVolume:
              driver: ceph.rook.io/rook
              fsType: ceph
              options:
                fsName: myfs
                clusterNameSpace: rook-ceph
                path: /matomo
Si vous êtes perdus, souvenez-vous que je me sers d'un cluster Ceph géré par Rook. Grace à ça, je peux monter le volume contenant les sources nécessaire à l'exécution du cron, parce qu'il faut bien lancer du PHP à un moment ou un autre.

Explications

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: matomo-archive
spec:
  schedule: "*/30 * * * *"
Ici, c'est la ligne schedule qui est importante. Les habitués de la Crontab comprendront qu'elle permet de définir la fréquence d'exécution. Ici, toutes les 30 min.
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: matomo-cron
            image: matomo:3.7
À l'heure où j'écris ces lignes, la version 3.8 de Matomo est disponible mais pas son conteneur, d'où la version 3.7 précisée dans la configuration du conteneur. Gros rappel : latest n'est pas une version !
            args:
            - /bin/bash
            - -c
            - /usr/local/bin/php /var/www/html/console core:archive --url=https://url.de.mon.matomo/
La partie args permet de spécifier l'action du CronJob : ici, on va lancer un script PHP développé par Matomo avec l'url de son instance en paramètre. Tout simplement.
          volumes:
          - name: pv-matomo
            flexVolume:
              driver: ceph.rook.io/rook
              fsType: ceph
              options:
                fsName: myfs
                clusterNameSpace: rook-ceph
                path: /matomo
La partie volumes est toute basique : c'est là que je configure l'accès aux sources du conteneur qui va lancer la tâche.

On applique tout ça :
kubectl apply -f cronjob.yaml
Et on attend 30 min que le CronJon prenne la peine de démarrer. N'hésitez vraiment pas à baisser la fréquence d'exécution si vous n'avez pas que ça à faire. 5min, c'est très bien. 1min ? Laissez tomber, par contre.

Vérification

Pour vérifier que vous avez bien ce que vous avez demandé :
dada@k8smaster1:~/matomo$ k get cj
NAME             SCHEDULE       SUSPEND   ACTIVE   LAST SCHEDULE   AGE
matomo-archive   */30 * * * *   False     0        21m             28d
On retrouve bien le nom du CronJob, sa configuration et quelques infos comme la dernière exécution (21 minutes) et son age (28 jours).

Avec le temps, au bout de 1h30 si vous avez copié/collé ma configuration, vous allez remarquer que le cluster garde en mémoire les 3 dernières tentatives :
dada@k8smaster1:~/matomo$ k get pods | grep archive
matomo-archive-1548606600-4cwsl         0/1     Completed   0          84m
matomo-archive-1548608400-7lxf8         0/1     Completed   0          54m
matomo-archive-1548610200-cwh6t         0/1     Completed   0          24m
Ça vous permet d'avoir un accès aux logs rapidement. Chouette !

Vous pouvez maintenant aller jouer avec !


Fatal error :
type : 8
message : file(): read of 8192 bytes failed with errno=21 Is a directory
file : /core/lib/class.plx.template.php
line : 229

See https://www.php.net/manual/en/errorfunc.constants.php about type of error