Application cloud
Une application cloud, ou « appli cloud », est un programme logiciel dans lequel fonctionnent ensemble des composants locaux ou installés en cloud. Ce modèle s'appuie sur des serveurs distants pour accéder à une logique de traitement via un navigateur Web et une connexion Internet continue.
Les serveurs d'applications cloud sont généralement installés dans un datacenter distant exploité par un fournisseur d'infrastructure de services cloud. Les tâches d'une application cloud vont de la messagerie au partage et au stockage de fichiers en passant par la saisie de commandes, la gestion des stocks, le traitement de texte, la gestion des relations clientèle (CRM, Customer Relationship Management), la collecte de données, ou encore certaines fonctions de comptabilité financière.
Avantages des applications cloud
Réponse rapide aux besoins métier. Les applications cloud peuvent être mises à jour, testées et déployées rapidement. Elles apportent ainsi à l'entreprise une certaine agilité et des délais de commercialisation écourtés. Cette rapidité peut induire des changements culturels en termes d'exploitation métier.
Exploitation simplifiée. La gestion de l'infrastructure peut s'externaliser auprès de fournisseurs cloud tiers.
Evolutivité instantanée. La capacité disponible est ajustable à mesure que la demande augmente ou diminue.
Utilisation d'API. Une interface de programmation d'applications (API, Application Programming Interface) donne accès à des services de stockage et des sources de données tiers. Lorsqu'il s'agit de transférer les données à des applications ou de gérer des services d'arrière-plan dédiés au traitement ou à des calculs analytiques – calculs dont les résultats seront retournés à l'application cloud – le recours à des API contribue à ce que l'application cloud conserve une taille réduite. Des API approuvées imposent une cohérence passive qui permet d'accélérer le développement ou de déboucher sur des résultats prévisibles.
Adoption progressive. Le remaniement par étapes d'applications héritées présentes sur site au profit d'une architecture cloud permet une mise en œuvre progressive des composants.
Réduction des coûts. La taille et l'échelle des datacenters exploités par les fournisseurs de services et d'infrastructure cloud dominants, conjuguées à la concurrence entre lesdits fournisseurs, ont conduit à une baisse des tarifs. Ainsi, l'exploitation et la maintenance d'applications cloud peuvent s'avérer moins coûteuses que celles d'installations équivalentes sur site.
Partage et sécurité des données améliorés. Les données stockées dans le cadre de services cloud sont instantanément accessibles par les utilisateurs autorisés. Du fait de l'échelle massive de leur activité, les fournisseurs cloud peuvent recruter des experts en sécurité de classe mondiale et mettre en œuvre des mesures de sécurité d'infrastructure dont seules les grandes entreprises peuvent généralement bénéficier. Les données centralisées administrées par un personnel d'exploitation informatique sont plus faciles à sauvegarder selon un planning régulier et à restaurer en cas de reprise après sinistre.
Fonctionnement des applications cloud
Le stockage des données et l'exécution des cycles machine s'effectuent dans un datacenter distant généralement exploité par une entreprise tierce. Une structure d'arrière-plan garantit la disponibilité, la sécurité et l'intégration. Elle autorise en outre la prise en charge de différentes méthodes d'accès.
Les applications cloud offrent une réactivité accélérée et ne sont pas contraintes de résider en permanence sur le dispositif local. Elles peuvent fonctionner hors ligne, mais peuvent être mises à jour en ligne.
Si elles demeurent sous contrôle constant, les applications cloud ne consomment pas pour autant en permanence l'espace de stockage d'un ordinateur ou d'un dispositif de communication. En supposant qu'une connexion Internet relativement rapide soit disponible, une application correctement codée offrira toute l'interactivité d'une application de bureautique, ainsi que la portabilité d'une application Web.
Applications cloud et applications Web
Avec les progrès technologiques de l'informatique à distance, les frontières entre applications Web et applications cloud sont moins tranchées. Le terme application cloud bénéficie désormais d'un certain cachet, conduisant certains fournisseurs d'applications à désigner sous ce nom leurs produits présentent un quelconque aspect en ligne.
Les applications cloud et Web accèdent à des données placées sur une ressource de stockage distante. Les deux font appel à une puissance de traitement côté serveur qui peut être installée sur site ou dans un datacenter distant.
La différence essentielle entre applications Web et cloud réside dans l'architecture. Pour fonctionner, une application Web, ou fondée sur le Web, doit disposer d'une connexion Internet continue. A l'inverse, une application cloud, ou fondée sur le cloud, exécute des tâches de traitement sur un ordinateur ou un poste de travail local. Ici, la connexion Internet sert essentiellement au téléchargement montant et descendant des données.
Une application Web ne fonctionne plus dès lors que le serveur distant n'est plus disponible. Dans le cas d'une application cloud, si le serveur distant n'est plus disponible, le logiciel installé sur l'appareil utilisateur local continue de fonctionner. En revanche, il ne peut plus télécharger de données tant que le service n'est pas restauré côté serveur distant.
Deux outils de productivité répandus illustrent bien la différence entre applications Web et cloud : la messagerie et le traitement de texte. Par exemple, Gmail est une application Web qui nécessite uniquement une connexion Internet et un navigateur. Le navigateur constitue le biais par lequel les messages peuvent être ouverts, rédigés et classés au moyen de fonctions de recherche et de tri. Toute la logique de traitement intervient sur les serveurs du fournisseur (Google dans cet exemple) via le protocole Internet HTTP ou HTTPS.
Une application CRM à laquelle des utilisateurs ont accès via un navigateur dans le cadre d'un contrat payant de type SaaS (Software as a Service) est une application Web. Un service bancaire et des mots-croisés quotidiens en ligne sont également considérés comme des applications Web ; ces activités n'installent aucun logiciel en local.
La version de Word intégrée à Microsoft Office 365 constitue un exemple d'application de traitement de texte cloud : elle est installée sur un poste de travail. L'application remplit des tâches en local sur une machine, sans besoin de connexion Internet. L'aspect cloud entre en jeu lorsque l'utilisateur enregistre son travail sur un serveur cloud Office 365.
Applications cloud et applications de bureau
Les applications de bureau sont dépendantes des plates-formes et nécessitent une version distincte pour chaque système d'exploitation. Le besoin de versions multiples accroît le coût et la durée de développement, et complique les tests, le contrôle des versions et l'assistance. A l'inverse, les applications cloud sont accessibles via des dispositifs et des systèmes d'exploitation variés, et sont indépendantes des plates-formes ; autant de caractéristiques qui induisent des économies considérables.
Dans le cas d'une application de bureau, chaque dispositif requiert sa propre installation. Sachant qu'il est impossible d'appliquer une mise à jour à chaque nouvelle version disponible, il devient difficile de faire en sorte que tous les utilisateurs exécutent la même version. Et la nécessité d'une prise en charge simultanée de versions multiples peut devenir un réel fardeau pour le service d'assistance technique. Les applications cloud ne rencontrent aucun problème de contrôle de version. En effet, côté utilisateur, seule la version cloud est accessible et exécutable.
Test des applications cloud
Tester les applications cloud avant déploiement est essentiel à la sécurité et à un fonctionnement optimal.
Une application cloud doit prendre en compte une communication Internet avec de nombreux clouds, ainsi que la possibilité éventuelle d'accéder simultanément à des données auprès de multiples sources. Le recours à des appels d'API permet à l'application cloud de s'appuyer sur d'autres services cloud pour effectuer un traitement spécialisé. Dans un écosystème impliquant des fournisseurs, sources et clouds multiples, des tests automatisés s'avéreront appréciables.
La maturation des technologies de conteneurs et de microservices a fait naître des couches additionnelles de test, ainsi que des points de communication et de défaillance potentiels. Si les conteneurs peuvent simplifier le développement d'applications et apporter une portabilité, la prolifération de conteneurs induit, pour sa part, une complexité supplémentaire. Ils doivent être gérés, catalogués et sécurisés, et chacun d'eux testé selon ses propres critères de performance, de sécurité et de précision. De manière similaire, à mesure que les applications monolithiques héritées sont refondues au sein de nombreux microservices monotâches appelés à interagir de manière transparente et efficace, les processus et scripts de test deviennent parallèlement plus complexes et plus chronophages.
Tester la sécurité des applications cloud inclut la réalisation de tests portant sur la pénétration et les données. Doivent également être examinés les vecteurs d'attaque potentiels, comme les menaces persistantes avancées (APT, Advanced Persistent Threats), les attaques par déni de service (DDoS, Dstributed Denial of Services), l'hameçonnage et l'ingénierie sociale.
Les applications cloud doivent en outre être testées en vue de garantir que la logique de traitement est exempte d'erreurs. La conformité à des règles établies par un fournisseur tiers particulier peut requérir certaines procédures de test spécifiques.