![image](https://68.media.tumblr.com/9b884e0934f7a29eac97cd2c050ab9ba/tumblr_inline_o4lkrs7w841rtz0db_540.png)
Вдохновившись как компания Badoo перешла на PHP7 и сэкономила $1M ( https://habrahabr.ru/company/badoo/blog/279047/ ) решили и я перевести стартап AppStorio на 7-ку.
Вкратце о AppStorio
AppStorio - сервис который помогает разработчикам мобильный приложений AppStore создавать быстро сайты для приложений, с разными полезными фишками (супорт система, ревью итд).
Также мы собираем статистику AppStore и ведем работы в области создания ASO сервиса…
Технологии
Сервис изначально разрабатывался на PHP фреймворке Laravel.
В качестве поискового движка и для построения каталога выбрали Elasticsearch, но тесты показали что ест он достаточно много памяти и ресурсов (а хоcтимся мы на не самых дорогих ВПС-ках DigitalOcean (20-40уе ноды) - ноды с большим объемом памяти стоят уже не дешево ) в итоге еластик пока отложили до лучший ($) времен - и используем sphinx (быстро, надежно и просто - хотя и с своими минусами).
В качестве СУБД используем MySQL (percona server - все таблички innodb ).
Веб сервер Nginx с PHP-FPM - работает все на ОС Debian 8.
Все спрятано за CloudFlare CDN - на бесплатном тарифе.
Это и зашита от ДДоса, средство ускорить сайт за счет кучи точек присутствия CDN сети ну и в конце концов - очень удобный и качественный инструмент в жизни веб проекта.
Используем пару десятков сторонних бандлов через composer
Переход
Для чистоты эксперимента - для перехода мы создали аналогичный дроплет у ДО в том же регионе (sfo1) c теме же настройками php7 ставили с репозитория dotdeb.org
Открываем файл
/etc/apt/sources.list
И добавляем строки
deb http://packages.dotdeb.org jessie all
deb-src http://packages.dotdeb.org jessie all
Также добавляем ключь репозитирия
wget https://www.dotdeb.org/dotdeb.gpg
apt-key add dotdeb.gpg
Теперь обновляем информацию о пакетах
apt-get update
Скрестим пальцы…
И ставим
apt-get install php7.0-fpm php7.0-gd php7.0-pgsql php7.0-apcu php7.0-curl
Вот и все PHP7 наш!
Далее ставим Nginx и настраиваем его ( у меня php7-fpm через сокет )
![image](https://68.media.tumblr.com/bbbc9ab2d09ced74be3e837bc0c28397/tumblr_inline_o4ll4iT8cl1rtz0db_540.png)
Стягиваем код проекта с гитхаба (в самом коде ничего не менялось)
Прописали в хостах у себя новую ноду как сервер appstor.io и…
Главную страничку успешно отдал наш php7
![image](https://68.media.tumblr.com/461fa5675623578885cd65fce015bcdc/tumblr_inline_o4ll78Bez41rtz0db_540.png)
В процессе конечно выяснилось что код в одном из бандлов таки поламал нам часть функционала - пришлось поправить его по быстрому в лучшых традициях багфиксинга на скору руку.
![image](https://68.media.tumblr.com/4f05790ed4e1d028520971f7ac8cf712/tumblr_inline_o4ll7wxvrJ1rtz0db_540.png)
Но в целом весь переезд занял менее суток - часть из которых было потрачено на кофе, куда без него а часть на перетягивание данных проекта итд
Поигравшись и потестировав сайт - отправили и всех юзеров на новую ноду - просто подставим в cloudflare айпи новой ноды.
И первые юзеры пошли уже на новую ноду.
![image](https://68.media.tumblr.com/602cfb86872516a48fcc1fe938d3e08e/tumblr_inline_o4ll8qiz4R1rtz0db_540.png)
Результаты
![image](https://68.media.tumblr.com/05dea30c86d5083d711a0894bbc2327a/tumblr_inline_o4ll9hy4jf1rtz0db_540.jpg)
Как видно из графиков - главный выигрыш снижение нагрузки на веб ноду в среднем на 30%
Существенно меньше потребление памяти ( в два раза! )
Я ожидали меньшего, так как у нас вроде бы не супер математический код просчета траектории на луну - а не тут то было..
Парни из Zend-а и сообщество не зря работают - и PHP активно развивается.
Теперь вы сможете порадовать своим проектом больше юзеров, и сэкономить на оборудовании - так что переходить на новые технологии и решения однозначно стоит - а архаичным динозаврам место в зоопарке а не у вас на проекте!
p.s. спасибо Alexander Bilyk за то что убедил апрейдится =)