Architecture 3-Tiers

5
(5)

Table des matieres

C’est quoi une architecture 3-Tiers ?

L’architecture trois tiers, une architecture logicielle qui divise notre application en trois niveaux/couches logiques et physiques : la couche présentation, la couche application et la couche données. Cette architecture est très répondue surtout pour les applications client-serveur traditionnelles. Cette architecture permet aux développeurs de créer des applications plus flexibles et évolutives dans le temps.

Nous allons voir ensemble dans cet article la composition et le rôle de chaque couche. Je vais vous présenter également deux architectures sur lesquelles vous pouvez vous appuyer pour construire une application 3-tiers sur le cloud Azure.

Couche Présentation

La couche présentation représente l’interface de communication entre l’application et l’utilisateur final. L’objectif de cette couche est d’afficher les données/informations à l’utilisateur et recueillir les données/saisies auprès de lui.

L’utilisateur va avoir accès à cette couche au travers d’un navigateur Web ou une interface utilisateur graphique (GUI) pour les applications de bureau. Le mode web est généralement développé en HTML, CSS et JavaScript. Les applications de bureau peuvent être écrites dans divers langages en fonction de la plate-forme comme le Java, Python..Etc.

Couche application

Cette couche qu’on peut décrire comme le coeur de notre application est appelée aussi niveau logique. Le traitement des informations recueillies dans la couche supérieure est fait à ce niveau avant d’être envoyées au niveau de données. La logique est décrite/définie par les développeurs de l’application dans le but de transformer les données de la couche application avant de les transmettre en forme de requêtes à la base de données.

Généralement, cette base logique est développée en utilisant Python, Java, Perl, PHP ou Ruby, et communique avec le niveau de données à l’aide d’appels API.

Couche données

Le niveau de données, appelé souvent : niveau de la base de données, niveau d’accès aux données ou back-end. Nous allons y trouver toutes les informations traitées par la couche supérieure stockées et gérées. La construction de votre couche base de donnés peut se baser sur une base de données relationnelle (SQL) ou Non relationnelle (NoSQL).

On cite : PostgreSQL, MySQL, MariaDB, Oracle, DB2, ou Microsoft SQL Server pour les bases de données relationnelles, et tel que Cassandra, CouchDB ou MongoDB pour les bases de données NoSQL.

Une architecture 3-Tiers sur Azure

Architecture 3 Tiers sur une infrastructure Windows Multi-AZ

Cette architecture est construite sur plusieurs briques et services Azure qu’on va lister ci-dessous :

  • Organiation
    • Un ressource group pour toute l’infrastructure,
    • Une distribustion sur plusieurs AZ ( Availability Zone),
  • Niveau Compute
    • 2*VMs ( 2 différents AZ) sur Windows server avec SQL Server en mode Always On pour une meilleure disponibilité (une Master en Read/Write et le replica en Read Only). Un basculement automatique se basant sur Windows Server Failover Cluster (WSFC).
    • 2*VMs ( 2 différents AZ) sur Windows server avec l’installation des fonctionnalités : AD DS (Active Directory Domain Services) et DNS ( Domain Name Services). Les objets du cluster sont enregistrés dans l’AD DS ainsi que le listener.
    • Témoin (Quorum) : on utilise ici un Cloud Witness se basant sur Azure Blob Storage. Le témoin est indispensable pour éviter le split brain entre le neoud master et le slave du cluster WSFC.
    • Un bastion (Jumpbox) : nous avons toutes et tous ce genre de jump server dans nos zone d’administration accessible que depuis nos réseaux interne et par les équipe d’administration. Microsoft propose Azure bastion qui va nous permettre de lister des IPs autorisées à accéder aux ressources au travers d’internet ou notre réseau interne. La connexion passe en TLS 443 puis en RDP depuis le bastion vers nos serveurs. Ci-dessous, un aperçu rapide de ce service que j’utilise tous les jours :
Azure Bastion Service
  • Au niveau Réseau
    • Un seul réseau virtuel (vNET) composé de plusieurs sous-réseaux (Subnet) pour une meilleure segmentation entre les différents niveaux,
    • Une passerelle applicative (Application Gateway) qui va jouer le rôle d’équilibreur de charge de niveau 7 sur les requêtes HTTP avec la fonctionnalité WAF ( Web Application Firewall) intégrée par défaut. L’application est protégée contre les attaques et les vulnérabilités,
    • 2*Équilibreurs de charge internes (Load Balancers) qui vont jouer le rôle d’équilibreurs de charge entre les serveurs front-end, Application et base de données,
    • 6*Groupes de sécurité réseau (NSG), placés sur chaque subnet pour restreindre le trafic réseau au sein du réseau virtuel. Chaque niveau ne va communiquer qu’avec les ressources autorisées par l’administrateur. Par exemple, le niveau de la base de données n’accepte pas le trafic provenant du front-end Web, mais uniquement celui provenant du niveau professionnel et du sous-réseau de gestion,
    • Protection DDoS supplémentaire en plus de la protection de base contre les attaques par déni de service distribué (DDoS) fournie par Azure,
    • Azure DNS Service qui va fournir une résolution de nos noms de domaines, mais aussi de nos services internes avec une zone private DNS.

La figure suivante est une version améliorée de l’architecture précédente en ajoutant une région supplémentaire :

Architecture 3 Tiers sur une infrastructure Windows Muti-Régions

Les avantages d’une architecture 3 tiers

Les avantages d’une architecture 3 tiers sont multiples. Tout d’abord, la séparation logique et physique des trois niveaux. Chaque niveau peut fonctionner sur un système d’exploitation et une plate-forme de serveurs distincts – par exemple, un serveur Web avec K8S , un serveur d’applications sous Linux , un serveur de base de données sous Windows serveur – qui correspondent le mieux à ses exigences fonctionnelles.

Cette architecture permet une meilleure flexibilité et un meilleur contrôle du code. En effet, chaque niveau peut être modifié sans impacter les autres niveaux. De plus, cette architecture permet une meilleure évolutivité et une meilleure scalabilité.

Enfin, elle offre une meilleure fiabilité et disponibilité, car si un niveau est en panne, les autres niveaux peuvent continuer à fonctionner correctement.

Conclusion

L’architecture 3-tiers est un schéma de déploiement d’applications logicielles où les fonctions sont séparées en trois « tiers ». Cela peut être vu comme une pyramide, avec le tiers supérieur représentant l’interface utilisateur, le milieu représentant la logique des applications et le bas représentant la base de données. L’avantage de cette architecture est qu’elle permet une meilleure flexibilité et évolutivité des applications. De nombreuses entreprises ont adopté cette architecture pour développer et déployer leurs applications logicielles.

Cela fait décennies que l’architecture à trois niveaux domine le monde des applications client-serveur. On assiste aujourd’hui avec l’avènement du Cloud Public à une modernisation des applications, à l’aide de technologies natives du cloud telles que, les conteneurs et les microservices, et pour la migration vers le cloud.

A très vite

Etiquettes :

Qu'avez-vous pensé de cet article ?

Note moyenne 5 / 5. Nombre d'avis : 5

Soyez le premier à donner votre avis

Qui suis-je ?

Une grande passion pour les nouvelles technologies et l'innovation, je suis toujours prêt à relever de nouveaux challenges et surmonter les défis pour atteindre mes objectifs !

La formation, l'amélioration continue, la remise en question sont ancrées dans mon ADN pour assurer un delivery continue de soi chaque année.

Un appétit d'ogre pour : la rencontre de nouvelles personnes, le travail en équipe, le Brain Storming et le partage de connaissances diverses sur la Tech, l'histoire de l'Homme, l'astronomie, l'énergie, l'Eco-Conception, l'Agroécologie et la sociologie.

N'hésitez pas à me contacter, je serai ravi de partager avec vous mon expérience ainsi que la vôtre.

Certifications
Categories
Etiquettes
Ces articles pourraient vous intéresser...
Azure Cloud
Architecture Hub & Spoke sur Azure

La standardisation et la réutilisation de modèles d’architectures est une pratique courante dans le développement logiciel, dont, on peut s’inspirer dans les topologies réseau cloud. Le modèle Hub-and-Spoke est une topologie réseau de plus en plus adopté par les clients sur Azure.

Lire la suite »
Hybride Cloud
La différence entre Cloud Privé, Cloud Public et Cloud Hybride ?

On peut résumer la différence principale entre les deux en disant que le Cloud Public utilise une infrastructure partagée et le Cloud Privé une infrastructure dédiée. Cela semble être très simple à dire mais, la réalité est autre et plus complexe. On a l’émergence sur Cloud Hybride aussi qui vient faire le pont entre les deux clouds précédents.

Lire la suite »

Inscrivez-vous a la Newsletter