20 апреля, DEV {highload} - конференция о Highload веб-разработке,...

Preview:

DESCRIPTION

20 апреля DEV {highload} - конференция о Highload веб-разработке, "Инженерный дзен. DevOps на практике", Александр Титов (DevOps-эксперт "Экспресс 42") Аннотация Разработать программное обеспечение в веб-индустрии - это еще не все, надо его еще выкатить в производственное окружение и при этом не разочаровать пользователей. Обычно этот процесс происходит раз в месяц или две недели и сопровождается стрессом для всех участников, а часто заканчивается очень неприятной процедурой отката изменений, далеко не всегда безболезненной. Проведем параллель с эволюцией в природе, разве там происходит так? Что-то меняется слишком резко и происходит откат? Нет, природа плавно меняет себя, делая небольшие изменения и пропуская их через проверку временем. Инженерам, работающим в сфере программного обеспечения, дан уникальный шанс, они могут вносить изменения в работающий продукт каждый день, но для этого надо выполнить несколько условий: - наладить в команде доверительные отношения; - постоянно интегрировать продукт в тестовой среде; - поддерживать непрерывный контекст при интеграции; - использовать подходящие инструменты для управления конфигурацией и деплоя. Доклад будет про то, как подобрать подходящие инструменты и процессы для работы и начать регулярно выкатывать ваш продукт. В мире принято такие практики называть DevOps. Биография Совладелец компании по внедрению DevOps-инструментов и процессов "Экспресс 42". Александр был техническим директором первого облака в России "Оверсан-Скалакси", потом руководил отделом системного администрирования в компании Скайп, подготовил инфраструктуру для запуска проекта видеосообщений.

Citation preview

Инженерный дзен.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: titoff.a@gmail.com

• skype: atitov_sd

• http://groups.google.com/group/devopsru

• twitter: @osminog, @express42_ru

• http://express42.com

Recommended