тарасов, викторова, dev ops без булшита

38
DevOps без булшита

Upload: meyouslide

Post on 20-Mar-2017

99 views

Category:

Automotive


0 download

TRANSCRIPT

Page 1: тарасов, викторова, Dev ops без булшита

DevOps без булшита

Page 2: тарасов, викторова, Dev ops без булшита

About us

/aatarasoff

/aatarasoff

habrahabr.ru/aatarasoffdeveloperblog.info

/myfoxicus

/myfoxicus

Page 3: тарасов, викторова, Dev ops без булшита

High-performing IT organizations experience 60 times fewer failures and recover from failure 168 times faster than their lower-performing peers. They also deploy

30 times more frequently with 200 times shorter

lead times.

Page 4: тарасов, викторова, Dev ops без булшита

2015 2016 2017

Page 5: тарасов, викторова, Dev ops без булшита

DevOps - это buzzword...так же как BigData или Cloud

DevOps (?)

Page 6: тарасов, викторова, Dev ops без булшита
Page 7: тарасов, викторова, Dev ops без булшита

● Уступаем в скорости и качестве? ● Хочется повысить стабильность

работы приложений?● Сэкономить? Сократить?

Оптимизировать?● Legacy?● Технологии?

Зачем это Банку?DevOps

Page 8: тарасов, викторова, Dev ops без булшита

● Значительно сократитьtime-to-market

● Повысить качество инженерных решений в продуктах

● Сократить стоимость внедрения, эксплуатации и поддержки

Что это значит для бизнеса?DevOps

Page 9: тарасов, викторова, Dev ops без булшита

● Метрики и KPI?● Комитмент?● Фин модель внедрения DevOps?● CI … CD …?● …. ?

Как проверить Банку, что у нас случился DevOps?

Page 10: тарасов, викторова, Dev ops без булшита

Три составляющие DevOps

Мировоззрение - определяет образ жизни и мышления людей, подталкивает делать вещи правильно

Архитектура - определяет эффективность, степень боли и трудозатраты

Инструменты и практики - дают техническую возможность реализации наших хотелок

Page 11: тарасов, викторова, Dev ops без булшита

Изменение сознания (dev)

• Мой коТ работает на

моей машине

• Я написал инструкцию

админам

• Я что-то сделал, пусть

тестировщик тестирует

• Мой код работает у

клиента

• Я написал скрипт

развёртывания ПО

• Я должен написать

тесты

Page 12: тарасов, викторова, Dev ops без булшита

Изменение сознания (ops)

• Мне дали инструкцию

как выкладывать

продукт

• У вас ошибка в

инструкции

• У меня есть документ

как настраивать сервера

• Я написал скрипт

выкладки продукта

• У нас баг в скрипте

• У меня есть скрипт,

который настраивает

сервера

Page 13: тарасов, викторова, Dev ops без булшита

DEV QA DEPLOYANALISYS SUPPORT

Трансформация

QA SUPPORTDELIVERY

ANALISYS

DEV

QA

Слияние аналитики, разработки и внедрения

Доставка ПО - часть разработки

Единые инструменты и практики для команды

Нагрузочное тестирование как R&D

Тестирование начинается до разработки

Уменьшение рисков за счёт атомарности внедрений

Непрерывный мониторинг состояния системы

Эффективная обратная связь команде

Тестирование на «живых» клиентах

Перманентное ОПЭФокус на своём участке работы

Фокус на доставке ценности клиенту

Page 14: тарасов, викторова, Dev ops без булшита

Метрики

1 2

3

4 5

6

Page 15: тарасов, викторова, Dev ops без булшита

Наш вариантМетрика 01.2016 07.2016 План проекта

на12.2016 Факт 01.2017

Время доставки до клиента от завершения

разработки3-10д 2д 3 часа 2,5 часа

Длительность реализации 30д 10д 5д 3д

Время восстановления после аварии 30-40 мин 20 мин 5 мин 0*

Длительность исправления критических

дефектовN/A 1,5д 1д 0*

Количество багов на релиз 4-5 3 1 0,16

Процент неудавшихся внедрений N/A 0,9 % 0,7 % 0 %

// указаны календарные дни

Page 16: тарасов, викторова, Dev ops без булшита

История одной команды: от менеджеров к инженерам

Кучка евангелистов

Про идею!

Менеджеры, Архитекторы …

Про как и куда!

Разработчики, Тестировщики

Пробуем и улучшаем!

КомандаБерем и делаем!

Page 17: тарасов, викторова, Dev ops без булшита

Путь к инженерии

Жесткая специализация

Выполнение однотипной работы каждый день

Изучение смежных областей и

инструментов

Помощь другим участникам команды в эффективном выполнение их работы

Автоматизация своих действий

Использование инструментов и практик для уменьшения рутины

Инженерный подход

Непрерывное улучшение инструментов и практик

Page 18: тарасов, викторова, Dev ops без булшита

Инженерные практики

Непрерывная доставка ПО

Всё есть код: - документация - тестирование - доставка и развёртывание

Парная работа, кроссфункциональность

Page 19: тарасов, викторова, Dev ops без булшита
Page 20: тарасов, викторова, Dev ops без булшита

Все ходы записаны

Ссылки на артефакты: - документация - отчёт по

тестированию

Page 21: тарасов, викторова, Dev ops без булшита

Инженерные практики

Непрерывная доставка ПО

Всё есть код: - документация - тестирование - доставка и развёртывание

Парная работа, кроссфункциональность

Page 22: тарасов, викторова, Dev ops без булшита

Аналитик Разработчик Тестировщик

Page 23: тарасов, викторова, Dev ops без булшита

== Переводы между своими счетами (получение списка лимитов)Схема: [plantuml,"a2a-limits", "png"]---------- include::diagrams/a2a-limits.puml[]---------- Параметры ответа метода /search#POSTinclude::{snippets}/success/response-fields.adoc[]Пример ответа метода /search#POSTinclude::{snippets}/success/http-response.adoc[]

Page 24: тарасов, викторова, Dev ops без булшита

void "Верни ошибку 400, если в заголовке не указан customerID"() { when: def response = mockMvc.perform(post("/limits/search") .header("applicationId", "spockTest")) then: response.andExpect(status().isUnauthorized())) }

Page 25: тарасов, викторова, Dev ops без булшита

void "Верни ошибку 400, если в заголовке не указан customerID"() { when: def response = null then: response.andExpect(status().isUnauthorized())) }

Page 26: тарасов, викторова, Dev ops без булшита

api-pipeline-template.groovy

Page 27: тарасов, викторова, Dev ops без булшита

jobs.each { job -> pipelineJob("${basePath}/${job}") { //define SCM

definition { cps { script(readFileFromWorkspace('some_script.groovy')) sandbox() } } }}

Page 28: тарасов, викторова, Dev ops без булшита

Инженерные практики

Непрерывная доставка ПО

Всё есть код: - документация - тестирование - доставка и развёртывание

Парная работа, кроссфункциональность

Page 29: тарасов, викторова, Dev ops без булшита
Page 30: тарасов, викторова, Dev ops без булшита

АналитикРазработчик

Тестировщик

Единые инструменты • git • IDE (IDEA/ATOM) • Asciidoctor • Spock Framework

Совместные практики • приёмочное тестирование • TDD (разработка тестов) • BDD (разработка авто-тестов)

Совместные практики • приёмочное тестирование • TDD (проработка тест-кейсов) • BDD (сценарии авто UI-тестирования)

Совместные практики • TDD (проработка тест-кейсов) • документация • нефункциональное тестирование

Page 31: тарасов, викторова, Dev ops без булшита

ManagerDBA

BA

UX

Developer QA

Operations

Software Engineer

Page 32: тарасов, викторова, Dev ops без булшита

Вскрывшиеся нерешенные проблемы - next steps

Инженерные практики

API самообслуживания

SaaS внутри компании

Развитие и рост команды евагелистов

Page 33: тарасов, викторова, Dev ops без булшита

ВыводыDevOps состоит из трёх слагаемых:

• мировоззрения, • архитектуры, • инженерных практик

Page 34: тарасов, викторова, Dev ops без булшита

ВыводыDevOps - это: ● про ускорение доставки ценности клиенту ● не человек, не отдел и дело даже не в

разработчиках и сопровождении ● про людей, которые умеют программировать и

решать задачи на инженерном, а не процессном уровне

Page 35: тарасов, викторова, Dev ops без булшита

ВыводыСтавьте правильные метрики, но не забывайте, что метрики всего лишь метрики● нацелены на бизнес

○ время доставки ○ lead time

● нацелены на качество ○ количество дефектов ○ time budget

● нацелены на удовлетворенность ○ NPS внутри команд ○ NPS клиентов

● “красно-зеленые” таблицы ● нацелены на разработку или

сопровождение ● не учитывают ценность для

бизнеса

Page 36: тарасов, викторова, Dev ops без булшита

DevOps – Agile с другого конца

Page 37: тарасов, викторова, Dev ops без булшита
Page 38: тарасов, викторова, Dev ops без булшита

СПАСИБО!