Hacking PostgreSQL. Лекция 1. Вводная лекция для начинающих разработчиков ядра PostgreSQL. Видео и площадка для обсуждения в блоге http://postgres-edu.blogspot.ru/2016/02/20160225.html
Hacking PostgreSQL. Лекция 1. Вводная лекция для начинающих разработчиков ядра PostgreSQL. Видео и площадка для обсуждения в блоге http://postgres-edu.blogspot.ru/2016/02/20160225.html
"Успеть за 100 миллисекунд: контекстная реклама на Sphinx" Дмитрий Хасанов (...AvitoTech
C недавнего времени на Avito.ru появилась контекстная реклама. Миллионы объявлений, из которых нужно в режиме реального времени отобрать несколько релевантных для каждого отдельного пользователя.
Я расскажу о том, как и зачем мы используем миллионы коэффициентов при обработке каждого запроса, почему мы выбрали Sphinx и какие хитрости мы применили, чтобы уложиться в 100 миллисекунд.
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)Ontico
1. Типы шаблонизаторов DOM/innerHTML.
2. Внутренности AngularJS и почему он тормозит.
3. Внутренности ReactJS и почему он тормозит.
4. Менее раскрученные решения Blaze/PaperclipJS/Riot и что там сделано лучше.
5. Плюсы и минусы virtualdom.
6. Работа с DOM может быть быстрее, если:
6.1 Использовать одни и те-же участки DOM несколько раз.
6.2 Сокращать количество reflow с DocumentFragment.
6.3 Быстрое создание повторяющихся участков DOM с помощью cloneNode.
6.4 Создавать куски DOM ahead of time.
7. Встречаем temple - шаблонизатор, работающий в разы быстрее reactjs и не требующий загрузки 40k библиотеки времени исполнения.
Как на Node.js пройти путь от примитивного приложения «Hello world» до распределённого решения, состоящего из микросервисов?
Мы пройдём жизненный цикл продукта, начав с простого приложения на Node.js. Научимся его правильно запускать и будем постепенно добавлять элементы, убирая при этом ненужные. Так, к нашему приложению присоединится гипервизор, а само оно будет разделено на части, где каждая сущность будет управлять своей частью приложения.
Построив, таким образом, архитектуру на чистом Node.js, мы займёмся развитием приложения, добавим современные технологии и применим новые подходы к организации инфраструктуры. В частности, научимся доставлять окружение и приложения при помощи Ansible, запакуем приложение в Docker, попутно обсудим, зачем он нужен и что может дать при разработке фронтенда. И, наконец, решим проблему поиска запущенных сервисов и отслеживания их статусов, используя Consul.
Как устроена MySQL-репликация / Андрей Аксенов (Sphinx)Ontico
Какая вообще в природе бывает репликация (sync vs. async vs. semisync, master-master vs. master-slave), как оно устроено конкретно в MySQL, в каких версиях что добавили. Про binary/relay log, про SBR/RBR/mixed форматы, про глупости с позициями и про GTID, про то, как из-за всяких бед возникают дополнительные продукты типа Tungsten и Galera. Несколько занятных фактов и парочка фокусов, которые можно учинять конкретно с MySQL-репликацией.
Доклад вчистую про внутреннее устройство, по результатам должно появляться общее понимание того, как оно работает внутри и почему именно так. Конкретные SQL-операторы подробно рассматривать НЕ будем, эти скучные мелочи необходимо будет затем самостоятельно смотреть в документации (или не смотреть).
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual MachinesIosif Itkin
Multi-Platform Approach to Reverse Debugging of Virtual Machines
Pavel Dovgalyuk, Maria Klimushenkova, Denis Dmitriev and Vladimir Makarov, Novgorod State University
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
"Успеть за 100 миллисекунд: контекстная реклама на Sphinx" Дмитрий Хасанов (...AvitoTech
C недавнего времени на Avito.ru появилась контекстная реклама. Миллионы объявлений, из которых нужно в режиме реального времени отобрать несколько релевантных для каждого отдельного пользователя.
Я расскажу о том, как и зачем мы используем миллионы коэффициентов при обработке каждого запроса, почему мы выбрали Sphinx и какие хитрости мы применили, чтобы уложиться в 100 миллисекунд.
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)Ontico
1. Типы шаблонизаторов DOM/innerHTML.
2. Внутренности AngularJS и почему он тормозит.
3. Внутренности ReactJS и почему он тормозит.
4. Менее раскрученные решения Blaze/PaperclipJS/Riot и что там сделано лучше.
5. Плюсы и минусы virtualdom.
6. Работа с DOM может быть быстрее, если:
6.1 Использовать одни и те-же участки DOM несколько раз.
6.2 Сокращать количество reflow с DocumentFragment.
6.3 Быстрое создание повторяющихся участков DOM с помощью cloneNode.
6.4 Создавать куски DOM ahead of time.
7. Встречаем temple - шаблонизатор, работающий в разы быстрее reactjs и не требующий загрузки 40k библиотеки времени исполнения.
Как на Node.js пройти путь от примитивного приложения «Hello world» до распределённого решения, состоящего из микросервисов?
Мы пройдём жизненный цикл продукта, начав с простого приложения на Node.js. Научимся его правильно запускать и будем постепенно добавлять элементы, убирая при этом ненужные. Так, к нашему приложению присоединится гипервизор, а само оно будет разделено на части, где каждая сущность будет управлять своей частью приложения.
Построив, таким образом, архитектуру на чистом Node.js, мы займёмся развитием приложения, добавим современные технологии и применим новые подходы к организации инфраструктуры. В частности, научимся доставлять окружение и приложения при помощи Ansible, запакуем приложение в Docker, попутно обсудим, зачем он нужен и что может дать при разработке фронтенда. И, наконец, решим проблему поиска запущенных сервисов и отслеживания их статусов, используя Consul.
Как устроена MySQL-репликация / Андрей Аксенов (Sphinx)Ontico
Какая вообще в природе бывает репликация (sync vs. async vs. semisync, master-master vs. master-slave), как оно устроено конкретно в MySQL, в каких версиях что добавили. Про binary/relay log, про SBR/RBR/mixed форматы, про глупости с позициями и про GTID, про то, как из-за всяких бед возникают дополнительные продукты типа Tungsten и Galera. Несколько занятных фактов и парочка фокусов, которые можно учинять конкретно с MySQL-репликацией.
Доклад вчистую про внутреннее устройство, по результатам должно появляться общее понимание того, как оно работает внутри и почему именно так. Конкретные SQL-операторы подробно рассматривать НЕ будем, эти скучные мелочи необходимо будет затем самостоятельно смотреть в документации (или не смотреть).
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual MachinesIosif Itkin
Multi-Platform Approach to Reverse Debugging of Virtual Machines
Pavel Dovgalyuk, Maria Klimushenkova, Denis Dmitriev and Vladimir Makarov, Novgorod State University
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
Анастасия Распопина, Percona — Feel at Home в на 90% распределённой компании:...Dev_Party
The document discusses strategies for retaining remote employees. It recommends internal communications like all-company calls and a corporate newsletter to keep remote staff engaged. It also suggests providing work-life balance policies such as flexible hours and paid time off. The document further discusses offering professional growth opportunities through training, mentoring, and conferences. It closes by noting Percona's high Glassdoor rating and alumni feedback, indicating their remote strategies have been successful in retaining employees.
Дмитрий Ивакин, ООО «Пайлабс» — Node.js: realtime приложение на примере систе...Dev_Party
Дмитрий Ивакин, ООО «Пайлабс» — Node.js: realtime приложение на примере системы управления очередью.
Конференция Dev Party (http://devparty.ru).
Вологда, 02.04.2016.
Роман Приходько, Владимир Беспрозванных, «Сбербанк-Технологии» — Платформа ЕФСDev_Party
Роман Приходько, «Сбербанк-Технологии» — Платформа ЕФС — принципы построения и инструменты реализации.
Конференция Dev Party (http://devparty.ru).
Вологда, 02.04.2016.
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюринpgdayrussia
Доклад был представлен на официальной российской конференции PG Day'14 Russia, посвященной вопросам разработки и эксплуатации PostgreSQL.
С момента старта проекта на PostgreSQL были возложены серьёзные задачи. Это во многом предопределило успешное развитие всего продукта. Вокруг СУБД выстроены основные компоненты архитектуры, при этом сами базы берут на себя львиную долю обработки пользовательских запросов. Набор фич и расширений, легендарная надёжность PostgreSQL, наличие встроенной репликации, средств резервирования и архивирования — весь потенциал нашел своё воплощение, а наличие открытого профессионального комьюнити не оставляет шансов к неэффективной реализации.
В докладе будет дан обзор развития подсистем, сосредоточенных вокруг PostgreSQL, представлены параметры и режимы функционирования. Будут описаны успешные решения в рамках отдельного PostgreSQL-кластера и при распределенной обработке данных, приведены текущие вызовы, связанные с продолжающимся активным ростом проекта.
Реализация восстановления после аварий / Сергей Бурладян (Avito)Ontico
Базы данных PostgreSQL занимают одно из центральных мест в Авито. Они являются разделяемой платформой, вокруг которой построено множество дополнительных сервисов. Одной из основных задач при их администрировании является задача восстановления после аварий как самих баз, так и связанной с ними инфраструктуры.
В своём докладе я постараюсь рассказать про:
+ общую схему связей баз данных между собой и с другими компонентами;
+ точки отказа и виды аварий, затрагиваемые связи;
+ бинарную репликацию и архив;
+ логическую репликацию, pgq, londiste, UNDO (REDO), пересоздание репки;
+ скрипт и процедуру переключения при аварии;
+ планы: развитие «восстановлений» по всем связям, автоматика на основе системы zookeeper (etcd и т.п.).
Building the Enterprise infrastructure with PostgreSQL as the basis for stori...PavelKonotopov
In my talk, I will tell how we built a geographically distributed system of personal data storage based on Open Source software and PostgreSQL. The concept of the inCountry business is to provide customers with a ready-to-use infrastructure for personal data storage. Our business customers are ensured that their customer’s personal data is securely stored within their country’s borders. We wrote an API and SDK and built a variety of services. Our system complies with generally accepted security standards (SOC Type 1, Type 2, PCI DSS, etc.). We built our infrastructure with Consul, Nomad, and Vault, used PostgreSQL, ElasticSearch as a storage system, Nginx, Jenkins, Artifactory, other tools to automate management and deployment. We have assembled our development and management teams - DevOps, Security, Monitoring, and DBA. We use both cloud providers and bare-metal servers located in different regions of the world. Development of the system architecture and ensuring the stability of the infrastructure, consistent and secure operation of all its components is the main task facing our teams.
Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...Ontico
Как быстро развивается сейчас PostgreSQL — общеизвестно. За несколько дней до РИТ++ заканчивается главный мировой форум разработчиков этой СУБД — конференция PGCon в Канаде. Большая команда разработчиков Postgres Professional принимает участие в этой конференции и готова рассказать все последние новости прямо с PGCon.
Параллельное исполнение запросов, новые стораджи, неутихающая тема Postgres vs key-value storage, распределенный Postgres, высокая доступность, многочисленные улучшения производительности, планы и интриги разработчиков — вот основные темы этой конференции.
Я остановлюсь подробнее на нашем вкладе в ожидаемый релиз 9.6 и планах на, возможно, релиз 10.0.
Особенности работы backend для мобильных приложений или Python Django UWSGI в...Mail.ru Group
Доклад посвящен жизни проектов в продакшен. Речь пойдет о связке Python-Django-Uwsgi для backend мобильных приложений, настройке серверов, измерении времени и оценке качества работы backend. Также спикер расскажет о профилировании Django, Memcached в Python.
Процесс разработки и тестирования с Docker + gitlab ciАлександр Сигачев
Доклад - https://www.youtube.com/watch?v=lJsqRwULRVA
Какие проблемы решаем?
быстрый вход нового разработчика в проект
стандартизация настроек разработчиков
переключение между проектами - разные версии ПО и библиотек (mysql 5.6/5.7, node 0.12/7.2)
приучаем разработчиков к сетевому взаимодействию компонентов
Microservice - масштабирование/разделения разработки
Делим ресурсы staging среды между проектами
Similar to Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хостинг на Docker (20)
Процесс разработки и тестирования с Docker + gitlab ci
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хостинг на Docker
1. Четвертая конференция
разработчиков ПО«DevParty»
2 апреля 2016 года, Вологда
Полицын Анатолий
Корпоративный хостинг на Докере
Синапс - агентство интернет-
маркетинга.
Конференция разработчиков
«DevParty» 2017
www.devparty.ru
2. Проект
● Было:
- монолиты с isp-manager
- reg.ru
- 1 клиент = 70% ресурсов
- клиенты на своих серверах
● Минусы:
- isp - дорого
- монолит падает целиком
- универсально = много кнопок
● Реализация 6 мес:
- Настарт (апрель)
- Внимание (июнь)
- Марш (август)
● Стало:
- 150 сайтов, пол тыщи докеров
на нескольких серверах и
полгода продакшена.
- включение сайта 2 клика
- добавление сервера - 15 минут
3. Задачи
● Хостинг разных сайтов
- место: от визитки до 50гб
- cpu: от ленда до 4к/сутки
● Бекапы
- в другие ДЦ
- 5гб + полное управление
- бэкап-план
● Серверы:
- Европа и РФ
- большие и микро VDS
- клиентские серверы
● Менеджерам
- развертывание в пару кликов
- автоматизация
- тарифы и лимиты
● Программистам
- php 7.0
- drush + drupal-console
- доступ к логам
- единообразие
● DevOps:
- восстановление из бекапа
- миграция между серверами
- Continuous integration
● Безопасность
4. Концепция
● Drupal 8
- ajax в 3 строчки
● Минимум кликов
- добавление сайта
- развёртывание друпала
● 2 типа команд
- REST: для работы с докером
- FS: mkdir, cp, echo, git clone
Архитектура
nginx-proxy:
● 1-php-fpm ---> 1-mysql
● 2-php-fpm ---> 2-mysql
● 3-php-fpm ---> 3-mysql
● 4-php-fpm ---> 4-mysql
● 5-php-fpm ---> 5-mysql
6. 2.1 Подготовить хостинг
1. Директория + начальные настройки
- mysql, php, ssmtp, crontab
= git clone
https://github.com/politsin/docker-starter
2. Создание + запуск контейнеров:
- MySQL + php-fpm
= команды через REST
3. Настройки nginx
- запись файла + restart контейнера
7. 2.2 Докеры
MySQL
● db_name и db_user всегда drupal
● root_pass и user_pass разные
● Доступ к mysql только через
сокет, смонтированный к php-fpm
unix:/run/mysqld/mysqld.sock
● 1 база данных = файловое
архивирование и восстановление
Php-fpm
● Supervisor + 3 процесса
- php-fpm, sshd, cron
● сайт всегда /var/www/html
● mysql на привычном месте
● /etc/* в режиме read-only
9. Кнопки
1. Создать приложение
2. Пройтись по процессу
создания сайта
3. Скачать друпал
4. Перейти в установку
Плюсы
1. Друпал!
- доработка функционала
- добавление плюшек
2. Быстро и просто
- создать
- сделать всё что хочешь
- снести и создать новый
3. Кастомные конфигурации
- разные настройки php и mysql
- доработанные имаджи
4. Безопасность by design
+ доступ по ключам и ~/.ssh:ro
5. Единообразие окружения
10. Минусы
● Ресурсы MEM
- MySql - 200мб (отдельный сервер на каждый сайт)
- Php - 60мб на приложение + opcache
● Старьё и зоопарк:
Пять drupal-6 + 3 клиентские джумлы ушли в лепразорий на reg.ru
11. Бекапы и восстановление → AWS наше всё!
Бэкап-план
● Ежедневные - 3 дня
● Еженедельные - 15 дней
● Ежемесячные - 70 дней
● Полугодовые - 500 дней
● Навсегда
● s3 конфиг на уровне мастер-
аккаунта
● 5 докеров для бекапа
● s3 lifecicle
● Директория “подготовка к бекапу”
- lifecycle 1 день
● Докер для восстановления
● просто бекап файлов
в том числе и файлов mysql
● базу всегда зовут одинаково, но
пароль разный
12. Цикл жизни
1. ci: dev-stage-prod
2. dev-prod-del
3. сайт → AWS s3 → сайт2
Dev - режим разработки
● drupal site:mode dev
● ngnix css, js, img* - expires OFF
● mysql - лимиты
● adminer (phpmyadmin)
Prod - продакшен:
● drupal site:mode prod
● www.мойсайт.рф
● https
● ngnix expires ONN
● cron
Del - удаление проекта:
● Чистка: логи, .composer,
.drush/cache, drush-backups
● Бекап на S3
● Удаление контейнеров 7шт
● Удаление файловой системы и
nginx- конфига в корзину