Ce que les architectes doivent connaître des applications Cloud

Les applications spécifiques au Cloud sont très génératrices de revenus pour les entreprises. Voici quelques conseils et bonnes pratiques pour mieux comprendre ces applications qui tournent exclusivement dans les nuages.

Depuis que le Cloud Computing est apparu, son approche par les entreprises a été d’aborder en premier le problème de migration d’applications. Avec un sous-entendu évident : il n’existe aucune différence fonctionnelle entre le cloud et le datacenter – seulement une différence en matière de coûts. Nous savons désormais que ce n’est pas vrai. Les plus importantes sources de revenus Cloud pour les fournisseurs sont liées à des applications Cloud développées spécifiquement pour ce type de technologie. Les architectes doivent ainsi maîtriser ce que cela comprend. Cela commence par évaluer l’impact des tendances du Cloud sur les modèles de services dématérialisés et interpréter comment les fonctions cloud sont créatrices de nouvelles applications. Ensuite, il conviendra d’apprendre à concevoir pour le cloud et combiner le design d’applications aux fonctions cloud avancées.

Pour les architectes logiciels, l’un des points les plus importants à retenir à propos des tendances du cloud, est que le Iaas n’est pas suffisant pour que le Cloud atteigne son plein potentiel. Héberger  simplement des services dans le cloud qui sont sous-utilisés ne crée toutefois pas de valeur suffisante pour les utilisateurs, et pas de profit pour les fournisseurs. Amazon, actuellement n°1 du secteur dans le monde, va déjà au-delà du Iaas, ajoutant des services Web spécifiques, comme le caching, l’accélération HTML, la gestion d’identités ou celle des flux de données. Ces fonctions sont des éléments qui, selon Amazon, devraient apporter la meilleure combinaison valeur pour l’utilisateur / profit pour le vendeur. Les architectes devraient ainsi considérer cette approche pour leurs propres applications.

Lorsqu’ils évaluent quelles fonctions doivent être disponibles dans le Cloud, la première étape pour les architectes devrait être celle d’auditer les principaux fournisseurs de Cloud pour découvrir leurs offres. En particulier, il convient de s’arrêter sur les tendances que les offres tentent d’illustrer. Amazon cible les services cloud en volume d’abord, alors que ces concurrents tentent de contourner le géant en trouvant de nouvelles niches, à valeur ajoutée. Lorsque les entreprises trouvent la bonne orientation, elles peuvent identifier les applications cloud qui exploiteront au mieux les tendances.

Les outils devraient également favoriser l’évolution des services Cloud chez les fournisseurs et les applications spécifiquement cloud conçues sans services spécialisés. Avec le cloud, tout est affaire de répartition – des utilisateurs, des ressources, des données et des traitements. Il implique que les applications et les services les plus utiles soient distribués de façon efficace.

Le support de cette répartition se divise en trois parties : le support d’une base utilisateurs très variée et changeante, la collecte d’informations issues d’un grand nombre de ressources très disparates, et le traitement d’applications qui peuvent soit être peu exigeantes soit qui nécessitent d’importants besoins en puissance. Le cloud peut offrir chacune de ces composantes et la plupart des offres Cloud actuelles ou émergentes peut se ranger dans l’une de ces catégories.

Le point  commun entre tous ces modèles de distribution est le rôle clé que joue le workflow. Les architectes tendent aujourd’hui à concevoir des applications pour l’agilité et les fonctionnalités. Les applications exclusivement cloud sont conçues autour des workflows et chacun de ses trois modèles de distribution dispose de ses inconvénient et avantages en termes de gestion des workflows.

En termes de répartition des utilisateurs, l’architecte cloud devrait considérer le support de type Web pour les utilisateurs individuels. Imaginez un front end comme un ensemble élastique d’éléments (des serveurs Web et quelques serveurs d’applications) déployés au bon moment et au bon endroit, quelle que soit le volume. Ce modèle devrait être suivi pour toutes applications.

La collecte des données Cloud est souvent liée au support de l’utilisateur car l’utilisateur peut être à la fois la source de l’information et la cible. Lorsque cela est vrai, le même modèle pour les applications peut s’appliquer. Lorsque ce n’est pas vrai, on retrouve le modèle de l’Internet des objets. Dans ce cas, il s’agit de collecter l’information depuis des sources distribuées et l’agréger en deux flux : un conçu pour être utilisé en temps réel pour le contrôle des processus, l’autre conçu pour être agrégé et analyé. Gardez à l’esprit ces principes et ces caractéristiques lorsque vous développez une application cloud sur la collecte des données.

La plupart des architectes pensent qu’il est facile d’adapter un modèle cloud lorsqu’ils conceptualisent un support de l’utilisateur ou la collecte de données. Il est plus difficile de répartir les processus car leur élasticité est une réponse à nombre de workloads au sein d’un modèle où  les fonctions sont fixes. C’est à l’architecture de rendre le tout fonctionnel.

L’étape critique dans le processus de création d’une application qui doit être distribuée est la conception des composants. D’une façon générale, il est difficile de gérer le scaling de composants lors des mises à jour de bases de données. Les mises à jour de bases de données et les techniques de protection de l’intégrité sont un point de congestion difficile à soulager.

L’étape finale pour les architectes est d’insérer les services web des fournisseurs cloud dans les trois modèles de distribution mentionnés plus haut. Le cache de contenu et l’accélération HTML, par exemple, sont tous deux utiles pour une population plurielle d’utilisateurs. La gestion de flux est un élément critique de l’Internet des objets ou de la collecte distribuée de données.

Les workflows cloud peuvent devenir particulièrement inefficaces à cause de la surchauffe du réseau liée à l’intégration de composants. Il est intelligent de développer des applications  pilotes qui testent les workflows avant même de finaliser la logique. L’architecte peut ainsi adapter l’application aux performances de son fournisseur de cloud. Cela devrait éviter que ses applications finissent par tomber en panne.

 

Tom Nolle , président de CIMI Corporation

Pour approfondir sur Outils de développement