Drupal как high load основа для платформы
description
Transcript of Drupal как high load основа для платформы
Drupal как HighLoad основа для платформы
о теории со ссылками на примеры
Drupal Сamp Minsk 2014
Drupal как framework и варианты (Brook framework (FreePascal) vs
Phalcon vs Drupal)● Красивый и удобный
интерфейс с возможностью изменения
● Лёгкость создания Landing page
● Кэширование страниц
● Быстрота расширения визуальной части
● Интеграция со сторониими сервисами для обмена информацией
● Brook framework: http://silvioprog.github.io/brookframework/. Меньший расход памяти. Но если мы только отображаем данные, то экономия не велика.
● Phalcon: http://phalconphp.com/ru/. Быстрее PHP, но не на столько удобней как Drupal.
● Drupal + PHP 5.5 + OPcache
Drupal как framework и варианты (Brook framework (FreePascal) vs
Phalcon vs Drupal)
Своё хранилище данных
● HighLoad любит хостинг с SSD.
● Сервисы ОС считают статистику, а Drupal выводит.
● Для быстрого отображения данных пользователю мы используем своё хранилище. Чем хороша своя entity — всё в одной таблице, что исключает JOINы.
● Нет отдельных записей о ревизиях.
● Интеграция с Views.
● Entity cache + Memcache API and Integration или Redis и пусть Ваш кэш материалов живёт в памяти сервера а не на диске.
● Создание простейшего модуля управления данными с помощью Entity API: http://xandeadx.ru/blog/drupal/352
Допиливаем Views и VBO● Добавление своей таблицы в качестве поля во Views: http://drupalace.ru/lesson/dobavlenie-svoey-tablicy-v-kachestve-polya-vo-views
● Программное изменение запроса к базе данных во Views: http://drupalace.ru/lesson/programmnoe-izmenenie-zaprosa-k-baze-dannyh-vo-views
● Обработка большого количества данных с помощью Batch API:http://drupalace.ru/lesson/obrabotka-bolshogo-kolichestva-dannyh-s-pomoshchyu-batch-api
● Как с помощью VBO сгенерировать пользователям новый пароль и отправить его на почту: http://xandeadx.ru/blog/drupal/552
● Темизация Views из админки: http://xandeadx.ru/blog/drupal/168
● Как добавить html код после определённого числа строк в представлении Views: http://xandeadx.ru/blog/drupal/356
● Preprocess функции для представлений Views: http://xandeadx.ru/blog/drupal/414
С интерфейсом закончили, узнаём откуда в него попадают данные
МагияMongoDB => Entity => Views => Panels => Features => Panopoly.
Читаем на http://habrahabr.ru/:● MongoDB для подсчета статистики● MongoDB: слишком много полей для индексации? Используйте общий индекс перевод ● Простая методика построения фильтров товаров с помощью MongoDb и MapReduce● Map-Reduce на примере MongoDB
Не MongoDB едины читаем на http://habrahabr.ru/:● Как устроена apache cassandra ● Асинхронный Php extension для работы с бд Cassandra без Thrift● Переходим от MongoDB Full Text к ElasticSearch● ElasticSearch 1.0 — новые возможности аналитики● Считаем в Elasticsearch (http://websearchblog.ru/)
Секреты магии
● Из интерфейса сайта вносятся давнные в MySQL
● По Cron скрипт создаёт задания для новых данных в RabbitMQ
● RabbitMQ развёрнут на нескольких серверах
● Роботы на ReactPHP / C++ / C# получают задания из RabbitMQ и парсят... в 100 и более потоков...
● Результаты сохраняются в Cassandra
● Hadoop обрабатывает данные из Cassandra и сохраняет результат в Mongo DB
● Из MongoDB данные попадают на сайт
FormAPI, Ctools, AngularJS и генераторы данных
Итоги реализации и работы большого сервиса
● Участвовал в реализации порядка 6 крупных сервисов связанных с рекламой и автоматизацией
● SEO, RTB, Отчётность для CRM, автоматизация контекстной и таргетинговой рекламы, банерокрутилки
● В самом крупном проекте уже более 40 серверов трудятся на благо заказчика
● HighLoad, это не дорого, это кропотливо...
● Нужна помощь или есть вопросы: [email protected] - всегда отвечу, я или мои девушки из поддержки ;)