- PVSM.RU - https://www.pvsm.ru -
Изначально я планировал написать статью в виде конспекта с доклада [1] на devconf [2]. Потом на меня снизошло понимание, что сорокапятиминутное выступление сложно переложить в статью на хабре, при этом оставив ее размер вменяемым. Поэтому в статье речь пойдет об архитектуре plus1.wapstart.ru [3], а слайды с конференции можно посмотреть здесь [4].
Plus1.wapstart.ru [3] — это рекламная сеть для мобильного интернета. Наша «экосистема» — это рекламодатели, владельцы площадок (сайтов и приложений) и аудитория пользователей.
Владельцы площадок хотят максимально просто и эффективно монетизировать свою аудиторию, рекламодатели хотят эффективно вложить деньги, потребителей реклама должна как минимум не раздражать, а как максимум — они должны быть ей довольны.
Задача plus1.wapstart.ru — удовлетворение потребностей этих групп. Для нас их желания означают, что мы должны работать максимально быстро, не допускать ни минуты даутнайма и само собой следить за качеством и внешним видом рекламы.
Немного цифр:
Если вам интересно как это всё работает — добро пожаловать под кат!
Мы стремимся к единообразию:
Главное правило — если что-то можно посчитать заранее, это нужно считать заранее.
Сам процесс выглядит примерно таким образом:
Надо быть всегда готовыми к росту. Процессы надо закладывать таким образом, чтобы их можно было легко распараллелить.
Работает оно так:
Сейчас в качестве основного сервиса для мониторинга мы используем zabbix. Не могу сказать, что он быстр, но на нашем наборе триггеров и серверов работает вполне сносно. Мониторятся не только железные
показатели (io, cpu, la) и показатели приложения (время отдачи, отрост логов), но и бизнес-метрики (коммерческая тайна :).
Для сбора оперативной статистики приложения мы используем pinba (о ней я уже писал [14] :) ).
Наиболее критичные триггеры приходят к нам по sms.
Ошибки бывают у всех. Естественно, что разработчики должны знать об ошибках, причем желательно узнать о них до того как о них узнает пользователь. Для сбора ошибок мы используем syslog [15], благо php
умеет туда логгировать. Данные из syslog аггрегируются на обслуживающем сервере и раз в N минут отправляются по списку рассылки. Это позволяет оперативно отлавливать проблемы.
На этом, пожалуй, можно закончить. Диалог можно будет продолжить в комментариях. Наша команда с радостью ответит на ваши вопросы.
ps. Мы делимся с сообществом нашими наработками — https://github.com/Wapstart [16]
pps. О том как [17] мы «обманываем» наши приложения будет отдельный пост.
Автор: dovg
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/web/10237
Ссылки в тексте:
[1] доклада: http://devconf.ru/offers/3
[2] devconf: http://devconf.ru
[3] plus1.wapstart.ru: https://plus1.wapstart.ru
[4] здесь: http://www.slideshare.net/megadovg/e-kokovikhin-devconf-2012
[5] freebsd: http://www.freebsd.org/ru/
[6] nginx: http://nginx.ru
[7] Debian GNU/Linux: http://www.debian.org/index.ru.html
[8] fpm: http://fi2.php.net/manual/en/install.fpm.php
[9] onphp framework: https://github.com/onPHP/onphp-framework
[10] memcached: http://memcached.org/
[11] Postgres: http://www.postgresql.org/
[12] zabbix: http://www.zabbix.com/ru/
[13] pinba: http://pinba.org/wiki/Main_Page
[14] писал: http://habrahabr.ru/post/129042/
[15] syslog: http://ru.wikipedia.org/wiki/Syslog
[16] https://github.com/Wapstart: https://github.com/Wapstart
[17] как: http://www.slideshare.net/klestoff/ss-13308183
Нажмите здесь для печати.