Analysis of Microsoft Microservice Architecture eShopOnContainers

大家讲道理
Release: 2017-05-28 11:39:06
Original
4382 people have browsed it

In order to promote .Net Core, Microsoft provides us with an open source Demo-eShopOnContainers, which is developed using the Net Core framework and is cross-platform (covering almost all platforms , windows, mac, linux, android, ios), based on microservicesarchitecture, small applications running in containers, which not only show. The cross-platform nature of Net Core also demonstrates the power of VS2017. All codes are developed under VS2017. As can be seen from the name, this is an electronic store application running on a container. Using the cross-platform nature of Docker, we can "build once, run anywhere".

1. Introduction

eShopOnContainers is a simple .Net Core application based on microservice architecture and Docker container. At present, the microservice architecture is in full swing, and docker technology is also developing rapidly. Microsoft launched this Demo at this time, and its intention can be imagined. Although this Demo cannot be fully applied to the production environment, it is very good for us developers. Learning materials, whether you make slight modifications or use the architecture to re-develop, it is very necessary to learn such a Demo, which reminds me of learning BlogEngine.Net before.

2. Architecture

Let’s take a look at the architecture diagram provided to us by Microsoft

We see 2 from left to right In the dotted box, the left side is each client application, and the right side is the web application, microservice application and database assumed to be on Docker.

In the Demo, Microsoft built multiple services according to different functions, and when designing these services, Microsoft used different methods to implement them, as shown in the following figure:

The above are the four services displayed by Microsoft in the Demo. You can also use different frameworks and different databases to complete the construction of your microservices. This is why microservices are so popular. . I can use any language and any database to build my service, no matter what language or system my calling end uses.

3. Source code

This architecture is open source on Github, address: https://github.com/dotnet-architecture /eShopOnContainers

We can clone the source code through git:

We see there are 3 sln in it, it is recommended to open it with vs2017, if youInstallation After the full version, you can open eShopOnContainers.sln, but generally for beginners, we still open the eShopOnContainers-ServicesAndWebApps.sln solution.

You can see that webapp and service app have been covered in the solution, and our tutorial is also based on this solution.

4. Necessary environment:

As mentioned before, our application is cross-platform and can run on any operating system that supports Docker, but during our developmentDebugging, we need the corresponding environment to debug (of course you can also use iisexpress for debugging)

1. 64bit Windows 10 Pro

2. Turn on Hyper-V (Microsoft's virtualization Machine)

3. Install Docker for Windows

If we are a version before win10, although we can install Docker Toolbox, we cannot use VS2017 for Docker debugging. An error will be reported when running. For this tutorial, I decided to upgrade my computer to Win10 so that it can be displayed better.

If you want to debug and run under the previous system, in addition to installing Docker Toolbox, you also need to install:

1, NodeJS

2. Bower

Docker for Windows There are two types of containers on win10 or server 2016, Linux container and Windows Container. Here we only need to use Linux Container (default). Our tutorial is only for Services and WebApp. Microsoft recommends setting the memory used by Docker to 4096M (4G) and CPU 3. If you want to run the full version (including mobile client), you need to configure 16G memory for Dockere.

My personal suggestion is that you'd better have a machine dedicated to the database, otherwise a mssql-linux-sql docker requires 4G of memory, and it goes without saying that you also need to build a redis.

When we are learning, we don’t necessarily have to use Docker for debugging. You can also use iis express. It doesn’t matter which method you use, the important thing is learning.

5. Learning steps:

The explanations in this series are based on the ServicesAndWebApps.sln code. We will learn from microservices first, and then look at the code structure of the web part. The approximate order is as follows:

1, Identity service

2, Catalog Service

3, Ordering Sevice

4, Basket Service

5, WebApp Mvc

6, WebSPA


Write at the end :

I was busy some time ago, but I have been paying close attention to the development of .Net Core. At the previous builder conference, the stunning debut of 2.0 completely convinced me that Microsoft would spare no effort to develop .Net, and it also made me wait for .Net Developer. Spring is here, and I would like to pay tribute to all .Net Developers in the world. We have been waiting for 10 years.

Why choose this architecture? Because it was written by Microsoft and is of great teaching significance. Moreover, the concepts of microservices and Docker are becoming more and more popular. The current company is based on services (it has not yet reached Microservice concept), there are many inconveniences in deployment, development, maintenance, and expansion, so this learning is very important to me.

The first article is more nonsense. Later, I will explain the code, architecture and Design Pattern. Everyone is welcome to subscribe. Finally, here is a rendering

The above is the detailed content of Analysis of Microsoft Microservice Architecture eShopOnContainers. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template