SlideShare a Scribd company logo
1 of 133
Download to read offline
Как 200 строк на Go
освободили 15 серверов
Pavel Murzakov
Badoo — это
✦ 320 млн пользователей
✦ 400 тыс регистраций каждый день
✦ ~3000 серверов
✦ 70 тыс клиентских запросов на бэкенды в секунду
Grigoriy
Igor
Diego
✦ 4 больших отдела: Features, Billing, Back Office, Platform
✦ В каждом по ~10-25 человек (разделены на команды)
✦ Вопроса о выборе языка не встаёт (есть куча других
важных проблем!)
PHP в Badoo
PHP в Badoo
Здесь может быть
твоё фото
Go в Badoo
Go в Badoo
первый демон на GO в
продакшене - 2014 г.
Go в Badoo
http://goo.gl/cGU1gU
Go в Badoo
PHP в Badoo
Go в Badoo
Здесь может быть
твоё фото
О чём доклад
О чём доклад
✦ Задача, которую мы решали
О чём доклад
✦ Задача, которую мы решали
✦ Прежняя реализация на PHP
О чём доклад
✦ Задача, которую мы решали
✦ Прежняя реализация на PHP
✦ Релаизация на Go
Задача
Профайл
Блок Friends
Блок Friends
Блок Friends
Блок Friends
✦ Основан на друзьях из Facebook
Блок Friends
✦ Основан на друзьях из Facebook
✦ Общие друзья
Блок Friends
✦ Основан на друзьях из Facebook
✦ Общие друзья
✦ Особенно интересны не зарегистрированные на Badoo
Общие друзья
A
X
Y
Мы
Общие друзья
A B
X
Y
Z
Y
Мы Кого мы смотрим
Общие друзья
A B
X
Y
Z
Y
Мы Кого мы смотрим
Общий друг
Реализация #1
✦ Заранее скачиваем с FB друзей текущего пользователя
A X Y
Реализация #1
✦ Заранее скачиваем с FB друзей текущего пользователя
✦ Заранее скачиваем с FB друзей просматриваемого
пользователя
A X Y BZ Y
Реализация #1
✦ Заранее скачиваем с FB друзей текущего пользователя
✦ Заранее скачиваем с FB друзей просматриваемого
пользователя
✦ Пересекаем списки в момент показа
A X Y BZ Y
Реализация #1
✦ Заранее скачиваем с FB друзей текущего пользователя
✦ Заранее скачиваем с FB друзей просматриваемого
пользователя
✦ Пересекаем списки в момент показа
✦ PROFIT!!!!
A X Y BZ Y
Апдейт FB API v2.0
Апдейт FB API v2.0
Было
Friends endpoint
* Зарегистрированные (дали доступ Badoo на FB)
* Незарегистрированные
Апдейт FB API v2.0
Было Стало
Friends endpoint
* Зарегистрированные
* Незарегистрированные
Friends endpoint
* Только зарегистрированные
Апдейт FB API v2.0
Было Стало
Friends endpoint
* Зарегистрированные
* Незарегистрированные
All Mutual Friends endpoint
* Зарегистрированные
* Незарегистрированные
* Нужно 2 fb_id
Friends endpoint
* Только зарегистрированные
Реализация #1 — крах
✦ Предварительно скачать всех друзей мы не можем
✦ => Надо получать общих друзей в онлайне
Реализация #2
✦ Предварительно скачиваем списки зарегистрированных
друзей
Реализация #2
✦ Предварительно скачиваем списки зарегистрированных
друзей
✦ В клиентском запросе на профайл делаем HTTP-запрос в
Facebook за общими друзьями
Время на запросы к FB
Время на запросы к FB
Грубо ~1 сек
Реализация #2
✦ Предварительно скачиваем списки зарегистрированных
друзей
✦ В клиентском запросе на профайл делаем HTTP-запрос в
Facebook за общими друзьями
Мы не можем ждать 1с на отрисовку профиля!
Реализация #3
✦ Предварительно скачиваем списки зарегистрированных
друзей
✦ В клиентском запросе на профайл отдельном асинхронном
запросе делаем HTTP-запрос в Facebook за общими
друзьями
PHP
PHP-FPM
Master process
Child process 1
Child process 2
Child process 3
Child process 4
Child process N
Client 1
Client 2
✦ 100 воркеров PHP-FPM на сервер
Реализация #3
✦ 100 воркеров PHP-FPM на сервер
✦ 100 серверов
Реализация #3
✦ 100 воркеров PHP-FPM на сервер
✦ 100 серверов
✦ => 100 * 100 = 10 000 воркеров
Реализация #3
✦ 100 воркеров PHP-FPM на сервер
✦ 100 серверов
✦ => 100 * 100 = 10 000 воркеров
✦ нагрузка 1 000 rps
Реализация #3
✦ 100 воркеров PHP-FPM на сервер
✦ 100 серверов
✦ => 100 * 100 = 10 000 воркеров
✦ нагрузка 1 000 rps
✦ FB “подтупляет" и начинает отвечать по 10 сек
Реализация #3
✦ 100 воркеров PHP-FPM на сервер
✦ 100 серверов
✦ => 100 * 100 = 10 000 воркеров
✦ нагрузка 1 000 rps
✦ FB “подтупляет" и начинает отвечать по 10 сек
✦ через 10 сек 

1 000 * 10 = 10 000 => все воркеры будут заняты
Реализация #3
100 воркеров на сервер
300 воркеров на сервер
7300 воркеров на сервер
✦ CPU-bound нагрузка (обычно)
✦ Память
✦ Context Switch’es
✦ Непредсказуемость времени ответа от Facebook (нужно
“перезакладываться” в десятки раз)
Воркеры — ограничения
Время на запросы к FB
Непредсказуемо
✦ Предварительно скачиваем списки зарегистрированных
друзей
✦ В клиентском запросе на профайл отдельном запросе
делаем HTTP-запрос в Facebook за общими друзьями
Мы не можем себе позволить долгие запросы!
(вообще)
Реализация #3
PHProxyd
Долгий скрипт
Короткие запросы
Реализация #4
Реализация #4
✦ В коротком клиентском запросе запускаем скрипт в PHProxyd
Реализация #4
✦ В коротком клиентском запросе запускаем скрипт в PHProxyd
✦ Клиент перепроверяет (поллит) результаты
Реализация #4
✦ В коротком клиентском запросе запускаем скрипт в PHProxyd
✦ Клиент перепроверяет (поллит) результаты
✦ В скрипте в PHProxyd делаем HTTP-запрос к FB + небольшая
бизнес логика
Реализация #4
✦ В коротком клиентском запросе запускаем скрипт в PHProxyd
✦ Клиент перепроверяет (поллит) результаты
✦ В скрипте в PHProxyd делаем HTTP-запрос к FB + небольшая
бизнес логика
Теперь точно PROFIT!!!!!!!
Теперь точно PROFIT!!!!!!!
Реализация #4
60M per day => 1000 rps в пике
Реализация #4
Реализация #4
Реализация #4
Реализация #4
Реализация #4
Реализация #4
Реализация #4
Реализация #4
Реализация #4
Реализация #4
Прага Майами
Реализация #4
Прага Майами
Реализация #4
XHProf
PHProxyd — замена
✦ Создание воркера на новый запрос (phproxyd)
PHProxyd — замена
✦ Создание воркера на новый запрос (phproxyd)
Не работает
PHProxyd — замена
✦ Создание воркера на новый запрос (phproxyd)
✦ Преподготовить заранее кучу воркеров (php-fpm)
PHProxyd — замена
✦ Создание воркера на новый запрос (phproxyd)
✦ Преподготовить заранее кучу воркеров (php-fpm)
Не работает
PHProxyd — замена
✦ Создание воркера на новый запрос (phproxyd)
✦ Преподготовить заранее кучу воркеров (php-fpm)
✦ Что-то асинхронное (nodejs, React PHP)
PHProxyd — замена
✦ Создание воркера на новый запрос (phproxyd)
✦ Преподготовить заранее кучу воркеров (php-fpm)
✦ Что-то асинхронное (nodejs, React PHP)
Мы любим PHP…
PHProxyd — замена
✦ Создание воркера на новый запрос (phproxyd)
✦ Преподготовить заранее кучу воркеров (php-fpm)
✦ Что-то асинхронное (nodejs, React PHP)
… но НЕТ!
Мы любим PHP…
PHProxyd — замена
✦ Создание воркера на новый запрос (phproxyd)
✦ Преподготовить заранее кучу воркеров (php-fpm)
✦ Что-то асинхронное (nodejs, React PHP)
✦ Go = пишешь “синхронный” код, работает асинхронно
PHProxyd — замена
✦ Создание воркера на новый запрос (phproxyd)
✦ Преподготовить заранее кучу воркеров (php-fpm)
✦ Что-то асинхронное (nodejs, React PHP)
✦ Go = пишешь “синхронный” код, работает асинхронно
+ “сложились звёзды”
Реализация на Go
✦ Предварительно скачиваем списки зарегистрированных друзей
✦ В коротком клиентском запросе запускаем скрипт в PHProxyd
✦ Клиент перепроверяет (поллит) результаты
✦ В скрипте в PHProxyd делаем HTTP-запрос к FB + небольшая
бизнес логика
Реализация #4 (предыдущая)
✦ Предварительно скачиваем списки зарегистрированных друзей
✦ В коротком клиентском запросе запускаем скрипт в PHProxyd
✦ Клиент перепроверяет (поллит) результаты
✦ В скрипте в PHProxyd делаем HTTP-запрос к FB + небольшая
бизнес логика (походы в MySQL, memcache итд)
Реализация #4 (предыдущая)
Реализация #5 — отличия
✦ Принимает на вход “образ” http/https запроса
Реализация #5 — отличия
✦ Принимает на вход “образ” http/https запроса
✦ Отвечает “in progress”, начинает исполнять запрос асинхронно
Реализация #5 — отличия
✦ Принимает на вход “образ” http/https запроса
✦ Отвечает “in progress”, начинает исполнять запрос асинхронно
✦ На повторные реквесты отвечает “in progress” либо данными
Реализация #5 — отличия
✦ Принимает на вход “образ” http/https запроса
✦ Отвечает “in progress”, начинает исполнять запрос асинхронно
✦ На повторные реквесты отвечает “in progress” либо данными
✦ Всю остальную бизнес-логику (базы, мемкеши) оставляем снаружи
Реализация #5
✦ Глобальный map с заданиями и результатами
Реализация #5
✦ Глобальный map с заданиями и результатами
✦ HTTP-сервер, принимает “json” образ запроса, шлёт его в канал
Реализация #5
✦ Глобальный map с заданиями и результатами
✦ HTTP-сервер, принимает “json” образ запроса, шлёт его в канал
✦ N горутин читают из канала, шлют запрос в FB
Реализация #5
✦ Глобальный map с заданиями и результатами
✦ HTTP-сервер, принимает “json” образ запроса, шлёт его в канал
✦ N горутин читают из канала, шлют запрос в FB
✦ После получения результата пишут его в глобальный map
Реализация #5
✦ Глобальный map с заданиями и результатами
✦ HTTP-сервер, принимает “json” образ запроса, шлёт его в канал
✦ N горутин читают из канала, шлют запрос в FB
✦ После получения результата пишут его в глобальный map
✦ Повторный запрос отдаёт результат из этого map
Реализация #5
✦ Глобальный map с заданиями и результатами
✦ HTTP-сервер, принимает “json” образ запроса, шлёт его в канал
✦ N горутин читают из канала, шлют запрос в FB
✦ После получения результата пишут его в глобальный map
✦ Повторный запрос отдаёт результат из этого map
Дублируем продакшен-трафик!!!
Pprof
Keep-Alive
Прага Майами
+ демон на GO + демон на GO
Вписываем в инфраструктуру
Вписываем в инфраструктуру
✦ JSON over HTTP -> “homemade” proto (GPB/JSON over TCP)
Вписываем в инфраструктуру
✦ JSON over HTTP -> “homemade” proto (GPB/JSON over TCP)
✦ Tests
Вписываем в инфраструктуру
✦ JSON over HTTP -> “homemade” proto (GPB/JSON over TCP)
✦ Tests
✦ Build / Deploy
Вписываем в инфраструктуру
✦ JSON over HTTP -> “homemade” proto (GPB/JSON over TCP)
✦ Tests
✦ Build / Deploy
✦ Statistics / monitoring
Было Стало
Заключение
✦ Badoo, Фича Friends
Заключение
✦ Badoo, Фича Friends
✦ PHP, PHP-FPM, долгие запросы, запросы к внешним сервисам
Заключение
✦ Badoo, Фича Friends
✦ PHP, PHP-FPM, долгие запросы, запросы к внешним сервисам
✦ Go: прототип, pprof, keep-alive
Заключение
✦ Изолируйте проблему
Выводы
Выводы
✦ Изолируйте проблему
✦ Делайте прототипы
Выводы
✦ Изолируйте проблему
✦ Делайте прототипы
✦ Не бойтесь экспериментировать
Спасибо!

More Related Content

What's hot

Браузерные API обмена данными: какие и зачем
Браузерные API обмена данными: какие и зачемБраузерные API обмена данными: какие и зачем
Браузерные API обмена данными: какие и зачемPavel Klimiankou
 
Андрей Абакумов (Россия). Yandex.ru. Соавтор: Эльдар Заитов. Автоматизация ск...
Андрей Абакумов (Россия). Yandex.ru. Соавтор: Эльдар Заитов. Автоматизация ск...Андрей Абакумов (Россия). Yandex.ru. Соавтор: Эльдар Заитов. Автоматизация ск...
Андрей Абакумов (Россия). Yandex.ru. Соавтор: Эльдар Заитов. Автоматизация ск...KazHackStan
 
BeeGo для веб приложений, API и демонов
BeeGo для веб приложений, API и демоновBeeGo для веб приложений, API и демонов
BeeGo для веб приложений, API и демоновAnton Piskunov
 
Иван Чалыкин (Россия), Digital Security. Легальный SOP Bypass. Проблемы внедр...
Иван Чалыкин (Россия), Digital Security. Легальный SOP Bypass. Проблемы внедр...Иван Чалыкин (Россия), Digital Security. Легальный SOP Bypass. Проблемы внедр...
Иван Чалыкин (Россия), Digital Security. Легальный SOP Bypass. Проблемы внедр...KazHackStan
 
Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....
Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....
Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....KazHackStan
 
Как ВКонтакте использует Go
Как ВКонтакте использует GoКак ВКонтакте использует Go
Как ВКонтакте использует GoArtem Kovardin
 
Шамбулов У. К. (Казахстан), ГТС. Анализ и исследование инцидентов информацион...
Шамбулов У. К. (Казахстан), ГТС. Анализ и исследование инцидентов информацион...Шамбулов У. К. (Казахстан), ГТС. Анализ и исследование инцидентов информацион...
Шамбулов У. К. (Казахстан), ГТС. Анализ и исследование инцидентов информацион...KazHackStan
 
Андрей Ковалев - Безопасность сайта: мифы и реальность
Андрей Ковалев - Безопасность сайта: мифы и реальностьАндрей Ковалев - Безопасность сайта: мифы и реальность
Андрей Ковалев - Безопасность сайта: мифы и реальностьYandex
 
Михаил Корепанов "Инкрементальные обновления на клиенте"
Михаил Корепанов "Инкрементальные обновления на клиенте"Михаил Корепанов "Инкрементальные обновления на клиенте"
Михаил Корепанов "Инкрементальные обновления на клиенте"Yandex
 
"Особенности записи звука нативными технологиями браузеров" — Федор Котов, Mo...
"Особенности записи звука нативными технологиями браузеров" — Федор Котов, Mo..."Особенности записи звука нативными технологиями браузеров" — Федор Котов, Mo...
"Особенности записи звука нативными технологиями браузеров" — Федор Котов, Mo...MoscowJS
 
«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)
«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)
«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)AvitoTech
 
Плюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовПлюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовYandex
 
«Как 200 строк на Go помогли нам освободить 15 серверов» – Паша Мурзаков (Badoo)
«Как 200 строк на Go помогли нам освободить 15 серверов» – Паша Мурзаков (Badoo)«Как 200 строк на Go помогли нам освободить 15 серверов» – Паша Мурзаков (Badoo)
«Как 200 строк на Go помогли нам освободить 15 серверов» – Паша Мурзаков (Badoo)AvitoTech
 
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...Yandex
 
С чем едят JS-дебаггур?!
С чем едят JS-дебаггур?!С чем едят JS-дебаггур?!
С чем едят JS-дебаггур?!volegg
 
Go в продакшене Яндекса: отчёт после года использования — Вячеслав Бахмутов
Go в продакшене Яндекса: отчёт после года использования — Вячеслав БахмутовGo в продакшене Яндекса: отчёт после года использования — Вячеслав Бахмутов
Go в продакшене Яндекса: отчёт после года использования — Вячеслав БахмутовYandex
 
Путь к Go на конкретном примере
Путь к Go на конкретном примереПуть к Go на конкретном примере
Путь к Go на конкретном примереSergey Xek
 

What's hot (20)

Браузерные API обмена данными: какие и зачем
Браузерные API обмена данными: какие и зачемБраузерные API обмена данными: какие и зачем
Браузерные API обмена данными: какие и зачем
 
Андрей Абакумов (Россия). Yandex.ru. Соавтор: Эльдар Заитов. Автоматизация ск...
Андрей Абакумов (Россия). Yandex.ru. Соавтор: Эльдар Заитов. Автоматизация ск...Андрей Абакумов (Россия). Yandex.ru. Соавтор: Эльдар Заитов. Автоматизация ск...
Андрей Абакумов (Россия). Yandex.ru. Соавтор: Эльдар Заитов. Автоматизация ск...
 
BeeGo для веб приложений, API и демонов
BeeGo для веб приложений, API и демоновBeeGo для веб приложений, API и демонов
BeeGo для веб приложений, API и демонов
 
Иван Чалыкин (Россия), Digital Security. Легальный SOP Bypass. Проблемы внедр...
Иван Чалыкин (Россия), Digital Security. Легальный SOP Bypass. Проблемы внедр...Иван Чалыкин (Россия), Digital Security. Легальный SOP Bypass. Проблемы внедр...
Иван Чалыкин (Россия), Digital Security. Легальный SOP Bypass. Проблемы внедр...
 
Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....
Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....
Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....
 
Как ВКонтакте использует Go
Как ВКонтакте использует GoКак ВКонтакте использует Go
Как ВКонтакте использует Go
 
KazHackStan 2017 | Tracking
KazHackStan 2017 | TrackingKazHackStan 2017 | Tracking
KazHackStan 2017 | Tracking
 
Шамбулов У. К. (Казахстан), ГТС. Анализ и исследование инцидентов информацион...
Шамбулов У. К. (Казахстан), ГТС. Анализ и исследование инцидентов информацион...Шамбулов У. К. (Казахстан), ГТС. Анализ и исследование инцидентов информацион...
Шамбулов У. К. (Казахстан), ГТС. Анализ и исследование инцидентов информацион...
 
Андрей Ковалев - Безопасность сайта: мифы и реальность
Андрей Ковалев - Безопасность сайта: мифы и реальностьАндрей Ковалев - Безопасность сайта: мифы и реальность
Андрей Ковалев - Безопасность сайта: мифы и реальность
 
Михаил Корепанов "Инкрементальные обновления на клиенте"
Михаил Корепанов "Инкрементальные обновления на клиенте"Михаил Корепанов "Инкрементальные обновления на клиенте"
Михаил Корепанов "Инкрементальные обновления на клиенте"
 
"Особенности записи звука нативными технологиями браузеров" — Федор Котов, Mo...
"Особенности записи звука нативными технологиями браузеров" — Федор Котов, Mo..."Особенности записи звука нативными технологиями браузеров" — Федор Котов, Mo...
"Особенности записи звука нативными технологиями браузеров" — Федор Котов, Mo...
 
«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)
«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)
«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)
 
Плюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовПлюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Плюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
 
«Как 200 строк на Go помогли нам освободить 15 серверов» – Паша Мурзаков (Badoo)
«Как 200 строк на Go помогли нам освободить 15 серверов» – Паша Мурзаков (Badoo)«Как 200 строк на Go помогли нам освободить 15 серверов» – Паша Мурзаков (Badoo)
«Как 200 строк на Go помогли нам освободить 15 серверов» – Паша Мурзаков (Badoo)
 
Perl и SPDY
Perl и SPDYPerl и SPDY
Perl и SPDY
 
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...
 
С чем едят JS-дебаггур?!
С чем едят JS-дебаггур?!С чем едят JS-дебаггур?!
С чем едят JS-дебаггур?!
 
Go в продакшене Яндекса: отчёт после года использования — Вячеслав Бахмутов
Go в продакшене Яндекса: отчёт после года использования — Вячеслав БахмутовGo в продакшене Яндекса: отчёт после года использования — Вячеслав Бахмутов
Go в продакшене Яндекса: отчёт после года использования — Вячеслав Бахмутов
 
Golang
GolangGolang
Golang
 
Путь к Go на конкретном примере
Путь к Go на конкретном примереПуть к Go на конкретном примере
Путь к Go на конкретном примере
 

Viewers also liked

Архитектура хранения и отдачи фотографий в Badoo
Архитектура хранения и отдачи фотографий в Badoo Архитектура хранения и отдачи фотографий в Badoo
Архитектура хранения и отдачи фотографий в Badoo Badoo Development
 
TechLeads meetup: Макс Лапшин, Erlyvideo
TechLeads meetup: Макс Лапшин, ErlyvideoTechLeads meetup: Макс Лапшин, Erlyvideo
TechLeads meetup: Макс Лапшин, ErlyvideoBadoo Development
 
TechLeads meetup: Евгений Потапов, ITSumma
TechLeads meetup: Евгений Потапов, ITSumma TechLeads meetup: Евгений Потапов, ITSumma
TechLeads meetup: Евгений Потапов, ITSumma Badoo Development
 
TechLeads meetup: Андрей Шелёхин, Tinkoff.ru
TechLeads meetup: Андрей Шелёхин, Tinkoff.ruTechLeads meetup: Андрей Шелёхин, Tinkoff.ru
TechLeads meetup: Андрей Шелёхин, Tinkoff.ruBadoo Development
 
TechLeads meetup: Алексей Рыбак, Badoo
TechLeads meetup: Алексей Рыбак, BadooTechLeads meetup: Алексей Рыбак, Badoo
TechLeads meetup: Алексей Рыбак, BadooBadoo Development
 
Багфиксинг процесса разработки в iOS: взгляд с двух сторон
Багфиксинг процесса разработки в iOS: взгляд с двух сторонБагфиксинг процесса разработки в iOS: взгляд с двух сторон
Багфиксинг процесса разработки в iOS: взгляд с двух сторонBadoo Development
 
Технологии vs коммуникации: что важнее?
Технологии vs коммуникации: что важнее?Технологии vs коммуникации: что важнее?
Технологии vs коммуникации: что важнее?Badoo Development
 
Как автотесты ускоряют релизы в OK.ru
Как автотесты ускоряют релизы в OK.ruКак автотесты ускоряют релизы в OK.ru
Как автотесты ускоряют релизы в OK.ruBadoo Development
 
Golang в avito
Golang в avitoGolang в avito
Golang в avitoAvitoTech
 
Git хуки на страже качества кода
Git хуки на страже качества кодаGit хуки на страже качества кода
Git хуки на страже качества кодаBadoo Development
 
Как мы готовим MySQL
Как мы готовим MySQLКак мы готовим MySQL
Как мы готовим MySQLBadoo Development
 
Методология: БЭМ, Модули, Отношения
Методология: БЭМ, Модули, ОтношенияМетодология: БЭМ, Модули, Отношения
Методология: БЭМ, Модули, ОтношенияBadoo Development
 
Versioning strategy for a complex internal API
Versioning strategy for a complex internal APIVersioning strategy for a complex internal API
Versioning strategy for a complex internal APIBadoo Development
 
Profiling and optimizing go programs
Profiling and optimizing go programsProfiling and optimizing go programs
Profiling and optimizing go programsBadoo Development
 
Семь тысяч Rps, один go
Семь тысяч Rps, один goСемь тысяч Rps, один go
Семь тысяч Rps, один goBadoo Development
 
"Sharding - patterns & antipatterns". Доклад Алексея Рыбака (Badoo) и Констан...
"Sharding - patterns & antipatterns". Доклад Алексея Рыбака (Badoo) и Констан..."Sharding - patterns & antipatterns". Доклад Алексея Рыбака (Badoo) и Констан...
"Sharding - patterns & antipatterns". Доклад Алексея Рыбака (Badoo) и Констан...Badoo Development
 
Как мы общаемся с пользователями на 46 языках и понимаем друг друга
Как мы общаемся с пользователями на 46 языках и понимаем друг другаКак мы общаемся с пользователями на 46 языках и понимаем друг друга
Как мы общаемся с пользователями на 46 языках и понимаем друг другаBadoo Development
 
Reform: путь к лучшему ORM
Reform: путь к лучшему ORMReform: путь к лучшему ORM
Reform: путь к лучшему ORMBadoo Development
 
Эволюция php code coverage в Badoo. Доклад Ильи Агеева на LoveQA РИТ.
Эволюция php code coverage в Badoo. Доклад Ильи Агеева на LoveQA РИТ.Эволюция php code coverage в Badoo. Доклад Ильи Агеева на LoveQA РИТ.
Эволюция php code coverage в Badoo. Доклад Ильи Агеева на LoveQA РИТ.Badoo Development
 
Доклад Валерия Старынина на DevConf 2014. "StatsCollector, или "Мама! Он и ме...
Доклад Валерия Старынина на DevConf 2014. "StatsCollector, или "Мама! Он и ме...Доклад Валерия Старынина на DevConf 2014. "StatsCollector, или "Мама! Он и ме...
Доклад Валерия Старынина на DevConf 2014. "StatsCollector, или "Мама! Он и ме...Badoo Development
 

Viewers also liked (20)

Архитектура хранения и отдачи фотографий в Badoo
Архитектура хранения и отдачи фотографий в Badoo Архитектура хранения и отдачи фотографий в Badoo
Архитектура хранения и отдачи фотографий в Badoo
 
TechLeads meetup: Макс Лапшин, Erlyvideo
TechLeads meetup: Макс Лапшин, ErlyvideoTechLeads meetup: Макс Лапшин, Erlyvideo
TechLeads meetup: Макс Лапшин, Erlyvideo
 
TechLeads meetup: Евгений Потапов, ITSumma
TechLeads meetup: Евгений Потапов, ITSumma TechLeads meetup: Евгений Потапов, ITSumma
TechLeads meetup: Евгений Потапов, ITSumma
 
TechLeads meetup: Андрей Шелёхин, Tinkoff.ru
TechLeads meetup: Андрей Шелёхин, Tinkoff.ruTechLeads meetup: Андрей Шелёхин, Tinkoff.ru
TechLeads meetup: Андрей Шелёхин, Tinkoff.ru
 
TechLeads meetup: Алексей Рыбак, Badoo
TechLeads meetup: Алексей Рыбак, BadooTechLeads meetup: Алексей Рыбак, Badoo
TechLeads meetup: Алексей Рыбак, Badoo
 
Багфиксинг процесса разработки в iOS: взгляд с двух сторон
Багфиксинг процесса разработки в iOS: взгляд с двух сторонБагфиксинг процесса разработки в iOS: взгляд с двух сторон
Багфиксинг процесса разработки в iOS: взгляд с двух сторон
 
Технологии vs коммуникации: что важнее?
Технологии vs коммуникации: что важнее?Технологии vs коммуникации: что важнее?
Технологии vs коммуникации: что важнее?
 
Как автотесты ускоряют релизы в OK.ru
Как автотесты ускоряют релизы в OK.ruКак автотесты ускоряют релизы в OK.ru
Как автотесты ускоряют релизы в OK.ru
 
Golang в avito
Golang в avitoGolang в avito
Golang в avito
 
Git хуки на страже качества кода
Git хуки на страже качества кодаGit хуки на страже качества кода
Git хуки на страже качества кода
 
Как мы готовим MySQL
Как мы готовим MySQLКак мы готовим MySQL
Как мы готовим MySQL
 
Методология: БЭМ, Модули, Отношения
Методология: БЭМ, Модули, ОтношенияМетодология: БЭМ, Модули, Отношения
Методология: БЭМ, Модули, Отношения
 
Versioning strategy for a complex internal API
Versioning strategy for a complex internal APIVersioning strategy for a complex internal API
Versioning strategy for a complex internal API
 
Profiling and optimizing go programs
Profiling and optimizing go programsProfiling and optimizing go programs
Profiling and optimizing go programs
 
Семь тысяч Rps, один go
Семь тысяч Rps, один goСемь тысяч Rps, один go
Семь тысяч Rps, один go
 
"Sharding - patterns & antipatterns". Доклад Алексея Рыбака (Badoo) и Констан...
"Sharding - patterns & antipatterns". Доклад Алексея Рыбака (Badoo) и Констан..."Sharding - patterns & antipatterns". Доклад Алексея Рыбака (Badoo) и Констан...
"Sharding - patterns & antipatterns". Доклад Алексея Рыбака (Badoo) и Констан...
 
Как мы общаемся с пользователями на 46 языках и понимаем друг друга
Как мы общаемся с пользователями на 46 языках и понимаем друг другаКак мы общаемся с пользователями на 46 языках и понимаем друг друга
Как мы общаемся с пользователями на 46 языках и понимаем друг друга
 
Reform: путь к лучшему ORM
Reform: путь к лучшему ORMReform: путь к лучшему ORM
Reform: путь к лучшему ORM
 
Эволюция php code coverage в Badoo. Доклад Ильи Агеева на LoveQA РИТ.
Эволюция php code coverage в Badoo. Доклад Ильи Агеева на LoveQA РИТ.Эволюция php code coverage в Badoo. Доклад Ильи Агеева на LoveQA РИТ.
Эволюция php code coverage в Badoo. Доклад Ильи Агеева на LoveQA РИТ.
 
Доклад Валерия Старынина на DevConf 2014. "StatsCollector, или "Мама! Он и ме...
Доклад Валерия Старынина на DevConf 2014. "StatsCollector, или "Мама! Он и ме...Доклад Валерия Старынина на DevConf 2014. "StatsCollector, или "Мама! Он и ме...
Доклад Валерия Старынина на DevConf 2014. "StatsCollector, или "Мама! Он и ме...
 

Similar to Паша Мурзаков: Как 200 строк на Go помогли нам освободить 15 серверов»

полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...rit2011
 
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...Sergey Xek
 
Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"
Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"
Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"Fwdays
 
Компиляция скриптов PHP. Алексей Романенко
Компиляция скриптов PHP. Алексей РоманенкоКомпиляция скриптов PHP. Алексей Романенко
Компиляция скриптов PHP. Алексей РоманенкоFuenteovejuna
 
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...rit2011
 
Компиляция скриптов PHP (Алексей Романенко)
Компиляция скриптов PHP (Алексей Романенко)Компиляция скриптов PHP (Алексей Романенко)
Компиляция скриптов PHP (Алексей Романенко)Ontico
 
Badoo Desktop: оптимизация приложения на миллион юзеров онлайн
Badoo Desktop: оптимизация приложения на миллион юзеров онлайнBadoo Desktop: оптимизация приложения на миллион юзеров онлайн
Badoo Desktop: оптимизация приложения на миллион юзеров онлайнSergey Xek
 
Работа с требованиями в Интернет стартапе
Работа с требованиями в Интернет стартапеРабота с требованиями в Интернет стартапе
Работа с требованиями в Интернет стартапеAlexander Baikin
 
Работа с требованиями в Интернет-стартапе / Александр Байкин (UML2.ru)
Работа с требованиями в Интернет-стартапе / Александр Байкин (UML2.ru)Работа с требованиями в Интернет-стартапе / Александр Байкин (UML2.ru)
Работа с требованиями в Интернет-стартапе / Александр Байкин (UML2.ru)Ontico
 
Badoo Desktop: оптимизация приложения на миллион юзеров онлайн
Badoo Desktop: оптимизация приложения на миллион юзеров онлайнBadoo Desktop: оптимизация приложения на миллион юзеров онлайн
Badoo Desktop: оптимизация приложения на миллион юзеров онлайнSergey Xek
 
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...Ontico
 
Макс Волошин: Php + shell = ♥
Макс Волошин: Php + shell = ♥Макс Волошин: Php + shell = ♥
Макс Волошин: Php + shell = ♥Oleg Poludnenko
 
Как потратить 4 года и мешок денег на рефакторинг и ничего не запустить / М.Ч...
Как потратить 4 года и мешок денег на рефакторинг и ничего не запустить / М.Ч...Как потратить 4 года и мешок денег на рефакторинг и ничего не запустить / М.Ч...
Как потратить 4 года и мешок денег на рефакторинг и ничего не запустить / М.Ч...Ontico
 
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...Igor Miniailo
 
My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016Alex Chistyakov
 
Что делать, когда у вас 100 партнеров / Иван Потапов (Lamoda)
Что делать, когда у вас 100 партнеров / Иван Потапов (Lamoda)Что делать, когда у вас 100 партнеров / Иван Потапов (Lamoda)
Что делать, когда у вас 100 партнеров / Иван Потапов (Lamoda)Ontico
 
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)Ontico
 

Similar to Паша Мурзаков: Как 200 строк на Go помогли нам освободить 15 серверов» (20)

полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
 
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
 
Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"
Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"
Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"
 
Компиляция скриптов PHP. Алексей Романенко
Компиляция скриптов PHP. Алексей РоманенкоКомпиляция скриптов PHP. Алексей Романенко
Компиляция скриптов PHP. Алексей Романенко
 
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
 
Компиляция скриптов PHP (Алексей Романенко)
Компиляция скриптов PHP (Алексей Романенко)Компиляция скриптов PHP (Алексей Романенко)
Компиляция скриптов PHP (Алексей Романенко)
 
Badoo Desktop: оптимизация приложения на миллион юзеров онлайн
Badoo Desktop: оптимизация приложения на миллион юзеров онлайнBadoo Desktop: оптимизация приложения на миллион юзеров онлайн
Badoo Desktop: оптимизация приложения на миллион юзеров онлайн
 
Работа с требованиями в Интернет стартапе
Работа с требованиями в Интернет стартапеРабота с требованиями в Интернет стартапе
Работа с требованиями в Интернет стартапе
 
Работа с требованиями в Интернет-стартапе / Александр Байкин (UML2.ru)
Работа с требованиями в Интернет-стартапе / Александр Байкин (UML2.ru)Работа с требованиями в Интернет-стартапе / Александр Байкин (UML2.ru)
Работа с требованиями в Интернет-стартапе / Александр Байкин (UML2.ru)
 
Badoo Desktop: оптимизация приложения на миллион юзеров онлайн
Badoo Desktop: оптимизация приложения на миллион юзеров онлайнBadoo Desktop: оптимизация приложения на миллион юзеров онлайн
Badoo Desktop: оптимизация приложения на миллион юзеров онлайн
 
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...
 
Ryazan
RyazanRyazan
Ryazan
 
Макс Волошин: Php + shell = ♥
Макс Волошин: Php + shell = ♥Макс Волошин: Php + shell = ♥
Макс Волошин: Php + shell = ♥
 
Как потратить 4 года и мешок денег на рефакторинг и ничего не запустить / М.Ч...
Как потратить 4 года и мешок денег на рефакторинг и ничего не запустить / М.Ч...Как потратить 4 года и мешок денег на рефакторинг и ничего не запустить / М.Ч...
Как потратить 4 года и мешок денег на рефакторинг и ничего не запустить / М.Ч...
 
JPHP
JPHPJPHP
JPHP
 
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
 
My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016
 
ChromeDriver Jailbreak
ChromeDriver JailbreakChromeDriver Jailbreak
ChromeDriver Jailbreak
 
Что делать, когда у вас 100 партнеров / Иван Потапов (Lamoda)
Что делать, когда у вас 100 партнеров / Иван Потапов (Lamoda)Что делать, когда у вас 100 партнеров / Иван Потапов (Lamoda)
Что делать, когда у вас 100 партнеров / Иван Потапов (Lamoda)
 
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
 

More from Badoo Development

Viktar Karanevich – iOS Parallel Automation
Viktar Karanevich – iOS Parallel AutomationViktar Karanevich – iOS Parallel Automation
Viktar Karanevich – iOS Parallel AutomationBadoo Development
 
Как мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон ДовгальКак мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон ДовгальBadoo Development
 
Григорий Джанелидзе, OK.RU
Григорий Джанелидзе, OK.RUГригорий Джанелидзе, OK.RU
Григорий Джанелидзе, OK.RUBadoo Development
 
Андрей Сидоров, Яндекс.Браузер
Андрей Сидоров, Яндекс.БраузерАндрей Сидоров, Яндекс.Браузер
Андрей Сидоров, Яндекс.БраузерBadoo Development
 
Филипп Уваров, Avito
Филипп Уваров, AvitoФилипп Уваров, Avito
Филипп Уваров, AvitoBadoo Development
 
Cocoaheads Meetup / Alex Zimin / Swift magic
Cocoaheads Meetup / Alex Zimin / Swift magicCocoaheads Meetup / Alex Zimin / Swift magic
Cocoaheads Meetup / Alex Zimin / Swift magicBadoo Development
 
Cocoaheads Meetup / Kateryna Trofimenko / Feature development
Cocoaheads Meetup / Kateryna Trofimenko / Feature developmentCocoaheads Meetup / Kateryna Trofimenko / Feature development
Cocoaheads Meetup / Kateryna Trofimenko / Feature developmentBadoo Development
 
Alex Krasheninnikov – Hadoop High Availability
Alex Krasheninnikov – Hadoop High AvailabilityAlex Krasheninnikov – Hadoop High Availability
Alex Krasheninnikov – Hadoop High AvailabilityBadoo Development
 
Андрей Денисов – В ожидании мониторинга баз данных
Андрей Денисов – В ожидании мониторинга баз данныхАндрей Денисов – В ожидании мониторинга баз данных
Андрей Денисов – В ожидании мониторинга баз данныхBadoo Development
 
Александр Зобнин, Grafana Labs
Александр Зобнин, Grafana LabsАлександр Зобнин, Grafana Labs
Александр Зобнин, Grafana LabsBadoo Development
 
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественноИлья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественноBadoo Development
 
Как мы готовим MySQL
 Как мы готовим MySQL  Как мы готовим MySQL
Как мы готовим MySQL Badoo Development
 
5 способов деплоя PHP-кода в условиях хайлоада
5 способов деплоя PHP-кода в условиях хайлоада5 способов деплоя PHP-кода в условиях хайлоада
5 способов деплоя PHP-кода в условиях хайлоадаBadoo Development
 
Мобильный веб: назад в будущее
Мобильный веб: назад в будущееМобильный веб: назад в будущее
Мобильный веб: назад в будущееBadoo Development
 
Что надо знать о HTTP/2
Что надо знать о HTTP/2Что надо знать о HTTP/2
Что надо знать о HTTP/2Badoo Development
 

More from Badoo Development (17)

Viktar Karanevich – iOS Parallel Automation
Viktar Karanevich – iOS Parallel AutomationViktar Karanevich – iOS Parallel Automation
Viktar Karanevich – iOS Parallel Automation
 
Как мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон ДовгальКак мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон Довгаль
 
Григорий Джанелидзе, OK.RU
Григорий Джанелидзе, OK.RUГригорий Джанелидзе, OK.RU
Григорий Джанелидзе, OK.RU
 
Андрей Сидоров, Яндекс.Браузер
Андрей Сидоров, Яндекс.БраузерАндрей Сидоров, Яндекс.Браузер
Андрей Сидоров, Яндекс.Браузер
 
Филипп Уваров, Avito
Филипп Уваров, AvitoФилипп Уваров, Avito
Филипп Уваров, Avito
 
Cocoaheads Meetup / Alex Zimin / Swift magic
Cocoaheads Meetup / Alex Zimin / Swift magicCocoaheads Meetup / Alex Zimin / Swift magic
Cocoaheads Meetup / Alex Zimin / Swift magic
 
Cocoaheads Meetup / Kateryna Trofimenko / Feature development
Cocoaheads Meetup / Kateryna Trofimenko / Feature developmentCocoaheads Meetup / Kateryna Trofimenko / Feature development
Cocoaheads Meetup / Kateryna Trofimenko / Feature development
 
Alex Krasheninnikov – Hadoop High Availability
Alex Krasheninnikov – Hadoop High AvailabilityAlex Krasheninnikov – Hadoop High Availability
Alex Krasheninnikov – Hadoop High Availability
 
Андрей Денисов – В ожидании мониторинга баз данных
Андрей Денисов – В ожидании мониторинга баз данныхАндрей Денисов – В ожидании мониторинга баз данных
Андрей Денисов – В ожидании мониторинга баз данных
 
Александр Зобнин, Grafana Labs
Александр Зобнин, Grafana LabsАлександр Зобнин, Grafana Labs
Александр Зобнин, Grafana Labs
 
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественноИлья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
 
Как мы готовим MySQL
 Как мы готовим MySQL  Как мы готовим MySQL
Как мы готовим MySQL
 
5 способов деплоя PHP-кода в условиях хайлоада
5 способов деплоя PHP-кода в условиях хайлоада5 способов деплоя PHP-кода в условиях хайлоада
5 способов деплоя PHP-кода в условиях хайлоада
 
Мобильный веб: назад в будущее
Мобильный веб: назад в будущееМобильный веб: назад в будущее
Мобильный веб: назад в будущее
 
S.O.L.I.D-ый JavaScript
S.O.L.I.D-ый JavaScriptS.O.L.I.D-ый JavaScript
S.O.L.I.D-ый JavaScript
 
Что надо знать о HTTP/2
Что надо знать о HTTP/2Что надо знать о HTTP/2
Что надо знать о HTTP/2
 
Парсим CSS
Парсим CSSПарсим CSS
Парсим CSS
 

Паша Мурзаков: Как 200 строк на Go помогли нам освободить 15 серверов»