Application à niveaux multiples
Résumé exécutif
Dans notre architecture à niveaux multiples, le frontend et le backend de nos applications sont intimement liés, avec le backend codé en Python et le frontend en TypeScript, chacun résidant dans leurs répertoires respectifs. Le backend ne se contente pas de traiter les demandes, mais interagit également occasionnellement avec diverses solutions de stockage d'objets comme les modèles d'IA, les bases de données et le stockage blob pour gérer et récupérer des données. Cette interaction est cruciale pour le fonctionnement transparent de nos services et est représentée dans les diagrammes de séquence accompagnants, qui illustrent le flux d'une requête depuis le frontend à travers l'ingress jusqu'au backend.
Glossaire
Frontend : Le frontend se réfère à la partie d'un site web ou d'une application avec laquelle les utilisateurs interagissent directement, englobant le design, la mise en page et le comportement que les gens expérimentent dans un navigateur web ou une interface d'application.
Backend : Le backend fait référence au côté serveur d'une application web, englobant la base de données, le serveur et la logique d'application qui traitent les requêtes des utilisateurs et réalisent les opérations fonctionnelles principales du système.
Base de données : Une base de données est une collection structurée de données stockées et accessibles électroniquement, conçue pour gérer, interroger et récupérer des informations de manière efficace.
Ingress : Ingress fait référence à l'acte d'entrer ou à la capacité d'entrer. Dans le contexte des réseaux et de l'informatique, cela désigne généralement le trafic entrant vers un réseau ou un service à partir d'une source externe.
Navigateur : Un navigateur, également connu sous le nom de navigateur web, est une application logicielle utilisée pour accéder, récupérer et afficher du contenu sur le World Wide Web, y compris des pages web, des images, des vidéos et d'autres multimédias. Il interprète le HTML et d'autres technologies web pour présenter l'information dans un format accessible.
Diagrammes
Ce diagramme montre la communication entre le frontend, le backend (/api), le navigateur (client), et l'ingress (ingress nginx) pour une application.
sequenceDiagram
participant Browser
participant Ingress
participant Frontend
participant Backend
Note over Browser,Backend: DNS https://inspection.alpha.canada.ca resolves to Ingress IP with A record
Note over Browser,Backend: https://*.inspection.alpha.canada.ca * is any CNAME to the DNS
Browser->>Ingress: GET / https://*.inspection.alpha.canada.ca
Ingress->>Frontend: GET /
Frontend-->>Ingress: 200
Ingress-->>Browser: The browser display the result
Browser->>Ingress: GET /api/search https://*.inspection.alpha.canada.ca/api/search/
Ingress->>Backend: GET /search
Note over Ingress: /api is /search (ImplementationSpecific)
Backend-->>Ingress: 200
Ingress-->>Browser: The browser display the result