SlideShare a Scribd company logo
1 of 37
01 TIKTOKCOACH.RU
Высокопроизводительная
система без дополнительных
затрат
HWdTech.DS
02 TIKTOKCOACH.RU
Докладчик
Тюменцев Евгений
Разработка высоконагруженных, многопоточных, кросс-
платформенных приложений
Руководство отделом разработки ПО в 40 человек
Тех. директор ИТ-компании в 70 человек
Управляющий партнер стартапа “Тик-Так Коуч”
В свободное время - преподаватель
03 TIKTOKCOACH.COM
Многопоточность?
Это Вам не это!
Проблема
04 TIKTOKCOACH.COM
Нужны спецы
05 TIKTOKCOACH.RU
Атомарность
x = y;
x = x + 1;
06 TIKTOKCOACH.RU
Скучно и нудно
07 TIKTOKCOACH.RU
Есть идея
08 TIKTOKCOACH.RU
Вдохновитель
09 TIKTOKCOACH.RU
Благодарности
10 TIKTOKCOACH.RU
Цель
Как есть
Архитектура
Взаимодействие
Измеримость
Оптимизация
11 TIKTOKCOACH.RU
Вычислимость
Вычислимость
 Машина Тьюринга
 Машина Поста
 Λ-исчисление Черча
12 TIKTOKCOACH.RU
Как все начиналось?
1970-е
 Искусственный интеллект
 Будущее за многопроцессорными
системами
 Проект 5-е поколение
13 TIKTOKCOACH.RU
Акторы
Carl Hewitt,
Peter Bishop,
Richard Steiger
A Universal Modular
ACTOR
Formalism for Artificial
Intelligence
1973 Carl Hewitt
14 TIKTOKCOACH.RU
Архитектура
15 TIKTOKCOACH.RU
Модель акторов
Актор – вычислительная сущность
• Отправить конечное число сообщений
другим акторам
• Создать конечное число акторов
• Выбрать поведение для приема следующего
сообщения
16 TIKTOKCOACH.RU
В чем разница?
Синхронизация Акторы
17 TIKTOKCOACH.RU
Fog cutter
Gul A. Agha, Karmani 2011
Распространенная
архитектура для
вычислительных агентов
18 TIKTOKCOACH.RU
Общая схема
19 TIKTOKCOACH.RU
Message Bus
• MessageBus.Send(message);
• MessageBus.Join(job);
20 TIKTOKCOACH.RU
Job
public class EchoJob : IJob
{
[ChannelEndpointHandler("Echo")]
public void Handle(IMessage message)
{
MessageBus.TrySendSuccessResponse(message);
}
}
21 TIKTOKCOACH.RU
Синхронная обработка
Внутренний
запрос
Формирование
ответа
22 TIKTOKCOACH.RU
Асинхронная обработка
[ChannelEndpointHanlder(ChannelsLoaderLocal,
MessageType="Messages.Loader.Load")]
public void LoadMessageHandler(IMessage message)
{
// …
MessageBus.Send(
MessagesFactory.Instance.CreateMessage(“Messages.Config.Get”,ChannelsLoaderLocal)
);
}
[ChannelEndpointHanlder(ChannelsLoaderLocal,
MessageType = "Messages.Config.GetResponse")]
public void ConfigGetResponseHandler(IMessage response)
{
// …
}
23 TIKTOKCOACH.RU
Взаимодействие
24 TIKTOKCOACH.RU
ЖЦ данных
Ввод
Предварительная
обработка
Подготовка к
выдаче
Показ результатов
Запрос на
внесение
данных
Запрос на
выдачу
данных
Ответ на
запрос о
внесении
данных
Ответ на
запрос о
выдаче
данных
Благоприятный
момент времени
25 TIKTOKCOACH.RU
Борьба за надежность
Если Ваша система
работает только в 1%
случаев, то как ее
превратить в систему
со степенью
надежности 99%?
26 TIKTOKCOACH.RU
Все просто
P(успеха) = 0.01, => P(1 неудачи) = 0.99
P(n неудач) = P(1 неудачи)^n
459 попыток
27 TIKTOKCOACH.RU
Message Map
Job1 Job2 … JobN
28 TIKTOKCOACH.RU
Check Point
CP1 Job … CPN
Ответ на
входящий
запрос
29 TIKTOKCOACH.RU
Измеримость
30 TIKTOKCOACH.RU
Карты Шухарта
1923 г. AT&T
Ламповые усилители
сигнала
Количество аварийных
бригад и транстпорта?
Bell Labs 1924 г.
Уолтер Шухарт
32 TIKTOKCOACH.RU
Пример карты Шухарта
32 TIKTOKCOACH.RU
Document Storage
 Документ в виде JSON
 Full Text Search
 Filters
 Ranges
 Tags
 Orders
33 TIKTOKCOACH.RU
Scheduler
 Последовательности
 Стратегии обработки ошибок
34 TIKTOKCOACH.RU
Библиотека Job’ов
 Публикация
 Загрузка job’ов по требованию
35 TIKTOKCOACH.RU
Сервис конфигураций
 Конфигурация – json
 Внести изменения –
применить конфигурацию
36 TIKTOKCOACH.RU
Задачи
• Workfow
• Зависимости между Job’ами
• Упростить написание тестов
37 TIKTOKCOACH.RU
Спасибо
Тюменцев Евгений
Звоните: +7 913 150 22 04
Пишите: etyumentcev@tiktokcoach.ru
Читайте: @tiktokcoach
tiktokcoach.ru

More Related Content

Similar to высокопроизводиетльные системы без доп затрат

Moscow js node.js enterprise development
Moscow js node.js enterprise developmentMoscow js node.js enterprise development
Moscow js node.js enterprise developmentPavel Tiunov
 
2014-03-01 02 Евгений Тюменцев. Почему буксует тайм-менеджмент
2014-03-01 02 Евгений Тюменцев. Почему буксует тайм-менеджмент2014-03-01 02 Евгений Тюменцев. Почему буксует тайм-менеджмент
2014-03-01 02 Евгений Тюменцев. Почему буксует тайм-менеджментОмские ИТ-субботники
 
почему буксует тайм менеджмент
почему буксует тайм менеджментпочему буксует тайм менеджмент
почему буксует тайм менеджментetyumentcev
 
Стратегии роста ведущих игроков коммерческого рынка медицинских услуг: взгляд...
Стратегии роста ведущих игроков коммерческого рынка медицинских услуг: взгляд...Стратегии роста ведущих игроков коммерческого рынка медицинских услуг: взгляд...
Стратегии роста ведущих игроков коммерческого рынка медицинских услуг: взгляд...Владислав Шерстобоев
 
Рынок Drupal (Александр Воинов)
Рынок Drupal (Александр Воинов)Рынок Drupal (Александр Воинов)
Рынок Drupal (Александр Воинов)DrupalYug
 
Александр Воинов. Power of Drupal market
Александр Воинов. Power of Drupal marketАлександр Воинов. Power of Drupal market
Александр Воинов. Power of Drupal marketi20 Group
 
Нагрузочное тестирование как способ планирования ИТ-бюджета
Нагрузочное тестирование как способ планирования ИТ-бюджетаНагрузочное тестирование как способ планирования ИТ-бюджета
Нагрузочное тестирование как способ планирования ИТ-бюджетаSQALab
 
Эволюция корпоративных Web приложений. Молотков Андрей D2D Just.NET
Эволюция корпоративных Web приложений. Молотков Андрей D2D Just.NETЭволюция корпоративных Web приложений. Молотков Андрей D2D Just.NET
Эволюция корпоративных Web приложений. Молотков Андрей D2D Just.NETDev2Dev
 
Jbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot StarterJbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot StarterAleksandr Tarasov
 
Что нибудь про бизнес в интернет (McCann Farm)
Что нибудь про бизнес в интернет (McCann Farm)Что нибудь про бизнес в интернет (McCann Farm)
Что нибудь про бизнес в интернет (McCann Farm)Alex Lomizov
 
Передовые технологии и решения в области интеграции экономических ситуационны...
Передовые технологии и решения в области интеграции экономических ситуационны...Передовые технологии и решения в области интеграции экономических ситуационны...
Передовые технологии и решения в области интеграции экономических ситуационны...Лейла А
 
Успешный проект Big data - рекомендации от практика
Успешный проект Big data - рекомендации от практикаУспешный проект Big data - рекомендации от практика
Успешный проект Big data - рекомендации от практикаYury Petrov
 
Философия Application Security
Философия Application SecurityФилософия Application Security
Философия Application SecurityVladimir Kochetkov
 

Similar to высокопроизводиетльные системы без доп затрат (15)

Moscow js node.js enterprise development
Moscow js node.js enterprise developmentMoscow js node.js enterprise development
Moscow js node.js enterprise development
 
2014-03-01 02 Евгений Тюменцев. Почему буксует тайм-менеджмент
2014-03-01 02 Евгений Тюменцев. Почему буксует тайм-менеджмент2014-03-01 02 Евгений Тюменцев. Почему буксует тайм-менеджмент
2014-03-01 02 Евгений Тюменцев. Почему буксует тайм-менеджмент
 
почему буксует тайм менеджмент
почему буксует тайм менеджментпочему буксует тайм менеджмент
почему буксует тайм менеджмент
 
Стратегии роста ведущих игроков коммерческого рынка медицинских услуг: взгляд...
Стратегии роста ведущих игроков коммерческого рынка медицинских услуг: взгляд...Стратегии роста ведущих игроков коммерческого рынка медицинских услуг: взгляд...
Стратегии роста ведущих игроков коммерческого рынка медицинских услуг: взгляд...
 
Рынок Drupal (Александр Воинов)
Рынок Drupal (Александр Воинов)Рынок Drupal (Александр Воинов)
Рынок Drupal (Александр Воинов)
 
Александр Воинов. Power of Drupal market
Александр Воинов. Power of Drupal marketАлександр Воинов. Power of Drupal market
Александр Воинов. Power of Drupal market
 
Нагрузочное тестирование как способ планирования ИТ-бюджета
Нагрузочное тестирование как способ планирования ИТ-бюджетаНагрузочное тестирование как способ планирования ИТ-бюджета
Нагрузочное тестирование как способ планирования ИТ-бюджета
 
Эволюция корпоративных Web приложений. Молотков Андрей D2D Just.NET
Эволюция корпоративных Web приложений. Молотков Андрей D2D Just.NETЭволюция корпоративных Web приложений. Молотков Андрей D2D Just.NET
Эволюция корпоративных Web приложений. Молотков Андрей D2D Just.NET
 
Jbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot StarterJbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot Starter
 
Что нибудь про бизнес в интернет (McCann Farm)
Что нибудь про бизнес в интернет (McCann Farm)Что нибудь про бизнес в интернет (McCann Farm)
Что нибудь про бизнес в интернет (McCann Farm)
 
Передовые технологии и решения в области интеграции экономических ситуационны...
Передовые технологии и решения в области интеграции экономических ситуационны...Передовые технологии и решения в области интеграции экономических ситуационны...
Передовые технологии и решения в области интеграции экономических ситуационны...
 
Успешный проект Big data - рекомендации от практика
Успешный проект Big data - рекомендации от практикаУспешный проект Big data - рекомендации от практика
Успешный проект Big data - рекомендации от практика
 
Coding like a sex
Coding like a sexCoding like a sex
Coding like a sex
 
трпо
трпотрпо
трпо
 
Философия Application Security
Философия Application SecurityФилософия Application Security
Философия Application Security
 

More from etyumentcev

Как жить в согласии с SOLID?
Как жить в согласии с SOLID?Как жить в согласии с SOLID?
Как жить в согласии с SOLID?etyumentcev
 
Программирование глазами математика
Программирование глазами математикаПрограммирование глазами математика
Программирование глазами математикаetyumentcev
 
Большие данные: как могут навредить и ка могут помочь?
Большие данные: как могут навредить и ка могут помочь?Большие данные: как могут навредить и ка могут помочь?
Большие данные: как могут навредить и ка могут помочь?etyumentcev
 
математическое обоснование Solid принципов. Конференция dotnetconf (Челябинск...
математическое обоснование Solid принципов. Конференция dotnetconf (Челябинск...математическое обоснование Solid принципов. Конференция dotnetconf (Челябинск...
математическое обоснование Solid принципов. Конференция dotnetconf (Челябинск...etyumentcev
 
матлогика для программистов
матлогика для программистовматлогика для программистов
матлогика для программистовetyumentcev
 
Математическое обоснование S.O.L.I.D принципов
Математическое обоснование S.O.L.I.D принциповМатематическое обоснование S.O.L.I.D принципов
Математическое обоснование S.O.L.I.D принциповetyumentcev
 
Как 7 студентов и филолог делали сложный проект
Как 7 студентов и филолог делали сложный проектКак 7 студентов и филолог делали сложный проект
Как 7 студентов и филолог делали сложный проектetyumentcev
 
разработка серверов и серверных приложений лекция №4
разработка серверов и серверных приложений лекция №4разработка серверов и серверных приложений лекция №4
разработка серверов и серверных приложений лекция №4etyumentcev
 
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3etyumentcev
 
разработка серверов и серверных приложений лекция №2
разработка серверов и серверных приложений лекция №2разработка серверов и серверных приложений лекция №2
разработка серверов и серверных приложений лекция №2etyumentcev
 
разработка серверов и серверных приложений лекция №1
разработка серверов и серверных приложений лекция №1разработка серверов и серверных приложений лекция №1
разработка серверов и серверных приложений лекция №1etyumentcev
 
зачем нужны системы управления проектами
зачем нужны системы управления проектамизачем нужны системы управления проектами
зачем нужны системы управления проектамиetyumentcev
 
введение в Sql
введение в Sqlвведение в Sql
введение в Sqletyumentcev
 
ук 03.011.01 2011
ук 03.011.01 2011ук 03.011.01 2011
ук 03.011.01 2011etyumentcev
 
ук 03.010.01 2011
ук 03.010.01 2011ук 03.010.01 2011
ук 03.010.01 2011etyumentcev
 
ук 03.009.01 2011
ук 03.009.01 2011ук 03.009.01 2011
ук 03.009.01 2011etyumentcev
 
ук 03.007.02 2011
ук 03.007.02 2011ук 03.007.02 2011
ук 03.007.02 2011etyumentcev
 
ук 03.006.02 2011
ук 03.006.02 2011ук 03.006.02 2011
ук 03.006.02 2011etyumentcev
 
ук 03.005.03 2011
ук 03.005.03 2011ук 03.005.03 2011
ук 03.005.03 2011etyumentcev
 
ук 03.003.01 2011
ук 03.003.01 2011ук 03.003.01 2011
ук 03.003.01 2011etyumentcev
 

More from etyumentcev (20)

Как жить в согласии с SOLID?
Как жить в согласии с SOLID?Как жить в согласии с SOLID?
Как жить в согласии с SOLID?
 
Программирование глазами математика
Программирование глазами математикаПрограммирование глазами математика
Программирование глазами математика
 
Большие данные: как могут навредить и ка могут помочь?
Большие данные: как могут навредить и ка могут помочь?Большие данные: как могут навредить и ка могут помочь?
Большие данные: как могут навредить и ка могут помочь?
 
математическое обоснование Solid принципов. Конференция dotnetconf (Челябинск...
математическое обоснование Solid принципов. Конференция dotnetconf (Челябинск...математическое обоснование Solid принципов. Конференция dotnetconf (Челябинск...
математическое обоснование Solid принципов. Конференция dotnetconf (Челябинск...
 
матлогика для программистов
матлогика для программистовматлогика для программистов
матлогика для программистов
 
Математическое обоснование S.O.L.I.D принципов
Математическое обоснование S.O.L.I.D принциповМатематическое обоснование S.O.L.I.D принципов
Математическое обоснование S.O.L.I.D принципов
 
Как 7 студентов и филолог делали сложный проект
Как 7 студентов и филолог делали сложный проектКак 7 студентов и филолог делали сложный проект
Как 7 студентов и филолог делали сложный проект
 
разработка серверов и серверных приложений лекция №4
разработка серверов и серверных приложений лекция №4разработка серверов и серверных приложений лекция №4
разработка серверов и серверных приложений лекция №4
 
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3
 
разработка серверов и серверных приложений лекция №2
разработка серверов и серверных приложений лекция №2разработка серверов и серверных приложений лекция №2
разработка серверов и серверных приложений лекция №2
 
разработка серверов и серверных приложений лекция №1
разработка серверов и серверных приложений лекция №1разработка серверов и серверных приложений лекция №1
разработка серверов и серверных приложений лекция №1
 
зачем нужны системы управления проектами
зачем нужны системы управления проектамизачем нужны системы управления проектами
зачем нужны системы управления проектами
 
введение в Sql
введение в Sqlвведение в Sql
введение в Sql
 
ук 03.011.01 2011
ук 03.011.01 2011ук 03.011.01 2011
ук 03.011.01 2011
 
ук 03.010.01 2011
ук 03.010.01 2011ук 03.010.01 2011
ук 03.010.01 2011
 
ук 03.009.01 2011
ук 03.009.01 2011ук 03.009.01 2011
ук 03.009.01 2011
 
ук 03.007.02 2011
ук 03.007.02 2011ук 03.007.02 2011
ук 03.007.02 2011
 
ук 03.006.02 2011
ук 03.006.02 2011ук 03.006.02 2011
ук 03.006.02 2011
 
ук 03.005.03 2011
ук 03.005.03 2011ук 03.005.03 2011
ук 03.005.03 2011
 
ук 03.003.01 2011
ук 03.003.01 2011ук 03.003.01 2011
ук 03.003.01 2011
 

высокопроизводиетльные системы без доп затрат