tutorial from Microsoft engineers, getting PROD experience

For those who want to dive into designing .Net microservices, Kubernetes, Azure or CI/CD. The Microsoft development team has released several e-books and the material turned out to be unusual, the peculiarity of these publications is that one microservice project of the PROD grade level, designed by top engineers of the industry, is considered from different angles: https://github.com/dotnet-architecture/eShopOnContainers . You can get to know the project as a DevOps engineer, participate as a developer, or review the solution as an architect. The books also reflect the problems of similar microservice projects: fault tolerance, scaling, caching, working with data, etc. The materials are already several years old, they are being updated, new sections and books are being published.

eShopOnContainers: https://github.com/dotnet-architecture/eShopOnContainers/wiki/eBooks

eShopOnContainers: https://github.com/dotnet-architecture/eShopOnContainers/wiki/eBooks

When studying technology from books or documentation, you have to move gradually: launch one microservice or small applications, set up a “simple” CI / CD. Sometimes it is very useful to see the whole picture of the “realized” project, and to begin acquaintance in the role of an architect. The value of these “books” is that you have in your hands a ready-made system from experienced engineers. The project is quite close to the PROD grade level, the UI and business logic are the most simplified, although the general framework is relevant.

eShopOnContainers - Architecture overview https://github.com/dotnet-architecture/eShopOnContainers

eShopOnContainers – Architecture overview https://github.com/dotnet-architecture/eShopOnContainers

Books consider microservice architecture, design approaches, frameworks step by step and have references to the project code. Each section ends with links to additional resources. You can open any chapter that interests you and dive into design issues, API, DDD and CQRS, SQL and NoSQLService Discovery, RabbitMQ, HealthChecks, data-driven CRUD microservice etc. And since the project itself is deployed in Azure Kubernetes Service (AKS) or Local Kubernetesit is very interesting to work when you have an IDE open with the project code, services are deployed in the cloud, Lens is open (The Kubernetes IDE) which reflects the status of containers in Kubernetes and the application itself is available to the entire Internet.

Creating a simple data-driven CRUD microservice: https://docs.microsoft.com/en-ca/dotnet/architecture/microservices/multi-container-microservice-net-applications/data-driven-crud-microservice
Creating a simple data-driven CRUD microservice: https://docs.microsoft.com/en-ca/dotnet/architecture/microservices/multi-container-microservice-net-applications/data-driven-crud-microservice

Some code fragments, approaches, are outdated or sound naive. What is the statement, in one of the books, “Docker becomes the industry standard”. No need to be upset or afraid when you meet such fragments, in real project life you will see solutions or even older code. In the industry, it is customary to criticize “imperfect” or outdated solutions, however, in developed or complex projects, they will always be.

You can not try to comprehend all the contents, here are the steps that I recommend to follow:

  1. Register Azure Free Tier: https://azure.microsoft.com/en-us/free/ or prepare the local environment: https://github.com/dotnet-architecture/eShopOnContainers/wiki/Deploy-to-Local-Kubernetes

  2. Deploy the application to Azure Kubernetes Service (AKS): https://github.com/dotnet-architecture/eShopOnContainers/wiki/Deploy-to-Azure-Kubernetes-Service-(AKS) or locally.

  3. Connect to Kubernetes services using Lens: https://docs.k8slens.dev/main/catalog/add-cluster/

  4. Pour coffee, open electronic books and dive into code, application architecture or design issues based on your interests.

For example, if the application is deployed in Azure, Elastic is configured, intrusion detection is enabled, and Machine Learning Anomaly Detection, then interesting Kibana reports are obtained. There is a lot of noise on the network and your exposed IP may start to be scanned and try to apply known attacks. If you are “lucky”, attacks can go down to the data layer.

https://docs.microsoft.com/en-us/dotnet/architecture/microservices/architect-microservice-container-applications/data-sovereignty-per-microservice
https://docs.microsoft.com/en-us/dotnet/architecture/microservices/architect-microservice-container-applications/data-sovereignty-per-microservice

The developer can delve into cloud-native development or architecture and interaction of microservices. If you are a system administrator and you are not interested in the code, you have a whole PROD in your hands, close to real and with simplified business logic! Moving through the sections of books, you can set yourself typical project questions: CI / CD (Build Code with GitHub Actions, Deploy Code with GitHub Actions, Azure DevOps Pipelines) meet to Service Meshexpand Elastic Stack or for example enable TLS.

Monitoring in Azure Kubernetes Services: https://docs.microsoft.com/en-us/dotnet/architecture/cloud-native/monitoring-azure-kubernetes
Monitoring in Azure Kubernetes Services: https://docs.microsoft.com/en-us/dotnet/architecture/cloud-native/monitoring-azure-kubernetes

Some PDF versions are oddly formatted, you can read books online (see “View on the web“) and the Russian language is available there. Unfortunately, the translation is either machine-made or has not been edited, it can be used to get to know each other in general terms.

When the cloud hype went off scale, it turned out that the second and confident number in cloud services is Microsoft with the Azure platform, now the demand for the platform is huge. Working in the role of DevOps, I really wanted to dive into the .Net microservice development process from an architectural point of view. All the literature started with “declaring a variable” or “let’s deploy an Azure service”. I really wanted to study the PROD grade project, which consists of a set of microservices, including popular frameworks and approaches. There were practically no such books or courses (share if you have seen this). There was a gap from very simple literature to very complex literature.

Even if you have very little experience, go through the 4 steps above, connect to Kubernetes services through Lens and enjoy the PROD grade environment!

https://k8slens.dev/
https://k8slens.dev/

Additional links:

.NET Microservices Architecture Guidance: https://dotnet.microsoft.com/en-us/learn/aspnet/microservices-architecture

Introduction to Lens – The Kubernetes IDE: https://www.youtube.com/watch?v=eeDwdVXattc

Complete Lens Course | The Best Kubernetes IDE for DevOps: https://www.youtube.com/watch?v=VOruC2tQbmw

Deploy Elasticsearch in 3 minutes or less: https://www.elastic.co/cloud/elasticsearch-service/signup

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *