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

Aleksandr Tarasov
Aleksandr TarasovEngineer. Speaker. Blogger. DevOps fan and expert. Husband and father.
Хипстеры в энтерпрайзе
Хи́пстер, хипстеры — появившийся в США в 40-х годах
термин, образованный от жаргонного “to be hip”, что
переводится приблизительно как “быть в теме”
@tolkv
2
@aatarasoff
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 Example
Word/PDF
Код + тесты
IDE
Тест-кейсы
HP ALM
Developer
QA
BA
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 * D
37
Простой такой пример
- три языка программирования
- два в среднем фреймворка на язык
- семь типов источников данных
- 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
Manager
DBA
BA
UX
Developer QA
Operations
Software Engineer
Выводы
56
И на ход ноги
● Не забывайте про закон трёх букв
min (L * S * D) -> max (D)
57
58
Спасибо! Будем рады ответить на ваши вопросы.
@tolkv
@aatarasoff
1 of 58

More Related Content

What's hot(20)

C++ Core Guidelines C++ Core Guidelines
C++ Core Guidelines
Sergey Zubkov8.2K views
Remote HighloadRemote Highload
Remote Highload
Andrey Smirnov736 views
Kranonit s16 (python). sergey burmaKranonit s16 (python). sergey burma
Kranonit s16 (python). sergey burma
Krivoy Rog IT Community3.5K views

Viewers also liked(20)

Docker In Bank UnratedDocker In Bank Unrated
Docker In Bank Unrated
Aleksandr Tarasov2.2K views
Green Peace y WWFGreen Peace y WWF
Green Peace y WWF
espejodeoesed148 views
Linux as a gaming platform, ideology asideLinux as a gaming platform, ideology aside
Linux as a gaming platform, ideology aside
Leszek Godlewski24.4K views
Gamedev-grade debuggingGamedev-grade debugging
Gamedev-grade debugging
Leszek Godlewski1.1K views
Suir imgSuir img
Suir img
Rocío Citroni305 views
Imágenes inmersivasImágenes inmersivas
Imágenes inmersivas
Rocío Citroni433 views
El barrrocoEl barrroco
El barrroco
espejodeoesed132 views
CriminalEFS-PowerPointCriminalEFS-PowerPoint
CriminalEFS-PowerPoint
Jenn Amabile221 views
Crisis Subprime en EspañaCrisis Subprime en España
Crisis Subprime en España
espejodeoesed69 views
EcosistemasEcosistemas
Ecosistemas
espejodeoesed51 views
Linux as a gaming platform - ErrataLinux as a gaming platform - Errata
Linux as a gaming platform - Errata
Leszek Godlewski16.5K views
каталог керасискаталог керасис
каталог керасис
Nastasik3.4K views
Advanced Linux Game ProgrammingAdvanced Linux Game Programming
Advanced Linux Game Programming
Leszek Godlewski74.9K views
OpenGL (ES) debuggingOpenGL (ES) debugging
OpenGL (ES) debugging
Leszek Godlewski1.7K views
Service Discovery. Spring Cloud InternalsService Discovery. Spring Cloud Internals
Service Discovery. Spring Cloud Internals
Aleksandr Tarasov1.7K views

Similar to Хипстеры в энтерпрайзе(20)

DLR HostingDLR Hosting
DLR Hosting
Vitaly Baum457 views
Wild microservices and imaginary DevOpsWild microservices and imaginary DevOps
Wild microservices and imaginary DevOps
Кирилл Толкачёв551 views
Opensource на .NETOpensource на .NET
Opensource на .NET
lugnsk1.9K views
Platypus platform ivbitPlatypus platform ivbit
Platypus platform ivbit
jskonst6.3K views
Говорим о СУБД языком HRГоворим о СУБД языком HR
Говорим о СУБД языком HR
Konstantin Osipov625 views

More from Aleksandr Tarasov(6)

Service Discovery. More that it seemsService Discovery. More that it seems
Service Discovery. More that it seems
Aleksandr Tarasov1.9K views
Everything as a codeEverything as a code
Everything as a code
Aleksandr Tarasov1.2K views
WILD microSERVICES v2 (JEEConf Edition)WILD microSERVICES v2 (JEEConf Edition)
WILD microSERVICES v2 (JEEConf Edition)
Aleksandr Tarasov1K views
WILD microSERVICES v2WILD microSERVICES v2
WILD microSERVICES v2
Aleksandr Tarasov647 views
Docker In the BankDocker In the Bank
Docker In the Bank
Aleksandr Tarasov1.1K views

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