Passer au cloud natif : comment développer de meilleures applications cloud | Ordinateur hebdomadaire

De nombreuses applications cloud sont lentes, encombrantes, lourdes ou ne parviennent pas à répondre aux attentes des utilisateurs. Pourtant, les réponses sur la manière de résoudre ce problème existent déjà, si les équipes disposent des ressources nécessaires pour suivre les premiers principes.

Owen Rogers, directeur de recherche cloud chez Uptime Intelligence, affirme que les applications cloud doivent être conçues pour être évolutives en termes de performances et d’efficacité. Malheureusement, de nombreuses entreprises migrent et déplacent leurs applications vers le cloud.

La plupart des applications devront être restructurées à grande échelle, ce qui a des implications financières et temporelles, explique Rogers.

Jon Lucas, co-fondateur et directeur de Hyve Managed Hosting, ajoute qu’une bonne planification et des tests approfondis sont cruciaux. Asseyez-vous et élaborez la spécification et vos exigences, puis construisez-la dans un environnement de développement, explique Lucas.

Des problèmes surviennent souvent lorsque le développement se déroule principalement au niveau des chefs d’équipe, et plus tard, d’autres problèmes surviennent lorsque les utilisateurs utilisent réellement les outils. Il est préférable de retarder un déploiement en direct si nécessaire, jusqu’à ce que la phase de test soit terminée avec toutes les modifications entièrement gérées, plutôt que de simplement suivre votre nez.

Assurez-vous que les applications respectent les exigences des parties prenantes dès le début ainsi que plus tard, lorsqu’elles veulent ou ont besoin d’autre chose, et que tout est approuvé, explique Lucas.

Le co-fondateur et directeur de Hyve, Jake Madders, a constaté les conséquences de ne pas le faire, y compris les clients dont les applications en ligne doivent être corrigées avec des quantités croissantes de matériel, de processus et de mémoire pour prendre en charge les conceptions. Un exemple pourrait être un code difficile à indexer dans une base de données.

Nous essayons de les aider à s’en sortir, mais en réalité, il y a un problème de code fondamental qui aurait dû être résolu, ce qui leur aurait permis d’économiser beaucoup d’argent sur leur hébergement, explique Madders.

Diviser et conquérir

Minimisez le mouvement des données et répartissez le traitement au niveau du navigateur de l’utilisateur plutôt que sur le serveur. Mettez également à l’échelle automatiquement les applications Web, en augmentant la puissance de traitement pour une mise à l’échelle automatique sur plusieurs serveurs uniquement en cas de besoin. Les spécificités du déploiement du kit, ainsi que les exigences en matière de diffusion de contenu, de mise en cache, d’emplacements ou de points de présence multiples lorsque le code de construction peuvent tous provoquer des incompatibilités.

La plupart du temps, il semble que certains clients n’ont tout simplement pas réfléchi à l’ampleur que cela va prendre ou au nombre d’utilisateurs simultanés qu’il y aura. Les clients qui réussissent ont clairement planifié leur projet, au-delà de ce qui fonctionnera bien pendant un ou deux ans, explique Madders.

C’est à ce moment-là que les développeurs expérimentés peuvent montrer leur qualité. Les débutants peuvent être d’excellents codeurs, mais ils ne pensent généralement pas aux choses qui affectent l’ensemble de la pile ou les connexions simultanées, explique Madders.

Grant Caley, technologue en chef pour le Royaume-Uni et l’Irlande chez la société de stockage de données NetApp, affirme que les développeurs ne seront peut-être pas en mesure de créer et de développer de manière optimale des applications qui optimisent la manière dont le logiciel utilise les ressources sous-jacentes.

Ils n’ont pas beaucoup d’options à ce sujet, car ils disposent d’un outil pour utiliser la plate-forme de développement, ce qui peut entraîner des problèmes de performances, explique Caley.

Les DSI doivent comprendre que les développeurs ne sont pas nécessairement capables de créer des applications rapides, surtout sans connaître la pile complète. Plus de temps et de ressources sont nécessaires, notamment pour les tests, reconnaît-il.

Ce n’est pas que les gens soient négligents, ajoute Caley. Nous essayons tous de développer des applications le plus rapidement possible en raison des délais de mise sur le marché, le moment commercial à saisir.

Les outils de développement d’applications, les bibliothèques, les couches de calcul, de stockage, de mise en réseau et de gestion des données sont tous présents tout au long du processus de développement. Il suggère d’essayer d’accélérer le processus CI/CD et de libérer davantage de temps de test, sur un ensemble de données aussi vaste que possible, en particulier avec l’essor de l’intelligence artificielle (IA).

Et si vous pouvez utiliser la couche d’infrastructure sous-jacente pour vérifier instantanément ces ensembles de données et les restaurer instantanément, vous pouvez avoir plus d’ensembles de données, plus de tests exécutés en parallèle, accélérant ainsi le développement.

Avec l’essor des plates-formes avec peu ou pas de code, des équipes moins qualifiées peuvent créer des applications, ce qui peut également causer des problèmes, ajoute Caley.

Restez fidèle à vos principes

Mais Hans de Visser, directeur produit chez Mendix, fournisseur de plateforme de développement d’applications low-code, affirme que ce problème peut souvent être résolu en adhérant davantage aux principes du cloud natif.

Appliquez les principes des objets avec état et des connexions sans état pour vous assurer que cela fonctionne de manière hyperscale, explique de Visser. Vous pouvez diviser votre application en plusieurs micro-services ou composants indépendants, publiables et évolutifs indépendamment.

Les composants robustes et toujours actifs peuvent être évolutifs indépendamment ; d’autres, comme un service de gestion des données de référence, peuvent avoir une charge plus constante, dit-il.

Certains clients mélangent des applications administratives plus traditionnelles avec des ressources dédiées, par exemple en exécutant un algorithme sur un service sans serveur Lambda Amazon Web Services (AWS). Cela peut vous aider à évoluer pour les fonctions qui doivent répondre aux pics de charge. Une fois les calculs effectués, redimensionnez-le à nouveau, ajoute-t-il.

Un troisième élément concerne les meilleures pratiques basées sur l’IA. Dans notre plateforme, nous disposons d’une série de robots assistés par des modèles d’apprentissage automatique, détectant si le développeur adhère fondamentalement aux principes qui garantiraient les performances des applications, explique de Visser. S’ils font des choses qui entraînent une dégradation des performances, nous émettons des avertissements lorsque certains modèles sont appliqués et des recommandations de changement.

Les kits AI/ML (Mendix vient d’en lancer un) peuvent aider les développeurs à créer de meilleures applications, leur fournir des garde-fous et améliorer la productivité. D’autres outils peuvent également aider, en surveillant les performances et l’état des applications et, à l’avenir, la composabilité des applications contribuera à générer encore plus de flexibilité.

L’astuce du low-code est de l’abstraire et de l’automatiser au maximum afin que les personnes moins techniques, n’ayant aucune idée de l’architecture et de la façon de la construire, soient toujours capables de créer des applications assez sophistiquées, explique de Visser.

Markus Nispel, CTO pour l’Europe, le Moyen-Orient et l’Afrique (EMEA) chez Extreme Networks, résume cette exigence en se concentrant sur le développement d’une distribution infinie d’utilisateurs, d’appareils et d’applications ou du moins, c’est ainsi qu’Extreme voit les choses aujourd’hui.

Il convient de garder à l’esprit l’emplacement d’une application cloud par rapport à ceux qui souhaitent utiliser ces applications.

Nispel souligne la nécessité d’optimiser les performances des applications sur les réseaux, gérées via un paradigme basé sur le cloud qui concerne l’ensemble de l’informatique : les applications cloud ne sont que des pièces du puzzle. Au-delà de cela, il s’agit de se concentrer sur la qualité, l’automatisation et la sécurité dès le premier jour.

Le problème est que les applications ne sont pas toujours conçues, développées et déployées en utilisant ces paradigmes. Il arrive souvent que des applications existantes soient simplement transférées vers le cloud et ne soient pas entièrement modernisées, dit-il.

www.actusduweb.com
Suivez Actusduweb sur Google News


Ce site utilise des cookies pour améliorer votre expérience. Nous supposerons que cela vous convient, mais vous pouvez vous désinscrire si vous le souhaitez. J'accepte Lire la suite