- PVSM.RU - https://www.pvsm.ru -
Для тех кто хочет погрузиться в проектирование .Net микросервисов, Kubernetes, Azure или CI/CD. Команда разработки Microsoft, выпустила несколько электронных книг [1] и материал получился необычный, особенность этих изданий в том, что с разных сторон рассматривается один микросервисный проект PROD grade уровня, спроектированный топовыми инженерами отрасли: https://github.com/dotnet-architecture/eShopOnContainers [2] . Вы можете познакомиться с проектом как DevOps инженер, поучаствовать в роли разработчика или рассмотреть решение как архитектор. В книгах отражаются так же проблемы подобных микросервисных проектов: отказоустойчивость, масштабирование, кэширование, работа с данными etc. Материалам уже несколько лет, они обновляются, выпускаются новые разделы и книги.

Изучая технологию по книгам или документации приходится двигаться постепенно: запускать один микросервис или маленькие приложения, настраивать "простой" CI/CD. Иногда очень полезно увидеть всю картину "реализованного" проекта, и начать знакомство в роли архитектора. Ценность этих "книг" в том что у вас в руках готовая система от опытных инженеров. Проект достаточно приближен к PROD grade уровню, наиболее упрощены UI и бизнес-логика, хотя общий каркас актуален.

Книги поэтапно рассматривают микросервисную архитектуру, подходы проектирования, фреймворки и имеют отсылки к коду проекта. Каждый раздел заканчивается ссылками на дополнительные материалы. Вы можете открывать любую интересующую вас главу и погружаться в вопросы проектирования, API [3], DDD и CQRS [4], SQL и NoSQL [5], Service Discovery, RabbitMQ [6], HealthChecks [7], data-driven CRUD microservice [8] и т.д. А поскольку сам проект деплоится в Azure Kubernetes Service (AKS) [9] или Local Kubernetes [10], то очень интересно работать, когда у вас открыт IDE с кодом проекта, сервисы развернуты в облаке, открыт Lens (The Kubernetes IDE [11]) который отражает статус контейнеров в Kubernetes а само приложение доступно для всей сети Интернет.

Некоторые фрагменты кода, подходы, устарели или звучат наивно. Чего стоит заявление, в одной из книг, "Docker становится стандартом отрасли". Не нужно огорчаться или боятся встретив такие фрагменты, в реальной проектной жизни вы увидите решения или код еще старее. В отрасли, принято критиковать "несовершенные" или устаревшие решения, тем не менее, в развитых или сложных проектах они всегда будут.
Можно не пытаться осмыслить все содержимое, вот шаги которые рекомендую выполнить:
Зарегистрировать Azure Free Tier: https://azure.microsoft.com/en-us/free/ [12] или подготовить локальный энвайрмент: https://github.com/dotnet-architecture/eShopOnContainers/wiki/Deploy-to-Local-Kubernetes [10]
Задеплоить приложение в Azure Kubernetes Service (AKS): https://github.com/dotnet-architecture/eShopOnContainers/wiki/Deploy-to-Azure-Kubernetes-Service-(AKS) [9] или локально.
Подключиться к сервисам Kubernetes используя Lens: https://docs.k8slens.dev/main/catalog/add-cluster/ [13]
Налить кофе, открыть электронные книги [2] и погрузиться в код, архитектуру приложения или проектную проблематику исходя из ваших интересов.
Например, если приложение развернуто в Azure, настроен Elastic, включено обнаружение вторжений, и Machine Learning Anomaly Detection, то получаются интересные отчеты Kibana. В сети много шума и ваш выставленный IP могут начать сканировать и пробовать применять известные атаки. Если вам "повезет", атаки могут доходить до уровня данных.

Разработчик может углубляться в cloud-native development [14] или архитектуру [15] и взаимодействие микросеврвисов. Если вы системный администратор и код вам не интересен, у вас в руках целый PROD, приближенный к реальному и с упрощенной бизнес-логикой! Двигаясь по разделам книг вы можете ставить перед собой типовые проектные вопросы: CI/CD (Build Code with GitHub Actions [16], Deploy Code with GitHub Actions [17], Azure DevOps Pipelines [18]) познакомиться с Service Mesh [19], развернуть Elastic Stack [20] или например включить TLS [21].

Некоторые версии PDF странно отформатированы, можно читать книги в онлайн (смотри "View on the web [22]") и там доступен русский язык. К сожалению перевод или машинный или не проходил редактуру, его можно использовать для знакомства в общих чертах.
Когда облачный хайп зашкаливал, выяснилось, что вторым и уверенным номером в облачных сервисах двигается Microsoft с платформой Azure, сейчас спрос на платформу огромен. Работая в роли DevOps мне очень хотелось погрузиться в процесс микросервисной разработки .Net с архитектурной точки зрения. Вся литература начиналась с "объявляем переменную" или "давайте задеплоим сервис Azure". Очень хотелось изучить PROD grade проект который состоит из набора микросервисов, включающий популярные фреймворки и подходы. Таких книг или курсов практически не было (делитесь если вы встречали подобное). Получался разрыв от очень простой литературы до очень сложной.
Даже если у вас совсем мало опыта, пройдите 4 шага выше, подключитесь к сервисам Kubernetes через Lens и наслаждайтесь PROD grade энвайрментом!

Дополнительные ссылки:
.NET Microservices Architecture Guidance: https://dotnet.microsoft.com/en-us/learn/aspnet/microservices-architecture [22]
Introduction to Lens - The Kubernetes IDE: https://www.youtube.com/watch?v=eeDwdVXattc [23]
Complete Lens Course | The Best Kubernetes IDE for DevOps: https://www.youtube.com/watch?v=VOruC2tQbmw [24]
Deploy Elasticsearch in 3 minutes or less: https://www.elastic.co/cloud/elasticsearch-service/signup [25]
Автор: Alex Fedorov
Источник [26]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/razrabotka/377704
Ссылки в тексте:
[1] электронных книг: https://github.com/dotnet-architecture/eShopOnContainers/wiki/eBooks
[2] https://github.com/dotnet-architecture/eShopOnContainers: https://github.com/dotnet-architecture/eShopOnContainers
[3] API: https://github.com/dotnet-architecture/eShopOnContainers/wiki/API-gateways
[4] DDD и CQRS: https://github.com/dotnet-architecture/eShopOnContainers/wiki/Simplified-CQRS-and-DDD
[5] SQL и NoSQL: https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/nosql-database-persistence-infrastructure
[6] RabbitMQ: https://docs.microsoft.com/en-us/dotnet/architecture/microservices/multi-container-microservice-net-applications/rabbitmq-event-bus-development-test-environment
[7] HealthChecks: https://github.com/dotnet-architecture/eShopOnContainers/wiki/Using-HealthChecks
[8] data-driven CRUD microservice: https://docs.microsoft.com/en-ca/dotnet/architecture/microservices/multi-container-microservice-net-applications/data-driven-crud-microservice
[9] Azure Kubernetes Service (AKS): https://github.com/dotnet-architecture/eShopOnContainers/wiki/Deploy-to-Azure-Kubernetes-Service-(AKS)
[10] Local Kubernetes: https://github.com/dotnet-architecture/eShopOnContainers/wiki/Deploy-to-Local-Kubernetes
[11] The Kubernetes IDE: https://k8slens.dev/
[12] https://azure.microsoft.com/en-us/free/: https://azure.microsoft.com/en-us/free/
[13] https://docs.k8slens.dev/main/catalog/add-cluster/: https://docs.k8slens.dev/main/catalog/add-cluster/
[14] cloud-native development: https://docs.microsoft.com/en-us/learn/modules/microservices-aspnet-core
[15] архитектуру: https://github.com/dotnet-architecture/eShopOnContainers/wiki/Explore-the-code
[16] Build Code with GitHub Actions: https://github.com/dotnet-architecture/eShopOnContainers/wiki/GitHub-Actions
[17] Deploy Code with GitHub Actions: https://github.com/dotnet-architecture/eShopOnContainers/wiki/Deployment-With-GitHub-Actions
[18] Azure DevOps Pipelines: https://github.com/dotnet-architecture/eShopOnContainers/wiki/Azure-DevOps-pipelines
[19] Service Mesh: https://docs.microsoft.com/ru-ru/dotnet/architecture/cloud-native/resilient-communications
[20] Elastic Stack: https://github.com/dotnet-architecture/eShopOnContainers/wiki/ELK-Stack
[21] включить TLS: https://github.com/dotnet-architecture/eShopOnContainers/wiki/AKS-TLS
[22] View on the web: https://dotnet.microsoft.com/en-us/learn/aspnet/microservices-architecture
[23] https://www.youtube.com/watch?v=eeDwdVXattc: https://www.youtube.com/watch?v=eeDwdVXattc
[24] https://www.youtube.com/watch?v=VOruC2tQbmw: https://www.youtube.com/watch?v=VOruC2tQbmw
[25] https://www.elastic.co/cloud/elasticsearch-service/signup: https://www.elastic.co/cloud/elasticsearch-service/signup
[26] Источник: https://habr.com/ru/post/681172/?utm_source=habrahabr&utm_medium=rss&utm_campaign=681172
Нажмите здесь для печати.