La qualité logicielle dans le cloud (partie 1).

cloud computing

cloud computing

Le cloud est la nouvelle grande mode dans les entreprises. Je rencontre de plus en plus de clients qui ont envie d’aller vers le cloud, de proposer des services sur le cloud, c’est un plus commercial. La réflexion est souvent au tout début.

Le cloud computing apporte une révolution sur la gestion des infrastructures, sur la façon de concevoir du logiciel, sur le BigData, il est  vendu comme près à l’emploi, comme de l’hébergement, comme le nouveau eldorado. La réalité est beaucoup moins jaune. Je vous propose de regarder la partie écarlate, et d’avoir un regard acidulé sur ce qui ce fait.

Il me semble important de sensibiliser les différents acteurs sur la sensibilité de la qualité logicielle, sur les impacts de la non qualité, sur la simplicité et aussi sur la complexité du cloud. Je me suis mis à la place d’une autre personne, pour lui expliquer pourquoi il faut faire attention (Be carefull). Dans la deuxième partie de l’article, je vais proposer des outils open source pour bâtir des applications robustes.

L’avantage premier du cloud, c’est d’être visible de partout, très vite et de proposer des services tout le temps et aussi quelque part de prendre pied dans le monde de demain.

Les startups sont les premières sociétés à avoir franchit le pas, avec des nouvelles façons de construire du logiciel, avec des nouveaux modèles de fonctionnement (Lean Startup, Produit Minimum Vitale, A/B testing, etc.). Elles défrichent, les enjeux sont plus restreints que dans une entreprise et les places à prendre sont importantes. Elles utilisent des langages de programmation en avance, dont les plâtres ne sont pas encore (toujours) secs.

Les autres entreprises suivent de près le mouvement et cherchent à se positionner, pour diverses raisons. Ils faut savoir que les grandes entreprises et les utilisateurs sont frileux sur les usages, par contre, ils demandent de plus en plus de la disponibilité partout et tout le temps. C’est le petit plus qui fait la différence. Les applications client serveur sont de plus en plus délaissées au profit des solutions tout en un sur le web et aussi au profit du service ou des services. Nous sommes dans une course frénétique, dans le sens où il faut faire vite, malgré cela, il ne faut pas oublier les bases.

Comment mesurer la qualité logicielle sur le cloud ?

La qualité logicielle sur le cloud est très liée à la qualité logicielle en générale, aux bonnes pratiques, à la connaissance des infrastructures, et aussi à la documentation. Le cloud apporte une nouvelle dimension lors de la réalisation d’un logiciel, plus d’utilisateurs potentiels, plus de puissance, plus de données, mais aussi des temps de latence, une infrastructure plus complexe. On mesure la vitesse de traitement, la capacité de traitement et aussi l’efficacité. Le cloud renforce le besoin de mesurer l’efficacité. La bonne recette sur le Cloud est une opération complexe, il faut savoir doser les ingrédients, trouver les bons mélanges, tester, puis généraliser .

Les utilisateurs finaux sont de plus en plus exigeants, et sensibles.  On parle beaucoup de ressenti, au niveau des impressions, de la cohérence et au niveau de la stabilité. L’utilisateur est capable de percevoir un ralentissement dans le fonctionnement quotidien d’un service.

Je vais faire un parallèle avec le monde de la téléphonie, de la mobilité. Il y a énormément de similitude avec le monde du cloud. Dans le monde de la téléphonie, il faut aller vite pour gagner des nouvelles parts de marché.  Pour construire du logiciel mobile, il faut  respecter des normes et des procédures pour construire un logiciel viable. Le lancement d’un produit mobile est moins important que la conception, le design, et l’intuitivité. Il faut découvrir le besoin réel des utilisateurs, vérifier, mesurer et encore tester. Les utilisateurs sont de plus en plus sensibles à l’expérience (user experience – UX).

Je vais ajouter un dernier point sur la mesure de la qualité. Les fournisseurs de cloud computing fournissent de plus en plus d’outil pour mesurer la consommation après coup, pour avoir les traces du problèmes. Ces outils sont très bien car ils permettent de faire un diagnostic, et de corriger les problèmes. On découvre le problème quand la forêt brûle. Nous ne sommes plus dans le préventif, mais dans le curatif, donc cela coûte plus chère.

La non qualité logicielle sur le cloud est un danger important pour votre entreprise, pour son image, elle est visible, elle consomme des ressources CPU, de la mémoire (facture), elle fragilise la sécurité et la confiance des utilisateurs. Je ne vais pas plus loin, je vous laisse imaginer. Pour remédier à tout ces soucis, il y a des méthodes simples, de bon sens.

Rappel sur le cloud computing

Je tiens a poser des notions sur le cloud computing. Une entreprise loue à l’usage des ressources réseaux, des ressources machines, de l’hébergement chez une entreprise de cloud computing. La location commence au niveau de l’infrastructure est peu aller jusqu’à la fourniture de service.  La facturation est réalisée en fonction de l’usage, en fonction d’une ou de plusieurs unités d’énergie ( CPU, mémoire, disque, consommation électrique). L’entreprise utilisatrice est responsable de l’usage des ressources et de la sécurité logicielle. Le fournisseur est responsable du bon fonctionnement des machines, du réseau, de la sécurité technique, et de l’intégrité des données (*).

Les utilisateurs finaux sont sensibles aux fonctionnalités du logiciel, mais pas seulement. La qualité logicielle intervient à plusieurs niveaux, au niveau du fonctionnement du logiciel, au niveau de la consommation des ressources et aussi au niveau de la sécurité logicielle.

Le premier constat

Je vais faire un premier constat. C’est un élément très révélateur, c’est la qualité de la construction du logiciel hors cloud, de manière objective, factuelle ? Votre entreprise, votre service est il capable de fournir du logiciel avec très peu de défaut ? Votre entreprise dispose t’elle d’une usine à logiciel, d’une plateforme d’intégration continue (PIC), d’une plateforme de test et de recette ? Est elle au courant des bonnes pratiques logicielles , hardwares et applicatives ?, des bonnes pratiques en terme de sécurité ?. Avez vous mis en place un processus d’anticipation des besoins, de dimensionnement des applications, des ressources, un planning des ressources à venir et consommées (capacité planning) ?

C’est un petit ensemble de question qui me semble vital de nos jours et plus encore sur le Cloud. Je ne cherche pas a vous faire peur, une anomalie, un défaut prend beaucoup plus d’importance sur le cloud.

Les entreprises de cloud computing proposent de plus en plus de service autour de la construction du logiciel, en proposant des foundry, des usines à logiciel. Il faut malgré tout mettre en oeuvre la qualité, mettre en oeuvre des processus pour tester, mesurer, comparer. C’est un point essentiel.

Je vais raconter une petite anecdote.

J’ai travaillé sur un projet important. Ma mission était la création des tests utilisateur. J’ai réalisé des tests utilisateurs simples avec JMeter. J’ai fait tomber un serveur d’application avec 8 utilisateurs en simultanées.  La machine n’était pas à l’identique de la production, je suis d’accord.

Ce test est révélateur de la qualité d’un projet.

Combien de fois avez vous tester réellement la qualité, la robustesse d’une application ? C’est une question anodine, est pourtant. On préfère dire que c’est la faute de la machine, du réseau, des données, de l’infogérant, d’internet, et jamais de l’humain. Je suis parfois sidérer de découvrir des clients qui sont pieds et points liés avec des ESN (entreprise de service numérique), qui ne maitrisent pas la qualité logicielle, qui livrent en production des logiciels sans effectuer le moindre test et ainsi de suite.

La qualité logicielle sur le cloud est très liée à la qualité des flux , à la qualité des modèles (patrons) de construction (patterns) mise en place, à la logique mise en place pour répondre à un grand nombre de visiteur, d’utilisateur, à l’économie des ressources et à l’efficacité.

Je parle beaucoup de flux, c’est un peu un déformation, dans le sens qu’une application web ou cloud de nos jours, n’est plus une application simple, elle communique avec diverses bases de données, avec diverses briques du système d’information (flux, webservice) et avec les utilisateurs (JSON, XML, etc ) et ainsi de suite.

Lors de l’augmentation du volume, on voit trop souvent apparaître les problèmes. Pourquoi ne pas tester une application pour aller à 200 KM heure, sur une nationale ? Il existe de nombreux outils pour s’assurer de la qualité, et pourtant. Je peux parier qu’il y aura de plus en plus de déception avec le cloud.

J’entends souvent un autre son, la qualité coûte chère. C’est un faux discours, un parapluie, combien coûte la non qualité ? La mise en place initiale est un peu plus chère, il faut mettre en place les bonnes pratiques, à l’usage, le projet amorti le sur-coût. Les équipes projet deviennent plus compétentes et apte à construire d’autres projets, des nouvelles versions.

Je vous propose d’aborder lors de mon prochain article, des modèles de constructions, des modèles de flux, des produits indispensable pour tester et pour créer de la qualité sur le cloud.

A propos Duarte TERENCIO

Chef de projet et Architecte J2EE - Portail d'entreprise - Cloud computing Vous trouverez plus d'information sur la page "Me contacter"
Cet article, publié dans Cloud computing, est tagué . Ajoutez ce permalien à vos favoris.

Un commentaire pour La qualité logicielle dans le cloud (partie 1).

  1. Le proverbe qui me vient en tête à la lecture de cet article, c’est qu’il ne faut pas confondre vitesse et précipitation. J’ai l’impression qu’il est tellement devenu facile de mettre en production sur le « cloud » qu’on pense toujours que s’il y a un bug, on pourra de nouveau corriger et redéployer. Mais outre le fait que cela donne une très mauvaise vision de la qualité pour les client, cela donne aussi la mauvaise habitude de privilégier la vitesse de livraison sur la qualité.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s