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

Andrew Gubskiy
Andrew GubskiySoftware Architect um Outbrain
Happy birthday, IT KPI!
Немного о себе
 В коммерческой разработке с 2008 года
 Закончил КПИ (2 раза)
 Microsoft MVP
 Занимаюсь ИТ консалтингом, разработкой
и проектированием информационных
систем и решений
Микросервисы
в .NET Core
27 июня 2016 началась экспансия .NET Core
Windows
macOS
Linux
За что же мы любим .NET?
- Деcктопные приложения (Hello, .NET Core 3.0!)
- Веб-приложения
- Облачные сервисы (сервисы, лямбды, etc.)
- Мобильная разработка (Xamarin)
- IoT
- Machine Learning (ML.NET)
- Квантовые вычисления (!!!)
И все это с бесшовной интеграций в одном проекте!
Q#
Инструменты для разработки на любой
платформе
• Rider
• Visual Studio Code (самый популярный редактор среди Go-разработчиков в Google)
• Visual Studio for Mac
А за что мы любим микросервисы?
• Жесткие границы модулей. Четкая модульная структура,
что крайне удобно для больших команд.
• Независимое развертывание. Микросервисы проще в
развертывании, и поскольку они автономны, меньше
шансов вызвать сбои системы, когда один из них работает
некорректно.
• Технологическое разнообразие. С микросервисами легко
смешивать языки программирования, среды разработки и
технологии хранения данных.
Как мы готовим микросервисы в vi stories
Что такое vi stories?
vi stories – система контекстной рекомендации
видео.
Сверхзадача:
• анализ контента страницы и подбор видео
наиболее точно соответствующего контенту
Требования к системе:
• минимальное время для анализа страницы,
• минимальное время для подбора видео.
Наш стек
 .NET Core (Services)
 ASP.NET Core (API)
 MariaDB
 Kubernetes
 RabbitMQ
 Nginx
 AWS
Контейнеризация и оркестрация
Kubernetes и облака
• Digital Ocean Kubernetes
• Azure Kubernetes Service (AKS)
• Amazon EKS - Managed
Kubernetes Service
Как происходит
деплой
 Код
 Репозиторий
 Build сервер
 Docker репозиторий
 Kubernetes
Как взаимодействуют микросервисы
HTTP запросы
Очереди
База данных (*)
Инструменты
App Metrics
Позволяет собирать метрики со всех сервисов.
Далее все передается в:
Influx
Graphana
https://www.app-metrics.io
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
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
Health checks в ASP.NET Core
Health checks позволяют:
• Использовать их вместе с оркестраторами контейнеров и подсистемами балансировки
нагрузки, чтобы проверять состояние приложения. Например, оркестратор контейнеров
может реагировать на неуспешную проверку работоспособности, остановив
последовательное развертывание или перезапустив контейнер.
• Балансировщик нагрузки может реагировать на неработоспособное приложение путем
перенаправления трафика от неисправного экземпляра к работающему экземпляру.
• Использование памяти, диска и других ресурсов физического сервера можно отслеживать с
точки зрения работоспособности.
• Проверки работоспособности позволяют проверять зависимости приложения, такие как
базы данных и конечные точки внешних служб, чтобы убедиться в доступности и
нормальной работе.
https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/health-checks
Swagger
https://swagger.io
RestSharp
Простой и удобный инструмент для работы с REST API.
http://restsharp.org
X.Web.MetaExtractor
Библиотека для получения мета-информации с веб-страницы.
https://github.com/dncuug/X.Web.MetaExtractor
Наши ресурсы
devdigest//netcore
devdigest//azure
devdigest//datascience
devdigest//xamarin
devdigest//ua events
https://devdigest.today/content/platform
Спасибо за внимание!
1 von 24

Recomendados

.NET Core в современных проектах von
.NET Core в современных проектах.NET Core в современных проектах
.NET Core в современных проектахAndrew Gubskiy
388 views25 Folien
Разработка high load системы на .NET Core von
Разработка high load системы на .NET CoreРазработка high load системы на .NET Core
Разработка high load системы на .NET CoreAndrew Gubskiy
1.6K views24 Folien
vi stories: миграция на .NET Core von
vi stories: миграция на .NET Corevi stories: миграция на .NET Core
vi stories: миграция на .NET CoreAndrew Gubskiy
563 views15 Folien
Сергей Орлов von
Сергей ОрловСергей Орлов
Сергей ОрловCodeFest
318 views28 Folien
Александр Белоцерковский von
Александр БелоцерковскийАлександр Белоцерковский
Александр БелоцерковскийCodeFest
210 views23 Folien
CD&Azure von
CD&AzureCD&Azure
CD&AzureOleg Chorny
1.5K views17 Folien

Más contenido relacionado

Was ist angesagt?

Sergey Gavruk - WebMatrix von
Sergey Gavruk - WebMatrixSergey Gavruk - WebMatrix
Sergey Gavruk - WebMatrixbeloslab
323 views14 Folien
Максим Пугачев von
Максим ПугачевМаксим Пугачев
Максим ПугачевCodeFest
248 views35 Folien
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при... von
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...Ontico
2.9K views58 Folien
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance" von
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"Fwdays
518 views11 Folien
Андрей Чебукин "Построение успешных API" von
Андрей Чебукин "Построение успешных API"Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"Fwdays
853 views51 Folien
Эксплуатация или искусство ухода за интернет проектами (Александр Титов) von
Эксплуатация или искусство ухода за интернет проектами (Александр Титов)Эксплуатация или искусство ухода за интернет проектами (Александр Титов)
Эксплуатация или искусство ухода за интернет проектами (Александр Титов)Ontico
360 views12 Folien

Was ist angesagt?(20)

Sergey Gavruk - WebMatrix von beloslab
Sergey Gavruk - WebMatrixSergey Gavruk - WebMatrix
Sergey Gavruk - WebMatrix
beloslab323 views
Максим Пугачев von CodeFest
Максим ПугачевМаксим Пугачев
Максим Пугачев
CodeFest248 views
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при... von Ontico
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Ontico2.9K views
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance" von Fwdays
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Fwdays518 views
Андрей Чебукин "Построение успешных API" von Fwdays
Андрей Чебукин "Построение успешных API"Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"
Fwdays853 views
Эксплуатация или искусство ухода за интернет проектами (Александр Титов) von Ontico
Эксплуатация или искусство ухода за интернет проектами (Александр Титов)Эксплуатация или искусство ухода за интернет проектами (Александр Титов)
Эксплуатация или искусство ухода за интернет проектами (Александр Титов)
Ontico360 views
Даниил Соколюк "ReactJS.NET — опыт рендеринга на сервере" von MskDotNet Community
 Даниил Соколюк "ReactJS.NET — опыт рендеринга на сервере" Даниил Соколюк "ReactJS.NET — опыт рендеринга на сервере"
Даниил Соколюк "ReactJS.NET — опыт рендеринга на сервере"
Sergey Gavruk - Mix11 von beloslab
Sergey Gavruk - Mix11Sergey Gavruk - Mix11
Sergey Gavruk - Mix11
beloslab314 views
Как за $5 и несколько вечеров сделать интегрированную новостную платформу von Andrew Gubskiy
Как за $5 и несколько вечеров сделать интегрированную новостную платформуКак за $5 и несколько вечеров сделать интегрированную новостную платформу
Как за $5 и несколько вечеров сделать интегрированную новостную платформу
Andrew Gubskiy1.6K views
Демонстрация возможностей по автоматизации ЦОД von Cisco Russia
Демонстрация возможностей по автоматизации ЦОДДемонстрация возможностей по автоматизации ЦОД
Демонстрация возможностей по автоматизации ЦОД
Cisco Russia 297 views
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт... von Ontico
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Ontico980 views
CGVictor - Azure (Ажурные перспективы - СПб, INETA, 22.12.2009) von cgvictor
CGVictor - Azure (Ажурные перспективы - СПб, INETA, 22.12.2009)CGVictor - Azure (Ажурные перспективы - СПб, INETA, 22.12.2009)
CGVictor - Azure (Ажурные перспективы - СПб, INETA, 22.12.2009)
cgvictor323 views
Open source technologies in Microsoft cloud - MS SWIT 2014 von Alexey Bokov
Open source technologies in Microsoft cloud - MS SWIT 2014Open source technologies in Microsoft cloud - MS SWIT 2014
Open source technologies in Microsoft cloud - MS SWIT 2014
Alexey Bokov748 views
Построение частного облака с продуктами Cisco Cloud Automation von Cisco Russia
Построение частного облака с продуктами Cisco Cloud AutomationПостроение частного облака с продуктами Cisco Cloud Automation
Построение частного облака с продуктами Cisco Cloud Automation
Cisco Russia 219 views
Эволюция корпоративных Web приложений. Молотков Андрей D2D Just.NET von Dev2Dev
Эволюция корпоративных Web приложений. Молотков Андрей D2D Just.NETЭволюция корпоративных Web приложений. Молотков Андрей D2D Just.NET
Эволюция корпоративных Web приложений. Молотков Андрей D2D Just.NET
Dev2Dev522 views
Микросервисный фронтенд von Viacheslav Slinko
Микросервисный фронтендМикросервисный фронтенд
Микросервисный фронтенд
Viacheslav Slinko152 views
1С-Битрикс: Управление сайтом 12.0. Технологически часть von CIT TROYA
1С-Битрикс: Управление сайтом 12.0. Технологически часть1С-Битрикс: Управление сайтом 12.0. Технологически часть
1С-Битрикс: Управление сайтом 12.0. Технологически часть
CIT TROYA601 views
Гибридные облака без головной боли: истории успеха КРОК von Cisco Russia
Гибридные облака без головной боли: истории успеха КРОКГибридные облака без головной боли: истории успеха КРОК
Гибридные облака без головной боли: истории успеха КРОК
Cisco Russia 200 views
Cisco Hyperflex von КРОК
Cisco HyperflexCisco Hyperflex
Cisco Hyperflex
КРОК538 views

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

AiCare - self-organizing device management service von
AiCare - self-organizing device management serviceAiCare - self-organizing device management service
AiCare - self-organizing device management serviceКварта Технологии
451 views23 Folien
AiCare - самоорганизующийся сервис управления von
AiCare - самоорганизующийся сервис управленияAiCare - самоорганизующийся сервис управления
AiCare - самоорганизующийся сервис управленияКварта Технологии
213 views23 Folien
Онлайн миграция контейнеров. Взгляд изнутри von
Онлайн миграция контейнеров. Взгляд изнутриОнлайн миграция контейнеров. Взгляд изнутри
Онлайн миграция контейнеров. Взгляд изнутриJelastic Multi-Cloud PaaS
1.1K views25 Folien
Jelastic для разработчиков ПО von
Jelastic для разработчиков ПОJelastic для разработчиков ПО
Jelastic для разработчиков ПОDmitry Lazarenko
585 views18 Folien
Microsoft Azure - введение в основные сервисы для разработки и инфраструктуры... von
Microsoft Azure - введение в основные сервисы для разработки и инфраструктуры...Microsoft Azure - введение в основные сервисы для разработки и инфраструктуры...
Microsoft Azure - введение в основные сервисы для разработки и инфраструктуры...Microsoft
990 views27 Folien
Desktop app based on node js and html5 von
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5Provectus
765 views42 Folien

Similar a Микросервисы в .NET Core(20)

Онлайн миграция контейнеров. Взгляд изнутри von Jelastic Multi-Cloud PaaS
Онлайн миграция контейнеров. Взгляд изнутриОнлайн миграция контейнеров. Взгляд изнутри
Онлайн миграция контейнеров. Взгляд изнутри
Jelastic для разработчиков ПО von Dmitry Lazarenko
Jelastic для разработчиков ПОJelastic для разработчиков ПО
Jelastic для разработчиков ПО
Dmitry Lazarenko585 views
Microsoft Azure - введение в основные сервисы для разработки и инфраструктуры... von Microsoft
Microsoft Azure - введение в основные сервисы для разработки и инфраструктуры...Microsoft Azure - введение в основные сервисы для разработки и инфраструктуры...
Microsoft Azure - введение в основные сервисы для разработки и инфраструктуры...
Microsoft990 views
Desktop app based on node js and html5 von Provectus
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5
Provectus765 views
Roman Zdebskiy - Windows Azure von Andrew Mayorov
Roman Zdebskiy - Windows AzureRoman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows Azure
Andrew Mayorov316 views
.NET core в современных проектах, Андрей Губский von Sigma Software
.NET core в современных проектах, Андрей Губский.NET core в современных проектах, Андрей Губский
.NET core в современных проектах, Андрей Губский
Sigma Software175 views
Андрей Завадский "Бессерверная архитектура" von Fwdays
 Андрей Завадский "Бессерверная архитектура" Андрей Завадский "Бессерверная архитектура"
Андрей Завадский "Бессерверная архитектура"
Fwdays730 views
MSDevCon 2016 DevOps Impact on Architecture von Sergey Baranov
MSDevCon 2016 DevOps Impact on ArchitectureMSDevCon 2016 DevOps Impact on Architecture
MSDevCon 2016 DevOps Impact on Architecture
Sergey Baranov544 views
Microsoft reConnect von Microsoft
Microsoft reConnect Microsoft reConnect
Microsoft reConnect
Microsoft499 views
4 особенности платформы microsoft .net для разработки корпоративных систем von KewpaN
4 особенности платформы microsoft .net для разработки корпоративных систем4 особенности платформы microsoft .net для разработки корпоративных систем
4 особенности платформы microsoft .net для разработки корпоративных систем
KewpaN1.4K views
Видеозвонки и шаринг экрана в мобильном приложении von Voximplant
Видеозвонки и шаринг экрана в мобильном приложенииВидеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложении
Voximplant400 views
10 компонентные и офисные приложения на платформе microsoft von KewpaN
10 компонентные и офисные приложения на платформе microsoft10 компонентные и офисные приложения на платформе microsoft
10 компонентные и офисные приложения на платформе microsoft
KewpaN287 views
Микросервисная архитектура на базе CoreOS и Kubernetes von Denis Izmaylov
Микросервисная архитектура на базе CoreOS и KubernetesМикросервисная архитектура на базе CoreOS и Kubernetes
Микросервисная архитектура на базе CoreOS и Kubernetes
Denis Izmaylov1.9K views
Как сделать интернет-сайт на SharePoint и не передумать на полпути von Andrew Mayorov
Как сделать интернет-сайт на SharePoint и не передумать на полпутиКак сделать интернет-сайт на SharePoint и не передумать на полпути
Как сделать интернет-сайт на SharePoint и не передумать на полпути
Andrew Mayorov802 views
Middleware von megakott
MiddlewareMiddleware
Middleware
megakott1.5K views

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

  • 2. Немного о себе  В коммерческой разработке с 2008 года  Закончил КПИ (2 раза)  Microsoft MVP  Занимаюсь ИТ консалтингом, разработкой и проектированием информационных систем и решений
  • 4. 27 июня 2016 началась экспансия .NET Core Windows macOS Linux
  • 5. За что же мы любим .NET? - Деcктопные приложения (Hello, .NET Core 3.0!) - Веб-приложения - Облачные сервисы (сервисы, лямбды, etc.) - Мобильная разработка (Xamarin) - IoT - Machine Learning (ML.NET) - Квантовые вычисления (!!!) И все это с бесшовной интеграций в одном проекте! Q#
  • 6. Инструменты для разработки на любой платформе • Rider • Visual Studio Code (самый популярный редактор среди Go-разработчиков в Google) • Visual Studio for Mac
  • 7. А за что мы любим микросервисы? • Жесткие границы модулей. Четкая модульная структура, что крайне удобно для больших команд. • Независимое развертывание. Микросервисы проще в развертывании, и поскольку они автономны, меньше шансов вызвать сбои системы, когда один из них работает некорректно. • Технологическое разнообразие. С микросервисами легко смешивать языки программирования, среды разработки и технологии хранения данных.
  • 8. Как мы готовим микросервисы в vi stories
  • 9. Что такое vi stories? vi stories – система контекстной рекомендации видео. Сверхзадача: • анализ контента страницы и подбор видео наиболее точно соответствующего контенту Требования к системе: • минимальное время для анализа страницы, • минимальное время для подбора видео.
  • 10. Наш стек  .NET Core (Services)  ASP.NET Core (API)  MariaDB  Kubernetes  RabbitMQ  Nginx  AWS
  • 12. Kubernetes и облака • Digital Ocean Kubernetes • Azure Kubernetes Service (AKS) • Amazon EKS - Managed Kubernetes Service
  • 13. Как происходит деплой  Код  Репозиторий  Build сервер  Docker репозиторий  Kubernetes
  • 14. Как взаимодействуют микросервисы HTTP запросы Очереди База данных (*)
  • 16. App Metrics Позволяет собирать метрики со всех сервисов. Далее все передается в: Influx Graphana https://www.app-metrics.io
  • 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. 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. Health checks в ASP.NET Core Health checks позволяют: • Использовать их вместе с оркестраторами контейнеров и подсистемами балансировки нагрузки, чтобы проверять состояние приложения. Например, оркестратор контейнеров может реагировать на неуспешную проверку работоспособности, остановив последовательное развертывание или перезапустив контейнер. • Балансировщик нагрузки может реагировать на неработоспособное приложение путем перенаправления трафика от неисправного экземпляра к работающему экземпляру. • Использование памяти, диска и других ресурсов физического сервера можно отслеживать с точки зрения работоспособности. • Проверки работоспособности позволяют проверять зависимости приложения, такие как базы данных и конечные точки внешних служб, чтобы убедиться в доступности и нормальной работе. https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/health-checks
  • 21. RestSharp Простой и удобный инструмент для работы с REST API. http://restsharp.org
  • 22. X.Web.MetaExtractor Библиотека для получения мета-информации с веб-страницы. https://github.com/dncuug/X.Web.MetaExtractor