Практика devops в крупных организациях
DESCRIPTION
Четвертый доклад Конференции Докладчик Ребров Андрей, инженерный тренер ScrumTrek.TRANSCRIPT
Практика DevOps в крупных организациях
Ребров АндрейИнженерный тренер, Scrumtrek
Зарисовки из жизни
Боязнь изменений в продукте
Боязнь поставок
Админы vs Разработчики
Конечно, можно найти виноватых…
…но где то там есть пользователи
Люди и их взаимодействие
Работающий продукт
Тесные отношения с заказчиком
Готовность к изменениям
Люди и их взаимодействие
Как разработчики видят администраторов
Люди и их взаимодействие
Как администраторы видят разработчиков
Люди и их взаимодействие
ОтрицаниеОбвинениеИзвинение
СтыдПринятие
Ответственность
Работающий продукт
Постоянный поток задач
Тесные отношения с заказчикомНепрозрачный процесс
Тесные отношения с заказчиком
Обратная связь
Готовность к изменениям
Еще не все потеряно
Agile Infrastructure
• Operating at Cloud Scale• Ephemeral Infrastructure• Frictionless Infrastructure• Self Service Operations
Agile Operations
• Products not Projects• Walk on Walk off Projects• Velocity of Innovation• Continuos Delivery• Enterprise Lean Startup
Что такое DevOps?
• постоянный поток поставки ценности
• быстрый цикл обратной связи• постоянное улучшение процесса
Culture Automation
Measurement Sharing
DevOps Manifesto
• Набор ценностей• Реакция на недостаток
коммуникаций• Создание отношений между dev и
ops• Работа над продуктом, а не
проектом• …
http://bit.ly/devopsmanifesto
DevOps - это не…
• Сертификация• Роль• Инструменты• Прописанный процесс
Каковы принципы DevOps?
Три пути
Понять систему
Выстроить поток
Организовать обратную связь
Искать пути постоянного улучшения
Антипаттерны Devops
• Длинные релизные циклы• Разногласия между Ops, Dev,Dba, Test, ...• Работает на Stage но не на production.• Долгая подготовка сред для поставки• Ручное обновление конфигов• Разнообразые OS, Middleware, …• Отсутствия понимания где и что
работает• Ручное документирование
4 модели внедрения DevOps
• Углубление процессов разработки в поставку
• Создание обратной связи от боевых серверов до разработки
• Объединение разработки и администрирования
• Включение ИТ команды в разработку
Визуализируйте поток задач
Привлекайте админов к работе над продуктом как можно раньше
Automation over Documentation
То, что не может быть измерено, не может быть улучшено
Визуализируйте метрики
Улучшайте процесс
Учитесь новому
Delivery Pipeline как основной подход в автоматизации
Automation
• CI Server• Code Analysis• Auto Tests• Configuration Management
CI Server• Рассмотрим на примере Jenkins
Что нужно
1. Ставим pipeline plugin2. Делаем dependency между
задачами3. Создаем новый pipeline view4. ….5. Profit!
Альтернативы
Configuration Management
• VM control• OS control• Installation control• …
Как неправильно
Например
Vagrant
Vagrant::Config.run do |config| config.vm.box = "precise32" config.vm.box_url = http://files.vagrantup.com/precise32.box config.vm.network :hostonly, "192.168.33.10” config.vm.share_folder("v-web", "/vagrant/www", "./www", :nfs => true) config.vm.share_folder("v-db", "/vagrant/db", "./db", :nfs => true) config.vm.forward_port 80, 8080 config.vm.provision :shell, :inline => "apt-get update --fix-missing” end
Docker
from ubuntu:12.10 run apt-get update run DEBIAN_FRONTEND=noninteractive apt-get install -q -y python run DEBIAN_FRONTEND=noninteractive apt-get install -q -y python-pip run pip install django run DEBIAN_FRONTEND=noninteractive apt-get install -q -y curlrun curl -L https://github.com/shykes/helloflask/archive/master.tar.gz | tar -xzv run cd helloflask-master && pip install -r requirements.txt
Нужно больше инструментов!
Еще больше!
Что важно
• Useful reports• Useful logging• Vizualisation– Dashboards– Graphs–…
Работаем с логами
Node
Node
Logstash ElasticSearch
Kibana
Как можно все это собрать
Визуализация
Что есть на рынке
Что почитать