Практика DevOps в крупных организациях

Post on 28-Nov-2014

442 views 4 download

description

Четвертый доклад Конференции Докладчик Ребров Андрей, инженерный тренер ScrumTrek.

Transcript of Практика DevOps в крупных организациях

Практика 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

Как можно все это собрать

Визуализация

Что есть на рынке

Что почитать

Twitter: @andrebrov

E-mail: arebrov@scrumtrek.ru

Skype: rebrov.andrey