Доклад с PUG#4 https://www.facebook.com/events/350783888446030/
Рассмотрим:
- Что такое Highload, термины, инструменты.
- Где тормозит PHP, родовые травмы языка, как с ними жить.
- Скорость работы vs скорость разработки.
- Архитектура, что стоит делать и когда.
1 of 25
More Related Content
Алексей Иванкин: Highload + PHP
1. HighLoad и PHP
Aleksey Ivankin
CTO @ 908.vc
400 000 daily average users
16 000 000 request per day
2. Как и у кого это происходит?
Рост в 5-10 раз в течении нескольких дней или недель
1M pageview в сутки и более
4. Rasmus Lerdorf: PHP — просто инструмент, с помощью которого можно сколотить
классные штуки. И мне нравится именно это — то, что создано с помощью PHP.
Я никогда не работал в компании, производящей инструменты; много лет я
проработал в Yahoo, потом в WePay, сейчас — в Etsy. Это компании, которые
работают для нормальных, обычных людей, и PHP — их неотъемлемая часть. Это
инструмент, которым мы пользуемся, чтобы делать вещи для реальных людей.
5. Родовые проблемы PHP
• Интерпретируемый язык —>
компилятор в C++ (Facebook HPHPc)
• Born to die —> демоны (phpDaemon)
• Многопоточность —> нет в коробке
(pthreads)
• OOP overhead —> Функциональное
программирование
13. Домашняя работа
• Разделение веб-сервера на легкий и тяжелый (Nginx
+Apache, Nginx+PHPFPM)
• Роли Application Server / DB Server / Static File Server
• Распределенное файловое + единое сессионное
хранилище = уход от монолитности + запуск в облаке
• Кеширование
• Денормализация, дублирование данных (хранение
данных в разных хранилищах в зависимости от видов
запросов) = SQL + NoSQL + Sphinix/ES + ...
15. Action plan
1. Вычисление скорости элементов системы в
бизнес терминах
2. Нахождение узких мест или ненужной
функциональности или недостатков
архитектуры
3. Критический эксперимент и анализ
результатов
4. Пункт №1
18. Идея первая и последняя — отдавать
страницу целиком из кеша
Решение проблем сессий, cookies, кастомизаций,
прогрева, инвалидации, приветствий пользователя.