Successfully reported this slideshow.

Разработка high load системы на .NET Core

0

Share

1 of 24
1 of 24

Разработка high load системы на .NET Core

0

Share

Download to read offline

- Почему мы выбрали .NET Core качестве основной платформы для нашего продукта
- команда мечты от разработчиков Java, которая начала писать на .NET Core;
- мониторинг системы, поиск запросов и другие диагностические задачи.

- Почему мы выбрали .NET Core качестве основной платформы для нашего продукта
- команда мечты от разработчиков Java, которая начала писать на .NET Core;
- мониторинг системы, поиск запросов и другие диагностические задачи.

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Related Audiobooks

Free with a 14 day trial from Scribd

See all

Разработка high load системы на .NET Core

  1. 1. Разработка high load системы на .NET Core: что нам пришлось пережить Андрей Губский
  2. 2. О себе  В коммерческой разработке с 2008 года;  Microsoft MVP с 2017 года;  Занимаюсь ИТ консалтингом, разработкой и проектированием информационных систем и решений;  PhD;  Автор проекта //devdigest
  3. 3. О продукте
  4. 4. Чем я занимаюсь сейчас? vi stories – система контекстной рекомендации видео. Сверхзадача: • подбор видео наиболее точно соответствующего контенту страницы Требования к системе: • минимальное время для анализа страницы, • минимальное время для подбора видео.
  5. 5. Что сегодня будет?
  6. 6. Что такое высоконагруженная система?
  7. 7. Проблема №0 Как из джавистов сделать дотнетчиков так, чтобы они этого не заметили
  8. 8. Привычные инструменты • Visual Studio • Visual Studio for mac • Visual Studio Code • Rider • Mono Develop
  9. 9. Привычные абстрактные фабрики
  10. 10. Проблема №1 Выбор стека и определение приоритетов разработки
  11. 11. Что было и что стало MSMQ
  12. 12. Проблема №2 Консистентность информации внутри системы, и почему иммутабельность – это хорошо
  13. 13. Иммутабельность – это хорошо • Нет неожиданных побочных эффектов по ходу выполнения кода – никто не изменит то, что не должно быть изменено. Не нужно держать в голове куски системы, в которых объект мог быть изменен; • Иммутабельные коллекции потокобезопасны; • Концепция иммутабельности является одной из концепций ФП и позволяет более четко описывать логику процессов и проще тестировать код.
  14. 14. System.Collections.Immutable • ImmutableArray • ImmutableArray<T> • ImmutableDictionary • ImmutableDictionary<TKey,TValue> • ImmutableHashSet • ImmutableHashSet<T> • ImmutableList • ImmutableList<T> • ImmutableQueue • ImmutableQueue<T> • ImmutableSortedDictionary • ImmutableSortedDictionary<TKey,TValue> • ImmutableSortedSet • ImmutableSortedSet<T> • ImmutableStack • ImmutableStack<T>
  15. 15. Проблема №3 Работа с пиковыми нагрузками
  16. 16. Service 1 Service 2 Service 3 Probe 1A Probe 2C Probe 3AProbe 1B Probe 2B Probe 2A Spectator Высоконагруженная система построенная на базе микросервисной архитектуры Уведомление об изменении состояния системы Запрос Spectator к датчику о состоянии отслеживаемой метрики системы Проверка датчиком метрики системы Как работает X.Spectator Probe – отвечает за проверку состояния одного из показателей системы; Spectator– опрашивает один, или несколькими датчиками. Изменяет свое состояние в зависимости от текущих показаний датчиков; State calculator – на основе журнала метрик вычисляет текущее состояние. State journal – набор показателей каждого из датчиков с указанием времени опроса.
  17. 17. X.Spectator GitHub: https://github.com/ernado-x/X.Spectator Хабр: https://habr.com/en/post/459092 Проект с открытым исходным кодом.
  18. 18. Проблема №4 Отладка и логирование
  19. 19. Correlation ID позволяет проследить весь жизненный цикл запроса
  20. 20. Проблема №5 Технический долг
  21. 21. Вопросы?
  22. 22. Telegram: @dncuug Платформа: bit.ly/dev_digest Наш чат: var chat = new Chat(); Наши ресурсы
  23. 23. Спасибо за внимание!

×