Текущим определением DevOps является аббревиатура CAMS:
— культура;
— автоматизация;
— измерения;
— распространение знаний.
Для меня это недостаточно понятно, я дополнил эти пункты тем, что DevOps это впервую очередь о передаче смысла без искажений. Я расскажу, как эти мысли соотносятся с методиками прошлого (ITIL, etc), как, используя такой подход, создать набор правил для работы и почему автоматизация — это не всегда хорошо.
Мы посмотрим как инструменты автоматизации помогают передавать смысл изменений между окружениями на примере реальных компонентов и кукбуков и рассмотрим на практике почему bash скрипты более слабый инструмент, чем Opscode Chef.
Совместно разберемся к требованиям к системе мониторинга. Что в системах мониторинга вредит передаче смысла, а что, наоборот, помогает. Какую систему мониторинга выбрать для вашего проекта?
Важность честности и открытости в команде для передачи смысла. Честные публичные пост-мортемы — это не проявление слабости, а проявление уважения к своим пользователям. Как научится делиться информацией друг с другом и не скрывать важного.
9. Примеры из жизни
• не выкатились, потому что не знали
• система отказала, потому что кто-то
промолчал
• не смогли договорится
10. DevOps это
• автоматизация и инструменты
автоматизации
• управление изменениями через
измерения
• новая инженерная культура
• распространение знаний между всеми
участниками команды
11. Автоматизация?
• инструменты для сохранения
информации
• критерий эффективного использования -
больше порядка в системе
• сохранение информации о системе -
bash скрипты, хранение конфигов в git
• сохранение информации об изменении в
системе - Opscode Chef
19. Изменения через
измерения
zabbix_application "#{mpoint} filesystem" do
item "vfs.fs.size[#{mpoint},free]" do
type :active
name "Free disk space on #{mpoint}"
frequency 600
end
item "vfs.fs.size[#{mpoint},total]" do
type :active
name "Total disk space on #{mpoint}"
frequency 6000
end
# Free space triggers
{20 => :warning, 10 => :average, 5 => :high}.each do |percent, sev|
trigger "Free space on #{mpoint}, #{percent}%" do
expression "{#{node.fqdn}:vfs.fs.size[#{mpoint},pfree].last(0)}<#{percent}"
severity sev
end
end
trigger "Free space on #{mpoint}, 0%" do
expression "{#{node.fqdn}:vfs.fs.size[#{mpoint},pfree].last(0)}=0"
severity :disaster
end
end