Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Микросервисы в .NET Core

633 views

Published on

Экспансия .NET, преимущества микросервисной архитектуры, оркестрация, взаимодействие микросервисов, инструменты и библиотеки.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Микросервисы в .NET Core

  1. 1. Happy birthday, IT KPI!
  2. 2. Немного о себе  В коммерческой разработке с 2008 года  Закончил КПИ (2 раза)  Microsoft MVP  Занимаюсь ИТ консалтингом, разработкой и проектированием информационных систем и решений
  3. 3. Микросервисы в .NET Core
  4. 4. 27 июня 2016 началась экспансия .NET Core Windows macOS Linux
  5. 5. За что же мы любим .NET? - Деcктопные приложения (Hello, .NET Core 3.0!) - Веб-приложения - Облачные сервисы (сервисы, лямбды, etc.) - Мобильная разработка (Xamarin) - IoT - Machine Learning (ML.NET) - Квантовые вычисления (!!!) И все это с бесшовной интеграций в одном проекте! Q#
  6. 6. Инструменты для разработки на любой платформе • Rider • Visual Studio Code (самый популярный редактор среди Go-разработчиков в Google) • Visual Studio for Mac
  7. 7. А за что мы любим микросервисы? • Жесткие границы модулей. Четкая модульная структура, что крайне удобно для больших команд. • Независимое развертывание. Микросервисы проще в развертывании, и поскольку они автономны, меньше шансов вызвать сбои системы, когда один из них работает некорректно. • Технологическое разнообразие. С микросервисами легко смешивать языки программирования, среды разработки и технологии хранения данных.
  8. 8. Как мы готовим микросервисы в vi stories
  9. 9. Что такое vi stories? vi stories – система контекстной рекомендации видео. Сверхзадача: • анализ контента страницы и подбор видео наиболее точно соответствующего контенту Требования к системе: • минимальное время для анализа страницы, • минимальное время для подбора видео.
  10. 10. Наш стек  .NET Core (Services)  ASP.NET Core (API)  MariaDB  Kubernetes  RabbitMQ  Nginx  AWS
  11. 11. Контейнеризация и оркестрация
  12. 12. Kubernetes и облака • Digital Ocean Kubernetes • Azure Kubernetes Service (AKS) • Amazon EKS - Managed Kubernetes Service
  13. 13. Как происходит деплой  Код  Репозиторий  Build сервер  Docker репозиторий  Kubernetes
  14. 14. Как взаимодействуют микросервисы HTTP запросы Очереди База данных (*)
  15. 15. Инструменты
  16. 16. App Metrics Позволяет собирать метрики со всех сервисов. Далее все передается в: Influx Graphana https://www.app-metrics.io
  17. 17. Polly Polly is a .NET resilience and transient-fault-handling library that allows developers to express policies such as Retry, Circuit Breaker, Timeout, Bulkhead Isolation, and Fallback in a fluent and thread-safe manner. From version 6.0.1, Polly targets .NET Standard 1.1 and 2.0+. http://www.thepollyproject.org
  18. 18. Serilog Структурное логирование https://serilog.net Akka Actor Alternate Rolling File Amazon CloudWatch Amazon DynamoDB Amazon Kinesis Application Insights Async Wrapper Azure Analytics Azure Blob Storage Azure DocumentDB Azure Event Grid Azure Event Hubs Azure Queue Storage Azure Table Storage Azure Web Jobs* CouchBase CouchDB Console Colored Console DataDog DataDog Logs Debug Elasticsearch elmah.io Email Email PickUp Excel-DNA Exceptionless File FluentD Glimpse Google Cloud PubSub Google Cloud Stack Driver GrayLog HTTP LiteDB Literate Console Loggly Loggly (Bulk API) Log4Net LogEntries Logify Logmatic.io Loggr Marten MEL ILogger Microsoft Teams MongoDB Nats NewRelic Network NLog Observable OrientDB Period PostgreSQL RabbitMQ RavenDB RayGun RethinkDB Rollbar Rolling File Scalyr Sentry Seq SignalR Slack SQLite Splunk SQL Server Stackify Sumo Logic Syslog (RFC5424) Syslog (RFC5424, RFC3164 TestCorrelator Text Writer Trace UDP Windows Event Log Xamarin XSockets YouTrack
  19. 19. Health checks в ASP.NET Core Health checks позволяют: • Использовать их вместе с оркестраторами контейнеров и подсистемами балансировки нагрузки, чтобы проверять состояние приложения. Например, оркестратор контейнеров может реагировать на неуспешную проверку работоспособности, остановив последовательное развертывание или перезапустив контейнер. • Балансировщик нагрузки может реагировать на неработоспособное приложение путем перенаправления трафика от неисправного экземпляра к работающему экземпляру. • Использование памяти, диска и других ресурсов физического сервера можно отслеживать с точки зрения работоспособности. • Проверки работоспособности позволяют проверять зависимости приложения, такие как базы данных и конечные точки внешних служб, чтобы убедиться в доступности и нормальной работе. https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/health-checks
  20. 20. Swagger https://swagger.io
  21. 21. RestSharp Простой и удобный инструмент для работы с REST API. http://restsharp.org
  22. 22. X.Web.MetaExtractor Библиотека для получения мета-информации с веб-страницы. https://github.com/dncuug/X.Web.MetaExtractor
  23. 23. Наши ресурсы devdigest//netcore devdigest//azure devdigest//datascience devdigest//xamarin devdigest//ua events https://devdigest.today/content/platform
  24. 24. Спасибо за внимание!

×