«Рамблер Касса» как пример высокопроизводительного проекта на.Net Дмитрий Паньшин
И другие…
.net
Highscalability.com
.net?
Нефункциональные требования Uptime – млн page view/day: – Кнопка «пустая»: 85% за 50мс – Кнопка отобразившийся: 85% 70мс – Страница расписания фильма: 85% 150мс – Страница расписания кинотеатра: 85% 150мс – Страница плана зала: 85% 200мс
Логическая архитектура
IIS Отказоустойчивость: – NLB – ок, но распределение по серверам может быть только на уровне TCP/IP – ARR – NLB HTTP Layer, может балансировать, по HTTP заголовкам, сам нуждается в балансировке. Недостатки – App Server и кеш сервер в одном флаконе.
MS SQL Server Масштабирование и отказоустойчивость: – Failover cluster – Mirroring – Replication – Sharding
Cache IIS caching AppFabric Cache – Две основных проблемы в IT: инвалидация кеша и именование переменных. – Локальный кеш – Группы и теги Особенности Отказоустойчивый Кластер – нужен Enterprise Использовать конфигурацию хранящуюся в SQL
Queue MSMSQ – Схема работы – Тонкие настройки – Пропускная способность DB MQ – Персистентная, работает по принципу заказа, есть состояния. – Реляционная – 1.2 Kop/s
Background workers Проблема: нет нормального App servera – WCF + Task Scheduler? – Windows Service + Timer? Разработали свой Task Server.
THE END?
NAS Нужно хранилище для – статического контента – конфигураций IIS – Бекапов Решение – MS Distributed File System Replication
Logging + Statistics Нужен механизм для асинхронного способа записи служебной информации. Нужен механизм для сбора и анализа статистики. Результат: – MSMQ + Task server + Sql Server + SQL Reporting Services
Monitoring WhatsUp Gold – Недорогое решение – Для стандартных задач подходит хорошо – Неудобное в администрировании – Мониторинг Бизнес-показателей сложно реализеум Web Services + Remstats – Используется для мониторинга Бизнес-показателей SCOM
И все-таки почему.net? Опыт разработки: – Afisha.ru – Eda.ru – Mir.travel Нам он нравится
Результат 2000 rps на app server (IIS) Горизонтально масштабируется линейно до rps