Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
«Рамблер Касса» как пример высокопроизводительного      проекта на .Net      Дмитрий Паньшин
И другие…
.net
Highscalability.com
Highscalability.com
.net?
Нефункциональные требования• Uptime – 99.9• 15 млн page view/day:  –   Кнопка «пустая»: 85% за 50мс  –   Кнопка отобразивш...
Логическая архитектура
IIS• Отказоустойчивость:   – NLB – ок, но распределение по серверам может быть только на     уровне TCP/IP   – ARR – NLB H...
MS SQL Server• Масштабирование и отказоустойчивость:  – Failover cluster  – Mirroring  – Replication  – Sharding
MS SQL Cluster
MS SQL Mirroring
Результат
Cache• Memcache vs HttpContext.Current.Cache• Nginx vs ASP.NET Output Cache
AppFabric Caching– Регионы, теги– Локальный кеш– Особенности  •   Для работы нужен Windows Server Standard  •   Отказоусто...
Queue• MSMQ  – Асинхронная  – Без подтверждения доставки• DB MQ  – Персистентная, работает по принципу заказа, есть состоя...
MSMQ
Background workers• Проблема: нет нормального App server’a  – WCF + Task Scheduler?  – Windows Service + Timer?• Разработа...
THE END?
NAS• Нужно хранилище для  – статического контента  – конфигураций IIS  – Бекапов• Решение  – MS Distributed File System   ...
Logging + Statistics• Задача разработать:  – асинхронный способ записи служебной информации.  – Механизм для сбора и анали...
Результат
Monitoring• WhatsUp Gold   –   Недорогое решение   –   Для стандартных задач подходит хорошо   –   Неудобное в администрир...
Результат
И все-таки почему .net?
www.afisha.ru
Eda.ru
mir.travel
Результат
Результат• ~2000 rps на app server (IIS)• Масштабируется линейно до 10 000 rps• Uptime 99.9%
Результат• 400 кинозалов в 17 городах России• Суммарная аудитория Internet площадок > 25 млн  человек• В конце 2011 подклю...
«Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)
«Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)
«Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)
«Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)
«Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)
«Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)
«Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)
«Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)
«Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)
«Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)
«Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)
Upcoming SlideShare
Loading in …5
×

«Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)

1,400 views

Published on

Published in: Technology
  • Be the first to comment

«Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий Паньшин)

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

×