Инженерный дзен.DevOps на практике
Титов Александр
dev.it-portfolio.net2013
О себе
• Оверсан-Скалакси• Qik/Skype/Microsoft
Экспресс 42
?!
• для кого этот доклад• когда продукт это продукт?• почему только что написаный код не приносит пользы?
Цикл релиза - месяцСтавка разработчиков.
• 6 фич
• 1 месяц
• 10 подсистем меняется
Цикл релиза - месяцСтавка сисадминов
• инциденты• ...
• инциденты• релиз• инциденты
Под микроскопомИнтеграция на машине
разработчика
Интеграция на QA/preQA
Интеграция на производственном окружении
Разрежь
слона!
Идеальный процесс
• постоянная интеграция• каждая фича - релиз• выкатка должна быть идеально отточена• не забывать про обратную связь
Инструменты
• Vagrant
• Xen/KVM/Virtualbox/Cloud IaaS
• Chef
• CI - jenkins
• Deploy (что удобно разработчикам)
Chef
• управление конфигами• база данных о инфраструктуре• повторяемость• самодокументирование• версионность• интеграционный фреймворк
Chef :: recipe
Chef :: search
Chef :: роли, машины
Chef, knife• knife search node 'role:mysql' -r
• knife ssh "role:ruby" "sudo /etc/init.d/nginx-passenger status"
• knife ssh "role:ruby" interactive
• knife ssh "role:ruby" tmux
• knife ec2 server create -r "role[ruby]"
• knife exec -E 'nodes.all {|n| puts "#{n.name} has #{n.memory.total} free memory"}'
Vagrant
• gem install vagrant
• vagrant box add debian.box
• vagrant init
• vagrant up
• vagrant provision
• http://vagrantup.com
Vagrant plugins
• chef
• chef-solo
• puppet
• shell
• Virtualbox
• VmWare
• Amazon
http://blog.evtuhovich.ru/blog/2012/01/10/vagrant/
CI
• vagrant
• chef на всех окружениях
• тесты, тесты, тесты
Deploy система
• на выбор разработчиков• система должна давать обратную связь
• не забываем, что надо откатится!
CD
• культура разработки• обмен информацией• самосовершенствование• кроссфункциональность
Состояние дзен
• системные администраторы как эксперты
• разработчики несут всю ответственность за продукт
• высокая скорость вывода изменений на продакшн
• chef как интеграционный фреймворк
• инфраструктура как код
Спрашивайте!
Контакты
• email: [email protected]
• skype: atitov_sd
• http://groups.google.com/group/devopsru
• twitter: @osminog, @express42_ru
• http://express42.com