Contact

Une mission à me confier ?

Une question à me poser ?

Contactez-moi et je répondrai au plus vite !

Nous explorerons vos difficultés et les solutions que je peux apporter.

mehdi.valette@gmail.com

+41 79 823 72 01


Développements sur-mesure

Logiciels petits et grands

Beaucoup pensent que le développement logiciel nécessite des mois de travail et coûte des dizaines de milliers de francs. La faute aux logiciels les plus connus qui sont souvent des béhémoths. C'est parfois vrai, bien sûr. J'ai déjà travaillé en équipe sur de gros projets qui ont duré plus d'une année.

Mais il existe aussi beaucoup de petits logiciels réalisés en quelques semaines, voir en quelques jours. Leur prix est plutôt modeste, surtout au vu des avantages qu'ils apportent !

Automatiser les tâches simples et répétitives

Les ordinateurs sont remarquablement efficaces pour refaire constamment la même chose. J'ai été amené à automatiser un processus qui était réalisé manuellement à l'aide de feuilles imprimées.

Avant la numérisation le processus monopolisait une à deux personnes durant plusieurs jours. D'une fois numérisé, il était réalisé en quelques secondes avec un seul clique !

Offrir des services supplémentaires à la clientèle

Notre société est très numérisée, ainsi la plupart des gens peuvent tirer parti des services numériques. Personnellement j'adore pouvoir réserver des billets de train depuis mon natel ou demander mon extrait de poursuite en ligne.

On retrouve la même chose dans les relations inter-entreprises. Par exemple, j'ai développé une plateforme qui permet aux clients (entreprises) de suivre le traitement de leurs commandes.


Administration de serveurs Linux

Installation et mise en place

Bien que l'installation de Linux soit devenue plutôt aisée, on peut rapidement perdre du temps ou faire des mauvais choix sur des options que l'on ne comprend pas, surtout lorsqu'il faut installer plusieurs machines.

Ayant installé de nombreuses machines Ubuntu et CentOS, je connais bien l'installation des familles Debian et RedHat. J'ai également de l'expérience sur Terraform et Ansible pour automatiser le processus lorsqu'il faut, soit installer de nombreuses machines, soit être capable de les réinstaller rapidement en cas de panne.

Sécurisation

L'importance de la sécurité informatique augmente autant que notre dépendance à ces systèmes. C'est d'autant plus vrai pour les serveurs. Non-seulement ils contiennent plus de données critiques, ils doivent aussi rester accessible à qui de droit.

Il n'existe pas de méthode miracle pour tout sécuriser ; c'est un combat permanent entre les pirates et les entreprises. Le meilleur moyen de se protéger est de faire évaluer son système par autant de spécialistes que possible.

Administration

Un serveur tourne en permanence et généralement tout seul. Pour autant l'administration reste nécessaire : gérer des comptes, vérifier les sauvegardes, inspecter la machine suite à un problème, ou déployer un nouveau service, sont des tâches courantes.

Avec peu de valeur ajoutée et un grand potentiel d'erreurs graves, mieux vaut laisser l'administration des serveurs à celles et ceux pour qui c'est une tâche principale. J'ai déjà vu un serveur tomber en panne avec des sauvegardes ineffectives depuis des mois, tout simplement parce que les alertes étaient envoyées vers une boîte mail obsolète !


Déploiements

Services

Installer un logiciel en tant que service présente de nombreux avantage par rapport à simplement lancer une application. Un service peut se lancer automatiquement à chaque démarrage, centralise la journalisation des événements, et peut même redémarrer en cas de problème.

Conteneurs

Très util pour déployer une application avec l'ensemble de ses dépendances, la popularité des conteneurs a beaucoup grandit. Et avec leur popularité sont arrivées de nombreuses solutions pour les gérer.

Lorsque j'ai étudié pour passer le CKA (Certified Kubernetes Administrator), je me suis rendu compte de la richesse du monde des conteneurs. Docker, Podman, Containerd, Cri-O, Docker Compose, Docker Swarm, Kubernetes et ses dérivés, sans compter les solutions de sécurité telles que Kata et gVisor. Il est facile de se perdre ou de passer à côté de la solution idéale !

Orchestration avec Kubernetes

Pour les petites applications, Kubernetes apporte plus de complexité qu'il n'en résoud. Mais dans les projets de grande envergure, la gestion des nombreuses applications et de leurs interactions atteint une telle complexité que Kubernetes est simple en comparaison. Il permet notamment de mettre à jour les applications et rétablir le système après les pannes sans interruptions !

Pendant que j'étudiais Kubernetes pour passer le CKA (Certified Kubernetes Administrator) j'ai exploré en profondeur les composants principaux de Kubernetes et j'ai découvert le vaste univers qui l'entoure. Je me ferai un plaisir de le mettre en place, de le maintenir ou de vous conseiller sur votre architecture !


Sécurité informatique

Limiter les comptes

J'ai souvent vu des comptes qui ont bien plus de droits que nécessaire, voir même s'authentifier en root, parce que "c'est plus facile". Malheureusement les pirates aussi trouvent que "c'est plus facile". Il leur suffit d'accéder à n'importe quel compte pour accéder à tout le système.

Pourtant Linux offre de nombreuses façons d'accorder uniquement les accès nécessaires. En définissant les droits par dossier avec les permissions du système de fichiers, les ACLs et les attributs. En limitant ce qui peut être exécuté en Sudo. En se connectant par SSH avec des certificats plutôt que des clés.

Fermer le pare-feu

De trop nombreux serveurs ouvrent tous les ports, comme ça plus de problème ! Mais c'est sous-estimer la complexité des systèmes actuels. Des logiciels qui écoutent par défaut sur des ports non sécurisés, des virus qui transmettent des données volées, ce sont des risques bien réels.

Pour vérifier que tout est bien paramétré, mieux vaut connaître les pare-feux bas-niveau comme nftables (ou son ancêtre iptables). C'est plus de travail, plus de maintenance, mais aussi plus de sécurité !

Contraindre les processus

Si vous lisez les revues d'informatique, vous avez sûrement vu des titres tels que "Nouvelle faille découverte dans X" ou encore "Une mise à jour de Y le rend vulnérable à telle attaque". Les pirates profitent souvent de failles dans des logiciels bien réputés. Que ces failles soient le fruit d'un bug dans le programme ou d'une mauvaise configuration, il faut toujours partir du principe qu'elles peuvent exister.

Pour éviter qu'un logiciel ne mette en danger tout le système on fait souvent appel à SELinux ou AppArmor. Ces modules du kernel Linux permettent de limiter les droits des processus, même si ces derniers sont exécutés en root. Ainsi, une faille dans un logiciel ne permet plus d'attaquer tout le système.