
En quelques mots.
Protocoles de communication, persistance de données, authentification et autorisation des usagers : des défis quotidiens intéressants, il y en a n’en plus finir!
C’est peu dire que le monde de la technologie a beaucoup évolué au cours des dix dernières années. Selon Yohan Belval, DevOps Lead et Développeur Full-Stack pour ShareGate, c’est bien la montée du SaaS − ou « Software as a Service » − qui est l’élément central de tout ce bouleversement.
« Dans les dernières décennies, le génie informatique a été parmi les domaines, sinon le domaine, les plus intéressants qui soient. »
Yohan Belval
DevOps Lead et Développeur Full-Stack chez ShareGate, GSoft
Conçu et mis en marché comme un objet physique − imaginons un téléphone ou un CD d’essai AOL −, le logiciel était autrefois vendu aux usagers directement en magasin; ces derniers n’avaient plus qu’à l’apporter chez eux et à l’installer localement sur leurs ordinateurs. Conceptuellement parlant, le phénomène SaaS vient rompre avec la tradition en accordant l’accès aux fonctionnalités du logiciel, en considérant celui-ci comme un service, et non comme un objet à se procurer. Aujourd’hui, une seule instance d’un logiciel peut opérer à partir d’un serveur dans le Cloud et plusieurs usagers aux quatre coins du monde peuvent y accéder simultanément. « Ce que cela représente pour le présent, le passé et le futur de la technologie, » souligne Yohan, « c’est un incroyable terrain de jeux et une panoplie de possibilités en matière de génie. »
Quand le SaaS requiert de la vigilance
Au-delà de la manière dont l’usager accède au logiciel, le changement de paradigme qu’entraîne le SaaS met aussi au défi plusieurs des concepts fondamentaux du génie informatique. Puisqu’une seule instance du logiciel peut théoriquement être utilisée par des milliers de clients à la fois, les notions d’hébergement, de services en simultané, de sécurité, de mise en antémémoire et de stratégies de déploiement deviennent essentielles au succès d’un produit SaaS. Ainsi, une bonne partie du défi technique se situe maintenant dans le back-end. Protocoles de communication, persistance de données, authentification et autorisation des usagers : des défis quotidiens intéressants, il y en a n’en plus finir!
En tenant compte de tout ça, en plus du fait que le milieu naturel du SaaS − soit le Cloud − est en pleine expansion, de plus en plus de développeurs s’empressent de peaufiner leurs compétences en gestion d’infrastructures et des opérations. Ce domaine, maintenant connu sous le nom DevOps, est l’une des spécialités de Yohan. Par le passé, on aurait pu s’attendre à ce que le groupe TI s’occupe de régler ce type de questions, mais les DevOps sont dorénavant si étroitement liés au développement du logiciel que leurs compétences et leurs connaissances sont des atouts importants sur le marché du travail. Voici deux exemples de défis que Yohan a su relever grâce à l’expertise qu’il a acquise au cours des dernières années.
La sécurité de l’information personnelle
Un des plus grands défis avec les solutions SaaS d’aujourd’hui est la quantité de renseignements personnels que l’application doit gérer en simultané. Ainsi, il faut prendre des précautions supplémentaires afin de sécuriser et d’isoler les données recueillies sur chaque usager. C’est aussi la raison pour laquelle les environnements SaaS peuvent servir de cibles fortes intéressantes pour le logiciel de rançon (ransomware), un logiciel créé par des pirates informatiques dans le but de prendre vos données en otage en espérant une rançon. D’ailleurs, en juillet 2020, la compagnie de sport Garmin a subi une attaque par ce même type de logiciel de rançon. Le résultat? Garmin a dû payer cinq millions de dollars en rançon afin de ravoir accès à ses données et de reprendre l’exploitation de son logiciel. Les systèmes de Garmin ont été paralysés pendant cinq jours consécutifs.
En 10 ans de carrière, Yohan a lui aussi dû faire face à une menace similaire lorsque ShareGate s’est fait attaquer en 2018. Par chance, l’impact fût moindre puisqu’il s’agissait d’un environnement d’assurance qualité qui ne contenait que des données fictives, utilisées à des fins de test.
La preuve que ce genre d’attaque n’arrive pas qu’aux autres, et qu’il faut toujours envisager tous les scénarios.
Perspective d’employés
« Pour nous, cette situation a eu l’effet d’une douche froide : nous devions renforcer la sécurité. Même si tout ce qu’il fallait faire c’était d’éliminer un environnement redondant, il a fallu redoubler de vigilance et limiter la collecte de données à l’essentiel. »
Yohan Belval
DevOps Lead et Développeur Full-Stack chez ShareGate, GSoft
Quelle leçon Yohan en a-t-il tirée? Il faut toujours réviser les divers niveaux de sécurité d’un environnement SaaS au moyen d’une batterie de tests avant d’y introduire des renseignements personnels ou critiques.
L’optimisation du Cloud
Un autre défi inhérent au génie du SaaS? Savoir tirer le maximum de profit du pouvoir informatique et du pouvoir d’hébergement du Cloud.
Le Cloud permet d’élargir l’infrastructure du logiciel de manière dynamique en fonction de ses besoins, une particularité utile dans le domaine des technologies de virtualisation comme c’est le cas pour la technologie de conteneurs. Il s’agit là d’un des avantages de l’environnement SaaS.
Or, le simple fait de se doter d’une grosse machine informatique ne suffit pas à résoudre le problème. Selon Yohan :
« Il faut étudier précisément l’architecture du logiciel au lieu de jeter de l’argent par les fenêtres. Il faut définir les enjeux clés de la performance et effectuer de multiples tests avant d’investir. »
Yohan Belval
DevOps Lead et Développeur Full-Stack chez ShareGate, GSoft
Voilà pourquoi les développeurs SaaS les plus futés adoptent une approche décisionnelle orientée sur les données. Passionné d’automobiles, Yohan attire immédiatement notre attention sur le fait que la même approche est de mise dans le monde de la course automobile. Tout comme des pilotes qui se familiarisent avec la piste et font quelques tours d’essai sur le circuit avant une course, les développeurs ne devraient pas se lancer dans la rédaction du logiciel sans connaître leur environnement. « C’est un processus itératif », assure Yohan. « Il faut penser à tout ce qui pourrait ne pas fonctionner et résoudre tout problème en amont en se servant des données recueillies sur l’environnement immédiat. » Ces renseignements sont essentiels pour les développeurs qui se basent sur eux pour ajuster le code et prendre des décisions éclairées.
Son conseil
Choisissez des environnements de mise à l’essai bien circonscrits et adoptez une approche orientée sur les données en gardant l’optimisation du Cloud à l’esprit, surtout lors des premières phases du développement.