SlideShare a Scribd company logo
1 of 85
Download to read offline
Реанимация проектов
на Symfony
Где стелить соломку
Сергей Великанов <s.velikanov@8bitgroup.com>, SymfonyConf IV.2016, пользуясь случаем, передаю привет маме!
Доклад в основном
про поддержку
2
Доклад в основном
про поддержку
И он более концептуальный нежели технический
3
Доклад в основном
про поддержку
Но и разработке
стоит послушать
И он более концептуальный нежели технический
4
В момент релиза
поддержка не знает
о чём идёт речь
5
Сергей Великанов
6
Сергей Великанов
Технический директор 8bit group
7
Сергей Великанов
Технический директор 8bit group
Начинал PHP-верстальщиком в 2003 году
8
Сергей Великанов
Технический директор 8bit group
Начинал PHP-верстальщиком в 2003 году
С Symfony дружим ≈5 лет
9
Сергей Великанов
Технический директор 8bit group
Начинал PHP-верстальщиком в 2003 году
С Symfony дружим ≈5 лет
В нерабочее время пишу на C#
10
Сергей Великанов
Технический директор 8bit group
Начинал PHP-верстальщиком в 2003 году
С Symfony дружим ≈5 лет
В нерабочее время пишу на C#
Хобби - бокс и джиу-джитсу
11
8bit 😻 Symfony
12
8bit 😻 Symfony
CPA-сети
Товарные партнёрки
Тизерные сети
Мобильные партнёрки
Интернет-магазины
Букмекерки
Опционы
RTB
13
8bit 😻 Symfony
PHP 5/7
Nginx/OpenResty
Redis MySQL Percona
(XtraDB, TokuDB)
HAProxy
Symfony 2/3
RabbitMQ
ClickHouse
MongoDB
YII 1/2
Java
Spring
Hadoop
Sylius
14
8bit 😻 Нагрузон
15
8bit 😻 Uptime
High Availability ≥ High Load
16
Как узнать?
Индивидуальный мониторинг логов
Команды мониторинга
СМСки о критических сбоях
Бот в Telegram
17
Как узнать?
Индивидуальный мониторинг логов
Команды мониторинга
СМСки о критических сбоях
Бот в Telegram
Быстрый чек после релиза
18
Как узнать?
Индивидуальный мониторинг логов
Команды мониторинга
СМСки о критических сбоях
Бот в Telegram
Быстрый чек после релиза
M/Monit
19
Как узнать?
Индивидуальный мониторинг логов
Команды мониторинга
СМСки о критических сбоях
Бот в Telegram
Быстрый чек после релиза
M/Monit
20
Zabbix
Nagios
Cacti
M/Monit
Индивидуальный мониторинг логов
21
check file gearman_worker_execute.log with path !
/var/log/gearman_worker_execute.log
if match "Error" then alert
if match "Exception" then alert
Команды мониторинга
check program project_whatever with path !
“sf app:whatever:check” uid “project”
group project
if status != 0 for 2 cycles then alert
Как узнать?
Шестое чувство
22
Как узнать?
Шестое чувство
23
Как узнать?
Менеджеры
Продукт-овнеры
Контрагенты
Тикеты от юзеров
24
Как узнать?
Менеджеры
Продукт-овнеры
Контрагенты
Тикеты от юзеров
Не должны стать неожиданностью
25
То самое чувство…
26
Оно, родимое…
27
Для чего?
28
Для чего?
Если в Критический Момент
Ты не эффективен
29
Для чего?
Если в Критический Момент
Ты не эффективен
30
Flock
Не даёт плодиться лишним процессам
flock -ne lock_file command
31
Flock
Не даёт плодиться лишним процессам
flock -ne lock_file command
* * * * * flock -ne /tmp/5m.lock php 5_minutes_sleep.php
32
Flock
Не даёт плодиться лишним процессам
flock -ne lock_file command
* * * * * flock -ne /tmp/5m.lock php 5_minutes_sleep.php
Или LockHandler - Symfony way
33
Runalarm
Не даёт спать уснувшим процессам
runalarm -t seconds command
34
Runalarm
Не даёт спать уснувшим процессам
runalarm -t seconds command
runalarm -t 3600 php 3_hours_sleep.php
35
Flock + Runalarm
Не дают спать и плодиться
* * * * * flock -ne /tmp/lock runalarm -t 3600 yes
36
Логи
Всегда пишите логи
37
Логи
Всегда пишите логи
Всегда
38
Логи.Monolog
monolog:

channels: [“calculation”]

handlers:

calculation_handler:

type: stream

path: “%kernel.logs_dir%/calculation.log”

level: debug

channels: calculation
39
Логи.Monolog
monolog:

channels: [“calculation”]

handlers:

calculation_handler:

type: stream

path: “%kernel.logs_dir%/calculation.log”

level: debug

channels: calculation
“@monolog.logger.calculation”
40
Логи.Monolog
monolog:

channels: [“calculation”]

handlers:

calculation_handler:

type: stream

path: “%kernel.logs_dir%/calculation.log”

level: debug

channels: calculation
“@monolog.logger.calculation”
$this->get(“monolog.logger.calculation”)
->debug(“hello”);
41
Логи.ОК
$this->logger->info(“OK”);
42
Логи
Называй логи удобно
43
Логи
/var/log/project/finance_create_holds.log
Называй логи удобно
/var/log/project/finance_update_balance.log
/var/log/project/finance_update_holds.log
44
Логи
/var/log/project/finance_create_holds.log
Называй логи удобно
/var/log/project/finance_update_balance.log
/var/log/project/finance_update_holds.log
/var/log/project/balance_update.log
/var/log/project/holds_create.log
/var/log/project/holds_update.log
45
Логи
Создай алиасы для просмотра логов
46
Логи
Создай алиасы для просмотра логов
alias ntail=“tail -F /var/log/nginx/error.log”
alias nless=“less /var/log/nginx/error.log”
47
Логи
Создай алиасы для просмотра логов
alias ntail=“tail -F /var/log/nginx/error.log”
alias nless=“less /var/log/nginx/error.log”
logtail(){ tail -F /var/log/project/$1; }
~/.bashrc:
logtail prod.log
48
Логи
Создай алиасы для просмотра логов
alias ntail=“tail -F /var/log/nginx/error.log”
alias nless=“less /var/log/nginx/error.log”
logtail(){ tail -F /var/log/project/$1; }
~/.bashrc:
logtail prod.log
logless(){ less /var/log/project/$1; }
logrep(){ tail -F /var/log/project/$1 | grep $2; }
49
Логи
Создай алиасы для просмотра логов
alias ntail=“tail -F /var/log/nginx/error.log”
alias nless=“less /var/log/nginx/error.log”
logtail(){ tail -F /var/log/project/$1; }
~/.bashrc:
logtail prod.log > logtail prod
logless(){ less /var/log/project/$1; }
logrep(){ tail -F /var/log/project/$1 | grep $2; }
50
tail -F
51
tail -F
Круче чем tail -f
52
Cron и конфиги
Держите конфиги в репозитории проекта
53
Cron и конфиги
Держите конфиги в репозитории проекта
crontab -e vs crontab -r
54
Cron и конфиги
Держите конфиги в репозитории проекта
crontab -e vs crontab -r
Разгрузите своих админов и DevOps
55
Cron и конфиги
Держите конфиги в репозитории проекта
56
- name: Check for primary host

action: shell grep -q 'eth0:frontend' /run/network/ifstate

register: is_primary_host

ignore_errors: yes



- name: Install crontab

action: shell cat - {{symfony_current_release_dir}}/app/config/crontab/primary | crontab

when: is_primary_host|success
Роллбек, Йорик
Тупи ор не тупи
☝
57
Роллбек, Йорик
Каждый релиз индивидуален
58
Роллбек, Йорик
Каждый релиз индивидуален
Каждый должен продумать откат своих фич
59
Роллбек, Йорик
Каждый релиз индивидуален
Каждый должен продумать откат своих фич
Migration Down должен быть проработан заранее
60
Перебрасываем симлинк
61
Шеф, всё пропало
Slow logs
request_slowlog_timeout = 5s
slowlog = /var/log/php-slow.log
PHP-FPM:
MySQL:
log_slow_queries = /var/log/mysql/slow
long_query_time = 1
66
И напоследок
Проблема возникает не когда всё ломается…
67
И напоследок
Проблема возникает не когда всё ломается…
…а когда всё не может быстро починиться
68
И напоследок
Проблема возникает не когда всё ломается…
…а когда всё не может быстро починиться
Умей обращаться с IDE на своей машине
69
И напоследок
Проблема возникает не когда всё ломается…
…а когда всё не может быстро починиться
Умей обращаться с IDE на своей машине
70
⌘K вместо VCS->Commit Changes…
⌘+Click, ⇧⇧, ⌘O
И напоследок
Проблема возникает не когда всё ломается…
…а когда всё не может быстро починиться
Умей обращаться с IDE на своей машине
Умей обращаться с редактором на сервере
71
И напоследок
Проблема возникает не когда всё ломается…
…а когда всё не может быстро починиться
Умей обращаться с IDE на своей машине
Умей обращаться с редактором на сервере
72
$ для перемещения в конец строки
^ для перемещения в начало строки
gg для перемещения в начало документа
G для перемещения в конец документа
12G для перемещения на 12 строку документа
ТЫСЯЧИ ИХ!!!11
И напоследок
Проблема возникает не когда всё ломается…
…а когда всё не может быстро починиться
Умей обращаться с IDE на своей машине
Понимай, где происходит ошибка
Умей обращаться с редактором на сервере
73
И напоследок
Проблема возникает не когда всё ломается…
…а когда всё не может быстро починиться
Умей обращаться с IDE на своей машине
Понимай, где происходит ошибка
Выучи шорткаты ко всему, чем пользуешься
Умей обращаться с редактором на сервере
74
И напоследок
Проблема возникает не когда всё ломается…
…а когда всё не может быстро починиться
Умей обращаться с IDE на своей машине
Понимай, где происходит ошибка
Выучи шорткаты ко всему, чем пользуешься
Настрой SSH посерверно (ucarp)
Умей обращаться с редактором на сервере
75
ucarp
76
ucarp1 ucarpN
IP IP
Nginx
MySQL
Nginx
MySQL
carp
И напоследок
Проблема возникает не когда всё ломается…
…а когда всё не может быстро починиться
Умей обращаться с IDE на своей машине
Понимай, где происходит ошибка
Выучи шорткаты ко всему, чем пользуешься
Настрой SSH посерверно (ucarp)
СДЕЛАЙ УЖЕ АЛИАС ДЛЯ /app/console, /bin/console
Умей обращаться с редактором на сервере
77
И напоследок
Проблема возникает не когда всё ломается…
…а когда всё не может быстро починиться
Умей обращаться с IDE на своей машине
Понимай, где происходит ошибка
Выучи шорткаты ко всему, чем пользуешься
Настрой SSH посерверно (ucarp)
СДЕЛАЙ УЖЕ АЛИАС ДЛЯ /app/console, /bin/console
Умей обращаться с редактором на сервере
И СОХРАНИ ЭТИ ЧАСТО ИСПОЛЬЗУЕМЫЕ ЗАПРОСЫ
78
Гениями не
рождаются
79
Не пейте
Не курите
Занимайтесь спортом
80
Будьте
профессионалами
81
8bit 😻 Hiring
Тимлиды
Кодеры
Тестеры
Админы
Верстальщики Фронты
Симфонисты
Иишники
Автоматизаторы
Явисты
82
8bit 😻 Hiring
hr@8bitgroup.com
83
Спасибо
Thank you
Danke
Gracias
Merci
Дякуємо
Дзякуй
Bedankt
Tänan
Dzięki
Pateicība
Dėkoju
謝謝
感謝
Хвала
Баярлалаа
Tack
/contacts/
s.velikanov@8bitgroup.com
serge.velikanov
live:velikan55555
velikanov
+7 9⎵⎵ 309 88 37

More Related Content

What's hot

Стратегия и тактика успешной сдачи CCIE R&S Lab Exam
Стратегия и тактика успешной сдачи CCIE R&S Lab ExamСтратегия и тактика успешной сдачи CCIE R&S Lab Exam
Стратегия и тактика успешной сдачи CCIE R&S Lab ExamCisco Russia
 
Владислав Грязнов "Многозадачность в PHP"
Владислав Грязнов "Многозадачность в PHP"Владислав Грязнов "Многозадачность в PHP"
Владислав Грязнов "Многозадачность в PHP"Fwdays
 
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...HappyDev
 
Perl 5.16 and beyond by Jesse Vincent (Русская версия)
Perl 5.16 and beyond by Jesse Vincent (Русская версия)Perl 5.16 and beyond by Jesse Vincent (Русская версия)
Perl 5.16 and beyond by Jesse Vincent (Русская версия)Anatoly Sharifulin
 
Big web project @happydev Omsk
Big web project @happydev OmskBig web project @happydev Omsk
Big web project @happydev OmskAlex Chistyakov
 
Александр Чистяков - Большой веб-проект: развитие, рост, проблемы, решения с ...
Александр Чистяков - Большой веб-проект: развитие, рост, проблемы, решения с ...Александр Чистяков - Большой веб-проект: развитие, рост, проблемы, решения с ...
Александр Чистяков - Большой веб-проект: развитие, рост, проблемы, решения с ...HappyDev
 
Качество кода игровых движков: неужели всё так плохо?
Качество кода игровых движков: неужели всё так плохо?Качество кода игровых движков: неужели всё так плохо?
Качество кода игровых движков: неужели всё так плохо?Andrey Karpov
 
Jbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot StarterJbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot StarterAleksandr Tarasov
 
DevOps-40 meetup #7, Project FiFo
DevOps-40 meetup #7, Project FiFoDevOps-40 meetup #7, Project FiFo
DevOps-40 meetup #7, Project FiFoAlex Chistyakov
 
Как мы делаем раскладку Календаря@Mail.Ru
Как мы делаем раскладку Календаря@Mail.RuКак мы делаем раскладку Календаря@Mail.Ru
Как мы делаем раскладку Календаря@Mail.RuVladimir Rudnyh
 
Применение языка Go в инфраструктурных проектах
Применение языка Go в инфраструктурных проектахПрименение языка Go в инфраструктурных проектах
Применение языка Go в инфраструктурных проектахAlex Chistyakov
 
А так ли нужен DevOps инженер в проекте?
А так ли нужен DevOps инженер в проекте?А так ли нужен DevOps инженер в проекте?
А так ли нужен DevOps инженер в проекте?Mad Devs
 
Релиз менеджмент в Badoo (Илья Агеев)
Релиз менеджмент в Badoo (Илья Агеев)Релиз менеджмент в Badoo (Илья Агеев)
Релиз менеджмент в Badoo (Илья Агеев)Ontico
 

What's hot (18)

10M tests per day
10M tests per day10M tests per day
10M tests per day
 
Стратегия и тактика успешной сдачи CCIE R&S Lab Exam
Стратегия и тактика успешной сдачи CCIE R&S Lab ExamСтратегия и тактика успешной сдачи CCIE R&S Lab Exam
Стратегия и тактика успешной сдачи CCIE R&S Lab Exam
 
Joker2014
Joker2014Joker2014
Joker2014
 
Владислав Грязнов "Многозадачность в PHP"
Владислав Грязнов "Многозадачность в PHP"Владислав Грязнов "Многозадачность в PHP"
Владислав Грязнов "Многозадачность в PHP"
 
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
 
Perl 5.16 and beyond by Jesse Vincent (Русская версия)
Perl 5.16 and beyond by Jesse Vincent (Русская версия)Perl 5.16 and beyond by Jesse Vincent (Русская версия)
Perl 5.16 and beyond by Jesse Vincent (Русская версия)
 
Php and frameworks
Php and frameworksPhp and frameworks
Php and frameworks
 
Big web project @happydev Omsk
Big web project @happydev OmskBig web project @happydev Omsk
Big web project @happydev Omsk
 
Александр Чистяков - Большой веб-проект: развитие, рост, проблемы, решения с ...
Александр Чистяков - Большой веб-проект: развитие, рост, проблемы, решения с ...Александр Чистяков - Большой веб-проект: развитие, рост, проблемы, решения с ...
Александр Чистяков - Большой веб-проект: развитие, рост, проблемы, решения с ...
 
Per! А что дальше?
Per! А что дальше?Per! А что дальше?
Per! А что дальше?
 
Качество кода игровых движков: неужели всё так плохо?
Качество кода игровых движков: неужели всё так плохо?Качество кода игровых движков: неужели всё так плохо?
Качество кода игровых движков: неужели всё так плохо?
 
Jbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot StarterJbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot Starter
 
DevOps-40 meetup #7, Project FiFo
DevOps-40 meetup #7, Project FiFoDevOps-40 meetup #7, Project FiFo
DevOps-40 meetup #7, Project FiFo
 
Как мы делаем раскладку Календаря@Mail.Ru
Как мы делаем раскладку Календаря@Mail.RuКак мы делаем раскладку Календаря@Mail.Ru
Как мы делаем раскладку Календаря@Mail.Ru
 
Применение языка Go в инфраструктурных проектах
Применение языка Go в инфраструктурных проектахПрименение языка Go в инфраструктурных проектах
Применение языка Go в инфраструктурных проектах
 
Отладка в Python: 2016 edition
Отладка в Python: 2016 editionОтладка в Python: 2016 edition
Отладка в Python: 2016 edition
 
А так ли нужен DevOps инженер в проекте?
А так ли нужен DevOps инженер в проекте?А так ли нужен DevOps инженер в проекте?
А так ли нужен DevOps инженер в проекте?
 
Релиз менеджмент в Badoo (Илья Агеев)
Релиз менеджмент в Badoo (Илья Агеев)Релиз менеджмент в Badoo (Илья Агеев)
Релиз менеджмент в Badoo (Илья Агеев)
 

Similar to SymfonyConf IV.2016 - Реанимация проектов на Symfony

Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов ИгорьНепрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов ИгорьPVasili
 
Масштабируемая архитектура фронтенда
Масштабируемая архитектура фронтендаМасштабируемая архитектура фронтенда
Масштабируемая архитектура фронтендаRoman Dvornov
 
непрерывная интеграция шаг к непрерывному деплою родионов игорь
непрерывная интеграция   шаг к непрерывному деплою родионов игорьнепрерывная интеграция   шаг к непрерывному деплою родионов игорь
непрерывная интеграция шаг к непрерывному деплою родионов игорьdrupalconf
 
Vagrant и chef. от dev до deploy
Vagrant и chef. от dev до deployVagrant и chef. от dev до deploy
Vagrant и chef. от dev до deployzykin-ilya
 
Python и высокая нагрузка
Python и высокая нагрузкаPython и высокая нагрузка
Python и высокая нагрузкаAlexander Shigin
 
Perl для не программистов. Николай Мишин. Moscow.pm 4 июля 2013
Perl для не программистов. Николай Мишин. Moscow.pm 4 июля 2013Perl для не программистов. Николай Мишин. Moscow.pm 4 июля 2013
Perl для не программистов. Николай Мишин. Moscow.pm 4 июля 2013Moscow.pm
 
Drupal 8: Теперь со вкусом Symfony
Drupal 8: Теперь со вкусом SymfonyDrupal 8: Теперь со вкусом Symfony
Drupal 8: Теперь со вкусом SymfonyKate Marshalkina
 
Демонизированный PHP - before it was cool
Демонизированный PHP - before it was coolДемонизированный PHP - before it was cool
Демонизированный PHP - before it was coolAndrey Tokarchuk
 
Непрерывная интеграция - шаг к непрерывному деплойменту
Непрерывная интеграция - шаг к непрерывному деплойментуНепрерывная интеграция - шаг к непрерывному деплойменту
Непрерывная интеграция - шаг к непрерывному деплойментуИгорь Родионов
 
Выбираем стратегию создания бранчей
Выбираем стратегию создания бранчейВыбираем стратегию создания бранчей
Выбираем стратегию создания бранчейVitebsk DSC
 
[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/Linux
[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/Linux[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/Linux
[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/LinuxDefconRussia
 
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 ForgeYehor Herasymchuk
 
Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...
Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...
Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...Mail.ru Group
 
Валерий Петров «Модель памяти .NET»
Валерий Петров «Модель памяти .NET»Валерий Петров «Модель памяти .NET»
Валерий Петров «Модель памяти .NET»SpbDotNet Community
 
D2D Pizza JS Илья Беда "Куда мы все катимся?"
D2D Pizza JS Илья Беда "Куда мы все катимся?"D2D Pizza JS Илья Беда "Куда мы все катимся?"
D2D Pizza JS Илья Беда "Куда мы все катимся?"Dev2Dev
 
Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Ontico
 
Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)Ontico
 
Windbg: когда у нас не воспроизводится. Александр Головач ➠ CoreHard Autumn ...
Windbg: когда у нас не воспроизводится. Александр Головач ➠  CoreHard Autumn ...Windbg: когда у нас не воспроизводится. Александр Головач ➠  CoreHard Autumn ...
Windbg: когда у нас не воспроизводится. Александр Головач ➠ CoreHard Autumn ...corehard_by
 
Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Ontico
 
Ігор Карпиленко — PHPStorm for drupal developer
Ігор Карпиленко — PHPStorm for drupal developerІгор Карпиленко — PHPStorm for drupal developer
Ігор Карпиленко — PHPStorm for drupal developerLEDC 2016
 

Similar to SymfonyConf IV.2016 - Реанимация проектов на Symfony (20)

Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов ИгорьНепрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
 
Масштабируемая архитектура фронтенда
Масштабируемая архитектура фронтендаМасштабируемая архитектура фронтенда
Масштабируемая архитектура фронтенда
 
непрерывная интеграция шаг к непрерывному деплою родионов игорь
непрерывная интеграция   шаг к непрерывному деплою родионов игорьнепрерывная интеграция   шаг к непрерывному деплою родионов игорь
непрерывная интеграция шаг к непрерывному деплою родионов игорь
 
Vagrant и chef. от dev до deploy
Vagrant и chef. от dev до deployVagrant и chef. от dev до deploy
Vagrant и chef. от dev до deploy
 
Python и высокая нагрузка
Python и высокая нагрузкаPython и высокая нагрузка
Python и высокая нагрузка
 
Perl для не программистов. Николай Мишин. Moscow.pm 4 июля 2013
Perl для не программистов. Николай Мишин. Moscow.pm 4 июля 2013Perl для не программистов. Николай Мишин. Moscow.pm 4 июля 2013
Perl для не программистов. Николай Мишин. Moscow.pm 4 июля 2013
 
Drupal 8: Теперь со вкусом Symfony
Drupal 8: Теперь со вкусом SymfonyDrupal 8: Теперь со вкусом Symfony
Drupal 8: Теперь со вкусом Symfony
 
Демонизированный PHP - before it was cool
Демонизированный PHP - before it was coolДемонизированный PHP - before it was cool
Демонизированный PHP - before it was cool
 
Непрерывная интеграция - шаг к непрерывному деплойменту
Непрерывная интеграция - шаг к непрерывному деплойментуНепрерывная интеграция - шаг к непрерывному деплойменту
Непрерывная интеграция - шаг к непрерывному деплойменту
 
Выбираем стратегию создания бранчей
Выбираем стратегию создания бранчейВыбираем стратегию создания бранчей
Выбираем стратегию создания бранчей
 
[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/Linux
[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/Linux[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/Linux
[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/Linux
 
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
 
Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...
Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...
Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...
 
Валерий Петров «Модель памяти .NET»
Валерий Петров «Модель памяти .NET»Валерий Петров «Модель памяти .NET»
Валерий Петров «Модель памяти .NET»
 
D2D Pizza JS Илья Беда "Куда мы все катимся?"
D2D Pizza JS Илья Беда "Куда мы все катимся?"D2D Pizza JS Илья Беда "Куда мы все катимся?"
D2D Pizza JS Илья Беда "Куда мы все катимся?"
 
Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013
 
Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)
 
Windbg: когда у нас не воспроизводится. Александр Головач ➠ CoreHard Autumn ...
Windbg: когда у нас не воспроизводится. Александр Головач ➠  CoreHard Autumn ...Windbg: когда у нас не воспроизводится. Александр Головач ➠  CoreHard Autumn ...
Windbg: когда у нас не воспроизводится. Александр Головач ➠ CoreHard Autumn ...
 
Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013
 
Ігор Карпиленко — PHPStorm for drupal developer
Ігор Карпиленко — PHPStorm for drupal developerІгор Карпиленко — PHPStorm for drupal developer
Ігор Карпиленко — PHPStorm for drupal developer
 

SymfonyConf IV.2016 - Реанимация проектов на Symfony