Maison >développement back-end >Tutoriel C#.Net >Analyse de l'architecture des microservices Microsoft eShopOnContainers
Afin de promouvoir .Net Core, Microsoft nous propose une démo open source-eShopOnContainers, qui est développée à l'aide du framework Net Core et est multiplateforme (couvrant presque toutes plateformes , windows, mac, linux, android, ios), basées sur des microservices architecture, petites applications fonctionnant dans des conteneurs, qui ne se contentent pas de montrer la croix. La nature de plate-forme de Net Core démontre également la puissance de VS2017. Tous les codes sont développés sous VS2017. Comme son nom l'indique, il s'agit d'une application de boutique électronique fonctionnant sur un conteneur. Grâce à la nature multiplateforme de Docker, nous pouvons « construire une fois, exécuter n'importe où ».
1. Introduction
eShopOnContainers est une application .Net Core simple basée sur une architecture de microservices et un conteneur Docker. À l'heure actuelle, l'architecture des microservices bat son plein et la technologie Docker se développe également rapidement. Microsoft a lancé cette démo, et son intention peut être imaginée. Bien que cette démo ne puisse pas être pleinement appliquée à l'environnement de production, elle est très bonne. pour nous, les développeurs, que vous apportiez de légères modifications ou que vous utilisiez l'architecture pour re-développer, il est très nécessaire d'apprendre une telle démo, ce qui me rappelle l'apprentissage de BlogEngine.Net auparavant.
2. Architecture
Jetons un coup d'œil au schéma d'architecture qui nous a été fourni par Microsoft
De gauche à droite, nous voyons 2. Dans la zone en pointillés, le côté gauche correspond à chaque application client et le côté droit correspond à l'application Web, à l'application de microservice et à la base de données supposées se trouver sur Docker.
Dans la démo, Microsoft a créé plusieurs services basés sur différentes fonctions, et lors de la conception de ces services, Microsoft a utilisé différentes méthodes pour les implémenter, comme le montre la figure ci-dessous :
Ci-dessus sont les quatre services affichés par Microsoft dans la démo. Vous pouvez également utiliser différents frameworks et différentes bases de données pour compléter la construction de vos microservices. Je peux utiliser n’importe quelle langue et n’importe quelle base de données pour créer mon service, quelle que soit la langue ou le système utilisé par mon appelant.
3. Code source
Cette architecture est open source sur Github, adresse : https://github.com/dotnet-architecture /eShopOnContainers
Nous pouvons cloner le code source via git :
Nous voyons 3 sln à l'intérieur, il est recommandé de l'ouvrir avec vs2017, si vousAprès avoir installé la version complète, vous pouvez ouvrir eShopOnContainers.sln, mais généralement pour les débutants, on ouvre toujours la solution eShopOnContainers-ServicesAndWebApps.sln.
Vous pouvez voir que l'application Web et l'application de service ont été couvertes dans la solution, et notre tutoriel est également basé sur cette solution.
4. Environnement nécessaire :
J'ai déjà dit que notre application est multiplateforme et peut fonctionner sur n'importe quel système d'exploitation prenant en charge Docker, mais lorsque nous développons debug, nous avons besoin de l'environnement correspondant pour déboguer (bien sûr, vous pouvez également utiliser iisexpress pour le débogage)
1. Windows 10 Pro 64 bits
2 Allumez Hyper-V (la machine de virtualisation de Microsoft)
3. Installez Dockerpour Windows
Si nous sommes une version antérieure à win10, bien que nous puissions installer Docker Toolbox, nous ne pouvons pas utiliser VS2017 pour le débogage de Docker. lors de l'exécution. Pour ce tutoriel, j'ai décidé de mettre à niveau mon ordinateur vers Win10 afin qu'il puisse mieux s'afficher. Si vous souhaitez déboguer et exécuter sous le système précédent, en plus d'installer Docker Toolbox, vous devez également installer : 1, Node2. BowerDocker pour Windows a deux types de conteneurs sur win10 ou serveur 2016, le conteneur Linux et le conteneur Windows. Ici, nous devons uniquement utiliser le conteneur Linux (par défaut). Notre didacticiel concerne uniquement les services et WebApp. Microsoft recommande de définir la mémoire utilisée par Docker sur 4096 Mo (4 Go) et le processeur 3. Si vous souhaitez exécuter la version complète (y compris le client mobile), vous devez configurer 16 Go de mémoire pour Dockere. Ma suggestion personnelle est qu'il est préférable d'avoir une machine dédiée à la base de données, sinon un docker mssql-linux-sql nécessite 4 Go de mémoire. Inutile de dire que vous devez également créer unredis. .
Lorsque nous apprenons, nous n'avons pas besoin d'utiliser Docker pour le débogage. Vous pouvez également utiliser iis express. Peu importe la méthode que vous utilisez, l'important est d'apprendre.
5. Étapes d'apprentissage :
Cette série d'explications est basée sur le code ServicesAndWebApps.sln. Nous apprendrons d'abord des microservices, puis examinerons la structure du code du composant WebPart. L'ordre approximatif est le suivant :
1, Service d'identité
2, Service de catalogue
3, CommandeService de commande
4, Service de panier
5. WebApp Mvc
6.WebSPA
J'ai été assez occupé il y a quelque temps, mais j'ai prêté une attention particulière au développement de .Net Core lors de la précédente conférence des constructeurs, les débuts époustouflants de la version 2.0 m'ont complètement convaincu que Microsoft ne ménagerait aucun effort pour y parvenir. développer .Net, et cela m'a aussi donné envie d'attendre que .Net Developer Spring soit là, et je voudrais rendre hommage à tous les développeurs .Net du monde que nous attendons depuis 10 ans.
Pourquoi avez-vous choisi cette architecture ? Parce qu'elle a été écrite par Microsoft et qu'elle a une grande importance pédagogique. De plus, les concepts de microservices et de Docker sont de plus en plus populaires. n'a pas encore atteint le concept Microservice), il existe de nombreux inconvénients dans le déploiement, le développement, la maintenance et l'expansion, donc cet apprentissage est très important pour moi.
Le premier article est un peu plus absurde. Plus tard, j'expliquerai le code et l'architecture et les modèles de conception. Voici enfin un rendu
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!