SlideShare a Scribd company logo
Easy authcache 2 -
кеширование для Pro

              Игорь Родионов

              Drupal expert
              rodionov.ig@gmail.com
Спонсоры
     Организатор      Генеральный спонсор




 Серебряный спонсор   Серебряный спонсор




 Бронзовый спонсор     Бронзовый спонсор
Родионов Игорь

Cooking Drupal
      ~ 5 years
   ~ 14 projects
   ~ 60 patches
  ~16 approved
Drupal
Drupal
Преждевременная оптимизация
Drupal
Кеширование
Кеширование
Кеширование
Кеширование


• Система разделения контента
• Система доставки
  “динамического” контента
• Кеширующий прокси
Система разделения контента

/**
 * Implements hook_easy_authcache_register()
 */
function easy_authcache_block_easy_authcache_register() {
  $items[] = array(
    'theme' => 'block',
    'mock callback' => 'easy_authcache_block_dynamic_args',
    'callback' => 'easy_authcache_block_callback'
  );
  return $items;
}
Система разделения контента

function easy_authcache_block_dynamic_args(&$vars) {
    $module = $vars['block']->module;
    $delta = $vars['block']->module;


    $conf = _easy_authcache_block_settings($module, $delta);
    if ($conf['is_dynamic']) {
        $block_id = _easy_authcache_block_id($module, $delta);
  $params = array('region' => $vars['block']->region, 'block_id' =>
$block_id);
        return array('id' => $block_id, 'params' => $params);
    }
    return null;
}
Система разделения контента

/**
 * Implements hook_easy_authcache_register()
 */
function easy_authcache_block_easy_authcache_register() {
  $items[] = array(
    'theme' => 'block',
    'mock callback' => 'easy_authcache_block_dynamic_args',
    'callback' => 'easy_authcache_block_callback'
  );
  return $items;
}
Система разделения контента
function easy_authcache_block_callback($data) {
    if (empty($data)) {
        return '';
    }
    $block_id = $data['block_id'];
......... COPY PASTE FROM DRUPAL CORE BLOCK MODULE..........
    // Process each block
    $block->region = $data['region'];
......... COPY PASTE FROM DRUPAL CORE BLOCK MODULE..........
    $output = theme('block', $block);
    return $output;
}
Система разделения контента

/**
 * Implements hook_easy_authcache_register()
 */
function easy_authcache_block_easy_authcache_register() {
  $items[] = array(
    'theme' => 'block',
    'mock callback' => 'easy_authcache_block_dynamic_args',
    'callback' => 'easy_authcache_block_callback'
  );
  return $items;
}
Система доставки контента

• ESI – Edge side includes
 – CDN (Akamai)
 – Caching proxy (Varnish,Squid,Mongrel)
• SSI – Server side includes
 – Web server (Apache, nginx, lighttpd, IIS)
• Ajax – Client side include
 – Web browsers with JavaScript support
Клуб анонимных друпалеров




“А можем мы обновить ядро?”
Клуб анонимных друпалеров




      откуда я то знаю?
Клуб анонимных друпалеров
Клуб анонимных друпалеров
Клуб анонимных друпалеров




 Возми проект под контроль!
Непрерывная интеграция


• Избавится от рутины
• Регрессионное тестирование
• Быстрая обратная связь
• Уверенность в проекте
• Часты релизы
Непрерывная интеграция
Deploy
Deploy

     Code          Run
SVN         Bash Manual
GIT         Bash SSH
CVS         VCS Hooks Cron
Mercurial   Capistrano
FTP         Phingistrano
SFTP
Инспекция
Инспекция – Copy - Paste




                 PHPCPD

               pear install phpunit/phpcpd
Инспекция - Mess




  phplint
icosaedro.it/phplint
Инспекция - Mess

 PHPMD
    phpmd.org
______________________________



 Code Size Rules
  Design Rules
  Naming Rules
Unused Code Rules
Инспекция – Code Style


                  Code Sniffer
                  pear install PHP_CodeSniffer



                  Drupal Code
                     Sniffer
                 drupal.org/project/drupalcs
Тестирование
Тестирование
Selenium + Unit testing framework
+ Functional тестирование
- Unit тестирование
+ Поддержка Java Script
- Доступ к API Drupal
- Атомарность тестов
- Хрупкость тестов
- Запуск тестов паралельно
- Производительность тестов
Тестирование
Simpletest/Simpletest clone
+ Functional тестирование
+ Unit тестирование
- Поддержка Java Script
+ Доступ к API Drupal
+ Атомарность тестов
+ Хрупкость тестов
+ Запуск тестов паралельно
+ Производительность тестов
Тестирование
Simpletest/Simpletest clone/Selenium
+ Functional тестирование
+ Unit тестирование
+ Поддержка Java Script
+ Доступ к API Drupal
+ Атомарность тестов
+ Хрупкость тестов
+ Запуск тестов паралельно
+ Производительность тестов
Сборка
Сборка
Сборка



   • Contribute
   • Custom
   • Forked
Сборка



   • Contribute
   • Custom
   • Forked Patches
Сборка


           Drush make
projects[admin_menu][version] = "3.0-rc1"
projects[admin_menu][subdir] = "contrib/dev"
projects[admin_menu][patch][] =
  "patches/admin_menu_font.patch"
Непрерывная интеграция


• Избавится от рутины
• Регрессионное тестирование
• Быстрая обратная связь
• Уверенность в проекте
• Часты релизы
Сборка
• Drush make

• Корпоративные
  репозитории
  модулей
• Хакайте ядро и
  модули
• Возвращайте патчи в
  сообщество
Сборка




  Не храните
Сборка

   Модули     Drush migrate


                Features
  Cущности       Ctools
              default hooks

               Strongarm
  Настройки      Ctools
                Features

                 Uuid
   Контент    Uuid features
                Features
Сборка - phing
                 • $ phing make
                 • $ phing install
                 • $ phing update
                 • $ phing test
                 • $ phing inspect
                 • $ phing create
                 • $ phing phpcs
                 etc ...
Итого


•   Контроль над проектом
•   Уменьшили время релиза
•   Уменьшили риски
•   Накопление “технического опыта”
•   Гибкость интеграции стороннего кода
•   75% разработчиков счастливы
Спасибо - друзьям




Родионову Алексею
             Мироненко Максиму
Тищенко Максиму
          Королькову Александру
Спасибо за внимание

     Вопросы?
          Игорь Родионов

          Drupal expert
          rodionov.ig@gmail.com
Спонсоры
     Организатор      Генеральный спонсор




 Серебряный спонсор   Серебряный спонсор




 Бронзовый спонсор     Бронзовый спонсор

More Related Content

PDF
How to build solid CI-CD pipeline / Илья Беда (beda.software)
PDF
Контроль качества верстки или как начать делать Makeup
PPTX
Codeception Introduction
PPTX
Selenium: начало работы
PDF
Чуть сложнее чем Singleton: аннотации, IOC, АОП
PPTX
Практика использования Dependency Injection
PPTX
Самоорганизующаяся сервисная инфраструктура на базе Docker / Данила Штань (То...
PDF
М. Боднарчук Современное функциональное тестирование с Codeception
How to build solid CI-CD pipeline / Илья Беда (beda.software)
Контроль качества верстки или как начать делать Makeup
Codeception Introduction
Selenium: начало работы
Чуть сложнее чем Singleton: аннотации, IOC, АОП
Практика использования Dependency Injection
Самоорганизующаяся сервисная инфраструктура на базе Docker / Данила Штань (То...
М. Боднарчук Современное функциональное тестирование с Codeception

What's hot (20)

PDF
Хранение, обработка и отдача статики с использованием \Zend\File. Опыт социал...
PPTX
Михаил Боднарчук Современное функциональное тестирование с Codeception
PPT
Alexander manuhin selenium_php_v2.0
PDF
Инструментируй это
PDF
UWDC 2013, Yii2
PDF
UWDC 2013, Как мы используем Yii
PDF
Автоматизация UI тестирования под Windows и Windows Phone
PPTX
base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)
PDF
2014 Jeeconf - Geb Spock
PDF
Продвинутое использование Celery — Александр Кошелев
PDF
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
PDF
2013 09 19 кеширование на клиенте и сервере
PDF
Управление секретами в кластере Kubernetes при помощи Hashicorp Vault / Серге...
PDF
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
PDF
Пластилиновый код: как перестать кодить и начать жить
PDF
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
PDF
Опыт разработки и тестирования RESTful JSON сервиса
PDF
DevConf 2012 - Yii, его разработка и Yii2
PDF
Behat в PHP с использованием Behat и Mink
PDF
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
Хранение, обработка и отдача статики с использованием \Zend\File. Опыт социал...
Михаил Боднарчук Современное функциональное тестирование с Codeception
Alexander manuhin selenium_php_v2.0
Инструментируй это
UWDC 2013, Yii2
UWDC 2013, Как мы используем Yii
Автоматизация UI тестирования под Windows и Windows Phone
base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)
2014 Jeeconf - Geb Spock
Продвинутое использование Celery — Александр Кошелев
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
2013 09 19 кеширование на клиенте и сервере
Управление секретами в кластере Kubernetes при помощи Hashicorp Vault / Серге...
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
Пластилиновый код: как перестать кодить и начать жить
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Опыт разработки и тестирования RESTful JSON сервиса
DevConf 2012 - Yii, его разработка и Yii2
Behat в PHP с использованием Behat и Mink
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
Ad

Viewers also liked (20)

PPT
идеология Drupal 8 уже в drupal 7 вячеслав касихин
PPTX
Prez drupal
PDF
PPTX
Рекламная студия "Медиа Партнер"
PPT
Drupal and the keys to successful communities martin mayer
PDF
как зарабатывать друпал разработчику клют иван
PPT
Yserver
PPT
Drupal and mobile devices komelin konstanin (eng)
PPT
Drupal -organizaciya_razrabotki
PPTX
Customer Relationship Management within Library using Social Networking Tools
PPT
построение внутренней ссылочной структуры сайта на Drupal 7 (seo) костин алексей
PDF
AR Conference
PDF
Chapter 1 colliding world views
PPT
инструкция по оптимизации сайтов на Drupal херени даниэл
PPT
Komelin drupalconf report_komelin_v2
PPT
инструкция по оптимизации сайтов на Drupal херени даниэл
PPT
Drupal dlya lenivyh-1
PPT
Ubercart -nemnogo_primerov_iz_zhizni
PPTX
Kostin drupal conf-2011-winter
PPT
опыт Clickberry.com стартап на drupal в облаке павел загор
идеология Drupal 8 уже в drupal 7 вячеслав касихин
Prez drupal
Рекламная студия "Медиа Партнер"
Drupal and the keys to successful communities martin mayer
как зарабатывать друпал разработчику клют иван
Yserver
Drupal and mobile devices komelin konstanin (eng)
Drupal -organizaciya_razrabotki
Customer Relationship Management within Library using Social Networking Tools
построение внутренней ссылочной структуры сайта на Drupal 7 (seo) костин алексей
AR Conference
Chapter 1 colliding world views
инструкция по оптимизации сайтов на Drupal херени даниэл
Komelin drupalconf report_komelin_v2
инструкция по оптимизации сайтов на Drupal херени даниэл
Drupal dlya lenivyh-1
Ubercart -nemnogo_primerov_iz_zhizni
Kostin drupal conf-2011-winter
опыт Clickberry.com стартап на drupal в облаке павел загор
Ad

Similar to Easy authcache 2 кеширование для pro родионов игорь (20)

PPT
непрерывная интеграция шаг к непрерывному деплою родионов игорь
PDF
Непрерывная интеграция - шаг к непрерывному деплойменту
PPT
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
PDF
Building deployment pipeline - DevOps way
PDF
Истинный DevOps. Секрет 42.
PDF
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
PDF
Чуть сложнее чем Singleton: аннотации, IOC, АОП
PDF
D2D Pizza JS Илья Беда "Куда мы все катимся?"
PPTX
PowerShell
PDF
Jiramania презентации @augspb
PDF
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
PPTX
Node.js введение в технологию, КПИ #ITmeetingKPI
PPT
Solit 2012, Enterprise разработка PHP приложений, Иван Захарченко
PDF
Erlang tasty & useful stuff
PDF
DevOps или исскуство ухода за Интернет-проектом
PPTX
Использование Open Source инструментов для автоматизации тестирования
PDF
#MBLTdev: Знакомство с codesign (e-Legion)
PDF
Леонид Васильев "Python в инфраструктуре поиска"
PPTX
Codeception UATestingDays
PPT
TestGuy - эмулируем вашего тестировщика
непрерывная интеграция шаг к непрерывному деплою родионов игорь
Непрерывная интеграция - шаг к непрерывному деплойменту
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Building deployment pipeline - DevOps way
Истинный DevOps. Секрет 42.
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Чуть сложнее чем Singleton: аннотации, IOC, АОП
D2D Pizza JS Илья Беда "Куда мы все катимся?"
PowerShell
Jiramania презентации @augspb
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
Node.js введение в технологию, КПИ #ITmeetingKPI
Solit 2012, Enterprise разработка PHP приложений, Иван Захарченко
Erlang tasty & useful stuff
DevOps или исскуство ухода за Интернет-проектом
Использование Open Source инструментов для автоматизации тестирования
#MBLTdev: Знакомство с codesign (e-Legion)
Леонид Васильев "Python в инфраструктуре поиска"
Codeception UATestingDays
TestGuy - эмулируем вашего тестировщика

More from drupalconf (19)

PPTX
опыт использования схемы Drupal+varnish+nginx руслан исай
PPT
Fotostock on drupal zhitarev anton (eng)
PPT
3 reasons to contribute to drupal florian loretan (eng)
PPT
Multilingual solutions florian loretan
PPT
Caching on highload drupal site roman arkharov (eng)
PPT
кеширование на высоконагруженном Drupal сайте архаров роман (rus)
PPTX
опыт использования схемы Drupal+varnish+nginx руслан исай
PPT
Drush and drupal. администрирование волчек михаил
PPT
Business friendly drupal павел прищепа
PPT
Object oriented css graeme blackwood
PPT
фотосток на Drupal+maestro житарёв антон
PPT
практическое использование модуля Panels богуцкий виктор
PPT
Drupal и мобильные устройства комелин константин
PPTX
Azure
PPT
Kolosov drupalconf2011 2_kolosov
PPT
Zhitarev vsyo chto_vy_hoteli_znat_o_maestro
PPT
Kozhemyakin dcm2011 1
PPT
Lozovickiy uvelichenie kachestva_dlya_razrabotchika
PPTX
интеграция 1с и drupal
опыт использования схемы Drupal+varnish+nginx руслан исай
Fotostock on drupal zhitarev anton (eng)
3 reasons to contribute to drupal florian loretan (eng)
Multilingual solutions florian loretan
Caching on highload drupal site roman arkharov (eng)
кеширование на высоконагруженном Drupal сайте архаров роман (rus)
опыт использования схемы Drupal+varnish+nginx руслан исай
Drush and drupal. администрирование волчек михаил
Business friendly drupal павел прищепа
Object oriented css graeme blackwood
фотосток на Drupal+maestro житарёв антон
практическое использование модуля Panels богуцкий виктор
Drupal и мобильные устройства комелин константин
Azure
Kolosov drupalconf2011 2_kolosov
Zhitarev vsyo chto_vy_hoteli_znat_o_maestro
Kozhemyakin dcm2011 1
Lozovickiy uvelichenie kachestva_dlya_razrabotchika
интеграция 1с и drupal

Easy authcache 2 кеширование для pro родионов игорь