Premier article de la série “Philosophie du développement logiciel”.

De nombreux sites expliquant déjà et avec succès les bonnes pratiques de développement logiciel, je ne souhaite pas rendre encore plus complexe la recherche d’informations. Voir également l’article sur la pollution des moteurs de recherche. Je pense avoir eu beaucoup de chance avec mon premier emploi d’exploitant informatique dans un grand Groupe international : il m’a permis de comprendre très vite comment passer d’un projet informatique en milieu scolaire, à des projets industriels totalement opérationnels pour des équipes qui n’ont pas conçu le logiciel, et dont ce ne devrait pas être le problème.

Pour cela il faut comprendre même si cela semble évident que les objectifs d’un logiciels sont opérationnels, ils doivent rendre le service pour lequel ils sont réalisés, pas seulement métier : il faut aussi anticiper le déploiement, et le maintien opérationnel la Prod. Un logiciel qui réalise ses objectifs métier, c’est déjà bien, mais s’il génère du stress aux équipes car la sureté de fonctionnement n’est pas bonne, c’est qu’une maturité manque dans la conception. J’ai tendance à penser qu’un logiciel bien pensé est celui que l’admin, le méchant Admin, accepte de déployer un vendredi à 17h40 avant de partir en vacances.

Le DevOps a permis de nombreux progrès sur ce point, mais je pense qu’il est temps d’envisager le DevOpEx, et d’anticiper également la phase de suivi en production.

Et pour cela, puisque rien n’arrive sans efforts, je recommande aux jeunes développeurs d’héberger eux-mêmes leurs sites.

Vous y apprendrez :

  • A gérer un serveur (installation, configuration, backup, sécurité)
  • A déployer correctement un logiciel
  • A rédiger une doc d’installation réellement utile (normalement cela survient à la 3e réinstallation du blog à la c** qui n’a pas accepté la mise à jour de sécurité)
  • à remplacer les mots de passe par défaut, et à les stocker correctement.

Oui évidement en 2015 prôner l’auto hébergement, c’est presque faire preuve d’hérésie. Sauf qu’en fait, c’est surtout une phase de formation nécessaire pour obtenir une maturité et améliorer l’architecture de ses propres applications que de voir la limite des autres réalisations, et de comprendre les contraintes des autres équipes.

L’achat d’un 4U déposé derrière le canapé (je ne regrette pas mon Rack Compaq RAID de 8*512Mo SCSI2 récupéré) n’est pas l’option idéale. Par contre l’utilisation d’un Raspberry Pi 2 Model B, avec 1W de consommation est une option plutôt intéressante, et moins facile à oublier que la X ième VM AWS gratuite. Accessoirement s’habituer à des serveurs d’une puissance toute relative permet d’anticiper de nombreux problèmes de performances…

Accessoirement, il est également facile d’héberger un site dans son routeur en installant NGINX sur un OpenWRT, et là encore il y a beaucoup à apprendre.

Le jour où le trafic sera au rendez-vous, il restera facile de migrer vers un hébergement plus sérieux. Si cela arrive, c’est que vous aurez réussi à garder un serveur online suffisamment longtemps pour que Google prenne le site au sérieux, et vous aurez maitrisé cette étape. Si par contre la page d’accueil est défacée tous les 2 jours, il reste un peu de travail.

La remarque du jour : « les logiciels doivent être conçus pour être exploités, et c’est un plus d’avoir des notions d’exploitation »

(540 mots)