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

  • View
    1.130

  • Download
    1

  • Category

    Software

Preview:

Citation preview

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

@tolkv

2

2

@aatarasoff

3

3

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

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

Discalimer

4

Это про нас

5

План

6

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

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

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

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

● Результат

● Q&A

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

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

7

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

8

Дано

9

Найди себя

Manager

DBA BA

UXDeveloper QA

Operations

10

Колодцы

Manager

DBA BA

UXDeveloper QA

Operations

11

12

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

13

14

Внедряем Agile

15

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

Manager

DBA BA

UXDeveloper QA

Operations

16

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

17

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

Lead Time

Full Delivery Time

Cycle Time Cycle Time

18

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

19

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

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

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

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

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

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

22

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

23

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

?

24

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

25

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

26

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

Spec by ExampleWord/PDF

Код + тестыIDE

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

Developer QABA

27

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

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

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

28

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

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

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

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

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

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

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

29

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

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

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

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

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

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

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

30

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

31

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

32

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

33

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

34

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

35

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

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

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

● по командам

36

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

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

complexity = L * S * D37

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

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

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

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

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

min (L * S * D) -> ?

39

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

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

40

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

● Docker

● ???

● ???

41

Docker

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

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

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

42

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

43

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

44

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

45

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

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

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

● Docker

● API

● ???

46

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

FROM docker.moscow.alfaintra.net/java8

MAINTAINER aatarasov@alfabank.ru

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

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

48

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

● Docker

● API

● Mesos Ecosystem

49

50

51

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

● о серверах

● о кластерах

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

52

Apache Mesos

53

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

Профит

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

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

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

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

54

Выводы

55

ManagerDBA

BA

UX

Developer QA

Operations

Software Engineer

Выводы

56

И на ход ноги

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

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

57

58

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

@tolkv

@aatarasoff

Recommended