SlideShare a Scribd company logo
18+
Микросервисы
огонь, вода и DevOps
@tolkv
@lavcraft
@aatarasoff
@aatarasoff
DISCLAIMER
No warranty guarantee
4
Agenda
1. Theory
2. Practice
3. Q&A
5
6
● делается с первого раза
● не меняется годами
● не зависит от людей
● не зависит от процессов
7
У всех нас конечно же так
8
У всех нас конечно же так
9
Точка зрения: архитектор
10
Работа идеального архитектора
11
Работа идеального архитектора
12
Работа идеального архитектора
13
Точка зрения: разработчик
Немного деталей не помешает
14
Немного деталей не помешает
15
Архитектура
16
Архитектура
Что это?
17
Что же такое архитектура?
18
Что же такое архитектура?
19
Что же такое архитектура?
20
https://www.youtube.com/watch?v=_Kex5hwGE-w
21
22
Закон Конвея
Big Ball of Mud
23
Путь к микросервисам
● Нагрузки
● Масштабирование
24
Путь к микросервисам
● Нагрузки
● Масштабирование
● Управление
● Разделение
25
12 April 1996
Первое упоминание SOA
https://www.gartner.com/doc/302868/service-oriented-architectures-
26
Принципы SOA
1. Standardized service contract
2. Loose coupling
3. Encapsulation
4. Reusability
5. Autonomy
6. Statelessness
7. Discoverability
27
Принципы SOA
1. Standardized service contract
2. Loose coupling
3. Encapsulation
4. Reusability
5. Autonomy
6. Statelessness
7. Discoverability
28
5 January 2009
SOA is Dead
http://apsblog.burtongroup.com/2009/01/soa-is-dead-long-live-services.html
29
Classic SOA
● centralized orchestration
● complicated (hi, SOAP)
● smart pipes (hi, ESB)
30
SOA != SOAP (WS-*)
31
32
33
A=F(Rq, FRq, NFRq,..........???............)
34
Microservices = SOA 2.0
35
A=F(Rq, FRq, NFRq,..........???............)
DevOps
OSS Domination
36
37
Про тренды
38
Про тренды
In short, the microservice architectural style is an approach to developing
a single application as a suite of small services, each running in its own
process and communicating with lightweight mechanisms, often an HTTP
resource API. These services are built around business capabilities and
independently deployable by fully automated deployment machinery.
There is a bare minimum of centralized management of these services,
which may be written in different programming languages and use
different data storage technologies.
-- James Lewis and Martin Fowler
Что такое микросервисы?
39
In short, the microservice architectural style is an approach to developing
a single application as a suite of small services, each running in its own
process and communicating with lightweight mechanisms, often an HTTP
resource API. These services are built around business capabilities and
independently deployable by fully automated deployment machinery.
There is a bare minimum of centralized management of these services,
which may be written in different programming languages and use
different data storage technologies.
-- James Lewis and Martin Fowler
Что такое микросервисы?
40
Размер имеет значение?
● Method/Function = Microservice?
● 10-300 LOC = Microservice?
● 1 week = Microservice?
● 1 developer = Microservice?
41
Размер не имеет значения*
● Single Responsibility
● One capability
● Bounded context
“In your organization, you should be thinking not in terms
of data that is shared, but about the capabilities those
contexts provide the rest of the domain.”
– Sam Newman, Building Microservices
*до разумных пределов конечно
42
Domain-Driven Design
43
In short, the microservice architectural style is an approach to developing
a single application as a suite of small services, each running in its own
process and communicating with lightweight mechanisms, often an HTTP
resource API. These services are built around business capabilities and
independently deployable by fully automated deployment machinery.
There is a bare minimum of centralized management of these services,
which may be written in different programming languages and use
different data storage technologies.
-- James Lewis and Martin Fowler
Что такое микросервисы?
44
Process segregation
45
In short, the microservice architectural style is an approach to developing
a single application as a suite of small services, each running in its own
process and communicating with lightweight mechanisms, often an HTTP
resource API. These services are built around business capabilities and
independently deployable by fully automated deployment machinery.
There is a bare minimum of centralized management of these services,
which may be written in different programming languages and use
different data storage technologies.
-- James Lewis and Martin Fowler
Что такое микросервисы?
46
Независимый деплой
build test
47
In short, the microservice architectural style is an approach to developing
a single application as a suite of small services, each running in its own
process and communicating with lightweight mechanisms, often an HTTP
resource API. These services are built around business capabilities and
independently deployable by fully automated deployment machinery.
There is a bare minimum of centralized management of these services,
which may be written in different programming languages and use
different data storage technologies.
-- James Lewis and Martin Fowler
Что такое микросервисы?
48
Language/technology segregation
49
Data segregation
50
Team segregation
51
Problem → So Many Teams
52
53
54
Java
Python
JS
55
● Spring Boot/Spring Cloud
● Ratpack
● Dropwizard
● Vert.x
● Restlet
● Spark
● KumuluzEE
?
56
● Spring Boot/Spring Cloud
● Ratpack
● Dropwizard
● Vert.x
● Restlet
● Spark
● KumuluzEE
Выбирайте то,
что больше
нравится
/
в чем есть
экспертиза
57
58
Принцип LSD
- L языков программирования
- S среднее число фреймворков на язык
- D типов источников данных
complexity = L * S * D
59
Немного LSD для вас
- три языка программирования
- два в среднем фреймворка на язык
- семь типов источников данных
- legacy WS, mongo db
- OLTP, OLAP
- elasticsearch, neo4j
- Мишкина база %)
complexity = 3 * 2 * 7 = 42 (!)
60
Чем нельзя пожертвовать?
min (L * S * D) → ?
61
min (L * S * D) → max (D)
62
Problem → Many Teams Again
63
64
65
t0
DRY off
66
@Getter // generate getters
@Setter // generate setters
@Aspect // we are an aspect
@ToString // generate toString()
@EnableWs // SOAP is so enterprisy, we definitely need it
@Endpoint // Seriously, just read above
@EnableWebMvc // we want MVC
@EnableCaching // and we want to cache stuff
@Configuration // this class can configure itself
@RestController // we want some REST
@XmlRootElement // this component is marshallable
@EnableWebSocket // we want web socket, it's so new-generation
@RedisHash("cat") // this class is an entity saved in redis
@EnableScheduling // we want scheduled tasks
@EnableWebSecurity // and some built-in security
@NoArgsConstructor // generate no args constructor
@ContextConfiguration // we want context configuration for unit testing
@SpringBootApplication // this is a Sprint Boot application
@Accessors(chain = true) // getters/setters are chained (ala jQuery)
@EnableAspectJAutoProxy // we want AspectJ auto proxy
@EnableAutoConfiguration // and auto configuration
@EnableRedisRepositories // since it is an entity we want to enable spring data
repositories for redis
@EnableWebSocketMessageBroker // we want a broker for web socket messages 67
Fluent annotations
@Getter // generate getters
@Setter // generate setters
@Aspect // we are an aspect
@ToString // generate toString()
@EnableWs // SOAP is so enterprisy, we definitely need it
@Endpoint // Seriously, just read above
@EnableWebMvc // we want MVC
@EnableCaching // and we want to cache stuff
@Configuration // this class can configure itself
@RestController // we want some REST
@XmlRootElement // this component is marshallable
@EnableWebSocket // we want web socket, it's so new-generation
@RedisHash("cat") // this class is an entity saved in redis
@EnableScheduling // we want scheduled tasks
@EnableWebSecurity // and some built-in security
@NoArgsConstructor // generate no args constructor
@ContextConfiguration // we want context configuration for unit testing
@SpringBootApplication // this is a Sprint Boot application
@Accessors(chain = true) // getters/setters are chained (ala jQuery)
@EnableAspectJAutoProxy // we want AspectJ auto proxy
@EnableAutoConfiguration // and auto configuration
@EnableRedisRepositories // since it is an entity we want to enable spring data
repositories for redis
@EnableWebSocketMessageBroker // we want a broker for web socket messages 68
Fluent annotations
@ShutUpAndTakeMyMoney
69
Fluent annotations
Payment Service[jar,doc] Insurance Service [jar,doc]
One Point of View
[UberDoc.zip]
Rent Service[jar,doc] Other Service [jar,doc]
Агрегация документации
70
Analyst, PM Developer Tester Docs
Word, PDF...
71
Analyst, PM Developer Tester Docs
Word, PDF... Code + Tests
72
Analyst, PM Developer Tester Docs
Word, PDF... Code + Tests Test cases
73
Analyst, PM Developer Tester Docs :(
Word, PDF... Code + Tests Test cases
74
Analyst, PM Developer Tester Docs :)
Markdown/Asciidoctor
Docs :)
75
= Hippo Rent Service
This is documentation for Open API of our hippo renting service
== Methods
=== Rent
==== Request specification
===== Headers
//тут опишем http-заголовки
===== Example
//а здесь будут примеры вызова
==== Response specification
===== Response fields
//здесь описание полей ответа
===== Example
//ну и пример того, что вообще ожидать в ответе
Вот такой документ
76
./gradlew ... asciidoc publishDocs
77
Компиляция документа
document(
"rent-hippo",
preprocessResponse(prettyPrint()),
requestHeaders(
headerWithName("User-ID").description("User unique identifier")),
responseFields(
fieldWithPath("hippoRemain").description("Hippo remain count"),
fieldWithPath("parrot_fee").description("Fee in virtual parrots"),
fieldWithPath("ins").description("Insurance number. Yeah, we sell
it"),
fieldWithPath("hash").description("Blockchain block hash"))
)
Имя сниппета
78
document(
"rent-hippo",
preprocessResponse(prettyPrint()),
requestHeaders(
headerWithName("User-ID").description("User unique identifier")),
responseFields(
fieldWithPath("hippoRemain").description("Hippo remain count"),
fieldWithPath("parrot_fee").description("Fee in virtual parrots"),
fieldWithPath("ins").description("Insurance number. Yeah, we sell
it"),
fieldWithPath("hash").description("Blockchain block hash"))
)
Тестируем заголовки
79
document(
"rent-hippo",
preprocessResponse(prettyPrint()),
requestHeaders(
headerWithName("User-ID").description("User unique identifier")),
responseFields(
fieldWithPath("hippoRemain").description("Hippo remain count"),
fieldWithPath("parrot_fee").description("Fee in virtual parrots"),
fieldWithPath("ins").description("Insurance number. Yeah, we sell it"),
fieldWithPath("hash").description("Blockchain block hash"))
)
Тестируем поля ответа
80
generated-snippets
rent-hippo
curl-request.adoc
http-request.adoc
http-response.adoc
httpie-request.adoc
request-headers.adoc
response-fields.adoc
Получаем сниппеты
81
= Hippo Rent Service
This is documentation for Open API of our hippo renting service
== Methods
=== Rent
==== Request specification
===== Headers
include::{snippets}/rent-hippo/request-headers.adoc[]
===== Example
include::{snippets}/rent-hippo/http-request.adoc[]
==== Response specification
===== Response fields
include::{snippets}/rent-hippo/response-fields.adoc[]
===== Example
include::{snippets}/rent-hippo/http-response.adoc[]
Вставляем их в документ
82
= Hippo Rent Service
This is documentation for Open API of our hippo renting
service
== Methods
=== Rent
==== Request specification
===== Headers
include::{snippets}/rent-hippo/request-headers.adoc[]
===== Example
include::{snippets}/rent-hippo/http-request.adoc[]
==== Response specification
===== Response fields
include::{snippets}/rent-hippo/response-fields.adoc[]
===== Example
include::{snippets}/rent-hippo/http-response.adoc[]
83
84
Payment Service[logs] Insurance Service[logs]
One Log
Rent Service[logs] Other Service[logs]
Агрегация логов
85
86
RentService
No TraceId
No SpanId
TraceId = X
SpanId = A
87
RentService
PaymentService
No TraceId
No SpanId
TraceId = X
SpanId = A
TraceId = X
SpanId = B
TraceId = X
SpanId = C
88
RentService
PaymentService
BlockchainService
No TraceId
No SpanId
TraceId = X
SpanId = A
TraceId = X
SpanId = B
TraceId = X
SpanId = C
TraceId = X
SpanId = D
TraceId = X
SpanId = D
TraceId = X
SpanId = F
89
RentService
PaymentService
SecurityServiceBlockchainService
No TraceId
No SpanId
TraceId = X
SpanId = A
TraceId = X
SpanId = B
TraceId = X
SpanId = C
TraceId = X
SpanId = D
TraceId = X
SpanId = D
TraceId = X
SpanId = E
TraceId = X
SpanId = E
TraceId = X
SpanId = F
TraceId = X
SpanId = G
90
RentService
PaymentService
SecurityServiceBlockchainService
No TraceId
No SpanId
TraceId = X
SpanId = A
TraceId = X
SpanId = B
TraceId = X
SpanId = B
TraceId = X
SpanId = C
TraceId = X
SpanId = C
TraceId = X
SpanId = D
TraceId = X
SpanId = D
TraceId = X
SpanId = E
TraceId = X
SpanId = E
TraceId = X
SpanId = F
TraceId = X
SpanId = G
91
RentService
PaymentService
SecurityServiceBlockchainService
TraceId = X
SpanId = A
No TraceId
No SpanId
TraceId = X
SpanId = A
TraceId = X
SpanId = A
TraceId = X
SpanId = B
TraceId = X
SpanId = B
TraceId = X
SpanId = C
TraceId = X
SpanId = C
TraceId = X
SpanId = D
TraceId = X
SpanId = D
TraceId = X
SpanId = E
TraceId = X
SpanId = E
TraceId = X
SpanId = F
TraceId = X
SpanId = G
92
Парадокс централизации
Чтобы эффективно разрабатывать распределённые
приложения, нам нужны очень хорошие
централизованные библиотеки и инструменты
Например: логирование, health-checking, метрики,
обработка типовых ошибок, автодокументирование
93
Парадокс централизации
Чтобы эффективно разрабатывать распределённые
приложения, нам нужны очень хорошие
централизованные библиотеки и инструменты
Но: не выносите бизнес-логику или доменные объекты!
Не размывайте бизнес-контекст вашего API
94
Изоляция данных
95
96
Одно приложение - одна БД
Всё просто
N сервисов → 1 БД
Изоляция на уровне таблиц или схем
97
N сервисов → 1 БД
Изоляция через хранимые
процедуры 98
99
Transport Layer
API API API API API
100
Transport Layer
API API API API API
N сервисов → 1 БД
Распределённый монолит
101
N сервисов → N БД
102
N сервисов → N БД
Распределённые транзакции –
это больно 103
104
Transport Layer
API API API API API
Очень
много
кода
N сервисов → N БД
Ваше legacy тянет вас на дно
105
106
M сервисов → 1 БД
L сервисов → L БД
M + L = N, M << L
107
108
Transport Layer
APIAPI API API API
M сервисов → 1 БД
L сервисов → L БД
M + L = N, M << L
109
Доставка
110
war/ear
111
Зависимость от сервера приложений
executable fatJar
112
Зависимость от системных
библиотек
113
not war < make jar
executable fatJar/npm-пакет
114
Разный менеджмент для разных
форматов дистрибуции
docker/rkt/packer
115
116
not jar < make docker
scp fat.jar root@prod101:/home/app/
117
scp fat.jar root@prod101:/home/app/
Что делать с консистентостью?
Как быть с доступностью?
118
./gradlew deployToArtifactory
ansible -i [stage,dev,test] -t deploy
119
./gradlew deployToArtifactory
ansible -i [stage,dev,test] -t deploy
“Прибитая молотком” конфигурация
120
121
Как быстро масштабироваться?
Нужна оркестрация
122
123
mesos / kubernetes / ∞
124
Как использовать ресурсы
125
126
t
Bare
Metal
127
t
Bare
Metal
Virtual
Machines
128
t
Bare
Metal
Virtual
Machines
Lightweight
Containers
129
t
Bare
Metal
Virtual
Machines
Lightweight
Containers
130
Использование группы машин как
одной
WEB
WASTED
CACHE
WASTED WASTED
HADOOP
131
Представьте, что кластер это
просто одна большая машина
WEB
WASTED
CACHE
WASTED WASTED
HADOOP
WASTED
WEB
CACHE
HADOOP FREE FREE
132
yoman
Yo
start.spring.io
Ss
python
Py
lazybones
Lz
java
Ja
spring boot
Sb
gradle
Gr
asciidoctor
Ad
thrift
Th
docker
Dr
mesos
Ms
marathon
Ma
chronos
Ch
aurora
Au
Artifactory
Ar
Kubernetes
Kb
eureka
Eu
consul
Cl
etcd
Ed
zookeeper
Zk
hystrix
Hx
sleuth
Sl
zipkin
Zn
groovy
Gy
133
Data Isolation
Di
Centralization
paradox
Cp
LSD principle
Ls
DDD
Dd
Smart Docs
Sd
Dynamic Sharing
Ds
Smart Libs
Sl
SOA
So
ansible
An
Conway’s Law
Co
yoman
Yo
start.spring.io
Ss
python
Py
lazybones
Lz
java
Ja
spring boot
Sb
gradle
Gr
asciidoctor
Ad
thrift
Th
docker
Dr
mesos
Ms
marathon
Ma
chronos
Ch
aurora
Au
Artifactory
Ar
Kubernetes
Kb
eureka
Eu
consul
Cl
etcd
Ed
zookeeper
Zk
hystrix
Hx
sleuth
Sl
zipkin
Zn
groovy
Gy
134
Data Isolation
Di
Centralization
paradox
Cp
LSD principle
Ls
DDD
Dd
Smart Docs
Sd
Dynamic Sharing
Ds
Smart Libs
Sl
SOA
So
ansible
An
Conway’s Law
Co
?
A=F(Rq, FRq, NFRq,..........???............)
DevOps
OSS Domination
135
A=F(Rq, FRq, NFRq,.....человеки…..)
136
Кирилл Толкачев. Микросервисы: огонь, вода и девопс
«Колодцы»
Кирилл Толкачев. Микросервисы: огонь, вода и девопс
Преодолевать барьеры всегда
дорого
Manager
DBA
BA
UX
Developer QA
Operations
Software Engineer
Выводы
142
● Микросервисы - это просто
Выводы
143
● Микросервисы - это просто
● Микросервисы - это сложно
Выводы
144
● Микросервисы - это просто
● Микросервисы - это сложно
● А DevOps это не человек
Выводы
145
● Микросервисы - это просто
● Микросервисы - это сложно
● А DevOps это не человек
● Больше свободы
Выводы
146
● Микросервисы - это просто
● Микросервисы - это сложно
● А DevOps это не человек
● Больше свободы и больше ответственности
Спасибо! Готовы ответить на ваши вопросы
@tolkv
@aatarasoff
147
@lavcraft
@aatarasoff

More Related Content

PPTX
Сергей Баранов. Enterprise DevOps
PDF
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
PDF
從限制理論看 DevOps
PDF
"DevOps > CI+CD "
PPTX
Salesforce CI (Continuous Integration) - SFDX + Bitbucket Pipelines
PDF
Understanding DevOps in simpler way with Continuous Delivery
PPTX
Continuous delivery made
PDF
зотин Scrum, kanban, что дальше. история nokia
Сергей Баранов. Enterprise DevOps
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
從限制理論看 DevOps
"DevOps > CI+CD "
Salesforce CI (Continuous Integration) - SFDX + Bitbucket Pipelines
Understanding DevOps in simpler way with Continuous Delivery
Continuous delivery made
зотин Scrum, kanban, что дальше. история nokia

What's hot (20)

PPTX
Ultimate Git Workflow - Seoul 2015
PDF
Common blind spots on the journey to production vijay raghavan aravamudhan
PDF
TDD anche su iOS
PDF
Continuous integration at CartoDB March '16
PDF
Introduction to Docker - Learning containerization XP conference 2016
PDF
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
PDF
MA 2019. iOS Advanced. CI & CD. Fastlane + Gitlab
PPTX
Automation CICD
PPTX
DevOps - Continuous Integration, Continuous Delivery - let's talk
 
PPTX
Антон Семенченко | (EPAM Systems, DPI.Solutions )Сравнительный анализ инстру...
PPTX
不只自動化而且更敏捷的Android開發工具 gradle
PDF
Continuous Delivery vs Continuous Deployment | DevOps Methodology | Devops Tr...
PDF
Agile Fundamental Skill Set
PPTX
Controle do ciclo de vida do desenvolvimento de software com tfs vsts
PPTX
DevOps
PDF
PuppetConf 2016: Successful Puppet Implementation in Large Organizations – Ja...
PDF
Treat your servers like your Ruby App: Infrastructure as Code
PPTX
CI/CD Best Practices for Your DevOps Journey
PPTX
Fundamentals of DevOps and CI/CD
PDF
What manufacturing teaches about DevOps
Ultimate Git Workflow - Seoul 2015
Common blind spots on the journey to production vijay raghavan aravamudhan
TDD anche su iOS
Continuous integration at CartoDB March '16
Introduction to Docker - Learning containerization XP conference 2016
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
MA 2019. iOS Advanced. CI & CD. Fastlane + Gitlab
Automation CICD
DevOps - Continuous Integration, Continuous Delivery - let's talk
 
Антон Семенченко | (EPAM Systems, DPI.Solutions )Сравнительный анализ инстру...
不只自動化而且更敏捷的Android開發工具 gradle
Continuous Delivery vs Continuous Deployment | DevOps Methodology | Devops Tr...
Agile Fundamental Skill Set
Controle do ciclo de vida do desenvolvimento de software com tfs vsts
DevOps
PuppetConf 2016: Successful Puppet Implementation in Large Organizations – Ja...
Treat your servers like your Ruby App: Infrastructure as Code
CI/CD Best Practices for Your DevOps Journey
Fundamentals of DevOps and CI/CD
What manufacturing teaches about DevOps
Ad

Similar to Кирилл Толкачев. Микросервисы: огонь, вода и девопс (20)

PDF
WILD microSERVICES v2 (JEEConf Edition)
PDF
WILD microSERVICES v2
PDF
Java Day Minsk 2016 Keynote about Microservices in real world
PDF
Microservices for java architects it-symposium-2015-09-15
PDF
20141210 - Microservice Container
PDF
Microservices - Yet another buzzword
PPTX
MicroserviceArchitecture in detail over Monolith.
PPTX
Microservices, Docker deploy and Microservices source code in C#
PDF
API’s and Micro Services 0.5
PPTX
Introduction to Microservices
PDF
Microservices Interview Questions and Answers PDF By ScholarHat
PDF
170215 msa intro
PDF
AWS STARTUP DAY 2018 I If, how and when to adopt microservices
PDF
Microservices for java architects coders-conf-2015-05-15
PPTX
Net core microservice development made easy with azure dev spaces
PPTX
Microservices vs monolithics betabeers
PPTX
Vancouver Microservices Meetup - Kickoff Session
PDF
Microservices for Architects - Atlanta 2018-03-28
PPTX
Overview of azure microservices and the impact on integration
PPTX
Evolution of Application Development
WILD microSERVICES v2 (JEEConf Edition)
WILD microSERVICES v2
Java Day Minsk 2016 Keynote about Microservices in real world
Microservices for java architects it-symposium-2015-09-15
20141210 - Microservice Container
Microservices - Yet another buzzword
MicroserviceArchitecture in detail over Monolith.
Microservices, Docker deploy and Microservices source code in C#
API’s and Micro Services 0.5
Introduction to Microservices
Microservices Interview Questions and Answers PDF By ScholarHat
170215 msa intro
AWS STARTUP DAY 2018 I If, how and when to adopt microservices
Microservices for java architects coders-conf-2015-05-15
Net core microservice development made easy with azure dev spaces
Microservices vs monolithics betabeers
Vancouver Microservices Meetup - Kickoff Session
Microservices for Architects - Atlanta 2018-03-28
Overview of azure microservices and the impact on integration
Evolution of Application Development
Ad

More from ScrumTrek (20)

PDF
Александра Баптизманская, Никита Романов. Хочешь Agile в маркетинге - спроси ...
PDF
Светлана Байгалиева (MindGym). Встань за штурвал
PDF
Александр Тупиков. Введение в Scrum
PDF
Сергей Чирва. Как Scrum превращает завод в IT-компанию
PDF
Юрий Соболев. Проблемы и решения Scrum на практике
PDF
Анна Обухова. Scrum и сила воли
PPTX
TealTeam. Главный критерий при выборе нового члена команды
PPTX
Анастасия Мизитова. Компетенции для Agile HR
PPTX
Марина Львова. Изменение роли HR в Agile-компании
PPTX
Асхат Уразбаев. Три вопроса к HR службе от аджайл-коуча
PPTX
Александр Корольков. LeSS Huge
PPTX
DevOps для Legacy-продуктов
PPTX
Петр Клименко. DevOps Трансформация для SIEBEL CRM
PDF
Евгений Кривошеев. Beyond DevOps
PDF
Асхат Уразбаев. Крутые организации, счастливые сотрудники
PDF
Олег Бахмутов, Михаил Плотников, Илья Емельянов. 3 "кита" Agile
PDF
Алексей Ионов. Agile-трансформация: что делать, чтобы потом не искать виноватых?
PDF
Иван Дубровин. Почему государство должно быть Agile?
PDF
Алексей Воронин. Business Agility
PDF
Максим Махеров. Секреты Agile-маркетинга в производственной компании
Александра Баптизманская, Никита Романов. Хочешь Agile в маркетинге - спроси ...
Светлана Байгалиева (MindGym). Встань за штурвал
Александр Тупиков. Введение в Scrum
Сергей Чирва. Как Scrum превращает завод в IT-компанию
Юрий Соболев. Проблемы и решения Scrum на практике
Анна Обухова. Scrum и сила воли
TealTeam. Главный критерий при выборе нового члена команды
Анастасия Мизитова. Компетенции для Agile HR
Марина Львова. Изменение роли HR в Agile-компании
Асхат Уразбаев. Три вопроса к HR службе от аджайл-коуча
Александр Корольков. LeSS Huge
DevOps для Legacy-продуктов
Петр Клименко. DevOps Трансформация для SIEBEL CRM
Евгений Кривошеев. Beyond DevOps
Асхат Уразбаев. Крутые организации, счастливые сотрудники
Олег Бахмутов, Михаил Плотников, Илья Емельянов. 3 "кита" Agile
Алексей Ионов. Agile-трансформация: что делать, чтобы потом не искать виноватых?
Иван Дубровин. Почему государство должно быть Agile?
Алексей Воронин. Business Agility
Максим Махеров. Секреты Agile-маркетинга в производственной компании

Recently uploaded (20)

PDF
Exploratory_Data_Analysis_Fundamentals.pdf
PDF
86236642-Electric-Loco-Shed.pdf jfkduklg
PDF
R24 SURVEYING LAB MANUAL for civil enggi
PPTX
Nature of X-rays, X- Ray Equipment, Fluoroscopy
PDF
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
PDF
BIO-INSPIRED HORMONAL MODULATION AND ADAPTIVE ORCHESTRATION IN S-AI-GPT
PDF
Integrating Fractal Dimension and Time Series Analysis for Optimized Hyperspe...
PPTX
6ME3A-Unit-II-Sensors and Actuators_Handouts.pptx
PPTX
Safety Seminar civil to be ensured for safe working.
PDF
Abrasive, erosive and cavitation wear.pdf
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PPTX
UNIT - 3 Total quality Management .pptx
PPTX
CURRICULAM DESIGN engineering FOR CSE 2025.pptx
PDF
PREDICTION OF DIABETES FROM ELECTRONIC HEALTH RECORDS
PDF
Artificial Superintelligence (ASI) Alliance Vision Paper.pdf
PPTX
Fundamentals of Mechanical Engineering.pptx
PDF
A SYSTEMATIC REVIEW OF APPLICATIONS IN FRAUD DETECTION
PDF
Analyzing Impact of Pakistan Economic Corridor on Import and Export in Pakist...
PPTX
Artificial Intelligence
PDF
BIO-INSPIRED ARCHITECTURE FOR PARSIMONIOUS CONVERSATIONAL INTELLIGENCE : THE ...
Exploratory_Data_Analysis_Fundamentals.pdf
86236642-Electric-Loco-Shed.pdf jfkduklg
R24 SURVEYING LAB MANUAL for civil enggi
Nature of X-rays, X- Ray Equipment, Fluoroscopy
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
BIO-INSPIRED HORMONAL MODULATION AND ADAPTIVE ORCHESTRATION IN S-AI-GPT
Integrating Fractal Dimension and Time Series Analysis for Optimized Hyperspe...
6ME3A-Unit-II-Sensors and Actuators_Handouts.pptx
Safety Seminar civil to be ensured for safe working.
Abrasive, erosive and cavitation wear.pdf
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
UNIT - 3 Total quality Management .pptx
CURRICULAM DESIGN engineering FOR CSE 2025.pptx
PREDICTION OF DIABETES FROM ELECTRONIC HEALTH RECORDS
Artificial Superintelligence (ASI) Alliance Vision Paper.pdf
Fundamentals of Mechanical Engineering.pptx
A SYSTEMATIC REVIEW OF APPLICATIONS IN FRAUD DETECTION
Analyzing Impact of Pakistan Economic Corridor on Import and Export in Pakist...
Artificial Intelligence
BIO-INSPIRED ARCHITECTURE FOR PARSIMONIOUS CONVERSATIONAL INTELLIGENCE : THE ...

Кирилл Толкачев. Микросервисы: огонь, вода и девопс