0
Балансировка,   кэширование,   авторизация.   Вместе? Марко Кевац
Балансировка нагрузки
<ul><li>Запросы разные по сложности </li></ul><ul><li>Машины разные по производительности </li></ul><ul><li>Равномерное ра...
Что из этого должно работать обязательно? Что из этого не важно? А если ещё n условий? Когда считать узел  « готовым к обс...
<ul><li>Нагрузка </li></ul><ul><li>Состояние сервисов </li></ul><ul><li>Состояние кэша </li></ul>Умный балансировщик <ul><...
<ul><li>У каждого worker-а есть  </li></ul><ul><li>свой  вес , который зависит </li></ul><ul><li>от  нагруженности . </li>...
Кэширование
app server web server cache cache cache app server web server cache Кэширование  « всего » Самый распространённый   метод ...
Первый уровень Второй уровень cache cache cache (ключ, значение) ? (ключ, значение) cache ? DHT – Distributed Hash Table
High Availability Cache <ul><li>Автоматическое добавление новых кэшей. </li></ul><ul><li>Автоматическое удаление неработаю...
Бонусы <ul><li>Автоматическое разделение мух от котлет: </li></ul><ul><li>больших ответов, от маленьких. </li></ul><ul><li...
Аутентификация и Авторизация
паспорт = base64( blowfish( права + sha1( права ) ) ) права = битовая маска + всё что душе угодно Из чего состоит паспорт?
(id, uri regexp, method, permission) [0, 1, 1, 0, 0, 1, 0, 1, 0, 0, ...] Битовая маска прав
Где применимо? Преимущества. <ul><li>Подход идеален для RESTfull архитектур </li></ul><ul><li>Быстрая проверка прав </li><...
Протестировано электроникой: beta.micex.ru <ul><li>Не очень большое кол-во пользователей (40-60к/день)  </li></ul><ul><li>...
Статистика <ul><li>Скрипт анализирует логи в real time и заносит их в БД </li></ul><ul><li>Другой скрипт по cron-у раз в м...
Медленные запросы <ul><li>Система слежения за медленными запросами </li></ul><ul><li>Позволяет выявлять запросы, ответ на ...
Марко Кевац E-mail/JID: mkevac@gmail.com
ВОПРОСЫ?
Upcoming SlideShare
Loading in...5
×

Hl2008 New

283

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
283
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Hl2008 New"

  1. 1. Балансировка, кэширование, авторизация. Вместе? Марко Кевац
  2. 2. Балансировка нагрузки
  3. 3. <ul><li>Запросы разные по сложности </li></ul><ul><li>Машины разные по производительности </li></ul><ul><li>Равномерное распределение неэффективно </li></ul><ul><li>Распределение с весами неэффективно </li></ul>Недостатки стандартного распределения
  4. 4. Что из этого должно работать обязательно? Что из этого не важно? А если ещё n условий? Когда считать узел « готовым к обслуживанию » ? А когда считать « восставшим из мёртвых? » Железки такого не умеют <ul><li>Узел: </li></ul><ul><li>Web-cервер </li></ul><ul><li>App-сервер </li></ul><ul><li>Memcached </li></ul><ul><li>Mysql-slave </li></ul><ul><li>Loganalyzer </li></ul><ul><li>... </li></ul>
  5. 5. <ul><li>Нагрузка </li></ul><ul><li>Состояние сервисов </li></ul><ul><li>Состояние кэша </li></ul>Умный балансировщик <ul><li>Элементы High Availability </li></ul><ul><li>Слежение за сервисами на узлах </li></ul><ul><li>Слежение за подсистемой кэша </li></ul>Демон статистики Модуль Apache
  6. 6. <ul><li>У каждого worker-а есть </li></ul><ul><li>свой вес , который зависит </li></ul><ul><li>от нагруженности . </li></ul><ul><li>Чем сильнее узел нагружен, </li></ul><ul><li>тем меньше у него вес. </li></ul>for each worker in workers worker status + = worker weight total weight + = worker weight if worker status > candidate status candidate = worker candidate status - = total weight Алгоритм балансирования
  7. 7. Кэширование
  8. 8. app server web server cache cache cache app server web server cache Кэширование « всего » Самый распространённый метод Кэширование « всего »
  9. 9. Первый уровень Второй уровень cache cache cache (ключ, значение) ? (ключ, значение) cache ? DHT – Distributed Hash Table
  10. 10. High Availability Cache <ul><li>Автоматическое добавление новых кэшей. </li></ul><ul><li>Автоматическое удаление неработающих кэшей. </li></ul><ul><li>Автоматическое восстановление вновь </li></ul><ul><li>заработавших кэшей. </li></ul>
  11. 11. Бонусы <ul><li>Автоматическое разделение мух от котлет: </li></ul><ul><li>больших ответов, от маленьких. </li></ul><ul><li>Большие храним на диске. </li></ul><ul><li>Не нужна распределённая файловая система. </li></ul><ul><li>Persistent кэш – для больших файлов (они и так </li></ul><ul><li>на диске). </li></ul>
  12. 12. Аутентификация и Авторизация
  13. 13. паспорт = base64( blowfish( права + sha1( права ) ) ) права = битовая маска + всё что душе угодно Из чего состоит паспорт?
  14. 14. (id, uri regexp, method, permission) [0, 1, 1, 0, 0, 1, 0, 1, 0, 0, ...] Битовая маска прав
  15. 15. Где применимо? Преимущества. <ul><li>Подход идеален для RESTfull архитектур </li></ul><ul><li>Быстрая проверка прав </li></ul><ul><li>Сессии не нужны </li></ul>
  16. 16. Протестировано электроникой: beta.micex.ru <ul><li>Не очень большое кол-во пользователей (40-60к/день) </li></ul><ul><li>могут генерировать большое (10-30 миллионов/день) </li></ul><ul><li>количество запросов </li></ul><ul><li>Данные всегда должны быть актуальны </li></ul><ul><li>Данные нужны отдавать как можно быстрее </li></ul><ul><li>Регулярные всплески: ход торгов, итоговая информация </li></ul><ul><li>по регламенту торгов </li></ul><ul><li>Непредсказуемые всплески: кризисы </li></ul>
  17. 17. Статистика <ul><li>Скрипт анализирует логи в real time и заносит их в БД </li></ul><ul><li>Другой скрипт по cron-у раз в минуту аггрегирует данные </li></ul><ul><li>Графическая подсистема по данным строит графики </li></ul>
  18. 18. Медленные запросы <ul><li>Система слежения за медленными запросами </li></ul><ul><li>Позволяет выявлять запросы, ответ на которые готовится очень долго </li></ul>
  19. 19. Марко Кевац E-mail/JID: mkevac@gmail.com
  20. 20. ВОПРОСЫ?
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×