Devconf 2015
-
09:00
Регистрация участников (холл 3-го этажа)
-
10:45
Открытие 3-этаж
-
11:00php
Релиз PHP7 - что нас ждет в октябре 2015
PHPNG успешно добрался до основной ветки PHP, и релиз PHP7 уже не за горами. Помимо производительности, появилось множество нововведений призванных сделать PHP более пригодным для написания больших проектов и избавиться от "детских болезней". Помимо несомненных плюсов, новшества несут головную боль связанную с переходом на новую версию. Доклад содержит обзор основных нововведений и некоторые рецепты по портированию.
Дмитрий СтоговЛидер проекта PHPNG и один из основных разработчиков PHP; ведущий инженер в Zend Technologies. -
11:45
Кофебрейк
-
12:00devops
Как мы переносим миллионы пользователей Badoo между дата-центрами
В докладе будет рассказано про перенос пользовательских данных в пределах датацентра, а также – между датацентрами.
Большинство крупных проектов живут более чем в одном датацентре. Очевидно, что это происходит из соображений отказоустойчивости инфраструктуры и обеспечения минимального времени доступа для пользователя. В случае, если пользователь переезжает в страну, для которой выгоден другой датацентр, необходимо произвести перенос данных.
В докладе я расскажу про:
- особенности переноса баз данных с пользовательской информацией, фотографий и обновления сервисов;
- обеспечение целостности переносимых данных;
- программную реализацию процесса переноса;
- аппаратную инфраструктуру, обеспечивающую этот процесс.
Доклад ориентирован на разработчиков, интересующихся вопросами масштабирования web-проектов, в частности – аспектами решардинга данных.Александр КрашенинниковPHP developer Badoo
Я работаю в отделе “платформенной” разработки Badoo. Занимаюсь инфраструктурой фотографий, миграцией пользовательских данных, средствами deployment'а. Основной язык разработки PHP, но с радостью использую так же Java и Python. -
13:00php
Выбор и внедрение стандарта кодирования в большой команде
Как заставить 30 человек писать код в одном и том же стиле. История выбора и внедрения стандарта кодирования в команде PHP-разработчиков Мамбы.
Максим КочкинРазработчик в Мамбе (mamba.ru). Пытаюсь сделать жизнь разработчиков лучше (но все говорят, что становится только хуже...) -
13:30php
Непрерывная интеграция в Мамбе
Требования к системе НИ
- организация рабочего процесса в Мамбе: более 80-и участников процесса
- взаимодействие разработчиков, тестеров, менеджеров (заявки на раскладку, код-ревью, система управления задачами)
Обзор реализации
- как мы написали свою систему НИ
- объединение кода в заявки, жизненный цикл заявок
- задействованные сервера и особенности доставки на них кода
- большой объем генерируемого кода и его обработка (разработка с учетом многоязычности, автогенерация PHP кода)
- отказоустойчивость и обратимость (многократная проверка кода на этапах обработки заявки, мониторинг состояния серверов, откат изменений)Олег КолтуновРазработчик wamba.com (mamba.ru), группа технической поддержки -
14:15
Обед
-
15:15php
Демонизированный PHP - before it was cool
Моя история с демонами на PHP началась до того, как в нашу жизнь ворвался libevent, phpDaemon, reactPHP и прочие. Это рассказ, основанный на многогодичной практике, о том, как писать демонов без сторонних инструменотв. Так же затронет исторические изменения в PHP, а так-же посмотрим можно ли повторить опыт с HHVM.
Arvids GodjuksPHP разработчик с 10+ лет стажем из Латвии. Highload, сложные системы, системы обработки платежей и выплат, с недавних пор совладелец собственной компании. Извествен под псевдонимом @psihius , организатор WebConf Riga 2012 и 2014. -
16:00php
Сказ о том, как инверсия зависимостей к DDD привела.
Доклад о том как отделить фреймворк от приложения, перейти от МVC к Action-Domain-Response и как это все правильно готовить с DIC.
Матвеев ИванМолодой, амбициозный. Работал в sotmarket.ru и easydata.me, архитектор и lead-developer нескольких стартапов. Входит в "те самые" 3%, которые прошли в Toptal. -
17:00
Кофебрейк
-
17:15php
Эффективная работа с Bigdata на примере рекомендательной системы для 20к интернет-магазинов - технологии и алгоритмы
В докладе будет разобрано проектирование, реализация и оценка эффективности рекомендательной системы - сделанной на базе Mahout Taste. Отдельно остановимся на выборе алгоритмов, сборе и обработке данных, анализу эффективности и обратной связи.
Демидов АлександрРуководитель направления арендных решений компании «1С-Битрикс»
Окончил ВМК МГУ им М.В. Ломоносова. Более 8 лет работал в одной из старейших компаний на российском рынке хостинга «Зенон Н.С.П.».
В компании «1С-Битрикс», отвечает за создание и развитие продуктов компании, предлагаемых клиентам по модели SaaS, а также за взаимодействие с хостинг-партнерами.
Эксперт в области архитектуры и администрирования облачных сервисов, высоких нагрузок.
Постоянный спикер отраслевых конференций и семинаров по интернет-тематике («РИФ+КИБ», RIW, HighLoad, РИТ++, CodeFest, FailOver Conference и др.). -
18:15common
Продуманная архитектура и другие преждевременные оптимизации
Мы сделали мощную технологическую платформу с многозвенной архитектурой, рассчитанную на многотысячные нагрузки и терабайты данных.
Оказалось, что внедрять новые фичи в такой платформе не только приятно и интересно, но и долго и дорого.
На докладе я расскажу, какие проблемы нам принесла чрезмерно продвинутая архитектура и как мы их решали.Федор ЛаврентьевРуководитель отдела разработки в УУРРАА.
Читает курс лекций по промышленному программированию в Физтехе (МФТИ).
-
09:00
Регистрация участников (холл 3-го этажа)
-
10:45
Открытие 3-этаж
-
11:00ruby
Микросервисы, иммутабельность и a/b тесты - как их можно использовать для борьбы с багами
Всем известная и широко применяемая методология разработки БDD (Бардак-driven development), пользуется заслуженной популярностью и применяется многими командами. К сожалению у данного подхода есть заметный минус - этот самый production периодически не работает, пользователи наблюдают 500 страницу, компания теряет деньги.
В докладе раскажу о некоторых способах, которые позволяют сократить количество багов, их злобность, а также тратить меньше времении на выявление и починку ошибок.Дмитрий ГалинскийCTO Vexor.io -
11:45
Кофебрейк
-
12:00ruby
Эксплуатация RoR проектов
Каждый проект состоит не только из разработки, но так же поддержки и эксплуатации. Думаю, каждый разработчик рано или позно сталкивается с ситуацией, когда система сломалась, что делать - непонятно, надо все быстро починить. Я постараюсь рассказать, на какие моменты в процессе разработки и эксплуатации необходимо обращать внимание, чтобы чп были как можно реже, а в идеале - отсутствовали совсем, а также как вести себя, если чп все же произошло, как искать причины проблем и как их устранять максимально быстро и безболезненно.
Егор БарановРаботаю ведущим разработчиком в компании fun-box. Программирую на ruby/erlang/node.js/C. Занимаюсь по большей части инфраструктурными проектами внутри компании. Люблю сложные интересные задачи, высокие нагрузки. -
12:45ruby
Правильная работа с часовыми поясами в Rails-приложении.
Короткий рассказ о том как надо работать с датой и временем в приложении от базы данных до фронтенда когда пользователи раскиданы по разным часовым поясам и описание самых частых и болезненных «граблей», связанных с этим.
Андрей НовиковРазработчик, AT Consulting. -
13:15ruby
EventMachine или "Что делать, если вы соскучились по callback-ам?"
Рассмотрение библиотеки EventMachine, ее плюсов и минусов, краткий обзор возможностей и инструментов, построенных на основе этой библиотеки.
Николай НоркинРазработчик Ruby on Rails в компании 7pikes -
14:00ruby
Создание Быстрых, отказоустойчивых сервисов на EventMachine.
Когда нужно решать задачи проксирования запросов или агрегирования данных из нескольких источников в реальном времени, удачным решением могут стать сервера на неблокирующих сокетах и событийноориентированное программирование. Разберём приемущества подхода. Расскажу где и как можно применять сервисы на EM. На примерах покажу возможности фреймворка. Рассмотрим варианты оптимизации прокси и трюки для выполнения блокирующего кода при агрегации. Покажу реализацию отказоустойчивого сервера.
Алексей МартынюкРуби разработчик в Rambler & Co. Активный участник проектов motor.ru, moslenta.ru, lenta.ru. -
14:45
Обед
-
15:30ruby
Принципы построения распределенных баз данных.
Создавать распределенные приложения сложно. Создавать распределенные базы данных особенно. Попробую описать основные проблемы в этой области и как их пытаются решать. Консенсус, кворум, CRDT, paxos и др. баззворды.
Алексей НикитинСтарший заднеконцевик в Bookmate -
16:15ruby
Сбор и обработка статистики о прочтениях книг
Bookmate — это сервис для чтения электронных книг по подписке. Каждую минуту пользователи сервиса прочитывают более 1000 страниц с экранов своих мобильных устройств и браузеров. Узнаем, как мы собираем и обрабатываем статистику о прочтениях для аналитики и расчета выплат правообладателям. Рассмотрим те проблемы масштабирования, с которыми нам пришлось столкнуться, как мы пытались их решить с использованием таких инструментов как MongoDB, Elasticsearch и какие мы сделали для себя выводы.
Евгений ЛиРазработчик в Bookmate -
17:00
Кофебрейк
-
17:15common
Tarantool, Sharding и Nginx: скорость, простота, масштабируемость.
Недавно в Tarantool появились библиотека для шардинга и upstream модуль для Nginx. Мы расскажем о том, как обрабатывать большие объемы данных при помощи этих технологий.
* Обзор внутреннего устройства шардинга в Tarantool 1.6
* Обзор upstream модуля для Nginx.
* Live-demo: распределенное отображение графа категорий Wikipedia в СУБД Tarantool с единой точкой входа и возможностью реалтайм поиска по категориям.Андрей Дроздов и Василий СошниковАндрей - разработчик в отделе Tarantool, MailRu.
Василий - разработчик в проекте top.mail.ru, MailRu. -
18:15common
Глубокая аналитика реальной скорости сайта
В докладе я расскажу, какую информацию можно собрать о клиентской производительности сайта у реальных пользователей и как на ее основании понять реальные проблемы пользователей, связанные со скоростью сайта.
Николай МациевскийНиколай профессионально занимается скоростью, надежностью и доступностью веб-сайтов уже много лет. Выступал с серией докладов на эту тему на десятках отраслевых мероприятий. Является автором книг «Разгони свой сайт» и «Реактивные веб-сайты». Основал первую в России компанию, профессионально занимающуюся повышением качества и быстродействия сайтов различной сложности — WEBO Software, базовый продукт которой — WEBO Site SpeedUp — успешно работает на тысячах сайтов по всему миру, а сервисы мониторинга скорости и доступности используются в крупнейших компаниях России. Также Николай работает в составе рабочих групп РАЭК, W3C и объединения разработчиков «Веб-стандарты».
Облачный сервис Айри, являясь передовым продуктом компании WEBO Software, позволяет ускорить и защитить любой сайт от наиболее распространенных угроз за считанные минуты. -
19:00common
Работа с требованиями в стартапе
Я участвовал в нескольких интернет старпах в роли аналитика и менеджера проекта, видел много проблем, с которыми сталкиваются на начальных этапах в старапе и уже после того, как вроде бы все вышло на рельсы. В этом докладе я расскажу весь свой накопленный опыт по работе с требованиями (и не только с требованиями) в старапе.
Тезисы:
1. Основные ошибки при работе с требованиями.
2. Первый продукт вы все равно выкинете! Почему и что делать в этой ситуации?
3. Видение или концепция - залог успеха в начале! Зачем оно нужно и что должно туда войти?
4. Зачем писать требования? Какие требования необходимы в старатпе и как их писать? Инструменты для документирования и моделирования требований.
5. Что делать, если у вас нет выделенного аналитика в старапе? Как вовлекать бизнес в требования?
6. Методы выявления (получения) требований в старапе.Байкин АлександрРаботает в ИТ более 15 лет, за это время был разработчиком, аналитиком, ведущим аналитиком, менеджером проектов, руководителем отдела разработки. В настоящий момент ИТ директор в бизнес компании.
Основатель и идеолог крупнейшего ресурса для Аналитиков uml2.ru
Тренер и консультант в области ИТ анализа и методологий разработки ПО.
Докладчик многих ИТ конференциях в России, Белоруссии и на Украине.
"Знания и навыки, полученные за время работы аналитиком, мне помогают на руководящих позициях и в жизни" (с)
http://baikin.moikrug.ru/
-
09:00
Регистрация участников (холл 3-го этажа)
-
10:45
Открытие 3-этаж
-
11:00python
asyncio: обзор ситуации на сегодняшний день.
asyncio -- это стандарт и одновременно эталонная реализация асинхронного сетевого программирования в Python 3.
Что мы имеем сейчас и куда идём.
PEP 492 и новые конструкции языка.
Особенности разработки, отладки и тестирования асинхронного кода.Андрей СветловPython Core Developer.
Разработчик asyncio.
Создатель aiohttp, aiopg и ряда других библиотек для asyncio -
11:45
Кофебрейк
-
12:00python
Yet another object level permissions
Я расскажу о механизме управления правами и доступом на уровне объектов на примере моего Django-protector.
Поговорим о том, как:
Эффективно хранить данные о связях владельцев прав и объектов
Подружить права уровня объектов с группами
Эффективно проверять права доступа на списках объектов
Работать с видимостью иерархических объектовСергей ЛихобабинРуководитель отдела внутренней разработки Mail.Ru Group. -
13:00python
Centrifuge - мгновенные сообщения для веб-приложений, эволюция проекта от Python к Go
Centrifuge - open-source сервер рассылки real-time сообщений для веб-приложений, работает как с протоколом Websockets, так и с SockJS. Сервер не завязан на язык бекенда вашего веб-приложения, предоставляя клиентский и серверный API для взаимодействия. В докладе будет рассказываться о возможностях, которые "из коробки" предоставляет проект, о проблемах, с которыми пришлось столкнуться, разрабатывая асинхронное приложение на Tornado, о плюсах, которые совершенно бесплатно предоставил язык Go для подобного рода сервера.
Александр ЕмелинPython-developer в Mail.Ru Group -
13:45python
view как чистая функция от состояния базы данных
There are only two hard things in Computer Science: cache invalidation and naming things.
(c) Phil Karlton
В своем докладе я расскажу о первой проблеме.
Как решить проблему протухшего бэкэнда?
Как выдавать свежую информацию пользователям вашего ресурса, и при этом использовать кэширование для повышения быстродействия ?
На помощью придут чистые функции и библиотека django-cacheopsБеда ИльяРазработчик web приложений с 7 летним стажем.
Тимлидер bro.agency
Занимаюсь разработкой приложений на python, Erlang, clojure.
Адепт функционального программирования.
-
14:45
Обед
-
15:30python
Мастер-класс по асинхронному сетевому программированию на Python
Во время мастер класса я покажу как писать код для asyncio и, главное, как эта библиотека работает под капотом.
Для примеров будем использовать aiohttp и asyncio-совместимые библиотеки для баз данных и проч.
Мастер-класс будет полезен как тем кто хочет знать о внутренней кухне asyncio так и тем кто применяет tornado/twisted -- сетевое программирование не сильно меняется при переключении на другой инструмент, принцип и основы одни и те же.Андрей СветловPython Core Developer
Принимал участие в создании библиотеки asyncio
Соавтор aiohttp и ряда других библиотек для asyncio
Провёл ряд тренингов по обучению асинхронному сетевому программированию. -
17:00
Кофебрейк
-
17:15python
Мастер-класс по асинхронному сетевому программированию на Python
Во время мастер класса я покажу как писать код для asyncio и, главное, как эта библиотека работает под капотом.
Для примеров будем использовать aiohttp и asyncio-совместимые библиотеки для баз данных и проч.
Мастер-класс будет полезен как тем кто хочет знать о внутренней кухне asyncio так и тем кто применяет tornado/twisted -- сетевое программирование не сильно меняется при переключении на другой инструмент, принцип и основы одни и те же.Андрей СветловPython Core Developer
Принимал участие в создании библиотеки asyncio
Соавтор aiohttp и ряда других библиотек для asyncio
Провёл ряд тренингов по обучению асинхронному сетевому программированию. -
18:45python
Django DB Mailer — простая и удобная батарейка, для отправки почтовых сообщений в ваших проектах на Python и не только
В докладе будет рассказано о том, как решаются проблемы с отправкой разного рода сообщений, для проектов выше среднего и немного об OpenSource:)
Руслан АскаровЗанимаюсь разработкой на Python и Архитектурой приложений в LPgenerator.
-
09:00
Регистрация участников (холл 3-го этажа)
-
10:45
Открытие 3-этаж
-
11:00js
Интеграция Webpack в приложение на Ruby on Rails
Привет, в мире web разработки я уже 10 лет, начал верстать когда это еще не было мейнстримом.
Как Вы знаете, прогресс в web идет семимильными шагами, каждый день появляются новые инструменты, шаблонизаторы, пост- и пре-процессоры.
Так же набирает обороты доступность различных типов графики, включая типографику и вектор.
Как быстро и безболезненно внедрить это на проект?
Приходите на мой доклад в котором:
– Вместе мы рассмотрим самые популярные инструменты для сборки;
– Я расскажу Вам о реальном опыте внедрения WebPack в приложение на Ruby on Rails, и поведаю историю о зоопарке технологий с которыми каждому из нас приходится жить;
– Подскажу как не быть съеденным собственной историей и техническим долгом, а так же как легко перейти на Ты со сборкой статики;
– Попробую показать Вам, как не мыслить моделью задач, а перейти непосредственно к написанию своего приложения легко и быстро собирая минифицированные, модульные компоненты;Михаил ЧернобровРазработчик клиентских приложений в Rambler&Co -
11:45
Кофебрейк
-
12:00js
TypeScript для PHP разработчика
Доклад посвящен проблемам современного JavaScript с учётом особенностей стандарта ES6/7 и путям их решения с помощью языка TypeScript. Основная цель доклада – показать, как с помощью TypeScript можно улучшить разработку, а также как легко писать энтепрайз решения разработчикам на PHP. Доклад основан на реальном применении TypeScript в наших проектах, в компании Tutu.ru.
Александр МайоровРуководитель отдела Frontend разработки в Tutu.ru. Помимо основной работы занимается преподаванием курса веб-разработки в МГУ на факультете ВМК, пишет статьи о программировании и бизнес процессах в печатные издания "CHIP", "Системный Администратор". -
13:00js
HTML5 Web Components: следующий шаг к модульности вашего проекта
На сегодняшний день frontend-технологии - одна из наиболее динамично развивающихся отраслей информационных технологий. Появилось множество реализаций известных шаблонов проектирования, написаны тысячи строк Javascript-кода и потрачены сотни часов на stackoverflow для понимания работы этого самого кода. Несмотря на различные подходы, все эти инструменты служат нескольким важным принципам: снижению сложности, улучшению модульности и архитектуры в целом.
HTML5 Web Components стандартизируют эти идеи, прошедшие через огонь, воду и тяжелые Javascript-фреймворки. Мы поделимся опытом внедрения Web Components в проект с объемной single-page логикой, расскажем, как удобнее работать с веб-компонентами, принимая во внимание текущее состояние реализации, а также дадим советы, где постелить соломы при вашем собственном старте работы с веб-компонентами.Андрей РахмановВедущий frontend-разработчик в проекте Underpage.
Занимается разработкой онлайн-редактора интерактивных книг, интересуется новыми frontend-решениями и подходами к улучшению качества разработки клиентской части. -
13:30js
Обзор инновационных систем push-уведомлений
15 апреля 2015 года с выходом Google Chrome 42 произошла революция веб-разработки, которую никто не заметил. Теперь сайты могут отсылать короткие сообщения прямо в ОС пользователя даже при закрытой вкладке с сайтом и выключенном браузере, без необходимости устанавливать какие-либо плагины. На докладе будет сделан обзор новой фичи, призванной поменять способ коммуникации между веб-приложением и пользователем.
Также, естественно, разберем как писать свой Service-Worker и прикрутить это к своему сайту.Александр МихайленкоОснователь и CEO Jeapie, бесплатной платформы push-уведомлений. -
14:00js
Интерактивная 3D графика при помощи WebGL
Доклад на тему применения 3D технологии WebGL в браузерах.
Поговорим о том, где актуально использование WebGL.
Рассмотрим библиотеку Three.js на примере создания просмотровщика трехмерных моделей.
Углубимся в язык шейдеров GLSL ES.Василика КлимоваРазработчик интерфейсов в компании Artec Group. -
14:30js
React Native
Писать мобильные приложения на Javascript можно было и раньше, так почему же так много шума вокруг ReactNative? Я расскажу о том, почему появился такой фреймворк и какие цели он преследует. Когда стоит использовать, и с какими трудностями придется столкнуться. Расскажу об устройстве ReactNative и какое отношение он имеет к React. И немного про другие фэйсбуковские проекты связанные с ReactNative (flow, Nuclide).
Евгений СоковиковИнженер-программист в компании Рестрим. Писал на React до того, как это стало мэйнстримом.
Github: github.com/skv-headless -
15:00
Обед
-
15:45js
Применение Scala.js в реальном проекте
В своем докладе я расскажу, как полезен может быть язык Scala для фронтэнд-разработчиков, и почему пришло время писать в стиле функционального реактивного программирования (FRP).
Алексей ФомкинМеня зовут Алексей Фомкин и я уже восемь лет разрабатываю пользовательские интерфейсы. Писал много и на разном. Сейчас возглавляю команду разработки мобильного приложения полностью основанного на веб-технологиях. Мой аккаунт на гитхабе: http://github.com/yelbota -
16:15js
Создание карты игрового мира на API Яндекс.Карт
Мастер-класс посвящен созданию собственной карты на основе API Яндекс.Карт. Участники мастер-класса пройдут все этапы разработки проекта на основе API Яндекс.Карт на примере создания карты игрового мира.
Всеволод ШмыровРазработчик в команде API Яндекс.Карт. В 2013 году уже выступал на конференции DevConf. -
17:00
Кофебрейк
-
17:15js
Создание карты игрового мира на API Яндекс.Карт
Мастер-класс посвящен созданию собственной карты на основе API Яндекс.Карт. Участники мастер-класса пройдут все этапы разработки проекта на основе API Яндекс.Карт на примере создания карты игрового мира.
Всеволод ШмыровРазработчик в команде API Яндекс.Карт. В 2013 году уже выступал на конференции DevConf. -
18:00common
Год работы стоя
Я расскажу вам историю двух самых обычных зайцев - Майка и Адама. Оба они проработали большую часть своей жизни программистами. Они оба писали код, тестировали его, выкатывали его на продакшн, чинили продакшн, упавший в 3 часа ночи. Веселые были времена... Теперь же, Адам еле передвигает ноги - из-за сидячего образа жизни ноги к старости стали совсем никудышные. А Майк в свои 60 лет до сих пор бегает на лыжах! Как ему это удалось, спрашиваете вы?
Одним только столом для работы стоя тут явно не обошлось. Я предлагаю вам поговорить о болячках программистов и о том, как их избежать. Что-то я почерпнул из книг, что-то из личного опыта.Антон КаляевSoftware Engineer (Erlang)
https://twitter.com/AntonKalyaev -
18:30common
Интеллектуальная собственность в IT
В рамках доклада расскажу:
-что охраняется в ИТ: исходный код, алгоритмы, железо, дизайн
-что сильнее: авторское право или патент?
-что нужно помнить при выходе на зарубежные рынки?
-какие подводные камни меня ожидают при использовании OpenSource?
-интеллектуальная собственность третьих лиц. Как не нарушить?
-актуальная практика.Олег АбраменкоРуководитель направления ИТ, патентная практика ЦИС "Сколково". Опыт в сфере интеллектуальной собственности более 3-х лет. Проходил стажировки по интеллектуальной собственности в Лондоне и Нью-Йорке. Имеет большой опыт патентования и охраны ИТ решений.
Аспирант МГУПИ, кафедра моделирования систем. Ранее работал программистом в Лаборатории Касперского.
Участник IT lawyers discussion club.
-
09:00
Регистрация участников (холл 3-го этажа)
-
10:45
Открытие 3-этаж
-
11:00devops
OpenStack сегодня
OpenStack - популярная открытая платформа для создания облаков.
В докладе я расскажу:
- что это и зачем это нужно
- об имеющихся интегрированных проектах
- высокоуровневой архитектуре
- куда смотреть если стало интересноИлья АлексеевOpenstack зацепил в 2010 году, с тех пор не отпускает.
Работает в компании ITKey -
11:45
Кофебрейк
-
12:00devops
Тестируем инфраструктуру как код
Если инфраструктура становится кодом, то хороший код должен быть покрыт тестами. Тестирование инфраструктуры особенно актуально, если у вас частые изменения, сложная логика или используется сторонний код.
Я расскажу про основные инструменты и подходы в тестировании инфраструктуры, как все это автоматизировать и про наш опыт в Express 42. Начиная с анализа кода, интеграционных тестов и заканчивая использованием CI систем. Также расскажу про публикацию инфраструктурного кода в open source.
Доклад будет интересен пользователям любой из систем управления конфигурацией - Chef, Puppet, Ansible или SaltStack.Игорь КурочкинРаботаю инженером в компании Express 42. До этого прошел путь в Qik/Skype/Microsoft. Интересуюсь автоматизацией системного администрирования и архитектурами больших систем. -
13:00devops
Как мы делаем мониторинг
По какой-то причине я не переношу Zabbix (видимо, у меня аллергия), а поэтому мне приходится использовать альтернативные варианты мониторинга и алертинга. К сожалению, в 2015 году хорошего универсального варианта все еще не существует (кто там опять сказал "Zabbix"?). Поэтому, приходится комбинировать разные системы. В процессе комбинирования мне пришлось познакомиться не только с уже известным всем стеком Graphite/StatsD/Grafana, но и с Riemann, OpenTSDB, Cyanite, Bosun, Prometheus. О плюсах и минусах использования этих решений в продакшн я и хочу рассказать.
Александр ЧистяковГлавный инженер компании Git in Sky, неоднократный докладчик DevConf в предыдущие годы, котик. Любит хорошие старые вещи и блестящие новые вещи. Не боится людей. -
13:45devops
Docker и сеть: варианты использования
Я надеюсь, что вводный доклад про Docker сделает кто-нибудь другой, а я хочу поговорить об организации сложных сетевых топологий с использованием Docker. Слово "сложный" означает, что мы хотим объединять контейнеры, находящиеся на хостах в разных датацентрах, в общую сеть, и простого проброса портов, предоставляемого Docker по умолчанию, нам недостаточно. Мы рассмотрим удобство настройки и производительность таких продуктов, как OpenVSwitch, Weave и Flannel.
Александр ЧистяковГлавный инженер компании Git in Sky, неоднократный докладчик DevConf в предыдущие годы, котик. Любит хорошие старые вещи и блестящие новые вещи. Не боится людей. -
14:30
Обед
-
15:30devops
Мониторинг в Mail.Ru Group
Расскажу о том как устроен мониторинг в Mail.Ru Group. О том почему мы делаем собственный мониторинг и объединяем между собой весь зоопарк инструментов мониторинга различных проектов.
Сергей ЛихобабинРуководитель отдела внутренней разработки в Mail.Ru Group. Более трех лет занимаюсь разработкой внутренних и инфраструктурных проектов компании, в том числе мониторингом -
16:15common
Сколько ботов в соцсетях? Создаем сервис определения ботности
Выявление ботов в социальных сетях - актуальная проблема, которая интересна буквально всем, кто в “теме”, от стейкхолдеров до рядовых пользователей, от СММ-агенств до тех, кто их услугами пользуется.
Возможно ли определить бота по его странице в соц. сети не запрашивая скан паспорта?
Мы расскажем о собственном опыте: успехах и «набитых шишках», о том, как мы пытались разобраться в миллионах социальных аккаунтах, понять, кто "живой", а кто "бот", о том, как мы построили систему для анализа, выдерживающую большие нагрузки и остановились в шаге от ответа на поставленный вопрос.
В нашем выступлении можно будет услышать такие слова, как PHP, MySQL, MongoDB, Redis, социальные сети и API.
Юрий АгаповРуководитель отдела разработки компании СмартКрауд -
17:00
Кофебрейк
-
17:15common
Domain-Driven Design на практике
Вы задумывались как мы проектируем?
Кажется, варианта два:
- быстро, чтобы решить текущие задачи,
- с погружением в детали, чтобы решать задачи не только настоящего, но и будущего.
Первый вариант применим, когда требуется проверить бизнес-идею. Однако, если стартап "взлетел", требуется обращать больше внимания на качество проектирования для получения необходимого уровня гибкости системы. Для этого отлично подходит Domain-Driven Design.
В докладе я расскажу как использовать DDD, чтобы действительно получить хороший результат, и приведу примеры использования DDD в создании внутренних систем компании 2ГИС.Денис ИвановРаботает в 2ГИС над системой продаж и взаимодействия с клиентами. Занимается проектированием сложных систем. Программирует в основном на .NET-стеке. Организует CodeFest и пишет статьи на актуальные темы в своем блоге. -
18:30common
Альтернативная мотивация разработчиков
Одной из основных проблем любого руководителя команды разработчиков это их мотивация и повышение эффективности работы команды. Разработчики – самый прихотливый, свободолюбивый и творческий тип сотрудников. Во времена карго-культа программистов я хотел бы рассказать о своем видении понятия «профессионализм» и предложить вам уволить часть людей, которых вам постоянно предлагают мотивировать. В докладе я постараюсь аргументировано рассказать вам о категориях людей, которые у вас все еще работают; почему вы их не уволили; почему их надо уволить; как не стать самодуром; как увольнять и кому же тогда работать.
Антон ЛарченковCTO в Enaza. В компании работает около 100 сотрудников, половина – технические специалисты.
-
09:00
Регистрация участников (холл 3-го этажа)
-
10:45
Открытие 3-этаж
-
11:00storage
Как пережить скачок нагрузки на MySQL?
Повышение нагрузки может быть хорошей новостью, особенно если речь идет о скачке популярности сайта, но в то время пока все ликуют админы баз данных вынуждены принимать срочные меры. Что происходит при росте популярности на стороне MySQL, как подготовится и какие принимать меры когда все готово взорваться?
Владимир ФедорковПоследние тринадцать лет работает в области высоких нагрузок. Беспощадно консультирует клиентов по вопросам производительности LAMP стека вообще, MySQL и Sphinx в частности. Характер скверный. Не женат. -
11:45
Кофебрейк
-
12:00storage
Транзакции и одновременный доступ: сравнение реализаций в PostgreSQL и Oracle
В докладе рассматриваются подходы к организации одновременного доступа в СУБД PostgreSQL и Oracle. Обе системы используют сходные механизмы, но существенно различаются в их реализации. Мы обсудим и посмотрим на примерах, как устроена многоверсионность на низком уровне, когда и как используются блокировки при одновременном доступе к данным и чем отличаются две системы в поддержке изоляции транзакций.
Понимание этих особенностей и различий будет полезно всем разработчикам, использующим СУБД в своей работе.Егор РоговPostgres Professional -
13:00storage
Postgresql в Avito
Компоненты системы тесно связанные с Postgres: хранение и "распространение" объявлений. Особенности внедрения в нагруженном вебе. Восстановление после аварий.
Михаил ТюринГлавный системный архитектор Avito -
14:30
Обед
-
15:30storage
Мониторинг и отладка MySQL: максимум информации при минимальных потерях
В сложной ситуации хорошо иметь под рукой детали: сообщения об ошибках, статистику времени выполнения запросов, данные о производительности операционной системы и железа. Много деталей! Современные версии MySQL позволяют собрать информацию практически обо всём. Однако любой включённый мониторинг имеет свою цену: производительность. Именно поэтому универсального решения "всё включено", подходящего для любого MySQL приложения, не существует. Даже при использовании инструментов с графическим интерфейсом у вас всегда есть выбор: что отслеживать и что нет.
В докладе я хочу обсудить какие опции должны быть включены всегда, какие опциональны и при каких обстоятельствах их включать. Мы рассмотрим как встроенные возможности MySQL, так и внешние решения.Света СмирноваСвета (svetasmirnova) Смирнова, Percona, инженер технической поддержки MySQL с более чем 8-ми летним стажем, автор книги "MySQL Troubleshooting" -
16:15storage
Асинхронная репликация без цензуры: архитектурные проблемы MySQL, или почему PostgreSQL завоюет мир
MySQL - популярная СУБД, используемая во многих проектах. Разработчик Percona Server и инженер myTarget расскажет про неудачные решения в репликации MySQL, объяснит её устройство, рассмотрит архитектурные проблемы, многопоточную репликацию в версии 5.7. После этого доклада слушатели поймут, почему это провал, как репликацию нужно было сделать правильно, и почему проект PostgreSQL избежал этих проблем.
Мы обсудим:
- что такое асинхронная репликация;
- как устроена асинхронная репликация в MySQL;
- какие ошибки проектирования были допущены;
- как эти ошибки проявляются при использовании;
- чем эти ошибки мешают эксплуатации;
- почему параллельная репликация MySQL 5.7 не решает проблем, а лишь добавляет новые;
- как проект PostgreSQL избежал этих ловушек.
Олег ЦарёвЗанимается разработкой СУБД с 2007 года.
Участвовал в разработке OLAP-базы QD, затем MySQL и SciDB.
В настоящий момент - ведущий разработчик myTarget. -
17:00
Кофебрейк
-
17:15storage
Масштабируем бэкапы: сравнение утилит резервного копирования для MySQL
Хотя MySQL и является рекордсменом по числу доступных утилит резервного копирования, выбор той или иной утилиты является нетривиальной задачей. В данном докладе мы поговорим о создании резервных копий высоконагруженных MySQL-серверов - в частности, о следующих вопросах:
- что выбрать: mysqldump, mydumper, mylvmbackup, XtraBackup или коммерческие решения?
- оптимизация резервного копирования больших объёмов данных;
- проблемы блокировок сервера во время создания резервных копий;
- проблемы, связанные с большим количеством таблиц;
- эффективное создание инкрементальных резервных копий;
- эффективное создание частичных резервных копий и частичное восстановление;
- проверка целостности резервных копий на больших объёмах данных;
- хранение резервных копий в "облаках".Алексей КопытовРазработчик компании Percona с 2010 года, участвует в развитии Percona Server, Percona XtraDB Cluster и Percona XtraBackup. Разрабатывает MySQL с 2004 г., работал в MySQL AB, а также в Sun Microsystems и Oracle. -
18:00storage
Графовая база Neo4j во внутреннем приложении 2ГИС
На докладе расскажу о внутренних продуктах 2ГИС. О том, как мы создаём дорожные графы городов, как нам в этом пригождается Neo4j, и о нашей истории отношений с этой графовой базой.
Антон МаксимовПрограммист в 2ГИС. Писал на Java биллинги и MMO-игры, теперь пересел на .NET и делаю очень крутую систему картографии для внутренних потребностей компании. -
18:30storage
Распределенная версионированная транзакционная web-ориентированная файловая система Djarvur
Распределенная версионированная транзакционная файловая система была разработана участниками группы Djarvur для решения задач одного из клиентов.
На данный момент эта FS успешно обслуживает 800 тысяч сайтов, 150 миллионов файлов, 20 терабайт контента.
"Распределенная" означает, что базируется она на кластерной NoSQL СУБД (на данный момент поддерживаются aerospike и cassandra).
"Версионированная" означает, что разные версии контента хранятся на файловой системе указанное время, и доступны для просмотра и восстановления.
"Транзакционная" означает, что замена старого контента на новый производится единовременно, в том числе и для контента, состоящего из множества файлов.
"web-ориентированная" означает, что внутренняя структура FS оптимизирована для обслуживания именно http-трафика.
Даниил ПодольскийРуководитель проектов Git in Sky, IT-консультант, фрилансер. В сфере IT c 1990 года. С 2000 года консультирует разнообразные интернет-стартапы по вопросам построения эффективных и безопасных серверных систем. -
19:15storage
Lightning Memory-mapped DB = чемпион-альтернатива для LevelDB и Berkeley DB
Lightning Memory-Mapped Database (LMDB) - представляет собой интересный, во многом уникальный, движок базы данных класса Berkeley DB / Level DB. Будучи относительно малоизвестным, LMDB показывает чемпионскую производительность по чтению и предлагает ряд компромиссов для достижения невероятной производительности по записи.
Так получилось, что мы сделали клон/fork исходного проекта и создали высокопроизводительное стабильное решение промышленного масштаба с открытым исходным кодом. Расскажу о внутреннем устройстве LMDB, о выявленных недостатках и наших доработках для их устранения.
Доклад точно будет интересен разработчикам, интересующимся "внутренностями" баз данных, а также специалистам, эксплуатирующим OpenLDAP в промышленном высоконагруженном масштабе: десятки миллионов записей, десятки тысяч запросов в секунду, геораспределенный кластер, многогигабайтные базы, 24x7.Леонид ЮрьевВедущий софтверный архитектор в Петер-Сервис R&D, Сколково.
https://ru.linkedin.com/pub/leonid-yuriev/66/a55/676
-
09:00
Регистрация участников (холл 3-го этажа)
-
10:45
Открытие 3-этаж
-
11:00common
API
Поговорим о том, что такое API; зачем он нужен, как его правильно проектировать, продвигать и сопровождать; как выпускать новые версии и поддерживать обратную совместимость между ними. Доклад для широкой аудитории, будет интересен как менеджерам, так и разработчикам API.
Сергей КонстантиновРуководитель разработки API Яндекс.Карт.
В 2013-2015 гг. входил в W3C Technical Architecture Group — специальную группу, занимающуюся решением кросс-архитектурных проблем Веба. -
11:45
Кофебрейк
-
12:00common
Рефакторинг приложения с использованием Go
Я расскажу, как рефакторинг высоконагруженного рекламного сервера на PHP с обилием legacy дал выигрыш по производительности более чем в 5 раз.
С ростом нагрузки горизонтальное масштабирование сервиса на динамическом языке программирования начинает неоправданно требовать десятки-сотни серверов. С ростом кодовой базы внесение изменений в такое же монолитное приложение становится неоправданно дорогим. Решение известное и простое: в ключевых местах выделять микросервисы. Для этой цели хорошо подходит Go, как высокопроизводительный язык, который учится за 1-2 дня, и из коробки удобен для микросервисов.
Я расскажу, как подходить к задаче такого рефакторинга и продать его заказчику, про подводные камни разработки и поддержки высоконагруженного сервиса на Go, и про внезапные проблемы с опенсорсными решениями. Кратко расскажу, как быстро и легко внедрять микросервисы при помощи современных сервисов типа Consul'а.Виталий ЛевченкоСистемный архитектор PropellerAds. Проповедую Go. -
13:00common
Архитектура хранения фотографий в Badoo
В этом докладе я в подробностях расскажу о том, как устроено хранение фотографий в нашей компании (всего около ~1 Пб).
Юрий НасретдиновВедущий разработчик в Badoo, работаю в отделе «платформы». Один из основных разработчиков «облака» (системы для распределенного запуска cli-скриптов по расписанию). Также занимался deployment и системой переводов. В веб-разработке около 10 лет, из которых 3 года в Badoo. -
13:45common
Делаем API мобильного приложения
Мы задумались над тем, как наилучшим образом интегрировать мобильные приложения в экосистему продуктов компании. Все привыкли к тому, что мобильное приложение использует серверное API, я же в своём докладе хочу поднять тему создания API самого мобильного приложения на основе определения собственной URI схемы.
Использование URI схем позволяет уменьшить изолированность мобильного приложения, внести гибкость в его работу, повысить привлечение и удержание пользователей.Глеб КосолаповРуководитель отдела разработки мобильных приложений в УУРРАА.
Разрабатываю ПО для мобильных устройств ещё со времён PDA ☺ -
14:15common
Шаблонизация: как дедушка завещал
- Предпосылки для шаблонизаторов
- Декларатив vs императив: плюсы и минусы
- Внутренние проблемы шаблонизации — компиляция, рантайм, внутренние
представления
- В поисках идеала: предметно-ориентированные варианты, их плюсы и минусыАлексей ЯрошевичАгентство "Далее". Руководитель группы разработки проекта Megafon.ru -
14:45
Обед
-
15:45common
Загрузка больших объемов данных для бизнес-аналитики.
В Badoo мы разрабатываем собственную систему Business intelligence (сокращённо BI). И прежде, чем приступать к анализу данных, их необходимо извлечь (Extract) из источников, преобразовать (Transform) и загрузить (Load) в аналитическую базу.
Я расскажу об этом процессе - ETL (Extract, Transform, Load). Какие бывают источники данных, какие методы сбора мы используем. И самое главное - об инструменте под названием ETLMaster, созданным в нашей компании для автоматизации управления процессом трансформации и загрузки данных.Валерий СтарынинBI-разработчик в Badoo. -
16:30common
Уменьшение связности и рефакторинг старого проекта
Имеем большой и старый (более 8 лет) web проект. За годы непрерывной разботки появилось множество сервисов которые жестко связаны между собой. Проблемы в одном из сервисов или компонентов приводят к выходу из строя всего портала. Необходимо провести глубокий рефакторинг не нарушая работоспособность всего проекта и продолжая разработку новых сервисов.
Для решения этих проблем было выработано несколько подходов:
* Полное разделение кодовой базы проектов – никаких подключаемых библиотек из шаред папки
* Что бы не дублировать повторяющийся код – собственные пакеты composer, bower
* Всё взаимодействие между сервисами происходит через API, авторизация OAuth 2.0 и REST
* Новый код – покрыт Unit тестами, для старого реализованы интерфейсы обратной совместимости
Мы получили возможность создавать интегрированные с общей системой независимые проекты. Рядом успешно работает код написанные более 5 лет назад и тот что внедрили вчера.Евгений БарановРуководитель разработки крупного портала для веб мастеров pr-cy.ru. Опыт в ИТ более 10 лет. -
17:00
Кофебрейк
-
17:15common
Управление проектом во время кризиса
Предлагаю обсудить что именно надо делать, и чего делать нельзя в интернет-проектах.
Главное отличие работы в кризис - высокая цена ошибок. Неверные решения, которые в периоды роста незаметны, в кризис становятся для бизнеса смертельными.
Я расскажу об основных ошибках руководителей IT-проектов, и как с этим жить.Григорий КочановТехнический руководитель и бизнес-консультант. За последние полтора года реанимировал умирающий информационный проект, выстроил эффективные бизнес-процессы, из локального вырастил во всероссийский и помогаю стабильно развиваться.
В прошлом - тимлид крупного ecommerce, 8 лет аутсорсинга, финансовый аналитик в крупном банке, торговля ценными бумагами и аудит. -
18:30common
Реактивные потоки в бекенде
Реактивные потоки это стандарт асинхронной обработки потоковых данных от Netflix, Twitter, Pivotal и других. Я расскажу зачем и как их использовать для построения бекендов:
— в чем проблемы построения современных асинхронных бекендов
— что такое реактивные потоки и как они помогают строить бекендов
— принципы работы реактивных потоков
— основы работы с реактивными потоками на примере Akka StreamАлексей РоманчукПрограммирую на Scala и Java. Выступаю на DevDay. Организую CodeFest.