Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
HighLoad и PHP
Aleksey Ivankin
CTO @ 908.vc
400 000 daily average users
16 000 000 request per day
Как и у кого это происходит?
Рост в 5-10 раз в течении нескольких дней или недель
1M pageview в сутки и более
Почему PHP?
Низкий порог входа и нас много
Rasmus Lerdorf: PHP — просто инструмент, с помощью которого можно сколотить
классные штуки. И мне нравится именно это — то, что создано с помощью PHP.
Я никогда не работал в компании, производящей инструменты; много лет я
проработал в Yahoo, потом в WePay, сейчас — в Etsy. Это компании, которые
работают для нормальных, обычных людей, и PHP — их неотъемлемая часть. Это
инструмент, которым мы пользуемся, чтобы делать вещи для реальных людей.
Родовые проблемы PHP
• Интерпретируемый язык —>
компилятор в C++ (Facebook HPHPc)
• Born to die —> демоны (phpDaemon)
• Многопоточность —> нет в коробке
(pthreads)
• OOP overhead —> Функциональное
программирование
Как это выглядит со стороны ваших пользователей
Как это видит ваш системный администратор
Don't panic
• Инструменты
• Домашнее задание
• Архитектурные и не очень подходы
• Треугольник "Деньги" — "Скорость продукта" —
"Скорость разработки"
Инструменты — когда нет времени
Инструменты — Elastic Search+Kibana
Инструменты — Pinba + IntaroPinboard
Инструменты — AB Apache + Zabbix
Домашняя работа
• Разделение веб-сервера на легкий и тяжелый (Nginx
+Apache, Nginx+PHPFPM)
• Роли Application Server / DB Server / Static File Server
• Распределенное файловое + единое сессионное
хранилище = уход от монолитности + запуск в облаке
• Кеширование
• Денормализация, дублирование данных (хранение
данных в разных хранилищах в зависимости от видов
запросов) = SQL + NoSQL + Sphinix/ES + ...
Деньги
Качество кода
Скорость
разработки
Скорость
бекенда
Action plan
1. Вычисление скорости элементов системы в
бизнес терминах
2. Нахождение узких мест или ненужной
функциональности или недостатков
архитектуры
3. Критический эксперимент и анализ
результатов
4. Пункт №1
Делаем timeline в бизнес терминах
Know your place
HTML отдался за 250мс, страница показалась на
2500мс
Идея первая и последняя — отдавать
страницу целиком из кеша
Решение проблем сессий, cookies, кастомизаций,
прогрева, инвалидации, приветствий пользователя.
Идем дальше — толстый клиент
Но для SEO все равно придется генерировать HTML
Идем дальше — Nginx SSI многопоточность
Идем дальше — репликация
Идем дальше — очереди
Идем дальше — используем кеш xcache/apc вместо
memcache
Идем дальше — сервисная архитектура
Идем дальше

More Related Content

Алексей Иванкин: Highload + PHP