SlideShare a Scribd company logo
1 of 76
Download to read offline
Perl undead!
как мы делали сложный
проект на perl5 и что из
этого вышло
Даниил Подольский
CTO inCaller.org
ex-CTO AdCamp.ru
Немного о себе
• Системный администратор со стажем 20 лет
Немного о себе
• Системный администратор со стажем 20 лет
• начинал на ассемблере х86
• последняя прочитанная книжка о процессорах
инструкциях и регистрах - i386
Немного о себе
• Системный администратор со стажем 20 лет
• начинал на ассемблере х86
• последняя прочитанная книжка о процессорах
инструкциях и регистрах - i386
• Пишу/читаю на C, C++, Perl5, Java, Groovy,
Lua,Go
Немного о себе
• Системный администратор со стажем 20 лет
• начинал на ассемблере х86
• последняя прочитанная книжка о процессорах
инструкциях и регистрах - i386
• Пишу/читаю на C, C++, Perl5, Java, Groovy,
Lua,Go
• Сейчас руковожу разработкой проекта на Go
Немного о себе
• Люблю Perl5
Немного о себе
• Люблю Perl5
• Правда-правда!
• Даже имею несколько опубликованных на
CPAN модулей
Немного о себе
• Люблю Perl5
• Правда-правда!
• Даже имею несколько опубликованных на
CPAN модулей
• Не читал Modern Perl
Немного о себе
• Люблю Perl5
• Правда-правда!
• Даже имею несколько опубликованных на
CPAN модулей
• Не читал Modern Perl
• Фактически - не пишу на современном перле
О чем и зачем этот доклад
• О том, как я расстался с Perl
О чем и зачем этот доклад
• О том, как я расстался с Perl
• Я хочу поделиться опытом проигранных
сражений
О чем и зачем этот доклад
• О том, как я расстался с Perl
• Я хочу поделиться опытом проигранных
сражений
• И предостеречь “молодежь”
О чем и зачем этот доклад
• О том, как я расстался с Perl
• Я хочу поделиться опытом проигранных
сражений
• И предостеречь “молодежь”
• Хоть и осознаю, что в этом нет смысла
Предыстория
• Setup.Ru
Предыстория
• Setup.Ru
• Perl 5
Предыстория
• Setup.Ru
• Perl 5
• mod_perl
Предыстория
• Setup.Ru
• Perl 5
• mod_perl
• системный администратор и архитектор
Предыстория
• Setup.Ru
• Perl 5
• mod_perl
• системный администратор и архитектор
• файловое хранилище: perl + postgres
Предыстория
• AdCamp.Ru
Предыстория
• AdCamp.Ru
• RTB SSP
Предыстория
• AdCamp.Ru
• RTB SSP
• Специфическая задача - умный proxy
Предыстория
• AdCamp.Ru
• RTB SSP
• Специфическая задача - умный proxy
• Жесткие требования к скорости
Предыстория
• AdCamp.Ru
• RTB SSP
• Специфическая задача - умный proxy
• Жесткие требования к скорости
• Высокие нагрузки
Предыстория
• AdCamp.Ru
• RTB SSP
• Специфическая задача - умный proxy
• Жесткие требования к скорости
• Высокие нагрузки
• Команда перловиков
Предыстория
• 2013 - системный администратор и архитектор
Предыстория
• 2013 - системный администратор и архитектор
• 2014 - технический директор
Стадии развития проекта:

отрицание
• AnyEvent, Mojo, XML, JSON
Стадии развития проекта:

отрицание
• AnyEvent, Mojo, XML, JSON
• масса всего всякого XS
Стадии развития проекта:

отрицание
• AnyEvent, Mojo, XML, JSON
• масса всего всякого XS
• чтение кода ночами
Стадии развития проекта:

отрицание
• AnyEvent, Mojo, XML, JSON
• масса всего всякого XS
• чтение кода ночами
• “мы - программисты, мы любим писать

сложный код”
Стадии развития проекта:

отрицание
• AnyEvent, Mojo, XML, JSON
• масса всего всякого XS
• чтение кода ночами
• “мы - программисты, мы любим писать

сложный код”
• “все языки одинаковы”
Стадии развития проекта:

отрицание
• попытки профилирования
Стадии развития проекта:

отрицание
• попытки профилирования
• NYT profiler
Стадии развития проекта:

отрицание
• попытки профилирования
• NYT profiler
• внедрение statsd
Стадии развития проекта:

отрицание
• попытки профилирования
• NYT profiler
• внедрение statsd
• event-driven программы очень тяжело
профилировать
Стадии развития проекта:

гнев
• Монолитное приложение
Стадии развития проекта:

гнев
• Монолитное приложение
• так делают java-программисты
Стадии развития проекта:

гнев
• Монолитное приложение
• так делают java-программисты
• так делать не надо
Стадии развития проекта:

гнев
• Монолитное приложение
• так делают java-программисты
• так делать не надо
• Копирование массивов при передаче параметров
Стадии развития проекта:

гнев
• Монолитное приложение
• так делают java-программисты
• так делать не надо
• Копирование массивов при передаче параметров
• замена хешей на перебор
Стадии развития проекта:

гнев
• Монолитное приложение
• так делают java-программисты
• так делать не надо
• Копирование массивов при передаче параметров
• замена хешей на перебор
• замена регекспов на токенизаторы
Стадии развития проекта:

торговля
• ночные стрельбы
Стадии развития проекта:

торговля
• ночные стрельбы
• оптимизация количества процессов
Стадии развития проекта:

торговля
• ночные стрельбы
• оптимизация количества процессов
• удаление лишних метрик (!)
Стадии развития проекта:

торговля
• ночные стрельбы
• оптимизация количества процессов
• удаление лишних метрик (!)
• memcache
Стадии развития проекта:

отчаяние
• отсутствие оптимизатора
Стадии развития проекта:

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

отчаяние
• отсутствие оптимизатора
• отсутствие семплирующего профайлера
• да вообще какого-либо пригодного для
использования профайлера
Стадии развития проекта:

отчаяние
• отсутствие оптимизатора
• отсутствие семплирующего профайлера
• да вообще какого-либо пригодного для
использования профайлера
• threads are weird
Стадии развития проекта:

отчаяние
• отсутствие оптимизатора
• отсутствие семплирующего профайлера
• да вообще какого-либо пригодного для
использования профайлера
• threads are weird
• IPC is weird
Стадии развития проекта:

отчаяние
• очень дорогой вызов функции
Стадии развития проекта:

отчаяние
• очень дорогой вызов функции
• очень высокие накладные расходы на
обслуживание очереди событий
Стадии развития проекта:

отчаяние
• очень дорогой вызов функции
• очень высокие накладные расходы на
обслуживание очереди событий
• reordering?!
Стадии развития проекта:

отчаяние
• очень дорогой вызов функции
• очень высокие накладные расходы на
обслуживание очереди событий
• reordering?!
• Приложение захлебывается при высокой
утилизации CPU
Стадии развития проекта:

отчаяние
• Основное время выполняется код, которого мы
не писали
• низкоэффективные структуры данных
• современный perl - очень сложный язык
• наверное, все же не все языки одинаковы
• и уж точно разные VM и runtime
Стадии развития проекта:

отчаяние
• Основное время выполняется код, которого мы
не писали
Стадии развития проекта:

отчаяние
• Основное время выполняется код, которого мы
не писали
• низкоэффективные структуры данных
Стадии развития проекта:

отчаяние
• Основное время выполняется код, которого мы
не писали
• низкоэффективные структуры данных
• современный perl - очень сложный язык
Стадии развития проекта:

отчаяние
• Основное время выполняется код, которого мы
не писали
• низкоэффективные структуры данных
• современный perl - очень сложный язык
• наверное, все же не все языки одинаковы
Стадии развития проекта:

отчаяние
• Основное время выполняется код, которого мы
не писали
• низкоэффективные структуры данных
• современный perl - очень сложный язык
• наверное, все же не все языки одинаковы
• и уж точно разные VM и runtime
Стадии развития проекта:

смирение
• Groovy
Стадии развития проекта:

смирение
• Groovy
• увеличение производительности в 8 раз
Стадии развития проекта:

смирение
• Groovy
• увеличение производительности в 8 раз
• приложение перестало захлебываться
Стадии развития проекта:

смирение
• Groovy
• увеличение производительности в 8 раз
• приложение перестало захлебываться
• nginx+lua
Стадии развития проекта:

смирение
• Groovy
• увеличение производительности в 8 раз
• приложение перестало захлебываться
• nginx+lua
• получилось не хуже
Стадии развития проекта:

смирение
• Groovy
• увеличение производительности в 8 раз
• приложение перестало захлебываться
• nginx+lua
• получилось не хуже
• то есть - дело не в собственно асинхронности
Стадии развития проекта:

смирение
• Заказчик все равно закрыл проект
Стадии развития проекта:

смирение
• Заказчик все равно закрыл проект
• и переписал все на scala
Что же делать?!
или выводы
• Никогда больше
Что же делать?!
или выводы
• Никогда больше
• по результатам я выучил Go
• Никакой асинхронности
• запускать в голове стейт-машину - развлечение
для дебилов
Что же делать?!
или выводы
• Никогда больше
• по результатам я выучил Go
• Никакой асинхронности
Что же делать?!
или выводы
• Никогда больше
• по результатам я выучил Go
• Никакой асинхронности
• запускать в голове стейт-машину - развлечение
для дебилов
Что же делать?!
или выводы
• Возможно, выход - в использовании
функциональных языков
Что же делать?!
или выводы
• Возможно, выход - в использовании
функциональных языков
• и акторов
Что же делать?!
или выводы
• Возможно, выход - в использовании
функциональных языков
• и акторов
• микросервисы - акторы для бедных
Вопросы?

More Related Content

What's hot

NoSQL — неспроста ли это "ЖЖЖ"?
NoSQL — неспроста ли это "ЖЖЖ"?NoSQL — неспроста ли это "ЖЖЖ"?
NoSQL — неспроста ли это "ЖЖЖ"?
Daniel Podolsky
 
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
Ontico
 
CodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
CodeFest 2012. Аксёнов А. — Как мы разрабатываем SphinxCodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
CodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
CodeFest
 
Учебный план для highload гуру / Андрей Аксёнов (Sphinx Technologies Inc.)
Учебный план для highload гуру / Андрей Аксёнов (Sphinx Technologies Inc.)Учебный план для highload гуру / Андрей Аксёнов (Sphinx Technologies Inc.)
Учебный план для highload гуру / Андрей Аксёнов (Sphinx Technologies Inc.)
Ontico
 
Выбираем СУБД для хранения временных рядов / Павел Филонов (Лаборатория Каспе...
Выбираем СУБД для хранения временных рядов / Павел Филонов (Лаборатория Каспе...Выбираем СУБД для хранения временных рядов / Павел Филонов (Лаборатория Каспе...
Выбираем СУБД для хранения временных рядов / Павел Филонов (Лаборатория Каспе...
Ontico
 
Performance management lessons learnt / Андрей Дмитриев (JUGRU)
Performance management lessons learnt / Андрей Дмитриев (JUGRU)Performance management lessons learnt / Андрей Дмитриев (JUGRU)
Performance management lessons learnt / Андрей Дмитриев (JUGRU)
Ontico
 
Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...
Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...
Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...
Ontico
 
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ontico
 

What's hot (20)

NoSQL — неспроста ли это "ЖЖЖ"?
NoSQL — неспроста ли это "ЖЖЖ"?NoSQL — неспроста ли это "ЖЖЖ"?
NoSQL — неспроста ли это "ЖЖЖ"?
 
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
 
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
 
CodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
CodeFest 2012. Аксёнов А. — Как мы разрабатываем SphinxCodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
CodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
 
Учебный план для highload гуру / Андрей Аксёнов (Sphinx Technologies Inc.)
Учебный план для highload гуру / Андрей Аксёнов (Sphinx Technologies Inc.)Учебный план для highload гуру / Андрей Аксёнов (Sphinx Technologies Inc.)
Учебный план для highload гуру / Андрей Аксёнов (Sphinx Technologies Inc.)
 
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
 
My talk at Highload++ 2015
My talk at Highload++ 2015My talk at Highload++ 2015
My talk at Highload++ 2015
 
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
 
My talk on Graphite stack on 58it.ru
My talk on Graphite stack on 58it.ruMy talk on Graphite stack on 58it.ru
My talk on Graphite stack on 58it.ru
 
Serghei Iakovlev "Chaos engineering in action"
Serghei Iakovlev "Chaos engineering in action"Serghei Iakovlev "Chaos engineering in action"
Serghei Iakovlev "Chaos engineering in action"
 
Выбираем СУБД для хранения временных рядов / Павел Филонов (Лаборатория Каспе...
Выбираем СУБД для хранения временных рядов / Павел Филонов (Лаборатория Каспе...Выбираем СУБД для хранения временных рядов / Павел Филонов (Лаборатория Каспе...
Выбираем СУБД для хранения временных рядов / Павел Филонов (Лаборатория Каспе...
 
О фреймворках / Роман Ивлиев (Банки.ру)
О фреймворках / Роман Ивлиев (Банки.ру)О фреймворках / Роман Ивлиев (Банки.ру)
О фреймворках / Роман Ивлиев (Банки.ру)
 
Производительность WebGL-приложений / Дмитренко Кирилл (Яндекс)
Производительность WebGL-приложений / Дмитренко Кирилл (Яндекс)Производительность WebGL-приложений / Дмитренко Кирилл (Яндекс)
Производительность WebGL-приложений / Дмитренко Кирилл (Яндекс)
 
Anton Tsitou "Cycle ORM and Graphs"
Anton Tsitou "Cycle ORM and Graphs"Anton Tsitou "Cycle ORM and Graphs"
Anton Tsitou "Cycle ORM and Graphs"
 
Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...
 
Performance management lessons learnt / Андрей Дмитриев (JUGRU)
Performance management lessons learnt / Андрей Дмитриев (JUGRU)Performance management lessons learnt / Андрей Дмитриев (JUGRU)
Performance management lessons learnt / Андрей Дмитриев (JUGRU)
 
Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...
Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...
Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...
 
Функциональное тестирование высоконагруженных проектов / Илья Пастушков (2ГИС)
Функциональное тестирование высоконагруженных проектов / Илья Пастушков (2ГИС)Функциональное тестирование высоконагруженных проектов / Илья Пастушков (2ГИС)
Функциональное тестирование высоконагруженных проектов / Илья Пастушков (2ГИС)
 
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
 
Спасение 6 миллионов файлов в условиях полного Хецнера
Спасение 6 миллионов файлов в условиях полного ХецнераСпасение 6 миллионов файлов в условиях полного Хецнера
Спасение 6 миллионов файлов в условиях полного Хецнера
 

Viewers also liked

Бинарные (файловые) хранилища- страшная сказка с мрачным концом
Бинарные (файловые) хранилища- страшная сказка с мрачным концомБинарные (файловые) хранилища- страшная сказка с мрачным концом
Бинарные (файловые) хранилища- страшная сказка с мрачным концом
Daniel Podolsky
 
ночью через лес Stress-test пяти almost-the-same-functionality shared-nothin...
ночью через лес  Stress-test пяти almost-the-same-functionality shared-nothin...ночью через лес  Stress-test пяти almost-the-same-functionality shared-nothin...
ночью через лес Stress-test пяти almost-the-same-functionality shared-nothin...
Daniel Podolsky
 

Viewers also liked (12)

Go и fuse
Go и fuseGo и fuse
Go и fuse
 
опыт построения и эксплуатации большого файлового хранилища
опыт построения и эксплуатации большого файлового хранилищаопыт построения и эксплуатации большого файлового хранилища
опыт построения и эксплуатации большого файлового хранилища
 
Mysql vs postgresql
Mysql vs postgresqlMysql vs postgresql
Mysql vs postgresql
 
My talk at Linux Piter 2016
My talk at Linux Piter 2016My talk at Linux Piter 2016
My talk at Linux Piter 2016
 
Бинарные (файловые) хранилища- страшная сказка с мрачным концом
Бинарные (файловые) хранилища- страшная сказка с мрачным концомБинарные (файловые) хранилища- страшная сказка с мрачным концом
Бинарные (файловые) хранилища- страшная сказка с мрачным концом
 
ночью через лес Stress-test пяти almost-the-same-functionality shared-nothin...
ночью через лес  Stress-test пяти almost-the-same-functionality shared-nothin...ночью через лес  Stress-test пяти almost-the-same-functionality shared-nothin...
ночью через лес Stress-test пяти almost-the-same-functionality shared-nothin...
 
My talk at CEE-SECR 2016
My talk at CEE-SECR 2016My talk at CEE-SECR 2016
My talk at CEE-SECR 2016
 
My talk on LeoFS, HappyDev 2014
My talk on LeoFS, HappyDev 2014My talk on LeoFS, HappyDev 2014
My talk on LeoFS, HappyDev 2014
 
My talk at LVEE 2016
My talk at LVEE 2016My talk at LVEE 2016
My talk at LVEE 2016
 
Harry Potter and the Daemons of Berkeley
Harry Potter and the Daemons of BerkeleyHarry Potter and the Daemons of Berkeley
Harry Potter and the Daemons of Berkeley
 
My talk at Linux Piter 2015
My talk at Linux Piter 2015My talk at Linux Piter 2015
My talk at Linux Piter 2015
 
Blazing Performance with Flame Graphs
Blazing Performance with Flame GraphsBlazing Performance with Flame Graphs
Blazing Performance with Flame Graphs
 

Similar to Ryazan

Опыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на RubyОпыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на Ruby
Alex Chistyakov
 
Daemons In Web on #devrus
Daemons In Web on #devrusDaemons In Web on #devrus
Daemons In Web on #devrus
Alex Chistyakov
 
непрерывная интеграция шаг к непрерывному деплою родионов игорь
непрерывная интеграция   шаг к непрерывному деплою родионов игорьнепрерывная интеграция   шаг к непрерывному деплою родионов игорь
непрерывная интеграция шаг к непрерывному деплою родионов игорь
drupalconf
 
CodeFest 2011. Макаров А. — Как разрабатывается Yii
CodeFest 2011. Макаров А. — Как разрабатывается YiiCodeFest 2011. Макаров А. — Как разрабатывается Yii
CodeFest 2011. Макаров А. — Как разрабатывается Yii
CodeFest
 
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов ИгорьНепрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
PVasili
 
ekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилищеekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилище
it-people
 
Непрерывная интеграция - шаг к непрерывному деплойменту
Непрерывная интеграция - шаг к непрерывному деплойментуНепрерывная интеграция - шаг к непрерывному деплойменту
Непрерывная интеграция - шаг к непрерывному деплойменту
Игорь Родионов
 
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил ТюринPG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
pgdayrussia
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...
it-people
 
Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на Java
Alex Chistyakov
 
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
IT-Portfolio
 

Similar to Ryazan (20)

Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
 
Migrate!
Migrate!Migrate!
Migrate!
 
Опыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на RubyОпыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на Ruby
 
Devconf 2011 - PHP - Как разрабатывается фреймворк Yii
Devconf 2011 - PHP - Как разрабатывается фреймворк YiiDevconf 2011 - PHP - Как разрабатывается фреймворк Yii
Devconf 2011 - PHP - Как разрабатывается фреймворк Yii
 
Как разраба
Как разрабаКак разраба
Как разраба
 
Daemons In Web on #devrus
Daemons In Web on #devrusDaemons In Web on #devrus
Daemons In Web on #devrus
 
непрерывная интеграция шаг к непрерывному деплою родионов игорь
непрерывная интеграция   шаг к непрерывному деплою родионов игорьнепрерывная интеграция   шаг к непрерывному деплою родионов игорь
непрерывная интеграция шаг к непрерывному деплою родионов игорь
 
CodeFest 2011. Макаров А. — Как разрабатывается Yii
CodeFest 2011. Макаров А. — Как разрабатывается YiiCodeFest 2011. Макаров А. — Как разрабатывается Yii
CodeFest 2011. Макаров А. — Как разрабатывается Yii
 
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов ИгорьНепрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
 
ekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилищеekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилище
 
Непрерывная интеграция - шаг к непрерывному деплойменту
Непрерывная интеграция - шаг к непрерывному деплойментуНепрерывная интеграция - шаг к непрерывному деплойменту
Непрерывная интеграция - шаг к непрерывному деплойменту
 
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил ТюринPG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...
 
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.
 
Open Source − это не больно (Сергей Нартымов)
Open Source − это не больно (Сергей Нартымов)Open Source − это не больно (Сергей Нартымов)
Open Source − это не больно (Сергей Нартымов)
 
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
 
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
 
Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на Java
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And Forge
 
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
 

Ryazan