Comment garantir l'évolutivité du cloud en 2023

Publié: 2023-01-11

Contenu

  1. Qu'est-ce que l'évolutivité ?
    • Pourquoi devons-nous accorder une attention particulière à l'évolutivité ?
  2. Types de mise à l'échelle
    • Évolutivité verticale - mise à l'échelle
    • Mise à l'échelle horizontale - mise à l'échelle
    • Mise à l'échelle diagonale
  3. Comment assurer une évolutivité maximale
    • Réaliser un équilibrage de charge
    • Passez à l'évolutivité des services Web automatiques
    • Conteneurs de microservices, clusterisation
    • Mettre en œuvre la mise en cache
    • Utiliser les services CDN
  4. Comment gérons-nous les problèmes de mise à l'échelle ?
  5. Conclusion
Contenu

Au fur et à mesure que les volumes de charge courants sur les systèmes informatiques augmentent, ils s'adaptent et deviennent plus complexes en termes d'architecture de base. De nouveaux outils logiciels et une intégration pour l'optimisation des performances sont ajoutés, les capacités des serveurs sont étendues, etc.

Tous ces processus d'optimisation du système sont définis par une seule notion - la mise à l' échelle - l'une des spécialisations clés des experts DevOps. Qu'est-ce que l'évolutivité et, plus important encore, comment l'assurer dans le cas de votre entreprise particulière avec la plupart des capacités d'exploitation concentrées dans le cloud ? Plongeons dans le sujet.

Évolutivité du cloud Source de l'image : Static.bluepiit

Qu'est-ce que l'évolutivité ?

Quelle est la définition ultime de l'évolutivité ? Il s'agit essentiellement d'une capacité à augmenter les performances du système de la manière la plus rationnelle possible. En pratique, cela se fait généralement en additionnant les ressources informatiques, matérielles et/ou logicielles. Le code existant réécrit, cependant, est une solution assez radicale dans la plupart des cas, donc dans 9 cas sur 10, les entreprises s'arrêtent à multiplier le nombre de serveurs ou à augmenter les capacités du système de serveurs existant.

Notez que le besoin de mise à l'échelle n'apparaît pas seulement lorsque les performances globales du système deviennent lentes et insuffisantes. L'architecture existante et opérationnelle peut très bien fonctionner, mais les décalages peuvent encore entraver les processus en raison de la croissance rapide du trafic utilisateur.

Si vous souhaitez vérifier l'efficacité de vos protocoles réseau et des ressources de votre serveur Web, vous pouvez utiliser n'importe quel utilitaire de test de charge disponible (comme siège, par exemple) qui émulera un afflux artificiel d'utilisateurs sur votre serveur avec des tonnes de requêtes. Vous n'aurez qu'à suivre deux paramètres clés : n - définit un nombre total de requêtes et c - indique le nombre de requêtes simultanées.

En conséquence, vous obtenez une lecture RPS (requêtes par seconde) qui indique le nombre de requêtes que votre système serveur est capable de gérer en ce moment. C'est le reflet du nombre maximum d'utilisateurs qui, s'ils essaient d'interagir avec votre serveur tous en même temps, feront probablement planter votre système. Cette routine de test vous montre finalement à quoi vous attendre et à quel point il est important d'établir une architecture sujette à l'évolutivité.

D'un autre côté, réfléchissez-y une seconde. Il sera peut-être plus abordable de personnaliser certaines configurations de serveur et d'optimiser les procédures d'encaissement dans votre cas particulier. De cette façon, vous pouvez reporter en toute sécurité la mise à l'échelle jusqu'à des temps meilleurs.

Pourquoi devons-nous accorder une attention particulière à l'évolutivité ?

Une fois qu'une entreprise commence à se développer, elle doit être aussi flexible et ingénieuse que possible. Les startups doivent être capables de s'adapter rapidement à l'évolution des tendances et des conditions du marché afin d'être populaires et compétitives. Lorsque votre application est évolutive, elle accélère votre croissance, améliore l'expérience utilisateur et touche un public plus large. À la base, l'évolutivité vous permet de mieux gérer votre application et de vous adapter aux nouvelles exigences. Lors de l'élaboration d'une stratégie de croissance pour votre entreprise, la création d'une application évolutive devrait être l'une des premières priorités.

Types de mise à l'échelle

Les types principaux et les plus courants de procédures de mise à l'échelle comprennent :

Évolutivité verticale - mise à l'échelle

Mise à l'échelle verticale Source de l'image : Dzone

La mise à l'échelle verticale se produit lorsque la puissance globale de l'entreprise augmente en augmentant les performances des ressources internes du serveur - processeurs, mémoire, disques et capacités réseau. Le serveur dans sa forme de base reste inchangé.

Mise à l'échelle horizontale - mise à l'échelle

Mise à l'échelle horizontale Source de l'image : Dzone

Il y a un véritable stand qui se déroule sur le terrain - scale-up vs scale-out. Ce qui est mieux?

En particulier, alors que la charge et le trafic numériques augmentent de plus en plus, la mise à l'échelle verticale se heurte tôt ou tard à des limites sous la forme de spécifications techniques des serveurs. C'est là que la mise à l'échelle horizontale entre en jeu. Le sens de base du terme définit que les puissances de calcul sont augmentées en ajoutant des nœuds identiques au-dessus de ceux existants. La mise à l'échelle horizontale est le plus souvent réglée lorsqu'il y a une infrastructure de serveur ajustée en place (cas particulier - centres de données) ainsi que le schéma d'interaction établi entre les serveurs.

Mise à l'échelle diagonale

C'est un terme relativement nouveau que John Allspaw a proposé - un auteur et co-fondateur d'Adaptive Capacity Labs. Ainsi, la mise à l'échelle diagonale combine le meilleur des deux mondes et définit la mise à l'échelle verticale des nœuds mis à l'échelle horizontalement qui sont déjà implémentés dans l'infrastructure de serveur existante.

Comment assurer une évolutivité maximale

Maintenant, voici quelques conseils pratiques pour vous aider à mener à bien une procédure d'évolutivité du cloud computing de la manière la plus appropriée, avec un minimum de dépenses.

Réaliser un équilibrage de charge

L'équilibrage de charge implique un ensemble d'efforts pour répartir les processus du réseau informatique entre plusieurs ressources matérielles-logicielles (lecteurs, processeurs ou serveurs séparés) qui sont concentrées dans un socket ou un cluster. L'objectif principal ici est d'optimiser les dépenses en capacités de calcul, d'augmenter la production du réseau, de réduire les dépenses de temps lors du traitement des requêtes réseau, ainsi que de réduire les chances qu'un certain serveur réponde à DDoS à un moment merveilleux.

De plus, la répartition de la charge entre plusieurs nœuds (au lieu d'exploiter totalement un seul nœud) renforce l'accessibilité des services fournis par votre entreprise. En particulier, avec un nombre excessif de serveurs sous la manche, même si une unité de travail tombe en panne, vous avez un remplacement automatique prêt.

La procédure d'équilibrage est mise en œuvre à l'aide d'un ensemble d'algorithmes et de méthodes correspondant chacun aux couches suivantes du modèle OSI : Réseau, Transport et Application. Dans la pratique, ceux-ci nécessitent l'utilisation de plusieurs serveurs physiques ainsi que d'un logiciel spécialisé similaire au serveur Web Nginx.

Passez à l'évolutivité des services Web automatiques

La mise à l'échelle automatique est une approche particulière de la mise à l'échelle dynamique dans le contexte des services cloud (c'est-à-dire la mise à l'échelle qui implique la personnalisation des puissances de calcul en fonction du volume de charge du réseau). En particulier, les utilisateurs de services qui incluent des procédures d'auto-scaling (dont les plus connus sont Amazon Web Service, Google Cloud Platform et Microsoft Azure) disposent de machines virtuelles supplémentaires si besoin (qui peuvent être automatiquement exclues du cluster ou du conteneur à mesure que le trafic et l'intensité des demandes se stabilisent).

Grâce à une telle approche, les entreprises bénéficient d'une accessibilité améliorée, d'une capacité opérationnelle en cas d'échec, ainsi que d'opportunités ultimes d'économies budgétaires. Avec de tels services, vous utilisez autant de puissance de serveur que nécessaire pour le moment. C'est une option assez gagnante par opposition à la mise à l'échelle physique lorsque vous devez acheter et entretenir du matériel coûteux.

Notez que l'évolutivité automatique du cloud va toujours de pair avec les solutions d'équilibrage de charge.

Conteneurs de microservices, clusterisation

Vous pouvez utiliser des procédures économes en ressources et améliorant les performances qui encapsulent les services dans des conteneurs, puis rassemblent ces conteneurs dans des clusters. La mise en cluster est suivie de la définition de scripts qui soit ajoutent des ressources manquantes (instances) si besoin soit, soit minimisent l'affectation de ressources pour éviter l'excès.

Mettre en œuvre la mise en cache

Lors de la mise à l'échelle horizontale, la mise en cache mémoire simple ne peut pas être implémentée pour plusieurs nœuds à la fois, elle doit donc être optimisée. En particulier, un stockage tel que Memcached ou Redis peut être utilisé pour la distribution combinée des données de cache entre les itérations de l'application. Ces outils fonctionnent selon différents algorithmes afin que les données de mise en cache soient réduites en quantité. Les stockages de cache sont également bien protégés contre les erreurs de réplication et de stockage de données.

En utilisant le stockage en cache, il est crucial d'éviter la situation où différentes itérations d'application demandent simultanément des données non mises en cache. Pour cela, il faut mettre à jour les données de mise en cache en dehors du flux de performances de votre application et les utiliser directement dans l'application.

Ainsi, avec une approche appropriée, la mise en cache peut aider vos systèmes à obtenir une capacité de mise à l'échelle du cloud pour gérer des charges intensives et obtenir un résultat optimal.

Utiliser les services CDN

CDN est un réseau d'ordinateurs physiquement distants qui transfèrent du contenu aux utilisateurs du service. En d'autres termes, il s'agit d'un stockage distribué et d'une utilisation du cache. Habituellement, se tourner vers CDN est plus pertinent lorsqu'un service Web, un site Web ou une application complète cible un public d'utilisateurs répartis sur le territoire de plusieurs pays. La tarification CDN dépend directement des volumes de trafic qui transitent par le service.

Alternativement, le CDN peut être une solution non rentable si votre TA, malgré sa large répartition territoriale, a des localisations avec la concentration de certains utilisateurs. C'est-à-dire, supposons qu'environ 60 % de votre TA est basé aux États-Unis, 30 % à Londres et les 10 % restants sont dispersés sur toute la planète. Dans un tel cas, l'utilisation de CDN ne sera une décision rationnelle que pour ces derniers 10 % (alors que d'autres emplacements nécessiteront l'installation de nouveaux serveurs).

Comment gérons-nous les problèmes de mise à l'échelle ?

Actuellement, parmi nos exemples les plus brillants de mise à l'échelle menés par des experts internes, citons la création d'une architecture à haute évolutivité pour un stockage en nuage public tel qu'AWS, Microsoft Azure, Google Cloud et Digital Ocean. Nous utilisons des scripts de déploiement d'environnement automatisés avec l'aide de Terraform - un système de nouvelle génération pour la création, la gestion et la configuration de l'infrastructure cloud. Nous basons nos clusters de serveurs sur le logiciel de mise à l'échelle automatique Kubernetes et la technologie d'assistance à la conteneurisation Docker.

Conclusion

évolutivité dans un environnement de cloud computing Source de l'image : CDN.Lynda

En exploitant l'évolutivité de l'environnement de cloud computing grâce aux méthodes ci-dessus et à d'autres, vous pouvez évoluer plus rapidement et plus facilement, tout en restant agile. Si vous vous efforcez d'adopter uniquement l'approche tout à fait consciencieuse de la mise à l'échelle, vous devez absolument vous tourner vers des experts. Laissez-nous vous trouver les spécialistes DevOps qui fourniraient l'infrastructure de serveur la plus optimale pour votre entreprise particulière, qui sera adaptée pour gérer des charges de toute intensité.