Методология DevOps - новое течение в управлении разработкой и эксплуатацией. DevOps дает возможность бизнесу быстрее добиваться своих целей, активнее меняться и постоянно пробовать новое.
Основные направления DevOps:
- новая инженерная культура, построенная на взаимной - ответственности коллектива;
- автоматизация и инструменты;
- управление изменениями и мониторинг;
- распространение знаний между всеми участниками технической команды.
Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...Ontico
Общие принципы оптимизации производительности мобильных приложений:
- работа с длинными списками — таблицы, коллекции;
- графика — загрузка из сети, кэширование;
- ленивая загрузка частей приложения.
Работа с периодически обновляемыми структурированными данными.
- как передавать данные с сервера на клиент: запросы, объем, формат, десериализация;
- как хранить полученные данные на клиенте — виды хранилищ: от плоских файлов до NoSQL.
Практический кейс. "Едадил": как мы ускоряли работу приложения для Android.
Примеры использования базы clickhouse для анализа данных.
Экспорт данных access.log в clickhouse. Примеры анализа скорости пользователей на основе логов сервера.
Методология DevOps - новое течение в управлении разработкой и эксплуатацией. DevOps дает возможность бизнесу быстрее добиваться своих целей, активнее меняться и постоянно пробовать новое.
Основные направления DevOps:
- новая инженерная культура, построенная на взаимной - ответственности коллектива;
- автоматизация и инструменты;
- управление изменениями и мониторинг;
- распространение знаний между всеми участниками технической команды.
Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...Ontico
Общие принципы оптимизации производительности мобильных приложений:
- работа с длинными списками — таблицы, коллекции;
- графика — загрузка из сети, кэширование;
- ленивая загрузка частей приложения.
Работа с периодически обновляемыми структурированными данными.
- как передавать данные с сервера на клиент: запросы, объем, формат, десериализация;
- как хранить полученные данные на клиенте — виды хранилищ: от плоских файлов до NoSQL.
Практический кейс. "Едадил": как мы ускоряли работу приложения для Android.
Примеры использования базы clickhouse для анализа данных.
Экспорт данных access.log в clickhouse. Примеры анализа скорости пользователей на основе логов сервера.
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)Ontico
Tarantool - отечественная Opensource NoSQL база данных.
В докладе мы обсудим:
- Какое место занимают NoSQL базы данных в highload проектах?
Почему и для чего вам стоит NoSQL решения?
Какие NoSQL решения вы можете использовать?
- Рассмотрим, что из себя представляет Tarantool 1.6 - база данных и сервер приложений в одном лице.
Какие основные особенности Tarantool как NoSQL базы данных?
Lua как встроенный язык сервера приложений.
- Посмотрим, как можно начать использовать Tarantool в своих проектах, и сделаем первые шаги.
Как установить Tarantool.
Первый запуск и основы конфигурирования.
Модель данных.
Как создавать и работать с хранилищем данных.
Как использовать пакеты tarantool.
- Узнаем об интересных модулях и фичах Tarantool
Чем полезен application server
Tarantool http
Tarantool queue
- Познакомимся с сообществом Tarantool opensource
Почему сообщество - это важно?
Чем полезны opensource проекты начинающему разработчику?
«Композитный сайт. Ускорение отдачи сайта в 100 раз» Гузель Рахимова
Автор: Валерия Алексеева, веб-разработчик компании "Центр Высоких Технологий".
Уникальная технология производства сайтов объединяет в себе высокую скорость загрузки статического сайта и все возможности динамического сайта. Пользователь мгновенно получает контент страницы.
Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...Ontico
Вы взяли ваш любимый фреймворк™ и быстро запустили крутой проект, который раскручивается, приносит деньги и требует быстрого развития, чтобы оставить конкурентов далеко позади.
В один далеко не прекрасный момент вы понимаете, что корень всех зол - медленное время ответа базы данных, а ваш админ зло смотрит на разработчиков красными от бессонницы глазами и ругается на безумные запросы, которые генерирует ORM. Тот самый ORM, который позволил вам так быстро запустить ваш замечательный проект.
Знакомо? Тогда вам будет интересно послушать, как заставить вашу базу данных работать прямо сейчас. А именно:
- какое место в общей производительности базы данных занимает оптимизация запросов?
- когда прекращать “крутить гайки” и заниматься медленными запросами?
- что такое медленный запрос и когда их надо начинать оптимизировать?
- как оптимизировать?
- EXPLAIN, EXPLAIN ANALYZE - как читать и на что обращать внимание?
- как работает оптимизатор запросов PostgreSQL и где могут быть узкие места?
- для чего нужны и для чего не нужны индексы, методики индексирования, и как быть уверенным, что ваш индекс правильно используется?
- какие запросы не будут работать быстро никогда, и как с этим жить?
- ошибается ли оптимизатор и, если да, то почему и как его в таком случае призвать к порядку?
сравнение производительности СУБД MySQL и PostgreSQL для "типичной задачи стартапа".
Презентация сопровождала тестовую online-сессию и потому не содержит результатов тестирования.
Доклад о насущей и затертой до дыр теме кеширования не только сайтов на WordPress, но и сайтов в целом: от перегрузки js-скриптов и CSS в CDN до установки и настройки Varnish Cache
1. Компоненты MVC
2. Django как пример MVC фреймворка
3. Структура Django проекта
4. Модульность в Djnago: приложения
5. Конфигурация проектов
6. Маршрутизация URL
7. Обратная маршрутизация URL
ведение в систему управления пулом ресурсов Mesos и ее использование для создания масштабируемых приложений с помощью фреймворков Marathon, Chronos, Singularity
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...Ontico
ClickHouse - высокопроизводительная база данных для больших данных и аналитики.
На ClickHouse основана Яндекс.Метрика - крупнейшая система веб-аналитики в России.
Ради чего мы написали свою базу данных? Ради скорости! ClickHouse работает невероятно быстро, быстрее всех известных нам конкурентов, и при этом может обрабатывать запросы по петабайтам данных.
Я расскажу про:
- Краткую историю создания проекта;
- Основные преимущества и особенности ClickHouse;
- Архитектура проекта; подход к хранению данных, отказоустойчивости, исполнению запросов;
- Как работает внутри, почему ClickHouse такой быстрый;
- Текущие кейсы использования в Метрике и других проектах Яндекса;
- Профит, который вы можете получить от ClickHouse.
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)Ontico
Tarantool - отечественная Opensource NoSQL база данных.
В докладе мы обсудим:
- Какое место занимают NoSQL базы данных в highload проектах?
Почему и для чего вам стоит NoSQL решения?
Какие NoSQL решения вы можете использовать?
- Рассмотрим, что из себя представляет Tarantool 1.6 - база данных и сервер приложений в одном лице.
Какие основные особенности Tarantool как NoSQL базы данных?
Lua как встроенный язык сервера приложений.
- Посмотрим, как можно начать использовать Tarantool в своих проектах, и сделаем первые шаги.
Как установить Tarantool.
Первый запуск и основы конфигурирования.
Модель данных.
Как создавать и работать с хранилищем данных.
Как использовать пакеты tarantool.
- Узнаем об интересных модулях и фичах Tarantool
Чем полезен application server
Tarantool http
Tarantool queue
- Познакомимся с сообществом Tarantool opensource
Почему сообщество - это важно?
Чем полезны opensource проекты начинающему разработчику?
«Композитный сайт. Ускорение отдачи сайта в 100 раз» Гузель Рахимова
Автор: Валерия Алексеева, веб-разработчик компании "Центр Высоких Технологий".
Уникальная технология производства сайтов объединяет в себе высокую скорость загрузки статического сайта и все возможности динамического сайта. Пользователь мгновенно получает контент страницы.
Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...Ontico
Вы взяли ваш любимый фреймворк™ и быстро запустили крутой проект, который раскручивается, приносит деньги и требует быстрого развития, чтобы оставить конкурентов далеко позади.
В один далеко не прекрасный момент вы понимаете, что корень всех зол - медленное время ответа базы данных, а ваш админ зло смотрит на разработчиков красными от бессонницы глазами и ругается на безумные запросы, которые генерирует ORM. Тот самый ORM, который позволил вам так быстро запустить ваш замечательный проект.
Знакомо? Тогда вам будет интересно послушать, как заставить вашу базу данных работать прямо сейчас. А именно:
- какое место в общей производительности базы данных занимает оптимизация запросов?
- когда прекращать “крутить гайки” и заниматься медленными запросами?
- что такое медленный запрос и когда их надо начинать оптимизировать?
- как оптимизировать?
- EXPLAIN, EXPLAIN ANALYZE - как читать и на что обращать внимание?
- как работает оптимизатор запросов PostgreSQL и где могут быть узкие места?
- для чего нужны и для чего не нужны индексы, методики индексирования, и как быть уверенным, что ваш индекс правильно используется?
- какие запросы не будут работать быстро никогда, и как с этим жить?
- ошибается ли оптимизатор и, если да, то почему и как его в таком случае призвать к порядку?
сравнение производительности СУБД MySQL и PostgreSQL для "типичной задачи стартапа".
Презентация сопровождала тестовую online-сессию и потому не содержит результатов тестирования.
Доклад о насущей и затертой до дыр теме кеширования не только сайтов на WordPress, но и сайтов в целом: от перегрузки js-скриптов и CSS в CDN до установки и настройки Varnish Cache
1. Компоненты MVC
2. Django как пример MVC фреймворка
3. Структура Django проекта
4. Модульность в Djnago: приложения
5. Конфигурация проектов
6. Маршрутизация URL
7. Обратная маршрутизация URL
ведение в систему управления пулом ресурсов Mesos и ее использование для создания масштабируемых приложений с помощью фреймворков Marathon, Chronos, Singularity
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...Ontico
ClickHouse - высокопроизводительная база данных для больших данных и аналитики.
На ClickHouse основана Яндекс.Метрика - крупнейшая система веб-аналитики в России.
Ради чего мы написали свою базу данных? Ради скорости! ClickHouse работает невероятно быстро, быстрее всех известных нам конкурентов, и при этом может обрабатывать запросы по петабайтам данных.
Я расскажу про:
- Краткую историю создания проекта;
- Основные преимущества и особенности ClickHouse;
- Архитектура проекта; подход к хранению данных, отказоустойчивости, исполнению запросов;
- Как работает внутри, почему ClickHouse такой быстрый;
- Текущие кейсы использования в Метрике и других проектах Яндекса;
- Профит, который вы можете получить от ClickHouse.
Семинар по Node.js в КПИ 20 октября 2014. Докладчики: Тимур Шемсединов, Никита Савченко, Максим Петренко. Краткое содержание:
* Что такое Node.js и как работает JavaScript в V8
* Профессионалы расскажут, почему они выбрали Node.js
* Вы узнаете его сильные и слабые стороны и где его лучше применять
* Будет полный обзор особеностей и внутреннего строения Node.js
* Примеры внедрения и Highload-проекты
* Вопросы развертывания, хостинг, тестирования, и отладки
* Где и что учить, что читать, как осваивать
Рarse'им бэкенд
Аким Халилов
Вы хотите выучить Backbone? Хотите просто писать клиентский код, не думая о сервере и о том, как все обрабатывать, хранить, бэкапить? Выход есть – храните с помощью Parse. Parse – платформа, которая предоставляет возможность хранения данных без забот о сервере. Хранилище данных, соц. сети, push-notification, cloud code. Что такое Parse и что он умеет, о библиотеке для использования:
- знакомство с JS API и примеры использования;
- начинаем кодить: stub-проект;
- кодим фичи: CRUD + плюшки;
- хостим.
2. Проблемы
производительности
Страница долго грузится:
Нет должного кэширования данных
Используются не оптимальные алгоритмы
Выполняется куча непонятных SQL-запросов
Долго загружаются модули
Страницу долго отдаёт Web-сервер
Последствия:
Сервер загружен на полную
Посетитель закрыл вкладку с Вашим сайтом
Ваш хостер отказал Вам в размещении сайта
4. Готовые решения > Boost
Аудитория………..: анонимные пользователи
Цель……………….: кэширование страниц
Эффективность…: очень высокая
Возможности…….:
Хранилище кэша: File
Отдача закэшированной страницы происходит без участия
PHP и MySQL
Настраиваемое время жизни для каждой страницы
Сжатие CSS и JavaScript
Поддержка мультисайтов
Модуль работает даже на недорогом хостинге
5. Готовые решения > Cache
Router
Аудитория………..: все
Цель………………: изменение хранилища по-умолчанию
Эффективность…: очень высокая
Возможности…….:
Хранилище кэша: APC, XCache, eAccelerator, Memcache, File,
Database
Для разных таблиц кэша можно использовать различные
хранилища
Поддержка мультисайтов
6. Готовые решения > Authcache
Аудитория………..: все
Цель……………….: кэширование страниц
Эффективность…: очень высокая
Возможности…….:
Хранилище кэша: любое из поддерживаемых модулей
CacheRouter
Кэширование настраивается по ролям пользователей
Список исключений страниц из кэширования
Загрузка динамических блоков на страницу происходит через
Ajax
7. Готовые решения > Block Cache
Alter
Аудитория………..: все
Цель………………: кэширование блоков
Эффективность…: умеренная
Возможности…….:
Настройки кэша: кэш отключён, глобальное кэширование,
кэширование для страницы, кэширование для роли,
кэширование для пользователя
Синхронизация обновления кэша с: обновлением страницы,
обновлением ноды, обновлением комментария, регистрацией
нового пользователя, входом или выходом пользователя
Время жизни кэша
8. Готовые решения > Path Cache
Аудитория………..: все
Цель……………….: кэширование преобразований пути
Эффективность…: умеренная
Возможности…….:
Кэширование преобразований алиаса в системный путь
9. Готовые решения > Javascript
Aggregator
Аудитория………..: все
Цель……………….: сжатие JavaScript файлов
Эффективность…: умеренная
Возможности…….:
Агрегация всех JavaScript файлов в один
Минимизация JavaScript файла (Minify)
Сжатие JavaScript файла используя GZip
10. Готовые решения > CSS Gzip
Аудитория………..: все
Цель……………….: сжатие CSS файлов
Эффективность…: умеренная
Возможности…….:
Агрегация всех CSS файлов в один
Сжатие CSS файла используя GZip
11. Советы при создании собственных
модулей
Используйте Drupal Cache API
Используйте статическое кэширование внутри собственных
функций
В функцию node_load передавайте только ID ноды в качестве
первого аргумента
Не используйте стиль отображения “Материал” в Views
Используйте свою собственную функцию для получения
значения одного или нескольких CCK-полей вместо загрузки
всей ноды используя node_load()
При массовой загрузке синонимов и связанных терминов
таксономии используйте свою собственную функцию
12. Советы при создании собственных
модулей > Примеры
Drupal Cache API
Получение данных из кэша
cache_get($sid, $table = ‘cache’)
Добавление данных в кэш
cache_set($sid, $data, $table = ‘cache’, $expire = 0, $headers = null)
Очистка кэша
cache_clear_all($cid = NULL, $table = NULL, $wildcard = FALSE)
13. Советы при создании собственных
модулей > Примеры
Статическое кэширование внутри функций
function taxonomy_get_term($tid, $reset = FALSE) {
static $terms = array();
if ($reset) {
$terms = array();
}
if (!isset($terms[$tid])) {
// находим нужный термин используя SQL запрос
}
return $terms[$tid];
}
14. Советы при создании собственных
модулей > Примеры
В node_load передавайте только ID ноды
Статическое кэширование в функции работает
node_load(1);
Статическое кэширование в функции не работает
node_load(array(‘nid’ => 1));
node_load(array(‘nid’ => 1, ‘type’ => ‘page’));
15. Советы при создании собственных
модулей > Примеры
Массовая работа с терминами таксономии
Собственная функция выполнится быстрей с одним SQL запросом
$tids = array(1, 2, 3, 4, 5, …);
get_terms_relations($tids);
Чем цикл с родной функцией модуля taxonomy
$tids = array(1, 2, 3, 4, 5, …);
foreach ($tids as &$tid) {
$tid = taxonomy_get_related($tid);
}
16. Спасибо за внимание
Ссылки
Boost http://drupal.org/project/boost
Cache Router http://drupal.org/project/cacherouter
Authcache http://drupal.org/project/authcache
Block Cache Alter http://drupal.org/project/blockcache_alter
Path Cache http://drupal.org/project/pathcache
Javascript Aggregator http://drupal.org/project/javascript_aggregator
CSS Gzip http://drupal.org/project/css_gzip
Полный список http://groups.drupal.org/node/21897