Développer une Architecture Azure
Types d'Architecture Communs dans Azure
- Multiniveau : Couches horizontales divisées par un sous-réseau. Domaine d’entreprise classique. La fréquence des mises à jour est faible.
- Web-File d’attente-Worker : Travaux frontaux et principaux, découplés par messagerie asynchrone. Domaine relativement simple avec des tâches gourmandes en ressources.
- Microservices : Services verticalement (fonctionnellement) décomposés qui s’appellent mutuellement via des API. Domaine complexe. Mises à jour fréquentes.
- Architecture basée sur les événements : Producteur/consommateur. Vue indépendante par sous-système. IoT et systèmes temps réel.
- Big Data : Divise un jeu de données volumineux en petits blocs. Traitement parallèle sur les jeux de données locaux. Analyse des données en mode batch et en temps réel Analyse prédictive à l’aide de ML.
- Big Compute : Allocation des données à des milliers de cœurs. Domaines nécessitant beaucoup de ressources système, tels que la simulation.
Voici quelques types de problèmes à prendre en compte lors de la sélection d’un style d’architecture :
- Complexité : La complexité de l’architecture est-elle justifiée pour votre domaine ? À l’inverse, le style est-il trop simpliste pour votre domaine ? Dans ce cas, vous risquez de vous retrouver avec une « grande boule de boue » parce que l’architecture ne vous aide pas à gérer correctement les dépendances.
- Messagerie asynchrone et cohérence éventuelle : La messagerie asynchrone peut être utilisée pour séparer des services et améliorer la fiabilité (étant donné que les messages peuvent être tentés à nouveau) et l’extensibilité. Toutefois, cela crée également des difficultés pour gérer la cohérence finale et une duplication possible des messages.
- Communication interservice : Lorsque vous décomposez une application en services distincts, il est possible que la communication entre services provoque une latence inacceptable ou crée une congestion du réseau (par exemple, dans une architecture microservices).
- Facilité de gestion : Est-il difficile de gérer l’application, analyser, déployer des mises à jour et ainsi de suite ?
Appliquez ces principes de conception :
- Penser la conception des applications pour la réparation spontanée . Dans un système distribué, des défaillances peuvent se produire. Concevez votre application pour qu’elle se répare spontanément en cas de défaillance.
- Rendre tous les éléments redondant . Intégrez la redondance à votre application, pour éviter les points de défaillance uniques.
- Réduire la coordination . Réduisez la coordination entre les services d’application pour atteindre une certaine évolutivité.
- Penser la conception des applications pour effectuer un scale-out . Concevez votre application afin qu’elle puisse évoluer horizontalement, par l’ajout ou la suppression de nouvelles instances en fonction de la demande.
- Partitionner autour des limites . Utilisez le partitionnement pour contourner les limites liées à la base de données, au réseau et au calcul.
- Penser la conception des applications pour les opérations . Concevez votre application pour que l’équipe des opérations dispose des outils dont elle a besoin.
- Utiliser les services managés Azure . Si possible, utilisez platform as a service (PaaS) au lieu de infrastructure as a service (IaaS).
- Utilisez un service d’identité. Utilisez une plateforme d’identité en tant que service (IDaaS) au lieu de créer ou d’exploiter votre propre plateforme.
- Penser la conception des applications en vue de leur évolution . Mêmes les applications les plus réussies changent au fil du temps. Une conception évolutive est essentielle pour une innovation continue.
- Créer pour les besoins de l’entreprise . Chaque décision de conception doit être justifiée par un besoin de l’entreprise.
Well Architected Framework WAF
Le cadre est fondé sur les cinq piliers de l’excellence architecturale, qui sont mappés à ces objectifs. Il s’agit de : fiabilité, sécurité, optimisation des coûts, excellence opérationnelle et efficacité des performances.- Fiabilité : Résilience, disponibilité, récupération Concevoir pour les besoins de l’entreprise, la résilience, la récupération et les opérations, tout en restant simple.
- Sécurité : Protection des données, détection des menaces et atténuation Protégez la confidentialité, l’intégrité et la disponibilité.
- Optimisation des coûts : Modélisation des coûts, budgets, réduction des déchets Optimisez l’utilisation et le taux d’utilisation tout en conservant un état d’esprit économique.
- Excellence opérationnelle : Observabilité holistique, pratiques DevOps Rationalisez les opérations avec des normes, une surveillance complète et des pratiques de déploiement sécurisées.
- Efficacité des performances : Scalabilité, test de charge Mettez à l’échelle horizontalement, testez tôt et souvent, et surveillez l’intégrité de la solution.
Cloud Adoption Framework
Le Cloud Adoption Framework pour Azure regroupe des documents, des conseils techniques, des meilleures pratiques et des outils conçus pour faciliter l’alignement des stratégies d’entreprise, d’organisation, de préparation et de déploiement technologique. Cet alignement assure un parcours clair et exploitable pour aider l’entreprise dans sa migration vers le cloud et lui permettre d’atteindre rapidement les résultats escomptés.
Le Cloud Adoption Framework simplifie le parcours d’adoption du cloud grâce à trois étapes essentielles :
- Plan :
- la rationalisation de votre patrimoine numérique
- la création de votre plan d’adoption du cloud.
- Ready
- Adopter
L’adoption du cloud est motivée par divers facteurs :
- déclencheurs de migration (par exemple, réduction des coûts et optimisation des opérations) ;
- déclencheurs d’innovation (par exemple, augmentation de la présence pour répondre aux demandes du marché ou de zones géographiques).
Le Cloud Adoption Framework pour Azure favorise un parcours d’adoption du cloud exploitable, qui permet aux entreprises d’atteindre rapidement les résultats escomptés.
Lorsque vous développez votre stratégie de migration dans le cloud, vous devez vous concentrer sur les aspects suivants :
- définir votre justification métier en identifiant les opportunités de générer de la valeur pour l’entreprise ;
- établir des résultats métier clairs pour favoriser la transparence et l’engagement.
Microsoft met à votre disposition divers outils pour vous aider dans votre planification financière :
- Outil de calcul du coût total de possession Azure
- Calculatrice de prix Azure
- Microsoft Cost Management + Billing
Votre premier projet d’adoption doit s’aligner sur les facteurs qui vous ont motivé à migrer vers le cloud.
Gouvernance du Cloud
Lorsque vous créez votre stratégie de gouvernance cloud, vous devez réfléchir à la gestion des coûts, définir une ligne de base de sécurité, veiller à la cohérence de vos ressources en adoptant les meilleures pratiques, établir la stratégie d’identité et d’accès, et enfin accélérer le déploiement à l’aide de modèles cohérents.
Mise à l'échelle
Le scale-up consiste à ajouter davantage de ressources (processeur ou mémoire par exemple) à une instance unique. Cette instance peut être une machine virtuelle ou un service PaaS.Le fait d’ajouter davantage de capacité à l’instance augmente les ressources à disposition de votre application, mais dans une certaine limite. Les machines virtuelles sont limitées à la capacité de l’hôte sur lequel elles s’exécutent. Les hôtes eux-mêmes ont également des limites physiques. Finalement, lorsque vous effectuez un scale-up la taille d’une instance, vous pouvez rencontrer ces limites. Elles entravent votre capacité à ajouter des ressources à l’instance.
Le scale-out consiste à ajouter des instances à un service. Il peut s’agir de machines virtuelles ou de services PaaS. Plutôt que d’ajouter de la capacité en créant une seule instance plus puissante, nous en ajoutons en augmentant le nombre total d’instances.
Ressources
- https://azure.microsoft.com/fr-fr/get-started/azure-portal
- Modèles de conception et d’implémentation pour Azure
- https://learn.microsoft.com/fr-fr/azure/well-architected/what-is-well-architected-framework
- Principes de conception : https://learn.microsoft.com/fr-fr/azure/architecture/guide/design-principles/
Azure App Service
Azure App Service est un service HTTP pour l’hébergement d’applications web, d’API REST et de backends mobiles. Vous pouvez développer dans votre langage préféré, à savoir .NET, .NET Core, Java, Node.js, PHP et Python. Les applications s’exécutent et sont mises à l’échelle facilement dans les environnements Windows et Linux.
Commentaires
Enregistrer un commentaire