«Рамблер Касса» как пример высокопроизводительного...
TRANSCRIPT
![Page 1: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/1.jpg)
«Рамблер Касса» как пример высокопроизводительного
проекта на .NetДмитрий Паньшин
![Page 2: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/2.jpg)
![Page 3: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/3.jpg)
И другие…
![Page 4: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/4.jpg)
![Page 5: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/5.jpg)
![Page 6: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/6.jpg)
.net
![Page 7: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/7.jpg)
Highscalability.com
![Page 8: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/8.jpg)
Highscalability.com
![Page 9: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/9.jpg)
.net?
![Page 10: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/10.jpg)
![Page 11: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/11.jpg)
Нефункциональные требования• Uptime – 99.9
• 15 млн page view/day:
– Кнопка «пустая»: 85% за 50мс
– Кнопка отобразившийся: 85% 70мс
– Страница расписания фильма: 85% 150мс
– Страница расписания кинотеатра: 85% 150мс
– Страница плана зала: 85% 200мс
![Page 12: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/12.jpg)
Логическая архитектура
![Page 13: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/13.jpg)
IIS• Отказоустойчивость:
– NLB – ок, но распределение по серверам может быть только на уровне TCP/IP
– ARR – NLB HTTP Layer , может балансировать, по HTTP заголовкам
• Недостатки– App Server и кеш сервер в одном флаконе.
![Page 14: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/14.jpg)
![Page 15: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/15.jpg)
![Page 16: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/16.jpg)
![Page 17: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/17.jpg)
MS SQL Server• Масштабирование и отказоустойчивость:
– Failover cluster
– Mirroring
– Replication
– Sharding
![Page 18: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/18.jpg)
MS SQL Cluster
![Page 19: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/19.jpg)
MS SQL Mirroring
![Page 20: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/20.jpg)
Результат
![Page 21: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/21.jpg)
Cache• Memcache vs HttpContext.Current.Cache
• Nginx vs ASP.NET Output Cache
![Page 22: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/22.jpg)
AppFabric Caching – Регионы, теги
– Локальный кеш
– Особенности
• Для работы нужен Windows Server Standard
• Отказоустойчивый Кластер – нужен Enterprise
• Использовать конфигурацию хранящуюся в SQL
• Нет версионирования «из коробки»
![Page 23: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/23.jpg)
Queue• MSMQ
– Асинхронная
– Без подтверждения доставки
• DB MQ– Персистентная, работает по принципу заказа, есть состояния.
– Реляционная
– 800 ops
![Page 24: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/24.jpg)
MSMQ
![Page 25: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/25.jpg)
Background workers• Проблема: нет нормального App server’a
– WCF + Task Scheduler?
– Windows Service + Timer?
• Разработали свой Task Server.
![Page 26: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/26.jpg)
THE END?
![Page 27: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/27.jpg)
![Page 28: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/28.jpg)
![Page 29: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/29.jpg)
NAS• Нужно хранилище для
– статического контента
– конфигураций IIS
– Бекапов
• Решение
– MS Distributed File System• Replication
![Page 30: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/30.jpg)
Logging + Statistics• Задача разработать:
– асинхронный способ записи служебной информации.
– Механизм для сбора и анализа статистики.
![Page 31: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/31.jpg)
Результат
![Page 32: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/32.jpg)
Monitoring• WhatsUp Gold
– Недорогое решение
– Для стандартных задач подходит хорошо
– Неудобное в администрировании
– Мониторинг Бизнес-показателей сложно реализуем
• Web Services + Remstats
– Используется для мониторинга Бизнес-показателей
• SCOM
![Page 33: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/33.jpg)
Результат
![Page 34: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/34.jpg)
И все-таки почему .net?
![Page 35: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/35.jpg)
www.afisha.ru
![Page 36: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/36.jpg)
Eda.ru
![Page 37: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/37.jpg)
mir.travel
![Page 38: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/38.jpg)
![Page 39: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/39.jpg)
![Page 40: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/40.jpg)
Результат
![Page 41: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/41.jpg)
Результат• ~2000 rps на app server (IIS)
• Масштабируется линейно до 10 000 rps
• Uptime 99.9%
![Page 42: «Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)](https://reader034.vdocuments.site/reader034/viewer/2022042518/559c1d871a28abde298b45e8/html5/thumbnails/42.jpg)
Результат• 400 кинозалов в 17 городах России
• Суммарная аудитория Internet площадок > 25 млн человек
• В конце 2011 подключили Qiwi (120 тыстерминалов, 80 млн месячных пользователей)