Россия:
+7 (499) 346-87-75
Украина:
+380 (32) 253-96-65
24.07.2014

Высоконагруженные сайты и приложения на PHP / Symfony.

Каждый разработчик, который работает на той или иной технологии, постоянно читает о ней что-то новенькое и углубляет свои знания. И мы не исключение. PHP довольно старый и популярный язык, на котором есть много разных фреимворков. Один из самых популярных и серьезных – это Symfony и так уж исторически получилось, что мы на нем пишем. По этому фреимфорку в рунете не так много информации, как хотелось бы, мы часто читаем разные статьи, обзоры и интервью на английском языке, чтобы быть в курсе последних событий. Эта статья – обзор больших сайтов, которые сделаны на PHP / Symfony с уникальной для рунета информацией, а также описание некоторых технологий, которые применяются в связке с ними. И да, мы знаем, что PHP «уже не торт» и что использовать его уже не модно, однако эта технология имеет большую долю рынка, много наработок и отличную документацию, поэтому мы её используем наравне с Python, Ruby, Java и другими.

Таблица известных проектов (на основе данных http://builtwith.com/):

Website name Link Language CMS/Framework TYC/PR Server Hosting Providers Analytics and Tracking JavaScript Libraries Widgets Other Media Mapping
Yahoo! Bookmarks http://bookmarks.yahoo.com/ PHP Symfony 0/6 Apache comScore Yahoo User Interface HTML 4, CSS, Javascript, Conditional Comments
Delicious https://delicious.com/ PHP Symfony 9000/8 nginx Amazon Google Analytics, Chartbeat, comScore RequireJS, jQuery, Modernizr, Mousetrap, Backbone.js Alexa Verify HTML 5, CSS, Javascript
TED http://www.ted.com/ PHP, Ruby Symfony, Ruby on Rails 1900/8 nginx, Apache, Varnish Rackspace Google Analytics, Chartbeat, comScore, Facebook Domain Insights, New Relic, Nielsen//NetRatings SWFObject, jQuery, Facebook, RequireJS, Modernizr, Backbone.js, Swipe JS, JCarousel Lite Facebook Like, MailChimp, Smart App Banner, ZeroClipboard HTML5, XHTML, Javascript, CSS Ted Media, JW Player Google Maps
Dailymotion http://www.dailymotion.com/ PHP Symfony 4300/6 Optimizely, Facebook Domain Insights, comScore, Google Analytics Twitter Platform, jQuery, Facebook SDK, SWFObject Twitter Tweet/Follow Button, Facebook Like Twitter Cards, Iframe, CSS, HTML5, Javascript DailyMotion Video
Travelbug by Trademe http://www.travelbug.co.nz/ PHP, .NET 0/7 IIS Facebook Domain Insights, Nielsen//NetRatings, Google Analytics Facebook, jQuery Facebook Like, Google Plus Platform Iframe, HTML5, CSS, Javascript
W3 Counter http://www.w3counter.com/ PHP Symfony 150/6 nginx Softlayer Improvely,Quantcast Measurement, W3 Counter jQuery Google Font API Javascript, CSS, Twitter Bootstrap, HTML5
Open Metadata registry http://metadataregistry.org/ PHP Symfony 0/7 Apache Rackspace Google Analytics Get Satisfaction XHTML, Javascript, CSS
Photobucket http://photobucket.com/ PHP Symfony 2100/7 Apache Facebook Domain Insights, Nielsen//NetRatings, Google Analytics Facebook Like HTML5, Pinterest Domain Verify, CSS, Iframe, Javascript
Servergrove http://www.servergrove.com/ PHP Symfony 10/7 nginx, Apache Google Analytics Fancybox, Modernizr, jQuery Google Font API, Facebook Like HTML 5, CSS, Javascript, Iframe Vimeo
eZ Publish Platform 5.2 http://ez.no/ PHP Symfony framework
Postcrossing http://www.postcrossing.com/ PHP Symfony 230/6 Apache DNS Made Easy, Tiggee, Amazon Google Analytics Facebook SDK Facebook Sharer XHTML, Javascript, CSS, Meta Robot
Lecturetools https://www.lecturetools.com/ PHP Symfony/Drupal 0/6 Apache Rackspace Google Analytics, Hubspot Twitter Platform, jQuery, LinkedIn Platform API, Fancybox Google Font API, Twitter Tweet Button, LinkedIn Share Plugin Iframe, HTML5, CSS, Javascript, XHTML, Purl Wistia, Vimeo
Listible http://www.listible.com/ PHP Symfony 0/6 Apache Amazon Google Analytics, Mixpanel, KISSmetrics jQuery Typekit XHTML, Javascript, CSS
YouPorn http://www.youporn.com/ PHP Symfony 160/6 Varnish, nginx Swiftwill Google Analytics jQuery, Modernizr, SWFObject, Fancybox, Adobe Active Content, Twitter Platform, yepnope Tumblr Buttons, Twitter Tweet Button, AddThis, Google Plus One Platform Iframe, HTML5, XHTML, Javascript, CSS Brazzers
Brrmedia http://www.brrmedia.com/ PHP Symfony 0/6 Apache Amazon Nielsen//NetRatings, Google Analytics, Woopra Fancybox, Nivo Slider, jQuery, TipTip Jquery Wufoo XHTML, CSS, Javascript
AIME Mentoring http://aimementoring.com/ PHP Symfony 0/7 Apache Media Temple Google Analytics jQuery, LinkedIn Platform API, Twitter Platform, Facebook SDK Facebook Like Button, LinkedIn Follow Company Plugin Iframe, HTML5, CSS, Javascript YouTube
GenerationOne http://generationone.org.au/ PHP Symfony 0/6 Apache Amazon New Relic, Google Analytics jQuery, JSON, Facebook SDK Facebook Like Iframe, HTML5, CSS, Javascript
Canadian Football League http://www.cfl.ca/ PHP Symfony 20/7 Apache, Varnish Q9 Networks Google Analytics, Chartbeat, comScore, Twitter Analytics jQuery, SWFObject, Prototype Typekit, Facebook Like Iframe, CSS, Javascript, XHTML JW Player
Confoo http://confoo.ca/en PHP Symfony, eZ Systems 10/6 Apache Piwik Web Analytics Nivo Slider, jQuery Iframe, CSS, Javascript, XHTML YouTube
Kuchenatlas http://www.kuechen-atlas.de/ PHP Symfony 10/6 nginx, Apache Piwik Web Analytics, Google Analytics jQuery CSS, Javascript, HTML5
Eventfinda http://www.eventfinder.co.nz/ PHP Symfony 10/6 nginx ICONZ New Relic, Google Analytics, Optimizely, Facebook Domain Insights, Nielsen//NetRatings Twitter Platform, jQuery, Facebook SDK Google Font API, Facebook Like Box, Thickbox, Pinterest Twitter Bootstrap, HTML5, Javascript, CSS
GQ Spain http://www.revistagq.com/ PHP Symfony 20/6 Apache Google Analytics, comScore, MediaMind, Nielsen//NetRatings, Pingdom RUM Twitter Platform, Facebook SDK, jQuery, Nivo Slider Google Plus One Platform, Facebook Like Button, Twitter Tweet Button Iframe, CSS, Javascript, XHTML, HTML5, Purl
Heriot-Watt University http://www.hw.ac.uk/ PHP Symfony 375/7 Apache Google Analytics IE Pinning, Modernizr, jQuery Google Font API HTML5, CSS, Javascript
Marie Claire http://www.marieclaire.co.uk/ PHP Symfony 90/6 Apache Savvis, Akamai Hosted, NTT America comScore, Compuware Analytics, Nielsen//NetRatings, New Relic, Krux Digital, AudienceScience, Facebook Domain Insights, Google Analytics, Moat, Eloqua Facebook SDK, jQuery, Twitter Platform, Facebook for Websites Qualaroo, Smart App Banner, Po.st, Twitter Follow Button, Google Plus One Platform, Facebook Like Iframe, CSS, Javascript, XHTML, HTML5 Brightcove
BlaBlaCar http://www.blablacar.com/ PHP Symfony 20/6 Varnish, nginx Cedexis, New Relic, Facebook Domain Insights, Google Analytics jQuery, Twitter Platform, Facebook for Websites, Moment JS Facebook Like, Google Plus One Platform, Twitter Tweet Button Iframe, HTML5, CSS, Javascript

Yahoo! Bookmarks (онлайн сервис)

Использованные технологии:

Думаю, не стоит рассказывать о компании Yahoo!. Всем она хорошо известна, пусть даже и сдала немного в своих позициях. Здесь стоит отметить, что одно время проект Yahoo! Bookmarks был написан на языке Perl, а в дальнейшем стал использоваться PHP и фреймворк Symfony. При том, по словам Майкла Солсбери выбор пал на Symfony благодаря прекрасной документации, широким возможностям настройки и использованию лучших в своем роде компонентов, которые не надо разрабатывать с нуля.

(источник http://www.symfony-project.org/blog//2006/10/28/yahoo-bookmarks-uses-symfony)

Немного о статистике:

Yahoo! Bookmarks ежемесячно посещают более 500 тыс. пользователей. Кол-во уникальных посещений на апрель месяца 2014 года составляет чуть более 200 тыс. Это число значительно уменьшилось по отношению к показателям за прошлый год – более 500 тыс. уникальных посещений за июнь 2013 года.

(источник http://www.siteclass.com/www/bookmarks.yahoo.com)

Delicious.com. (онлайн сервис)

Использованные технологии:

PHP как язык программирования и в качестве фреймворка был выбран Symfony. Хостинг – Amazon. За основную систему управления базами данных взята MySQL, кэширование объектов выполняет memcached, а Redis выступает в качестве дополнительного хранилища данных.

Немного о статистике:

Ежемесячно delicious.com посещает около 1,5 миллиона человек, из них уникальных посещений – более чем 250 тысяч. Статистика на данный момент сильно падает. На тот момент, как проектом владела компания Yahoo! на сайте было зарегистрировано более 5,3 миллионов пользователей и 180 миллионов уникальных закладок.

(источник http://www.siteclass.com/www/delicious.com, http://en.wikipedia.org/wiki/Delicious_(website))

TED (сайт конференции)

Использованные технологии:

Ted.com родился в 2006 году. Проект использовал PHP как язык программирования и Symfony в качестве фреймворка. В интервью с главным техническим директором Гэвином Холлом и архитектором ПО Майклом Твентимэном говорится о первой версии сайта, построенной на вышеперечисленной технологии. PHP был выбран как один из популярных на то время языков, который знали многие разработчики. Также упоминается, что опыт масштабирования таких гигантов как Yahoo! и Facebook, использующих PHP, также повлиял на выбор языка программирования.

(источник http://hello.ted.com/2013/10/04/under-the-hood/)

Немного о статистике:

На январь 2014 года более чем 1500 записей выступлений на конференции было опубликовано на сайте. Каждую неделю публикуется 5-7 новых выступлений. 13 ноября 2012 года TED достиг отметки в миллиард просмотров. Ежемесячно ted.com посещают 2 миллиона 200 тыс. человек, из них уникальных посещений – более чем 1 миллион.

(источник https://www.quantcast.com/pitchfork.com)

Dailymotion (видеохостинг)

Использованные технологии:

Проект был запущен в 2005 году на основе домашних серверов Linux. Поначалу к нему относились скептически, и после того, как отметка уникальных посещений перевалила за 37 миллионов в месяц, создатели задумались о расширении. В 2009 Dailymotion перешел на Symfony. Итак, в проекте так же используется связка PHP и Symfony. За основную систему управления базами данных взята MySQL, кэширование объектов выполняет memcached.

(источник https://www.ndm.net/isilon/pdf/dailymotion.pdf, http://whoisusing.it/website/dailymotion)

Немного о статистике:

Dailymotion на 2013 год имел более 112 миллионов уникальных посещений и 2,5 миллиарда просмотров по всему миру. Сюда входят 50 Гбит информации в день, 25 миллионов просмотров страниц в день, 2 миллиона пользователей в день и добавление видео объемом в 1 Тбайт в день (источник ComScore, январь 2013). На 2012 год сайт был 32м по посещаемости в мире.

(источник https://www.ndm.net/isilon/pdf/dailymotion.pdf, http://advertising.dailymotion.com/stats/)

BlaBlaCar (социальная сеть (платформа))

Использованные технологии:

PHP как язык программирования и в качестве фреймворка был выбран Symfony. За основную систему управления базами данных взята MySQL, кэширование объектов выполняет memcached, а коллекций объектов – Redis. Все это работает также в связке с RabbitMQ. Elasticsearch используется как поисковая платформа.

(источник http://moquet.net/talks/symfony-live-2013/)

Немного о статистике:

Проект был запущен в 2004 году. За десять лет количество пользователей постепенно росло, и на 2014 год составляет 6 миллионов зарегистрированных водителей и пассажиров. Было совершенно порядка 30 миллионов поездок за время работы проекта. В январе 2014 года BlaBlaCar появился в России и Украине. На сегодняшний момент статистика по сайту такая: более 27 тысяч уникальных ежедневных посещений и более 160 тысяч просмотров страниц.

(источник http://fr.wikipedia.org/wiki/BlaBlaCar, http://www.rankstats.org/worth/blablacar.com)

YouPorn (порносайт)

Использованные технологии:

С 2011 года сайт использует PHP + Symfony вместо Perl, а также Redis вместо MySQL и ActiveMQ. Таким образом, за основную систему управления базами данных взят Redis, он же отвечает за кэширование объектов. MySQL используется как инструмент администратора для управления и добавления данных в кластер Redis. За балансировку нагрузки отвечает HAProxy.

(источник http://highscalability.com/blog/2012/4/2/youporn-targeting-200-million-views-a-day-and-beyond.html)

Немного о статистике:

Понятно, что сайт подобного содержания имеет высокую посещаемость, поэтому приведу только несколько цифр для общей картины. Статистика на 2012 год составила 4,851,384,493 посещений по всему миру. В среднем в день передается 950 ТБ. Количество просмотров в день составляет 200 миллионов. Сервер Redis обрабатывает 300 тысяч запросов в секунду.

(источник http://blog.youporn.com/youporn-2012-big-numbers-hard-facts/, http://www.extremetech.com/computing/123929-just-how-big-are-porn-sites/2)

W3Counter (сервис статистики)

Использованные технологии:

PHP как язык программирования и в качестве фреймворка был выбран Symfony. За основную систему управления базами данных взята MySQL, кэширование объектов выполняет Redis.

(источник http://www.dangrossman.info/2014/02/08/10-years-of-w3counter/)

Немного о статистике:

Сервис предоставляет детальную статистику более чем 76,000 сайтам. Проект посещают более 3 тысяч пользователей в день, и более 8 тысяч просмотров страниц. Уникальных посещений ежемесячно - около 40 тысяч.

(источник http://bluehorn.co.nz/2008/12/06/popular-websites-built-using-symfony-framework/, https://www.quantcast.com/w3counter.com?country=GLOBAL)

Photobucket (сервис хостинга изображений)

Использованные технологии:

PHP как язык программирования и в качестве фреймворка был выбран Symfony. За основную систему управления базами данных взята MySQL, используется Hadoop – для реализации поисковых и контекстных механизмов, анализа данных. Squid реализует функцию кэширующего прокси-сервера.

(источник http://www.linkedin.com/in/jgoss1074)

Немного о статистике:

На проекте размещено более 10 миллиардов изображений, из них ежедневно загружаются около 4 миллионов картинок и видео файлов из Сети и подключенных цифровых устройств. Все это загружают более чем 100 миллионов зарегистрированных пользователей. Проект популярен, на него ссылаются более 300 тысяч различных сайтов.

За июнь месяц проект имеет около 62 миллиона посещений и около 180 миллионов просмотров страниц, из них в день более 1,8 миллиона посещений и более 5 миллионов просмотров станиц.

(источник http://en.wikipedia.org/wiki/Photobucket, http://ru.wikipedia.org/wiki/Photobucket, https://www.quantcast.com/photobucket.com)

Postcrossing (сайт проекта)

Использованные технологии:

Проект написан на PHP с использованием фреймворка Symfony. За основную систему управления базами данных взята MySQL, которая работает в связке с Redis. Проект также использует инфраструктуру Amazon, в частности S3.

(источник http://sankarsuresh.wordpress.com/2005/11/24/postcrossing/, http://codemonkey.ravelry.com/2010/03/24/ravelry-runs-on-2010/)

Немного о статистике:

На данный момент на проекте зарегистрировано более 480 тысяч пользователей из 212 стран. При помощи проекта было получено более 24,5 миллионов открыток, из них 15,5 миллионов были опубликованы на сайте. На июнь 2014 года количество уникальных посещений составляет 18 тысяч.

(источник http://www.postcrossing.com/stats/postcards, http://www.postcrossing.com/stats/users)

Eventfinder (социальная сеть)

Использованные технологии:

В 2006 году проект перешел на связку PHP как язык программирования и Symfony как фреймворк. Хостинг – ICONZ. За основную систему управления базами данных взята MySQL.

(источник http://www.scoop.co.nz/stories/SC0606/S00050.htm)

Немного о статистике:

В штате работает 18 человек. Проект имеет около 800 тысяч уникальных посещений в месяц, из них в день – более 25 тысяч. А также ежедневно просматриваются более 75 тысяч страниц.

(источник http://eventfinder.co.nz.w3snoop.com/)

Таким образом, хотя некоторые специалисты PHP сильно критикуют в последнее время, но на нем до сих пор много серьезных проектов. В данном случае в статье приведен обзор проектов на конкретном фреимворке, а их на PHP очень много и они очень разные, всего на этом языке проектов очень много. Главное для реализации качественной технической основы проекта – хорошие программисты, а делать можно на разных языках и фреимворках, которые, кстати, лучше всего подбирать под конкретные задачи и часто нужно делать смесь технологий для максимального эффекта. Symfony отлично подходит для средних и больших проектов, хотя и имеет ряд недостатков.

Вообще, на Symfony существует много проектов. И многие из них используются для разработки. Например, для e-commerce проектов есть Sylius. Весьма интересное решение. Можно сказать, что это один из немногих бесплатных и хорошо проработанных бандлов, основанных на Symfony. Возможно, не удастся разобраться в нем сразу, и придется потратить время и усилия, однако все это с лихвой окупается множеством уникальных возможностей, предоставляемых как отдельными его компанентами, так и системой в целом. Разобравшись в функциональности и идеях определенных бандлов, входящих в Sylius, вы можете захотеть применить их в других проектах, отличных от e-commerce.

P.S. Чтобы получать наши новые статьи раньше других или просто не пропустить новые публикации - подписывайтесь на нас в Facebook, VK, Twitter.

P.P.S. Совсем скоро в нашей бизнес-школе Digitov стартуют курсы: Хочу стать Junior PHP Developer!, Symfony 2. Гибкая разработка и Ruby on Rails. По рельсам к профессиональной разработке. Подписывайтесь на курсы сейчас и сможете купить их со скидкой.

Авторы

Андрей Астафьев
Андрей Астафьев
Middle Project Manager, компания SECL Group / Internet Sales Technologies
+7 (499) 346-87-75info@seclgroup.ru
Сергей Харланчук
Сергей Харланчук
Senior Web Developer / Team Lead, компания SECL Group / Internet Sales Technologies
+7 (499) 346-87-75info@seclgroup.ru
Семенов Никита Андреевич
Никита Семенов
CEO, ГК «SECL Group»
+7 (499) 346-87-75info@seclgroup.ru seclskype
ВВЕРХ
Форма заказа