Maison >Périphériques technologiques >Industrie informatique >Accélérer le cloud: les étapes finales

Accélérer le cloud: les étapes finales

Jennifer Aniston
Jennifer Anistonoriginal
2025-02-08 10:32:09882parcourir

Accelerating the Cloud: The Final Steps

(Cet article est la cinquième partie de la série «Accélération du cloud computing» d'Ampère Computing. Vous pouvez lire tous les articles sur SitePoint.)

La dernière étape du développement d'applications natives dans le cloud est de décider par où commencer. En tant que dernier numéro de cette série, nous explorerons comment développer une application native du cloud, par où démarrer le processus au sein de votre organisation et les différentes situations que vous pourriez rencontrer dans le processus.

Comme le montrent d'autres parties de cette série, les plates-formes natives Cloud deviennent rapidement une alternative puissante à l'informatique basée sur x86. Comme nous l'avons démontré dans la partie IV, il existe une énorme différence entre le VCPU Ampère complet et le VCPU X86 en termes de performance, de prévisibilité et d'efficacité énergétique.

Comment développer une application native du cloud

La façon naturelle de concevoir, d'implémenter et de déployer des applications distribuées pour les environnements informatiques natifs du cloud est de diviser l'application en composants ou microservices plus petits, chacun responsable d'une tâche spécifique. Dans ces microservices, vous avez généralement plusieurs éléments techniques pour fournir conjointement la fonctionnalité. Par exemple, votre système de gestion des commandes peut contenir un magasin de données privé (qui peut être utilisé pour mettre en mémoire les commandes et les informations des clients) et un responsable de session pour gérer les paniers d'achat des clients, en plus d'un gestionnaire d'API pour activer les services frontaux pour pouvoir interagir avec lui. De plus, il peut être connecté à un service d'inventaire pour déterminer la disponibilité des marchandises, peut-être un module de livraison pour déterminer les dates d'expédition et de livraison et un service de paiement pour percevoir les paiements.

La nature distribuée du cloud computing permet aux applications de mettre à l'échelle des exigences et de maintenir indépendamment les composants d'application d'une manière qui ne peut pas être réalisée par un seul logiciel. Si vous avez beaucoup de trafic vers votre site Web de commerce électronique, vous pouvez étendre le frontal indépendamment du service d'inventaire ou du moteur de paiement, ou ajouter plus de programmes de travailleurs pour gérer la gestion des commandes. L'objectif de conception des applications natifs du cloud est d'éviter que d'autres composants soient affectés par l'isolement des défaillances dans un seul composant, plutôt qu'une seule grande application, où l'une des échecs peut provoquer des défaillances du système global.

De plus, l'approche du cloud-native permet au logiciel de tirer pleinement parti des capacités matérielles disponibles en créant simplement les serveurs nécessaires pour gérer la charge actuelle et l'arrêt des ressources pendant les heures hors puits. Les processeurs indigènes du cloud moderne comme Ampère fournissent un grand nombre de cœurs de processeur rapide et d'interconnexions rapides, permettant aux architectes logiciels d'étendre efficacement leurs applications.

Dans les deuxième et troisième parties de cette série, nous montrons que la migration des applications vers des plates-formes natives de cloud basées sur ARM est relativement simple. Dans cet article, nous décrirons les étapes qui doivent généralement être prises pour réussir cette migration.

par où démarrer au sein de votre organisation

La première étape de la migration vers le processeur ARM64 du cloud-natif d'Ampère consiste à sélectionner la bonne application. Certaines applications qui sont étroitement couplées à d'autres architectures de CPU peuvent être plus difficiles à migrer, car elles ont des dépendances de code source sur des ensembles d'instructions spécifiques, ou en raison de performances ou de limitations fonctionnelles associées aux ensembles d'instructions. Cependant, les processeurs Ampère sont souvent bien conçus pour de nombreuses applications cloud, notamment:

  • Applications microservices, services sans état: si votre application est décomposée en composants qui peuvent être étendus indépendamment au besoin, le processeur AMPERE est parfait pour cela. L'élément clé de la rupture des applications et de la mise à profit des avantages fournis par le cloud est de séparer les services d'état et sans état. Les composants d'application sans état peuvent être à l'échelle horizontale, offrant une capacité plus élevée au besoin, tout en utilisant des services avec état tels que des bases de données pour stocker des données non transitoires. La mise à l'échelle des services sans état est facile car vous pouvez charger l'équilibrage entre de nombreuses répliques de services, ajoutant plus de cœurs à votre infrastructure de calcul pour faire face à l'augmentation de la demande. Grâce à la conception du processeur unique d'Ampère, vous pouvez exécuter ces cœurs à des charges plus élevées sans affecter la latence des applications, en réduisant le prix / performance global.
  • transcodage audio ou vidéo: la conversion de données d'un codec en une autre (par exemple, dans une application de lecture vidéo ou dans le cadre d'un système de téléphone IP) est intensive en calcul, mais généralement pas une intensité de points flottants et peut être bien étendue à de nombreuses séances en ajoutant plus de programmes de travailleurs. Par conséquent, ce type de charge fonctionne très bien sur la plate-forme AMPERE et peut fournir un avantage de prix / performance supérieur à 30% plus élevé que les autres plates-formes.
  • Inférence AI: Bien que la formation des modèles d'IA puisse bénéficier de la disponibilité de GPU très rapides pour la formation, l'application du modèle aux données n'est pas très intensive au point flottante lorsqu'elle est déployée dans un environnement de production. En fait, les opérations à virgule flottante 16 bits à faible précision peuvent être utilisées pour satisfaire les performances et la qualité du SLA de l'inférence du modèle IA et peuvent bien fonctionner sur un processeur à usage général. De plus, l'inférence de l'IA peut bénéficier de l'ajout de plus de travailleurs et de grains pour répondre aux modifications du volume des transactions. Dans l'ensemble, cela signifie que les plates-formes indigènes du cloud modernes comme Ampère offrira un excellent prix / performance.
  • Base de données en mémoire: Parce que les noyaux Ampère sont conçus pour avoir de grands caches L2 par noyau, ils fonctionnent généralement très bien dans les charges de travail à forte intensité de mémoire telles que les caches d'objet et de requête ainsi que des bases de données en mémoire. Les charges de travail de base de données telles que Redis, Memcached, MongoDB et MySQL peuvent tirer parti de grands caches par noyau pour améliorer les performances. - Intégration continue de construire la ferme : le logiciel de construction peut être très à forte intensité de calcul et parallélisable. L'exécution des builds et des tests d'intégration dans le cadre d'une pratique d'intégration continue et l'utilisation de pratiques de livraison continues pour valider les nouvelles versions qui sont sur le point de pénétrer la production peuvent bénéficier de l'exécution sur des processeurs AMPERE. Dans le cadre de la migration vers l'architecture ARM64, la construction et le test de votre logiciel sur cette architecture sont une condition préalable, et effectuer ce travail sur le matériel ARM64 natif augmentera les performances de la construction et augmentera le débit de l'équipe de développement.

Analyser les dépendances de votre application

Une fois que vous avez sélectionné l'application que vous pensez être adaptée à la migration, votre prochaine étape consiste à déterminer le travail dont vous avez besoin pour mettre à jour la pile de dépendances. La pile de dépendances comprendra le système d'exploitation hôte ou invité, le langage de programmation et l'exécution, et toutes les dépendances d'application que votre service peut avoir.L'ensemble d'instructions ARM64 utilisé dans les processeurs AMPERE n'est devenu plus important que ces dernières années, et de nombreux projets ont travaillé dur pour améliorer les performances d'ARM64 ces dernières années. Par conséquent, un sujet commun dans cette section est que «les versions plus récentes seront meilleures».

  • Système d'exploitation: Comme l'architecture ARM64 a fait d'énormes progrès au cours des dernières années, vous voudrez peut-être exécuter un système d'exploitation mis à jour pour profiter des améliorations des performances. Pour les distributions Linux, toute distribution traditionnelle récente vous fournira un support d'installation binaire ARM64 natif ou une image de base Docker. Si votre application utilise actuellement un système d'exploitation plus ancien, tel que Red Hat Enterprise Linux 6 ou 7, ou Ubuntu 16.04 ou 18.04, vous pouvez envisager de mettre à jour le système d'exploitation de base.
  • Langue Runtime / Compiler: Tous les langages de programmation modernes sont disponibles pour ARM64, mais les dernières versions de langages populaires peuvent inclure des optimisations de performances supplémentaires. Il convient de noter que les dernières versions de Java, GO et .NET ont considérablement amélioré les performances sur ARM64.
  • Dépendances des applications: En plus du système d'exploitation et du langage de programmation, vous devez considérer d'autres dépendances. Cela signifie vérifier les bibliothèques tierces et modules que votre application utilise, vérifiant que chacune de ces bibliothèques est disponible pour ARM64 et emballée pour votre distribution, tout en prenant en compte les dépendances externes telles que les bases de données, les logiciels antivirus selon les besoins et d'autres applications. L'analyse des dépendances devrait inclure plusieurs facteurs, notamment la disponibilité des dépendances ARM64 et tout impact sur les performances qui aurait eu si ces dépendances ont des optimisations spécifiques à la plate-forme. Dans certains cas, vous pouvez migrer lorsque certaines fonctionnalités sont perdues, tandis que dans d'autres, la migration peut nécessiter un travail d'ingénierie pour s'adapter à l'optimisation de l'architecture ARM64.

Créer et tester les logiciels sur ARM64

La disponibilité des ressources informatiques ARM64 sur les fournisseurs de services cloud (CSP) s'est développée récemment et se développe toujours. Comme vous pouvez le voir sur où essayer et où acheter des pages sur le site Web de l'informatique Ampère, la disponibilité du matériel ARM64 n'est pas un problème, que ce soit dans votre centre de données ou sur une plate-forme cloud.

Une fois que vous avez accès à une instance ampère (métal nu ou machine virtuelle), vous pouvez démarrer la phase de construction et de test de la migration. Comme nous l'avons dit ci-dessus, la plupart des langues modernes prennent désormais entièrement ARM64 en tant que plate-forme de première classe. Pour de nombreux projets, le processus de build est aussi simple que de recompiler votre binaire ou de déployer votre code Java dans un JVM natif ARM64.

Cependant, les problèmes du processus de développement logiciel peuvent parfois conduire à une "dette technique" que l'équipe peut avoir à rembourser pendant le processus de migration. Cela peut prendre de nombreuses formes. Par exemple, les développeurs peuvent faire des hypothèses sur la disponibilité de certaines fonctionnalités matérielles ou des comportements spécifiques à l'implémentation qui ne sont pas définis dans la norme. Par exemple, le type de données CHAR peut être défini comme des caractères signés ou non signés en fonction de l'implémentation, et dans Linux sur x86, il est signé (c'est-à-dire qu'il varie de -128 à 127). Cependant, sur ARM64 en utilisant le même compilateur, il n'est pas signé (plage 0 à 255). Par conséquent, le code qui dépend du symbole de type de données char ne fonctionnera correctement.

Cependant, dans l'ensemble, le code conforme aux normes et au code qui ne s'appuient pas sur des fonctionnalités matérielles spécifiques x86 telles que SSE peuvent être facilement construites sur des processeurs AMPERE. Les outils d'intégration les plus continus (outils qui gèrent la construction et les tests automatisés sur les matrices de plate-forme de support), tels que Jenkins, Circleci, Travis, GitHub Actions, etc., support les nœuds de construction ARM64.

Gérer le déploiement des applications en production

Nous pouvons maintenant voir quels changements se produiront à votre gestion de votre infrastructure lors du déploiement de vos applications de cloud-native à la production. La première chose à noter est que vous n'avez pas à déplacer l'ensemble de l'application à la fois - vous pouvez choisir les parties de l'application qui bénéficieront le plus de la migration vers ARM64 et de commencer par ces parties. La plupart des services Kubernetes gérés prennent en charge l'infrastructure hétérogène dans un seul cluster. Instantement, différents CSP ont des noms différents pour les mécanismes de mélange différents types de nœuds de calcul dans un seul cluster Kubernetes, mais tous les principaux CSP prennent désormais en charge cette fonctionnalité. Une fois que vous avez un pool de calcul Ampère dans votre cluster Kubernetes, vous pouvez utiliser "Blot" et "Tolérance" pour définir l'affinité du nœud du conteneur - les obligeant à exécuter sur des nœuds avec arch = arm64.

Si vous avez construit des conteneurs de projet pour l'architecture ARM64, il est très simple de créer un manifeste qui sera un conteneur multi-architecture. Il s'agit essentiellement d'un fichier manifeste contenant un pointeur vers plusieurs images de conteneur, et le conteneur s'exécute lors de la sélection de l'image en fonction de l'architecture hôte.

Les principaux problèmes que les gens rencontrent habituellement pendant la phase de déploiement peuvent à nouveau être classés comme "dette technique". Les scripts de déploiement et d'automatisation peuvent assumer certains noms de chemin spécifiques à la plate-forme ou être codés en dur pour s'appuyer sur des artefacts binaires x86 uniquement. De plus, les chaînes de schéma renvoyées par différentes distributions Linux peuvent varier selon la distribution. Vous pouvez rencontrer x86, x86-64, x86_64, arm64, aarch64. La normalisation de ces différences de plate-forme peut être quelque chose que vous n'avez jamais fait dans le passé, mais il sera très important dans le cadre de la transformation de la plate-forme.

Le dernier composant de la conversion de la plate-forme est le fonctionnement de l'application. Les applications natives dans le cloud comprennent un grand nombre d'échafaudages en production pour s'assurer qu'ils fonctionnent correctement. Il s'agit notamment de la gestion des journaux pour centraliser les événements, une surveillance pour permettre aux administrateurs de vérifier que les choses fonctionnent comme prévu, les alertes pour alerter en cas d'anomalies, d'outils de détection d'intrusion, de pare-feu d'application ou d'autres outils de sécurité pour protéger votre application contre l'agression des intentions malveillantes par la acteur. Ceux-ci prendront un certain temps pour investir pour garantir que la proxy et l'infrastructure appropriés sont activés pour les nœuds d'application, mais comme toutes les principales plateformes de surveillance et de sécurité prennent désormais en charge ARM64 en tant que plate-forme, vous assurant que vous pouvez afficher le travail interne de l'application ne constituera généralement pas un gros problème . En fait, bon nombre des plates-formes de logiciels d'observabilité en tant que service d'observabilité migrent de plus en plus leurs plates-formes d'application vers Ampère et d'autres plates-formes ARM64 pour profiter des économies de coûts que la plate-forme offre.

Améliorez votre résultat final

Le passage aux processeurs natifs du cloud peut être énorme, ce qui fait que les investissements en migration en valent la peine. Avec cette approche, vous pouvez également évaluer et valider les économies opérationnelles que votre organisation peut attendre au fil du temps.

Notez que l'un des plus grands obstacles à l'amélioration des performances est l'inertie, et la tendance des organisations à continuer à faire ce qu'elles ont fait, même si ce n'est plus la manière la plus efficace ou le plus rentable. C'est pourquoi nous vous recommandons de faire le premier pas pour prouver la valeur de la technologie du cloud-natif à votre organisation. De cette façon, vous aurez de réels résultats à partager avec les parties prenantes et leur montrer comment l'informatique native du cloud peut améliorer les performances et la réactivité des applications sans investissement ou risque significatif.

Les processeurs natifs cloud sont apparus. La question n'est pas de savoir s'il faut passer à Cloud Native, mais lorsque vous vous convertissez. Les organisations qui embrassent le futur plus tôt en bénéficieront d'aujourd'hui, ce qui leur donnera un énorme avantage sur les concurrents liés à la tradition.

En savoir plus sur le développement à la vitesse du cloud au Amprere Developer Center, qui contient des ressources pour la conception, la construction et le déploiement d'applications cloud. Lorsque vous êtes prêt à ressentir les avantages de l'informatique native du cloud pour vous-même, demandez à votre CSP leurs options de cloud-natives basées sur la série Ampère Altra et la technologie Ampéreone.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn