SlideShare una empresa de Scribd logo
1 de 58
Descargar para leer sin conexión
Хипстеры в энтерпрайзе
Хи́пстер, хипстеры — появившийся в США в 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

Más contenido relacionado

La actualidad más candente

Remote Highload
Remote HighloadRemote Highload
Remote Highload
Andrey Smirnov
 
Эффективная отладка репликации MySQL / Света Смирнова (Percona)
Эффективная отладка репликации MySQL / Света Смирнова (Percona)Эффективная отладка репликации MySQL / Света Смирнова (Percona)
Эффективная отладка репликации MySQL / Света Смирнова (Percona)
Ontico
 
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
Ontico
 
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
Ontico
 

La actualidad más candente (20)

Мифы о DevOps / Александр Титов, Иван Евтухович (Экспресс 42)
Мифы о DevOps / Александр Титов, Иван Евтухович (Экспресс 42)Мифы о DevOps / Александр Титов, Иван Евтухович (Экспресс 42)
Мифы о DevOps / Александр Титов, Иван Евтухович (Экспресс 42)
 
Никита Галкин "Ловушки микросервисной архитектуры"
Никита Галкин "Ловушки микросервисной архитектуры"Никита Галкин "Ловушки микросервисной архитектуры"
Никита Галкин "Ловушки микросервисной архитектуры"
 
Continuous Delivery для ASP.NET MVC проекта под Linux
Continuous Delivery для ASP.NET MVC проекта под LinuxContinuous Delivery для ASP.NET MVC проекта под Linux
Continuous Delivery для ASP.NET MVC проекта под Linux
 
C++ Core Guidelines
C++ Core Guidelines C++ Core Guidelines
C++ Core Guidelines
 
Как это будет: ASP.NET Core
Как это будет: ASP.NET CoreКак это будет: ASP.NET Core
Как это будет: ASP.NET Core
 
Инструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важныИнструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важны
 
Micro orm для жизни. Кожевников Дмитрий D2D Just.NET
Micro orm для жизни. Кожевников Дмитрий D2D Just.NETMicro orm для жизни. Кожевников Дмитрий D2D Just.NET
Micro orm для жизни. Кожевников Дмитрий D2D Just.NET
 
Эволюция корпоративных Web приложений. Молотков Андрей D2D Just.NET
Эволюция корпоративных Web приложений. Молотков Андрей D2D Just.NETЭволюция корпоративных Web приложений. Молотков Андрей D2D Just.NET
Эволюция корпоративных Web приложений. Молотков Андрей D2D Just.NET
 
Модульная структура. Цветцих Денис D2D Just.NET
Модульная структура. Цветцих Денис D2D Just.NETМодульная структура. Цветцих Денис D2D Just.NET
Модульная структура. Цветцих Денис D2D Just.NET
 
SWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотек
SWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотекSWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотек
SWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотек
 
Как перестать хранить секреты в git и начать использовать Hashicorp Vault
Как перестать хранить секреты в git и начать использовать Hashicorp VaultКак перестать хранить секреты в git и начать использовать Hashicorp Vault
Как перестать хранить секреты в git и начать использовать Hashicorp Vault
 
Владислав Грязнов "Многозадачность в PHP"
Владислав Грязнов "Многозадачность в PHP"Владислав Грязнов "Многозадачность в PHP"
Владислав Грязнов "Многозадачность в PHP"
 
Олег Бартунов и Иван Панченко
Олег Бартунов и Иван ПанченкоОлег Бартунов и Иван Панченко
Олег Бартунов и Иван Панченко
 
Remote Highload
Remote HighloadRemote Highload
Remote Highload
 
Эффективная отладка репликации MySQL / Света Смирнова (Percona)
Эффективная отладка репликации MySQL / Света Смирнова (Percona)Эффективная отладка репликации MySQL / Света Смирнова (Percona)
Эффективная отладка репликации MySQL / Света Смирнова (Percona)
 
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
 
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
 
Kranonit s16 (python). sergey burma
Kranonit s16 (python). sergey burmaKranonit s16 (python). sergey burma
Kranonit s16 (python). sergey burma
 
Сергей Сергеев — Maintainer кода в большом проекте
Сергей Сергеев — Maintainer кода в большом проектеСергей Сергеев — Maintainer кода в большом проекте
Сергей Сергеев — Maintainer кода в большом проекте
 
Антон Довгоброд: Highload и очереди задач на примере PHP + Gearman + Yii2
Антон Довгоброд: Highload и очереди задач на примере PHP + Gearman + Yii2Антон Довгоброд: Highload и очереди задач на примере PHP + Gearman + Yii2
Антон Довгоброд: Highload и очереди задач на примере PHP + Gearman + Yii2
 

Destacado

CriminalEFS-PowerPoint
CriminalEFS-PowerPointCriminalEFS-PowerPoint
CriminalEFS-PowerPoint
Jenn Amabile
 
El presidencialismo mexicano antes y después
El presidencialismo mexicano antes y después El presidencialismo mexicano antes y después
El presidencialismo mexicano antes y después
espejodeoesed
 
каталог керасис
каталог керасискаталог керасис
каталог керасис
Nastasik
 
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Ontico
 

Destacado (20)

Docker In Bank Unrated
Docker In Bank UnratedDocker In Bank Unrated
Docker In Bank Unrated
 
Social Media For Busy Entrepreneurs and Small Businesses
Social Media For Busy Entrepreneurs and Small Businesses Social Media For Busy Entrepreneurs and Small Businesses
Social Media For Busy Entrepreneurs and Small Businesses
 
Green Peace y WWF
Green Peace y WWFGreen Peace y WWF
Green Peace y WWF
 
One Year of Porting - Post-mortem of two Linux/SteamOS launches
One Year of Porting - Post-mortem of two Linux/SteamOS launchesOne Year of Porting - Post-mortem of two Linux/SteamOS launches
One Year of Porting - Post-mortem of two Linux/SteamOS launches
 
Linux as a gaming platform, ideology aside
Linux as a gaming platform, ideology asideLinux as a gaming platform, ideology aside
Linux as a gaming platform, ideology aside
 
Gamedev-grade debugging
Gamedev-grade debuggingGamedev-grade debugging
Gamedev-grade debugging
 
Suir img
Suir imgSuir img
Suir img
 
Imágenes inmersivas
Imágenes inmersivasImágenes inmersivas
Imágenes inmersivas
 
El barrroco
El barrrocoEl barrroco
El barrroco
 
CriminalEFS-PowerPoint
CriminalEFS-PowerPointCriminalEFS-PowerPoint
CriminalEFS-PowerPoint
 
Crisis Subprime en España
Crisis Subprime en EspañaCrisis Subprime en España
Crisis Subprime en España
 
El presidencialismo mexicano antes y después
El presidencialismo mexicano antes y después El presidencialismo mexicano antes y después
El presidencialismo mexicano antes y después
 
Ecosistemas
EcosistemasEcosistemas
Ecosistemas
 
Linux as a gaming platform - Errata
Linux as a gaming platform - ErrataLinux as a gaming platform - Errata
Linux as a gaming platform - Errata
 
каталог керасис
каталог керасискаталог керасис
каталог керасис
 
Cross-platform game engine development with SDL 2.0
Cross-platform game engine development with SDL 2.0Cross-platform game engine development with SDL 2.0
Cross-platform game engine development with SDL 2.0
 
Advanced Linux Game Programming
Advanced Linux Game ProgrammingAdvanced Linux Game Programming
Advanced Linux Game Programming
 
OpenGL (ES) debugging
OpenGL (ES) debuggingOpenGL (ES) debugging
OpenGL (ES) debugging
 
Service Discovery. Spring Cloud Internals
Service Discovery. Spring Cloud InternalsService Discovery. Spring Cloud Internals
Service Discovery. Spring Cloud Internals
 
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
 

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

Кирилл Толкачев, Александр Тарасов, Хипстеры в энтерпрайзе. Шагаем в ногу со ...
Кирилл Толкачев, Александр Тарасов, Хипстеры в энтерпрайзе. Шагаем в ногу со ...Кирилл Толкачев, Александр Тарасов, Хипстеры в энтерпрайзе. Шагаем в ногу со ...
Кирилл Толкачев, Александр Тарасов, Хипстеры в энтерпрайзе. Шагаем в ногу со ...
ScrumTrek
 
Wild microservices and imaginary DevOps
Wild microservices and imaginary DevOpsWild microservices and imaginary DevOps
Wild microservices and imaginary DevOps
Кирилл Толкачёв
 
Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013
ScalaNsk
 
Platypus platform ivbit
Platypus platform ivbitPlatypus platform ivbit
Platypus platform ivbit
jskonst
 
Акторы в C++: взгляд старого практикующего актородела (St. Petersburg C++ Use...
Акторы в C++: взгляд старого практикующего актородела (St. Petersburg C++ Use...Акторы в C++: взгляд старого практикующего актородела (St. Petersburg C++ Use...
Акторы в C++: взгляд старого практикующего актородела (St. Petersburg C++ Use...
Yauheni Akhotnikau
 

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

Кирилл Толкачев, Александр Тарасов, Хипстеры в энтерпрайзе. Шагаем в ногу со ...
Кирилл Толкачев, Александр Тарасов, Хипстеры в энтерпрайзе. Шагаем в ногу со ...Кирилл Толкачев, Александр Тарасов, Хипстеры в энтерпрайзе. Шагаем в ногу со ...
Кирилл Толкачев, Александр Тарасов, Хипстеры в энтерпрайзе. Шагаем в ногу со ...
 
DLR Hosting
DLR HostingDLR Hosting
DLR Hosting
 
Wild microservices and imaginary DevOps
Wild microservices and imaginary DevOpsWild microservices and imaginary DevOps
Wild microservices and imaginary DevOps
 
Сергей Крыжановский - Языки программирования
Сергей Крыжановский - Языки программированияСергей Крыжановский - Языки программирования
Сергей Крыжановский - Языки программирования
 
Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013
 
Rambler.iOS #9: Нужны ли бэкенд-разработчики, когда есть Swift?
Rambler.iOS #9: Нужны ли бэкенд-разработчики, когда есть Swift?Rambler.iOS #9: Нужны ли бэкенд-разработчики, когда есть Swift?
Rambler.iOS #9: Нужны ли бэкенд-разработчики, когда есть Swift?
 
Opensource на .NET
Opensource на .NETOpensource на .NET
Opensource на .NET
 
Программирование как способ выражения мыслей.
Программирование как способ выражения мыслей. Программирование как способ выражения мыслей.
Программирование как способ выражения мыслей.
 
Профессиональная разработка в суровом Enterprise
Профессиональная разработка в суровом EnterpriseПрофессиональная разработка в суровом Enterprise
Профессиональная разработка в суровом Enterprise
 
Serghei Iakovlev "Chaos engineering in action"
Serghei Iakovlev "Chaos engineering in action"Serghei Iakovlev "Chaos engineering in action"
Serghei Iakovlev "Chaos engineering in action"
 
C++ Базовый. Занятие 04.
C++ Базовый. Занятие 04.C++ Базовый. Занятие 04.
C++ Базовый. Занятие 04.
 
"Разработка документации на программные интерфейсы". Светлана Каюшина, Яндекс
"Разработка документации на программные интерфейсы". Светлана Каюшина, Яндекс"Разработка документации на программные интерфейсы". Светлана Каюшина, Яндекс
"Разработка документации на программные интерфейсы". Светлана Каюшина, Яндекс
 
Platypus platform ivbit
Platypus platform ivbitPlatypus platform ivbit
Platypus platform ivbit
 
Акторы в C++: взгляд старого практикующего актородела (St. Petersburg C++ Use...
Акторы в C++: взгляд старого практикующего актородела (St. Petersburg C++ Use...Акторы в C++: взгляд старого практикующего актородела (St. Petersburg C++ Use...
Акторы в C++: взгляд старого практикующего актородела (St. Petersburg C++ Use...
 
Как и зачем можно создать DSL на Python
Как и зачем можно создать DSL на PythonКак и зачем можно создать DSL на Python
Как и зачем можно создать DSL на Python
 
Как не подавиться большим старым проектом. Юрий Минаев ➠ CoreHard Autumn 2019
Как не подавиться большим старым проектом. Юрий Минаев ➠  CoreHard Autumn 2019Как не подавиться большим старым проектом. Юрий Минаев ➠  CoreHard Autumn 2019
Как не подавиться большим старым проектом. Юрий Минаев ➠ CoreHard Autumn 2019
 
Как не подавиться большим старым проектом
Как не подавиться большим старым проектомКак не подавиться большим старым проектом
Как не подавиться большим старым проектом
 
Путь к чистому и компактному коду исполняемых спецификаций
Путь к чистому и компактному коду исполняемых спецификацийПуть к чистому и компактному коду исполняемых спецификаций
Путь к чистому и компактному коду исполняемых спецификаций
 
Никита Вельмаскин - Интерпретатор или думаем над скриптовым движком для Ваше...
Никита Вельмаскин -  Интерпретатор или думаем над скриптовым движком для Ваше...Никита Вельмаскин -  Интерпретатор или думаем над скриптовым движком для Ваше...
Никита Вельмаскин - Интерпретатор или думаем над скриптовым движком для Ваше...
 
Говорим о СУБД языком HR
Говорим о СУБД языком HRГоворим о СУБД языком HR
Говорим о СУБД языком HR
 

Más de Aleksandr Tarasov

Más de Aleksandr Tarasov (7)

Cocktail of Environments. How to Mix Test and Development Environments and St...
Cocktail of Environments. How to Mix Test and Development Environments and St...Cocktail of Environments. How to Mix Test and Development Environments and St...
Cocktail of Environments. How to Mix Test and Development Environments and St...
 
Service Discovery. More that it seems
Service Discovery. More that it seemsService Discovery. More that it seems
Service Discovery. More that it seems
 
Everything as a code
Everything as a codeEverything as a code
Everything as a code
 
Continuous Delivery with Jenkins: Lessons Learned
Continuous Delivery with Jenkins: Lessons LearnedContinuous Delivery with Jenkins: Lessons Learned
Continuous Delivery with Jenkins: Lessons Learned
 
WILD microSERVICES v2 (JEEConf Edition)
WILD microSERVICES v2 (JEEConf Edition)WILD microSERVICES v2 (JEEConf Edition)
WILD microSERVICES v2 (JEEConf Edition)
 
WILD microSERVICES v2
WILD microSERVICES v2WILD microSERVICES v2
WILD microSERVICES v2
 
Docker In the Bank
Docker In the BankDocker In the Bank
Docker In the Bank
 

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