58
Хипстеры в энтерпрайзе Хи́пстер, хипстеры — появившийся в США в 40-х годах термин, образованный от жаргонного “to be hip”, что переводится приблизительно как “быть в теме”

Хипстеры в энтерпрайзе

Embed Size (px)

Citation preview

Page 1: Хипстеры в энтерпрайзе

Хипстеры в энтерпрайзеХи ́пстер, хипстеры — появившийся в США в 40-х годах термин, образованный от жаргонного “to be hip”, что переводится приблизительно как “быть в теме”

Page 2: Хипстеры в энтерпрайзе

@tolkv

2

2

Page 3: Хипстеры в энтерпрайзе

@aatarasoff

3

3

Page 4: Хипстеры в энтерпрайзе

Все события и персонажи вымышлены.

Любое сходство с реальными событиями и именами случайно.

Discalimer

4

Page 5: Хипстеры в энтерпрайзе

Это про нас

5

Page 6: Хипстеры в энтерпрайзе

План

6

● Капитанская часть

● Что такое хорошо?

○ и что такое плохо?

● Что со всем этим делать?

● Результат

● Q&A

Page 7: Хипстеры в энтерпрайзе

Люди говорят:

Надо быть гибким

7

Page 8: Хипстеры в энтерпрайзе

Эволюция везде

8

Page 9: Хипстеры в энтерпрайзе

Дано

9

Page 10: Хипстеры в энтерпрайзе

Найди себя

Manager

DBA BA

UXDeveloper QA

Operations

10

Page 11: Хипстеры в энтерпрайзе

Колодцы

Manager

DBA BA

UXDeveloper QA

Operations

11

Page 12: Хипстеры в энтерпрайзе

12

Page 13: Хипстеры в энтерпрайзе

Пример №0: департамент версионирования

13

Page 14: Хипстеры в энтерпрайзе

14

Page 15: Хипстеры в энтерпрайзе

Внедряем Agile

15

Page 16: Хипстеры в энтерпрайзе

Слепые пятна после второго прихода

Manager

DBA BA

UXDeveloper QA

Operations

16

Page 17: Хипстеры в энтерпрайзе

А что если не летит?

17

Page 18: Хипстеры в энтерпрайзе

Проблема последней мили

Lead Time

Full Delivery Time

Cycle Time Cycle Time

18

Page 19: Хипстеры в энтерпрайзе

Нас спасут инженерные практики

19

Page 20: Хипстеры в энтерпрайзе

Чёрная дыра инженерных практик

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

Page 21: Хипстеры в энтерпрайзе

Слагаемые успеха

ИнструментыАрхитектураи технологии

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

Page 22: Хипстеры в энтерпрайзе

График хуяфик

22

Page 23: Хипстеры в энтерпрайзе

Пример №1: унылость тестирования

23

Page 24: Хипстеры в энтерпрайзе

Пример №1: унылость тестирования

?

24

Page 25: Хипстеры в энтерпрайзе

Пример №1: унылость тестирования

25

Page 26: Хипстеры в энтерпрайзе

Пример №1: унылость тестирования

26

Page 27: Хипстеры в энтерпрайзе

Пример №2: инструменты не для всех

Spec by ExampleWord/PDF

Код + тестыIDE

Тест-кейсыHP ALM

Developer QABA

27

Page 28: Хипстеры в энтерпрайзе

Пример №3: всё не так

v.2014-12-31.1.0.1.1 v.2015-01-10.1.0.1.2

Настройки в установку.2015-01-10.v2

28

Page 29: Хипстеры в энтерпрайзе

Инженерный подход (Dev)

● Мой код работает на моей машине

● Я написал инструкцию админам

● Я что-то сделал, пусть тестировщик тестирует

● Мой код работает у клиента

● Я написал скрипт развёртывания ПО

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

29

Page 30: Хипстеры в энтерпрайзе

Инженерный подход (Ops)

● Мне дали инструкцию как выкладывать продукт

● У вас ошибка в инструкции

● У меня есть документ как настраивать сервера

● Я написал скрипт выкладки продукта

● У нас баг в скрипте● У меня есть скрипт,

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

30

Page 31: Хипстеры в энтерпрайзе

Преодолеваем отставание

31

Page 32: Хипстеры в энтерпрайзе

Как это сделать? Принцип огораживания

32

Page 33: Хипстеры в энтерпрайзе

Как это сделать? Принцип огораживания

33

Page 34: Хипстеры в энтерпрайзе

Как это сделать? Принцип огораживания

34

Page 35: Хипстеры в энтерпрайзе

Как это сделать? Domain Driven Design

35

Page 36: Хипстеры в энтерпрайзе

Три типа разделения

● по языкам/технологиям

● по типам источников данных

● по командам

36

Page 37: Хипстеры в энтерпрайзе

Trade-Off: Принцип LSD

- L языков программирования- S в среднем фреймворков на язык- D типов источников данных

complexity = L * S * D37

Page 38: Хипстеры в энтерпрайзе

Простой такой пример

- три языка программирования- два в среднем фреймворка на язык- семь типов источников данных

- legacy WS, mongo db- хранимые процедуры, JDBC-templates- elasticsearch, neo4j- мишкина база

complexity = 3 * 2 * 7 = 42 (!)38

Page 39: Хипстеры в энтерпрайзе

Чем нельзя жертвовать?

min (L * S * D) -> ?

39

Page 40: Хипстеры в энтерпрайзе

Закон трёх букв

min (L * S * D) -> max (D)

40

Page 41: Хипстеры в энтерпрайзе

Какие инструменты вам помогут?

● Docker

● ???

● ???

41

Page 42: Хипстеры в энтерпрайзе

Docker

● Инкапсуляция имплементации

● Унификация и стандартизация

● Изоляция ресурсов

42

Page 43: Хипстеры в энтерпрайзе

Docker глазами разработчика

43

Page 44: Хипстеры в энтерпрайзе

Docker глазами саппорта: stressless архитектура

44

Page 45: Хипстеры в энтерпрайзе

Так зачем Docker в энтерпрайзе?

45

● Уменьшает уровень беспокойства у саппорта

● Развязывает руки команде разработки

Page 46: Хипстеры в энтерпрайзе

Какие инструменты вам помогут?

● Docker

● API

● ???

46

Page 47: Хипстеры в энтерпрайзе

API на примере Docker-а

FROM docker.moscow.alfaintra.net/java8

MAINTAINER [email protected]

ADD payments-api.tar /

ENTRYPOINT ["/payments-api/bin/payments-api.sh"]

EXPOSE 8080

docker run -P --name payments-api docker.moscow.alfaintra.net/payments-api:0.0.1

47

docker pull

docker run

docker logs

docker stop

docker start

Page 48: Хипстеры в энтерпрайзе

API на пример Ansible-а

48

Page 49: Хипстеры в энтерпрайзе

Какие инструменты вам помогут?

● Docker

● API

● Mesos Ecosystem

49

Page 50: Хипстеры в энтерпрайзе

50

Page 51: Хипстеры в энтерпрайзе

51

Page 52: Хипстеры в энтерпрайзе

О чём мы не хотим беспокоиться?

● о серверах

● о кластерах

● о бюрократии

52

Page 53: Хипстеры в энтерпрайзе

Apache Mesos

53

Кратко о возможностях: ● масштабируй● изолируй● управляй● мониторь

Page 54: Хипстеры в энтерпрайзе

Профит

● Упрощение архитектуры: единый интерфейс для управления ресурсами

● Автоматизация: никто не любит быть разбуженным посреди ночи - придаем свойство самовосстановления своим системам

● Эффективность: динамическое распределение ресурсов с гарантированной изоляцией

● API самообслуживания: прямой доступ к ресурсам для команды разработки

54

Page 55: Хипстеры в энтерпрайзе

Выводы

55

ManagerDBA

BA

UX

Developer QA

Operations

Software Engineer

Page 56: Хипстеры в энтерпрайзе

Выводы

56

Page 57: Хипстеры в энтерпрайзе

И на ход ноги

● Не забывайте про закон трёх букв

min (L * S * D) -> max (D)

57

Page 58: Хипстеры в энтерпрайзе

58

Спасибо! Будем рады ответить на ваши вопросы.

@tolkv

@aatarasoff