SlideShare a Scribd company logo
«Грабли» при масштабировании
      веб-приложения

 или «что происходит при росте с 1М до 50М хитов в сутки».

    Евгений Коковихин, ведущий разработчик Wapstart.



                          (в конце доклада вам покажут 1000 слонов!)
Кто мы?

• Компания WapStart – владелец крупнейшей в России мобильной
  рекламной сети Plus1 WapStart и каталога мобильных сайтов
  Top WapStart.
• Компания оказывает услуги тысячам издателей мобильных
  сайтов и приложений.
• Ежемесячная рекламная емкость WapStart - свыше 1,5 млрд.
  показов, число уникальных посетителей - более 10 миллионов
  в месяц.
• Компания WapStart владеет передовыми технологиями
  таргетинга и анализа аудитории, позволяющими проводить
  рекламные кампании с высокой рентабельностью инвестиций.
                                            © Отдел маркетинга.
Эту картинку я нашел в интернете
… и эту
Задачи, которые решает plus1.wapstart.ru
•   Поиск подходящих баннеров для пользователя.
•   Сортировка баннеров по релевантности и стоимости.
•   Подсчет денег.
•   Администрирование баннеров и рекламных площадок.
•   Сбор и анализ статистики.
ПО, которое используются
                  в plus1.wapstart.ru
•   PHP 5.3 / php-fpm
•   postgresql 9.1
•   nginx
•   memcache
•   Freebsd (fronts)
•   Debian (farms)
Конфигурация железа: было
Хорошо:                   мир
• Хорошо работает при
  небольшой нагрузке;
• Все очень просто.
                        front-server
                         admin gui
Плохо:                   db-server
• Разные требования
  к железу у разных
  ролей;                               farm1
• Сложно отлавливать
  баги и искать узкие                  farm2
  места из-за влияния
  других подсистем.
Конфигурация железа: стало
                           мир         Хорошо:
                                       • все еще просто;
                                       • легко добавлять и
  front1         front1                  убирать железо;
                                       • железо разделено по
farm-adm        farm1       farmN        ролям.


db-master     Проблемы:                 Плохо:
              • сессии;                 • Вывод железа из
db-slave                                  продакшена
              • картинки /
                пользовательские файлы;   в случае отказа
                                          не автоматизирован.
              • sql запросы,
                модифицирующие данные
Статистика (1)
  событие       Хорошо:                   Плохо:
                • выборки очень просты;   • медленно;
  DB (raw)      • все понятно;            • сложно удалять старые
                                            сырые данные;
аггрегатор                                • сложно
                                            масштабировать.
hourly tables   daily tables
                                          Проблемы:
                                          • Однажды мы начали
        интерфейсы                          писать быстрее, чем
                                            смогли обрабатывать;
                                          • Внешние ключи не
                                            только полезны, но и
                                            вредны.
Статистика (2)
  событие
                               Хорошо:
   файл                        • выборки очень просты;
                               • все понятно;
аккумулятор                    Плохо:
                               • Временные таблицы надо чистить;
temp tables

аггрегатор

hourly tables   daily tables


        интерфейсы
Статистика (3)
  событие
                     Хорошо:
   файл              • Аггрегация работает
                       годно;
аккумулятор
                     Плохо:
temp hourly          • Данные в дневные таблицы попадают не
  tables               одновременно с часовыми (переживем).
Аггрегатор /
  удалятор

hourly tables   daily tables


        интерфейсы
Биллинг: было
Утро:                                         Вечер:


 Рекламодатель                                Рекламодатель
   100 рублей                                   50 рублей

                  Владелец сайта                               Владелец сайта
                    100 рублей                                   120 рублей




Рекламодатель                                Рекламодатель
  150 рублей                                   70 рублей

                 Владелец сайта                               Владелец сайта
                   10 рублей                                    12 рублей




Рекламодатель                                Рекламодатель
  180 рублей                                   100 рублей

                 Владелец сайта                               Владелец сайта
                   20 рублей                                    30 рублей
Биллинг: стало
Счет         сумма                                                     Счет     сумма
User 1          1 000                                                  User 1      1 100

User 2           100                                                   User 2       200

User 3           100                                                   User 3       500

System           150                                                   System      3 000

…                    …                                                 …                …

…                    …                                                 …                …




         time            Credit_bill_id   Debet_bill_id   Amount   comment

         …               User_1           User_2          100      за клики

         …               …                …               …        …
Мониторим всё
1.   Состояние логов
2.   Аггрегация ошибок и отправка их почтой
3.   Цветные графики
4.   Особо критичные триггеры по sms.
Борьба за быстродействие:



• клиенты хотят получать баннер быстро;
• клиенты получают баннеры синхронно;
• аренда оборудования - это дорого.
Борьба за быстродействие: было
   Запрос
                                      Плохо:
пользователя            onPHP cache
                        (memcache)    • Иногда ходим в базу;
   Разбор                             • Используем родные объекты
                                        onPHP – медленная сборка.
Формирование
                      DB (Postgres)
   запроса
                                      Проблема:
  Получения
                                      • Однажды оно перестало
   списков                              помещаться в кеш.
 баннеров по
   запросу



  Проверки в       Отрисовка и
   реальном          отдача
   времени        пользователю
Борьба за быстродействие: как хотели.
   Запрос
пользователя                     get model_id=42&gateway_id=1&region_id=199
                                 VALUE model_id=42&gateway_id=1&region_id=199 0 256
                Преднаполнение   a:2:{i:0;O:11:"PlainBanner":13:{s:15:"PlainBannerid";i:31
   Разбор            кеша        ;s:17:"PlainBannername";N;s:18:"PlainBannertitle";N;s:20:
                                 "PlainBannercontent";N;s:30:"PlainBannersingleLineContent
                                 ";N;s:17:"PlainBannerlink";N;s:20:"PlainBannerstateId";N;
                                 s:23:"PlainBannercampaignId";N;s:19:"PlainBannertypeId";N
                                 ;s:21:"PlainBannerpictures";a:0:{}s:25:"PlainBannerfakePi
Формирование                     ctures";a:0:{}s:17:"PlainBannerfake";b:0;s:32:"PlainBanne
   запроса       Мemcache        rshowOnlyWithGraphic";N;}i:1;O:11:"PlainBanner":13:{s:15:
                                 "PlainBannerid";i:42;s:17:"PlainBannername";N;s:18:"Plain
                                 Bannertitle";N;s:20:"PlainBannercontent";N;s:30:"PlainBan
                                 nersingleLineContent";N;s:17:"PlainBannerlink";N;s:20:"Pl
  Получение                      ainBannerstateId";N;s:23:"PlainBannercampaignId";N;s:19:"
                                 PlainBannertypeId";N;s:21:"PlainBannerpictures";a:0:{}s:2
   списков                       5:"PlainBannerfakePictures";a:0:{}s:17:"PlainBannerfake";
 баннеров по                     b:0;s:32:"PlainBannershowOnlyWithGraphic";N;}}
   запросу                       END




  Отрисовка и   Не взлетело :(
    отдача
 пользователю
Борьба за быстродействие:
   Запрос
                           как получилось
пользователя
                       Преднаполнение
                                                        Вот так
    Разбор                  кеша                        работает!
   Формирование                         Проблемы:
 запроса на каждую
сущность таргетинга     Мemcache        • Разбиратель запроса все еще
                                          может попасть в базу;
  Получение и
  объединение
                                        • Редкий траффик идет в базу
списков баннеров                          целиком;
   по запросу
                                        • За преднаполненным кешем
                                          надо следить.
  Отрисовка и
    отдача
 пользователю
Мониторинг (2)
         и как мы раньше жили без pinba?
•   Меряем именно то, что происходит на проде;
•   Меряем все, что происходит на проде;
•   Можем измерять бизнес-метрики;
•   Красивые графики.
Резюме:
•   Разработка – процесс итеративный.
•   Ошибки бывают, не бойтесь ошибаться.
•   Не надо думать на 3 года вперед, все равно все изменится.
•   Мониторинг – наше всё.
•   Сила в простых вещах. Когда все просто – это легко поддерживать
    и модифицировать.
Wapstart:
•   http://wapstart.ru/ https//:plus1.wapstart.ru/
•   Продажи: sales@co.wapstart.ru
•   Разработка: dev@co.wapstart.ru
•   github: https://github.com/Wapstart
•   Habr: http://habrahabr.ru/company/wapstart/



                                                     Я:
                                                     •    Mail/jabber: dovg@dovg.ru
                                                     •    Github: https://github.com/dovg
                                                     •    Habr: http://habrahabr.ru/users/dovg/
                                                     •    Vk: http://vk.com/id2082364




                                      Вопросы?

More Related Content

Similar to E Kokovikhin - devconf 2012

Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Ontico
 
Cистема внутренней статистики Odnoklassniki.ru
Cистема внутренней статистики Odnoklassniki.ruCистема внутренней статистики Odnoklassniki.ru
Cистема внутренней статистики Odnoklassniki.ru
odnoklassniki.ru
 
Mihail Korepanov
Mihail KorepanovMihail Korepanov
Mihail Korepanov
yaevents
 
Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...
Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...
Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...
Yandex
 
Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaAlex Chistyakov
 
Баннерокрутилка на Erlang
Баннерокрутилка на ErlangБаннерокрутилка на Erlang
Баннерокрутилка на ErlangArtyom Gavrichenkov
 
Unity_ Handmade graphics optimizations by Roman Chehowski
Unity_ Handmade graphics optimizations by Roman ChehowskiUnity_ Handmade graphics optimizations by Roman Chehowski
Unity_ Handmade graphics optimizations by Roman ChehowskiRoman Chehowski
 
Оптимизация производительности фронтенда / Игорь Алексеенко (HTML Academy)
Оптимизация производительности фронтенда / Игорь Алексеенко (HTML Academy)Оптимизация производительности фронтенда / Игорь Алексеенко (HTML Academy)
Оптимизация производительности фронтенда / Игорь Алексеенко (HTML Academy)
Ontico
 
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
it-people
 
CodeFest 2012. Ивлиев Р. — Аккуратно переезжаем, или тестирование в проектах ...
CodeFest 2012. Ивлиев Р. — Аккуратно переезжаем, или тестирование в проектах ...CodeFest 2012. Ивлиев Р. — Аккуратно переезжаем, или тестирование в проектах ...
CodeFest 2012. Ивлиев Р. — Аккуратно переезжаем, или тестирование в проектах ...CodeFest
 
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Ontico
 
Жизнь проекта на production
Жизнь проекта на productionЖизнь проекта на production
Жизнь проекта на production
Nikolay Sivko
 
Новая почта Рамблера (Андрей Шетухин)
Новая почта Рамблера (Андрей Шетухин)Новая почта Рамблера (Андрей Шетухин)
Новая почта Рамблера (Андрей Шетухин)Ontico
 
Построение аналитического хранилища на 100 петабайт
Построение аналитического хранилища на 100 петабайтПостроение аналитического хранилища на 100 петабайт
Построение аналитического хранилища на 100 петабайт
Alexander Mazurov
 
DUMP-2015: «Использование социального графа одноклассников в Target Mail.Ru» ...
DUMP-2015: «Использование социального графа одноклассников в Target Mail.Ru» ...DUMP-2015: «Использование социального графа одноклассников в Target Mail.Ru» ...
DUMP-2015: «Использование социального графа одноклассников в Target Mail.Ru» ...
it-people
 
Социальный граф Одноклассников в Target Mail.Ru
Социальный граф Одноклассников в Target Mail.RuСоциальный граф Одноклассников в Target Mail.Ru
Социальный граф Одноклассников в Target Mail.Ru
CodeFest
 
2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)
2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)
2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)Ontico
 
Эксплуатация container-based-инфраструктур / Николай Сивко (okmeter.io)
Эксплуатация container-based-инфраструктур / Николай Сивко (okmeter.io)Эксплуатация container-based-инфраструктур / Николай Сивко (okmeter.io)
Эксплуатация container-based-инфраструктур / Николай Сивко (okmeter.io)
Ontico
 
Aлександр Зайцев, LifeStreet
Aлександр Зайцев, LifeStreetAлександр Зайцев, LifeStreet
Aлександр Зайцев, LifeStreet
Ontico
 
20131112федорроманенко
20131112федорроманенко20131112федорроманенко
20131112федорроманенко
Yandex
 

Similar to E Kokovikhin - devconf 2012 (20)

Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
 
Cистема внутренней статистики Odnoklassniki.ru
Cистема внутренней статистики Odnoklassniki.ruCистема внутренней статистики Odnoklassniki.ru
Cистема внутренней статистики Odnoklassniki.ru
 
Mihail Korepanov
Mihail KorepanovMihail Korepanov
Mihail Korepanov
 
Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...
Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...
Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...
 
Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на Java
 
Баннерокрутилка на Erlang
Баннерокрутилка на ErlangБаннерокрутилка на Erlang
Баннерокрутилка на Erlang
 
Unity_ Handmade graphics optimizations by Roman Chehowski
Unity_ Handmade graphics optimizations by Roman ChehowskiUnity_ Handmade graphics optimizations by Roman Chehowski
Unity_ Handmade graphics optimizations by Roman Chehowski
 
Оптимизация производительности фронтенда / Игорь Алексеенко (HTML Academy)
Оптимизация производительности фронтенда / Игорь Алексеенко (HTML Academy)Оптимизация производительности фронтенда / Игорь Алексеенко (HTML Academy)
Оптимизация производительности фронтенда / Игорь Алексеенко (HTML Academy)
 
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
 
CodeFest 2012. Ивлиев Р. — Аккуратно переезжаем, или тестирование в проектах ...
CodeFest 2012. Ивлиев Р. — Аккуратно переезжаем, или тестирование в проектах ...CodeFest 2012. Ивлиев Р. — Аккуратно переезжаем, или тестирование в проектах ...
CodeFest 2012. Ивлиев Р. — Аккуратно переезжаем, или тестирование в проектах ...
 
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
 
Жизнь проекта на production
Жизнь проекта на productionЖизнь проекта на production
Жизнь проекта на production
 
Новая почта Рамблера (Андрей Шетухин)
Новая почта Рамблера (Андрей Шетухин)Новая почта Рамблера (Андрей Шетухин)
Новая почта Рамблера (Андрей Шетухин)
 
Построение аналитического хранилища на 100 петабайт
Построение аналитического хранилища на 100 петабайтПостроение аналитического хранилища на 100 петабайт
Построение аналитического хранилища на 100 петабайт
 
DUMP-2015: «Использование социального графа одноклассников в Target Mail.Ru» ...
DUMP-2015: «Использование социального графа одноклассников в Target Mail.Ru» ...DUMP-2015: «Использование социального графа одноклассников в Target Mail.Ru» ...
DUMP-2015: «Использование социального графа одноклассников в Target Mail.Ru» ...
 
Социальный граф Одноклассников в Target Mail.Ru
Социальный граф Одноклассников в Target Mail.RuСоциальный граф Одноклассников в Target Mail.Ru
Социальный граф Одноклассников в Target Mail.Ru
 
2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)
2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)
2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)
 
Эксплуатация container-based-инфраструктур / Николай Сивко (okmeter.io)
Эксплуатация container-based-инфраструктур / Николай Сивко (okmeter.io)Эксплуатация container-based-инфраструктур / Николай Сивко (okmeter.io)
Эксплуатация container-based-инфраструктур / Николай Сивко (okmeter.io)
 
Aлександр Зайцев, LifeStreet
Aлександр Зайцев, LifeStreetAлександр Зайцев, LifeStreet
Aлександр Зайцев, LifeStreet
 
20131112федорроманенко
20131112федорроманенко20131112федорроманенко
20131112федорроманенко
 

E Kokovikhin - devconf 2012

  • 1. «Грабли» при масштабировании веб-приложения или «что происходит при росте с 1М до 50М хитов в сутки». Евгений Коковихин, ведущий разработчик Wapstart. (в конце доклада вам покажут 1000 слонов!)
  • 2. Кто мы? • Компания WapStart – владелец крупнейшей в России мобильной рекламной сети Plus1 WapStart и каталога мобильных сайтов Top WapStart. • Компания оказывает услуги тысячам издателей мобильных сайтов и приложений. • Ежемесячная рекламная емкость WapStart - свыше 1,5 млрд. показов, число уникальных посетителей - более 10 миллионов в месяц. • Компания WapStart владеет передовыми технологиями таргетинга и анализа аудитории, позволяющими проводить рекламные кампании с высокой рентабельностью инвестиций. © Отдел маркетинга.
  • 3. Эту картинку я нашел в интернете
  • 5. Задачи, которые решает plus1.wapstart.ru • Поиск подходящих баннеров для пользователя. • Сортировка баннеров по релевантности и стоимости. • Подсчет денег. • Администрирование баннеров и рекламных площадок. • Сбор и анализ статистики.
  • 6. ПО, которое используются в plus1.wapstart.ru • PHP 5.3 / php-fpm • postgresql 9.1 • nginx • memcache • Freebsd (fronts) • Debian (farms)
  • 7. Конфигурация железа: было Хорошо: мир • Хорошо работает при небольшой нагрузке; • Все очень просто. front-server admin gui Плохо: db-server • Разные требования к железу у разных ролей; farm1 • Сложно отлавливать баги и искать узкие farm2 места из-за влияния других подсистем.
  • 8. Конфигурация железа: стало мир Хорошо: • все еще просто; • легко добавлять и front1 front1 убирать железо; • железо разделено по farm-adm farm1 farmN ролям. db-master Проблемы: Плохо: • сессии; • Вывод железа из db-slave продакшена • картинки / пользовательские файлы; в случае отказа не автоматизирован. • sql запросы, модифицирующие данные
  • 9. Статистика (1) событие Хорошо: Плохо: • выборки очень просты; • медленно; DB (raw) • все понятно; • сложно удалять старые сырые данные; аггрегатор • сложно масштабировать. hourly tables daily tables Проблемы: • Однажды мы начали интерфейсы писать быстрее, чем смогли обрабатывать; • Внешние ключи не только полезны, но и вредны.
  • 10. Статистика (2) событие Хорошо: файл • выборки очень просты; • все понятно; аккумулятор Плохо: • Временные таблицы надо чистить; temp tables аггрегатор hourly tables daily tables интерфейсы
  • 11. Статистика (3) событие Хорошо: файл • Аггрегация работает годно; аккумулятор Плохо: temp hourly • Данные в дневные таблицы попадают не tables одновременно с часовыми (переживем). Аггрегатор / удалятор hourly tables daily tables интерфейсы
  • 12. Биллинг: было Утро: Вечер: Рекламодатель Рекламодатель 100 рублей 50 рублей Владелец сайта Владелец сайта 100 рублей 120 рублей Рекламодатель Рекламодатель 150 рублей 70 рублей Владелец сайта Владелец сайта 10 рублей 12 рублей Рекламодатель Рекламодатель 180 рублей 100 рублей Владелец сайта Владелец сайта 20 рублей 30 рублей
  • 13. Биллинг: стало Счет сумма Счет сумма User 1 1 000 User 1 1 100 User 2 100 User 2 200 User 3 100 User 3 500 System 150 System 3 000 … … … … … … … … time Credit_bill_id Debet_bill_id Amount comment … User_1 User_2 100 за клики … … … … …
  • 14. Мониторим всё 1. Состояние логов 2. Аггрегация ошибок и отправка их почтой 3. Цветные графики 4. Особо критичные триггеры по sms.
  • 15. Борьба за быстродействие: • клиенты хотят получать баннер быстро; • клиенты получают баннеры синхронно; • аренда оборудования - это дорого.
  • 16. Борьба за быстродействие: было Запрос Плохо: пользователя onPHP cache (memcache) • Иногда ходим в базу; Разбор • Используем родные объекты onPHP – медленная сборка. Формирование DB (Postgres) запроса Проблема: Получения • Однажды оно перестало списков помещаться в кеш. баннеров по запросу Проверки в Отрисовка и реальном отдача времени пользователю
  • 17. Борьба за быстродействие: как хотели. Запрос пользователя get model_id=42&gateway_id=1&region_id=199 VALUE model_id=42&gateway_id=1&region_id=199 0 256 Преднаполнение a:2:{i:0;O:11:"PlainBanner":13:{s:15:"PlainBannerid";i:31 Разбор кеша ;s:17:"PlainBannername";N;s:18:"PlainBannertitle";N;s:20: "PlainBannercontent";N;s:30:"PlainBannersingleLineContent ";N;s:17:"PlainBannerlink";N;s:20:"PlainBannerstateId";N; s:23:"PlainBannercampaignId";N;s:19:"PlainBannertypeId";N ;s:21:"PlainBannerpictures";a:0:{}s:25:"PlainBannerfakePi Формирование ctures";a:0:{}s:17:"PlainBannerfake";b:0;s:32:"PlainBanne запроса Мemcache rshowOnlyWithGraphic";N;}i:1;O:11:"PlainBanner":13:{s:15: "PlainBannerid";i:42;s:17:"PlainBannername";N;s:18:"Plain Bannertitle";N;s:20:"PlainBannercontent";N;s:30:"PlainBan nersingleLineContent";N;s:17:"PlainBannerlink";N;s:20:"Pl Получение ainBannerstateId";N;s:23:"PlainBannercampaignId";N;s:19:" PlainBannertypeId";N;s:21:"PlainBannerpictures";a:0:{}s:2 списков 5:"PlainBannerfakePictures";a:0:{}s:17:"PlainBannerfake"; баннеров по b:0;s:32:"PlainBannershowOnlyWithGraphic";N;}} запросу END Отрисовка и Не взлетело :( отдача пользователю
  • 18. Борьба за быстродействие: Запрос как получилось пользователя Преднаполнение Вот так Разбор кеша работает! Формирование Проблемы: запроса на каждую сущность таргетинга Мemcache • Разбиратель запроса все еще может попасть в базу; Получение и объединение • Редкий траффик идет в базу списков баннеров целиком; по запросу • За преднаполненным кешем надо следить. Отрисовка и отдача пользователю
  • 19. Мониторинг (2) и как мы раньше жили без pinba? • Меряем именно то, что происходит на проде; • Меряем все, что происходит на проде; • Можем измерять бизнес-метрики; • Красивые графики.
  • 20. Резюме: • Разработка – процесс итеративный. • Ошибки бывают, не бойтесь ошибаться. • Не надо думать на 3 года вперед, все равно все изменится. • Мониторинг – наше всё. • Сила в простых вещах. Когда все просто – это легко поддерживать и модифицировать.
  • 21. Wapstart: • http://wapstart.ru/ https//:plus1.wapstart.ru/ • Продажи: sales@co.wapstart.ru • Разработка: dev@co.wapstart.ru • github: https://github.com/Wapstart • Habr: http://habrahabr.ru/company/wapstart/ Я: • Mail/jabber: dovg@dovg.ru • Github: https://github.com/dovg • Habr: http://habrahabr.ru/users/dovg/ • Vk: http://vk.com/id2082364 Вопросы?