Fermer

avril 17, 2023

Passer au cloud natif —

Passer au cloud natif —


Cet article est la partie 1 de Ampère Informatique Accélérer le Cloud série.

Traditionnellement, le déploiement d’une application Web signifiait exécuter de grandes applications monolithiques sur des serveurs x86 dans le centre de données d’une entreprise. Le déplacement des applications vers le cloud élimine le besoin de surapprovisionner le centre de données puisque les ressources du cloud peuvent être allouées en fonction des demandes en temps réel. Dans le même temps, le passage au cloud a été synonyme de passage aux applications à composants (ou microservices). Cette approche permet aux applications d’évoluer facilement jusqu’à potentiellement 100 000 ou des millions d’utilisateurs.

En passant à une approche cloud native, les applications peuvent s’exécuter entièrement dans le cloud et exploiter pleinement les capacités uniques du cloud. Par exemple, avec une architecture distribuée, les développeurs peuvent évoluer de manière transparente en créant davantage d’instances d’un composant d’application plutôt qu’en exécutant une application de plus en plus grande, un peu comme la façon dont un autre serveur d’applications peut être ajouté sans ajouter une autre base de données. De nombreuses grandes entreprises (c’est-à-dire Netflix, Wikipédia et autres) ont porté l’architecture distribuée au niveau supérieur en divisant les applications en microservices individuels. Cela simplifie la conception, le déploiement et l’équilibrage de charge à grande échelle. Voir The Phoenix Project pour plus de détails sur la décomposition des applications monolithiques et The Twelve Factor App pour les meilleures pratiques lors du développement d’applications cloud natives.

Inefficacités de l’hyperthreading

Les serveurs x86 traditionnels sont construits sur des architectures à usage général qui ont été développées principalement pour les plates-formes informatiques personnelles où les utilisateurs devaient pouvoir exécuter un large éventail de différents types d’applications de bureau en même temps sur un seul processeur. En raison de cette flexibilité, l’architecture x86 implémente des capacités et des capacités avancées utiles pour les applications de bureau, mais dont de nombreuses applications cloud n’ont pas besoin. Cependant, les entreprises exécutant des applications sur un cloud basé sur x86 doivent toujours payer pour ces fonctionnalités même lorsqu’elles ne les utilisent pas.

Pour améliorer l’utilisation, les processeurs x86 utilisent l’hyperthreading, permettant à un cœur d’exécuter deux threads. Bien que l’hyperthreading permette d’utiliser davantage la capacité d’un cœur, il permet également à un thread d’avoir un impact potentiel sur les performances de l’autre lorsque les ressources du cœur sont surchargées. Plus précisément, chaque fois que ces deux threads se disputent les mêmes ressources, cela peut introduire une latence importante et imprévisible dans les opérations. Il est très difficile d’optimiser une application lorsque vous ne savez pas — et ne pouvez pas contrôler — avec quelle application elle va partager un noyau. L’hyperthreading peut être considéré comme une tentative de payer les factures et de regarder un match de sport en même temps. Les factures prennent plus de temps à être remplies et vous n’appréciez pas vraiment le jeu. Il est préférable de séparer et d’isoler les tâches en remplissant d’abord les factures, puis en se concentrant sur le jeu, ou en répartissant les tâches entre deux personnes, dont l’une n’est pas fan de football.

L’hyperthreading étend également la surface d’attaque de sécurité de l’application, car l’application dans l’autre thread peut être un logiciel malveillant tentant une attaque par canal latéral. Garder les applications dans différents threads isolés les uns des autres introduit une surcharge et une latence supplémentaire au niveau du processeur.

Optimisation cloud native

Pour une plus grande efficacité et une plus grande facilité de conception, les développeurs ont besoin de ressources cloud conçues pour traiter efficacement leurs données spécifiques, et non les données des autres. Pour y parvenir, une plateforme cloud native efficace accélère les types d’opérations typiques des applications cloud natives. Pour augmenter les performances globales, au lieu de créer des cœurs plus gros qui nécessitent de l’hyperthreading pour exécuter des applications de bureau de plus en plus complexes, les processeurs natifs du cloud fournissent davantage de cœurs conçus pour optimiser l’exécution des microservices. Cela conduit à une latence plus cohérente et déterministe, permet une mise à l’échelle transparente et évite de nombreux problèmes de sécurité qui surviennent avec l’hyperthreading, car les applications sont naturellement isolées lorsqu’elles s’exécutent sur leur propre cœur.

Pour accélérer les applications cloud natives, Ampere a développé les processeurs cloud natifs Altra et Altra Max 64 bits. Offrant une densité sans précédent avec jusqu’à 128 cœurs sur un seul circuit intégré, un seul châssis 1U avec deux sockets peut héberger jusqu’à 256 cœurs dans un seul rack.

Les cœurs Ampere Altra et Ampere Altra Max sont conçus autour de l’Arm Instruction Set Architecture (ISA). Alors que l’architecture x86 a été initialement conçue pour les ordinateurs de bureau à usage général, Arm est issu d’une tradition d’applications embarquées où le comportement déterministe et l’efficacité énergétique sont davantage au centre des préoccupations. À partir de cette base, les processeurs Ampere ont été conçus spécifiquement pour les applications où la puissance et la densité de cœur sont des considérations de conception importantes. Dans l’ensemble, les processeurs Ampere fournissent une base extrêmement efficace pour de nombreuses applications cloud natives, ce qui se traduit par des performances élevées avec une réactivité prévisible et cohérente combinée à une efficacité énergétique plus élevée.

Pour les développeurs, le fait que les processeurs Ampere implémentent l’Arm ISA signifie qu’il existe déjà un vaste écosystème de logiciels et d’outils disponibles pour le développement. Dans la partie 2 de cette série, nous expliquerons comment les développeurs peuvent migrer en toute transparence leurs applications existantes vers les plateformes cloud natives Ampere proposées par les principaux CSP pour commencer immédiatement à accélérer leurs opérations cloud.

L’avantage du cloud natif

L’un des principaux avantages de l’exécution sur une plate-forme cloud native est une latence plus faible, ce qui permet d’obtenir des performances plus cohérentes et prévisibles. Par exemple, une approche de microservices est fondamentalement différente des applications cloud monolithiques actuelles. Il n’est donc pas surprenant que l’optimisation de la qualité de service et de l’efficacité d’utilisation nécessite également une approche fondamentalement différente.

Les microservices décomposent les grandes tâches en composants plus petits. L’avantage est que, comme les microservices peuvent se spécialiser, ils peuvent offrir une plus grande efficacité, comme une utilisation plus élevée du cache entre les opérations par rapport à une application monolithique plus généralisée essayant d’accomplir toutes les tâches nécessaires. Cependant, même si les microservices utilisent généralement moins de ressources de calcul par composant, les exigences de latence à chaque niveau sont beaucoup plus strictes que pour une application cloud classique. En d’autres termes, chaque microservice ne reçoit qu’une petite part du budget de latence disponible pour l’application complète.

Du point de vue de l’optimisation, une latence prévisible et cohérente est essentielle car lorsque la réactivité de chaque microservice peut varier autant que sur une architecture x86 hyperthreadée, la latence dans le pire des cas est la somme du pire des cas pour chaque microservice combiné. La bonne nouvelle est que cela signifie également que même de petites améliorations de la latence des microservices peuvent entraîner une amélioration significative lorsqu’elles sont mises en œuvre sur plusieurs microservices.

La figure 1 illustre les avantages en termes de performances de l’exécution d’applications cloud typiques sur une plate-forme cloud native telle qu’Ampere Altra Max par rapport à Intel IceLake et AMD Milan. Ampere Altra Max offre non seulement des performances plus élevées, mais également une efficacité performance/watt encore plus élevée. La figure montre également comment Ampere Altra Max a une latence supérieure – 13% d’Intel IceLake – pour fournir les performances constantes dont les applications cloud natives ont besoin.

Performances de leadership dans le cloud

Figure 1 : Une plate-forme cloud native telle qu’Ampere Altra Max offre des performances, une efficacité énergétique et une latence supérieures par rapport à Intel IceLake et AMD Milan.

Durabilité

Même si c’est le CSP qui est responsable de la gestion de la consommation d’énergie dans leur centre de données, de nombreux développeurs sont conscients que le public et les parties prenantes de l’entreprise s’intéressent de plus en plus à la manière dont les entreprises abordent la durabilité. En 2022, on estime que les centres de données cloud ont représenté 80 % de la consommation électrique totale des centres de données1. Sur la base des chiffres de 2019, la consommation électrique des centres de données devrait doubler d’ici 2030.

Il est clair que la durabilité est essentielle à la croissance à long terme du cloud et que l’industrie du cloud doit commencer à adopter une technologie plus économe en énergie. La réduction de la consommation d’énergie entraînera également des économies d’exploitation. Dans tous les cas, les entreprises qui montrent la voie en réduisant leur empreinte carbone aujourd’hui seront préparées lorsque de telles mesures deviendront obligatoires.

Le Cloud Native Compute est fondamental pour la durabilité

Tableau 1 : Avantages du traitement cloud natif avec les plates-formes cloud natives Ampere par rapport aux clouds x86 hérités.

Les technologies cloud natives comme celles d’Ampere permettent aux CSP de continuer à augmenter la densité de calcul dans le datacenter (voir tableau 1). Dans le même temps, les plates-formes cloud natives offrent un avantage convaincant en termes de performances/prix/puissance, permettant aux développeurs de réduire les coûts d’exploitation quotidiens tout en accélérant les performances.

Dans la partie 2 de cette série, nous examinerons en détail ce qu’il faut pour redéployer des applications existantes sur une plate-forme cloud native et accélérer vos opérations.

Vérifiez Centre de développement informatique Ampère pour un contenu plus pertinent et les dernières nouvelles.






Source link