SlideShare a Scribd company logo
1 of 13
Download to read offline
O P O W E R C O N F I D E N T I A L D O N O T D I S T R I1
From monolith to microservices
or why cool theory could be a painful practice
O P O W E R C O N F I D E N T I A L D O N O T D I S T R I2
Boring Theory
“Whenever a theory appears to you as the only possible one, take
this as a sign that you have neither understood the theory nor the
problem which it was intended to solve.”― Karl Popper
O P O W E R C O N F I D E N T I A L D O N O T D I S T R I3
Spherical Monolith Architecture in Vacuum
Pros:
1. Simple to develop
2. Simple to deploy
3. Simple to scale
4. Simple to test
Cons:
1. Huge codebase
2. Need to deploy whole app
3. Loyalty to technology stack
chosen once
Don't put all your
eggs in one basket
O P O W E R C O N F I D E N T I A L D O N O T D I S T R I4
Spherical Microservice Architecture in Vacuum
Cons:
1. Relationships could be tricky
2. Testing is more difficult
3. Complex deployment
4. Increased resource
consumption
Pros:
1. Easy to develop and
understand
2. Independent developing,
testing and deployment
3. Easy to scale
4. Fault tolerant
5. Easy to experiment with
technology stack
O P O W E R C O N F I D E N T I A L D O N O T D I S T R I5
Theoretical Monolith to Microservices Migration
1. Split up monolith by functionality
2. Find dependencies
3. Make each part as a service
4. ???
5. PROFIT
O P O W E R C O N F I D E N T I A L D O N O T D I S T R I6
Funny Practice
“It doesn't matter how beautiful your theory is, it doesn't matter how
smart you are. If it doesn't agree with experiment, it's wrong.”
― Richard P. Feynman
O P O W E R C O N F I D E N T I A L D O N O T D I S T R I7
Real Life Monolith architecture
1. Your app knows how the T-Rex looks like
2. If it’s working do not touch it
3. If you know how to do better look at p.2
4. Monolith is huge and sometimes you think
even sales guys pushed some code there
5. Lucky you if test coverage exists
O P O W E R C O N F I D E N T I A L D O N O T D I S T R I8
Real Life Microservice architecture
1. You always depend from service which not released yet
2. Microservices are often macroservices
3. Microservices temporary depend from monolith
4. I’m joking not temporary
5. Regression testing is a significant challenge
Monolith
DB service
Feature Service A
Feature Service B
Feature Service C
O P O W E R C O N F I D E N T I A L D O N O T D I S T R I9
Migration to microservices in practice
1. Impossible to migrate by one shot
2. Microservice could become a new monolith
3. Two pizzas is not enough to feed your team
4. There is no place for refactoring
5. Dependencies Dependencies Dependencies
O P O W E R C O N F I D E N T I A L D O N O T D I S T R I10
w
How to deal with it?
“A man who carries a cat by the tail learns something he can learn in no
other way.” ― Mark Twain
O P O W E R C O N F I D E N T I A L D O N O T D I S T R I11
Useful tips and tricks
1. There is no silver bullet
2. Think about cross team communication
3. Think about shared resources
4. Think about regression testing
5. Think about integration in existing
infrastructure
6. Think about service size
7. Stay calm it’s real world, dude
O P O W E R C O N F I D E N T I A L D O N O T D I S T R I12
Useful links and resources
1. Igor Vahromeev: Archmage presentation on Opower Open Doors
2. Dropwizzard framework http://www.dropwizard.io/
3. Apache Zookeeper https://zookeeper.apache.org/
4. Any book of system analysis. Don’t you think microservice is a
brand new idea?
5. Choose your own ninja way
O P O W E R C O N F I D E N T I A L D O N O T D I S T R I13
Questions?

More Related Content

Viewers also liked

Chord recognition mac lab presentation
Chord recognition mac lab presentationChord recognition mac lab presentation
Chord recognition mac lab presentation牧衡 楊
 
Slide pack Ulster Bank NI PMI March 2016
Slide pack Ulster Bank NI PMI March 2016Slide pack Ulster Bank NI PMI March 2016
Slide pack Ulster Bank NI PMI March 2016Richard Ramsey
 
The Power of the ePatient: Implications of Emerging Technologies in Cancer Care
The Power of the ePatient: Implications of Emerging Technologies in Cancer Care The Power of the ePatient: Implications of Emerging Technologies in Cancer Care
The Power of the ePatient: Implications of Emerging Technologies in Cancer Care Iris Thiele Isip-Tan
 

Viewers also liked (6)

Chord recognition mac lab presentation
Chord recognition mac lab presentationChord recognition mac lab presentation
Chord recognition mac lab presentation
 
Slide pack Ulster Bank NI PMI March 2016
Slide pack Ulster Bank NI PMI March 2016Slide pack Ulster Bank NI PMI March 2016
Slide pack Ulster Bank NI PMI March 2016
 
Filed Complaint
Filed ComplaintFiled Complaint
Filed Complaint
 
História de curitibanos
História de curitibanosHistória de curitibanos
História de curitibanos
 
The Power of the ePatient: Implications of Emerging Technologies in Cancer Care
The Power of the ePatient: Implications of Emerging Technologies in Cancer Care The Power of the ePatient: Implications of Emerging Technologies in Cancer Care
The Power of the ePatient: Implications of Emerging Technologies in Cancer Care
 
The Doctor is Online
The Doctor is OnlineThe Doctor is Online
The Doctor is Online
 

Similar to Java/Scala Lab 2016. Вадим Кузьменко: От монолита к микросервисам. Как красивая теория становится болью и страданием на практике.​

Effective feedback design
Effective feedback designEffective feedback design
Effective feedback designHarshal Patil
 
Developer Journey - from dev to entrepreneur, from idea to market
Developer Journey - from dev to entrepreneur, from idea to marketDeveloper Journey - from dev to entrepreneur, from idea to market
Developer Journey - from dev to entrepreneur, from idea to marketPaul Golding
 
Simon Harrison RWE - Chain of Things 010616 final
Simon Harrison RWE - Chain of Things 010616 finalSimon Harrison RWE - Chain of Things 010616 final
Simon Harrison RWE - Chain of Things 010616 finalSimon Harrison
 
Design Thinking vs Lean Startup - which to use, and when
Design Thinking vs Lean Startup - which to use, and whenDesign Thinking vs Lean Startup - which to use, and when
Design Thinking vs Lean Startup - which to use, and whenOXC Design + Strategy
 
Presentation microsoft
Presentation microsoftPresentation microsoft
Presentation microsoftLauraGrenade
 
Daniel Lance - What "You've Got Mail" Taught Me About Cyber Security
Daniel Lance - What "You've Got Mail" Taught Me About Cyber SecurityDaniel Lance - What "You've Got Mail" Taught Me About Cyber Security
Daniel Lance - What "You've Got Mail" Taught Me About Cyber SecurityEnergySec
 
Opsec for security researchers
Opsec for security researchersOpsec for security researchers
Opsec for security researchersvicenteDiaz_KL
 
Usable Design Systems with Marti Gold
Usable Design Systems with Marti GoldUsable Design Systems with Marti Gold
Usable Design Systems with Marti GoldSusan Price
 
Cloudcomputing- Chris Francis- Digibiz'09
Cloudcomputing- Chris Francis- Digibiz'09Cloudcomputing- Chris Francis- Digibiz'09
Cloudcomputing- Chris Francis- Digibiz'09Digibiz'09 Conference
 
Plagiarism, Netiquette, Copyright issues
Plagiarism, Netiquette, Copyright issuesPlagiarism, Netiquette, Copyright issues
Plagiarism, Netiquette, Copyright issuesRyleeSwag
 
Plagiarism, Netiquette, Copyright issues
Plagiarism, Netiquette, Copyright issuesPlagiarism, Netiquette, Copyright issues
Plagiarism, Netiquette, Copyright issuesRyleeSwag
 
Create an IoT Gateway and Establish a Data Pipeline to AWS IoT with Intel - I...
Create an IoT Gateway and Establish a Data Pipeline to AWS IoT with Intel - I...Create an IoT Gateway and Establish a Data Pipeline to AWS IoT with Intel - I...
Create an IoT Gateway and Establish a Data Pipeline to AWS IoT with Intel - I...Amazon Web Services
 
Painless OpenStack Deployments Powered by Puppet
Painless OpenStack Deployments Powered by PuppetPainless OpenStack Deployments Powered by Puppet
Painless OpenStack Deployments Powered by Puppetaedocw
 
Virtual Training in the Access Industry
Virtual Training in the Access IndustryVirtual Training in the Access Industry
Virtual Training in the Access IndustryAugmentedWorldExpo
 
Futures beyond distribution
Futures beyond distributionFutures beyond distribution
Futures beyond distributionPantopicon
 
Plagiarism, Netiquette, Copyright issues
Plagiarism, Netiquette, Copyright issuesPlagiarism, Netiquette, Copyright issues
Plagiarism, Netiquette, Copyright issuesRyleeSwag
 

Similar to Java/Scala Lab 2016. Вадим Кузьменко: От монолита к микросервисам. Как красивая теория становится болью и страданием на практике.​ (20)

Effective feedback design
Effective feedback designEffective feedback design
Effective feedback design
 
Developer Journey - from dev to entrepreneur, from idea to market
Developer Journey - from dev to entrepreneur, from idea to marketDeveloper Journey - from dev to entrepreneur, from idea to market
Developer Journey - from dev to entrepreneur, from idea to market
 
Simon Harrison RWE - Chain of Things 010616 final
Simon Harrison RWE - Chain of Things 010616 finalSimon Harrison RWE - Chain of Things 010616 final
Simon Harrison RWE - Chain of Things 010616 final
 
The IoT For Real
The IoT For Real The IoT For Real
The IoT For Real
 
Design Thinking vs Lean Startup - which to use, and when
Design Thinking vs Lean Startup - which to use, and whenDesign Thinking vs Lean Startup - which to use, and when
Design Thinking vs Lean Startup - which to use, and when
 
Presentation microsoft
Presentation microsoftPresentation microsoft
Presentation microsoft
 
Daniel Lance - What "You've Got Mail" Taught Me About Cyber Security
Daniel Lance - What "You've Got Mail" Taught Me About Cyber SecurityDaniel Lance - What "You've Got Mail" Taught Me About Cyber Security
Daniel Lance - What "You've Got Mail" Taught Me About Cyber Security
 
Lean vs design thinking
Lean vs design thinkingLean vs design thinking
Lean vs design thinking
 
Opsec for security researchers
Opsec for security researchersOpsec for security researchers
Opsec for security researchers
 
Usable Design Systems with Marti Gold
Usable Design Systems with Marti GoldUsable Design Systems with Marti Gold
Usable Design Systems with Marti Gold
 
Dec2018 istanbul-2
Dec2018 istanbul-2Dec2018 istanbul-2
Dec2018 istanbul-2
 
Cloudcomputing- Chris Francis- Digibiz'09
Cloudcomputing- Chris Francis- Digibiz'09Cloudcomputing- Chris Francis- Digibiz'09
Cloudcomputing- Chris Francis- Digibiz'09
 
Plagiarism, Netiquette, Copyright issues
Plagiarism, Netiquette, Copyright issuesPlagiarism, Netiquette, Copyright issues
Plagiarism, Netiquette, Copyright issues
 
Plagiarism, Netiquette, Copyright issues
Plagiarism, Netiquette, Copyright issuesPlagiarism, Netiquette, Copyright issues
Plagiarism, Netiquette, Copyright issues
 
Create an IoT Gateway and Establish a Data Pipeline to AWS IoT with Intel - I...
Create an IoT Gateway and Establish a Data Pipeline to AWS IoT with Intel - I...Create an IoT Gateway and Establish a Data Pipeline to AWS IoT with Intel - I...
Create an IoT Gateway and Establish a Data Pipeline to AWS IoT with Intel - I...
 
Painless OpenStack Deployments Powered by Puppet
Painless OpenStack Deployments Powered by PuppetPainless OpenStack Deployments Powered by Puppet
Painless OpenStack Deployments Powered by Puppet
 
Virtual Training in the Access Industry
Virtual Training in the Access IndustryVirtual Training in the Access Industry
Virtual Training in the Access Industry
 
Futures beyond distribution
Futures beyond distributionFutures beyond distribution
Futures beyond distribution
 
Intro to Mobile UX
Intro to Mobile UXIntro to Mobile UX
Intro to Mobile UX
 
Plagiarism, Netiquette, Copyright issues
Plagiarism, Netiquette, Copyright issuesPlagiarism, Netiquette, Copyright issues
Plagiarism, Netiquette, Copyright issues
 

More from GeeksLab Odessa

DataScience Lab2017_Коррекция геометрических искажений оптических спутниковых...
DataScience Lab2017_Коррекция геометрических искажений оптических спутниковых...DataScience Lab2017_Коррекция геометрических искажений оптических спутниковых...
DataScience Lab2017_Коррекция геометрических искажений оптических спутниковых...GeeksLab Odessa
 
DataScience Lab 2017_Kappa Architecture: How to implement a real-time streami...
DataScience Lab 2017_Kappa Architecture: How to implement a real-time streami...DataScience Lab 2017_Kappa Architecture: How to implement a real-time streami...
DataScience Lab 2017_Kappa Architecture: How to implement a real-time streami...GeeksLab Odessa
 
DataScience Lab 2017_Блиц-доклад_Турский Виктор
DataScience Lab 2017_Блиц-доклад_Турский ВикторDataScience Lab 2017_Блиц-доклад_Турский Виктор
DataScience Lab 2017_Блиц-доклад_Турский ВикторGeeksLab Odessa
 
DataScience Lab 2017_Обзор методов детекции лиц на изображение
DataScience Lab 2017_Обзор методов детекции лиц на изображениеDataScience Lab 2017_Обзор методов детекции лиц на изображение
DataScience Lab 2017_Обзор методов детекции лиц на изображениеGeeksLab Odessa
 
DataScienceLab2017_Сходство пациентов: вычистка дубликатов и предсказание про...
DataScienceLab2017_Сходство пациентов: вычистка дубликатов и предсказание про...DataScienceLab2017_Сходство пациентов: вычистка дубликатов и предсказание про...
DataScienceLab2017_Сходство пациентов: вычистка дубликатов и предсказание про...GeeksLab Odessa
 
DataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-докладDataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-докладGeeksLab Odessa
 
DataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-докладDataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-докладGeeksLab Odessa
 
DataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-докладDataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-докладGeeksLab Odessa
 
DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...
DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...
DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...GeeksLab Odessa
 
DataScienceLab2017_BioVec: Word2Vec в задачах анализа геномных данных и биоин...
DataScienceLab2017_BioVec: Word2Vec в задачах анализа геномных данных и биоин...DataScienceLab2017_BioVec: Word2Vec в задачах анализа геномных данных и биоин...
DataScienceLab2017_BioVec: Word2Vec в задачах анализа геномных данных и биоин...GeeksLab Odessa
 
DataScienceLab2017_Data Sciences и Big Data в Телекоме_Александр Саенко
DataScienceLab2017_Data Sciences и Big Data в Телекоме_Александр Саенко DataScienceLab2017_Data Sciences и Big Data в Телекоме_Александр Саенко
DataScienceLab2017_Data Sciences и Big Data в Телекоме_Александр Саенко GeeksLab Odessa
 
DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...
DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...
DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...GeeksLab Odessa
 
DataScience Lab 2017_Мониторинг модных трендов с помощью глубокого обучения и...
DataScience Lab 2017_Мониторинг модных трендов с помощью глубокого обучения и...DataScience Lab 2017_Мониторинг модных трендов с помощью глубокого обучения и...
DataScience Lab 2017_Мониторинг модных трендов с помощью глубокого обучения и...GeeksLab Odessa
 
DataScience Lab 2017_Кто здесь? Автоматическая разметка спикеров на телефонны...
DataScience Lab 2017_Кто здесь? Автоматическая разметка спикеров на телефонны...DataScience Lab 2017_Кто здесь? Автоматическая разметка спикеров на телефонны...
DataScience Lab 2017_Кто здесь? Автоматическая разметка спикеров на телефонны...GeeksLab Odessa
 
DataScience Lab 2017_From bag of texts to bag of clusters_Терпиль Евгений / П...
DataScience Lab 2017_From bag of texts to bag of clusters_Терпиль Евгений / П...DataScience Lab 2017_From bag of texts to bag of clusters_Терпиль Евгений / П...
DataScience Lab 2017_From bag of texts to bag of clusters_Терпиль Евгений / П...GeeksLab Odessa
 
DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...
DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...
DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...GeeksLab Odessa
 
DataScienceLab2017_Оптимизация гиперпараметров машинного обучения при помощи ...
DataScienceLab2017_Оптимизация гиперпараметров машинного обучения при помощи ...DataScienceLab2017_Оптимизация гиперпараметров машинного обучения при помощи ...
DataScienceLab2017_Оптимизация гиперпараметров машинного обучения при помощи ...GeeksLab Odessa
 
DataScienceLab2017_Как знать всё о покупателях (или почти всё)?_Дарина Перемот
DataScienceLab2017_Как знать всё о покупателях (или почти всё)?_Дарина Перемот DataScienceLab2017_Как знать всё о покупателях (или почти всё)?_Дарина Перемот
DataScienceLab2017_Как знать всё о покупателях (или почти всё)?_Дарина Перемот GeeksLab Odessa
 
JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...
JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...
JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...GeeksLab Odessa
 
JS Lab2017_Под микроскопом: блеск и нищета микросервисов на node.js
JS Lab2017_Под микроскопом: блеск и нищета микросервисов на node.js JS Lab2017_Под микроскопом: блеск и нищета микросервисов на node.js
JS Lab2017_Под микроскопом: блеск и нищета микросервисов на node.js GeeksLab Odessa
 

More from GeeksLab Odessa (20)

DataScience Lab2017_Коррекция геометрических искажений оптических спутниковых...
DataScience Lab2017_Коррекция геометрических искажений оптических спутниковых...DataScience Lab2017_Коррекция геометрических искажений оптических спутниковых...
DataScience Lab2017_Коррекция геометрических искажений оптических спутниковых...
 
DataScience Lab 2017_Kappa Architecture: How to implement a real-time streami...
DataScience Lab 2017_Kappa Architecture: How to implement a real-time streami...DataScience Lab 2017_Kappa Architecture: How to implement a real-time streami...
DataScience Lab 2017_Kappa Architecture: How to implement a real-time streami...
 
DataScience Lab 2017_Блиц-доклад_Турский Виктор
DataScience Lab 2017_Блиц-доклад_Турский ВикторDataScience Lab 2017_Блиц-доклад_Турский Виктор
DataScience Lab 2017_Блиц-доклад_Турский Виктор
 
DataScience Lab 2017_Обзор методов детекции лиц на изображение
DataScience Lab 2017_Обзор методов детекции лиц на изображениеDataScience Lab 2017_Обзор методов детекции лиц на изображение
DataScience Lab 2017_Обзор методов детекции лиц на изображение
 
DataScienceLab2017_Сходство пациентов: вычистка дубликатов и предсказание про...
DataScienceLab2017_Сходство пациентов: вычистка дубликатов и предсказание про...DataScienceLab2017_Сходство пациентов: вычистка дубликатов и предсказание про...
DataScienceLab2017_Сходство пациентов: вычистка дубликатов и предсказание про...
 
DataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-докладDataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-доклад
 
DataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-докладDataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-доклад
 
DataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-докладDataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-доклад
 
DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...
DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...
DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...
 
DataScienceLab2017_BioVec: Word2Vec в задачах анализа геномных данных и биоин...
DataScienceLab2017_BioVec: Word2Vec в задачах анализа геномных данных и биоин...DataScienceLab2017_BioVec: Word2Vec в задачах анализа геномных данных и биоин...
DataScienceLab2017_BioVec: Word2Vec в задачах анализа геномных данных и биоин...
 
DataScienceLab2017_Data Sciences и Big Data в Телекоме_Александр Саенко
DataScienceLab2017_Data Sciences и Big Data в Телекоме_Александр Саенко DataScienceLab2017_Data Sciences и Big Data в Телекоме_Александр Саенко
DataScienceLab2017_Data Sciences и Big Data в Телекоме_Александр Саенко
 
DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...
DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...
DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...
 
DataScience Lab 2017_Мониторинг модных трендов с помощью глубокого обучения и...
DataScience Lab 2017_Мониторинг модных трендов с помощью глубокого обучения и...DataScience Lab 2017_Мониторинг модных трендов с помощью глубокого обучения и...
DataScience Lab 2017_Мониторинг модных трендов с помощью глубокого обучения и...
 
DataScience Lab 2017_Кто здесь? Автоматическая разметка спикеров на телефонны...
DataScience Lab 2017_Кто здесь? Автоматическая разметка спикеров на телефонны...DataScience Lab 2017_Кто здесь? Автоматическая разметка спикеров на телефонны...
DataScience Lab 2017_Кто здесь? Автоматическая разметка спикеров на телефонны...
 
DataScience Lab 2017_From bag of texts to bag of clusters_Терпиль Евгений / П...
DataScience Lab 2017_From bag of texts to bag of clusters_Терпиль Евгений / П...DataScience Lab 2017_From bag of texts to bag of clusters_Терпиль Евгений / П...
DataScience Lab 2017_From bag of texts to bag of clusters_Терпиль Евгений / П...
 
DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...
DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...
DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...
 
DataScienceLab2017_Оптимизация гиперпараметров машинного обучения при помощи ...
DataScienceLab2017_Оптимизация гиперпараметров машинного обучения при помощи ...DataScienceLab2017_Оптимизация гиперпараметров машинного обучения при помощи ...
DataScienceLab2017_Оптимизация гиперпараметров машинного обучения при помощи ...
 
DataScienceLab2017_Как знать всё о покупателях (или почти всё)?_Дарина Перемот
DataScienceLab2017_Как знать всё о покупателях (или почти всё)?_Дарина Перемот DataScienceLab2017_Как знать всё о покупателях (или почти всё)?_Дарина Перемот
DataScienceLab2017_Как знать всё о покупателях (или почти всё)?_Дарина Перемот
 
JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...
JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...
JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...
 
JS Lab2017_Под микроскопом: блеск и нищета микросервисов на node.js
JS Lab2017_Под микроскопом: блеск и нищета микросервисов на node.js JS Lab2017_Под микроскопом: блеск и нищета микросервисов на node.js
JS Lab2017_Под микроскопом: блеск и нищета микросервисов на node.js
 

Recently uploaded

What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 

Recently uploaded (20)

What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 

Java/Scala Lab 2016. Вадим Кузьменко: От монолита к микросервисам. Как красивая теория становится болью и страданием на практике.​

  • 1. O P O W E R C O N F I D E N T I A L D O N O T D I S T R I1 From monolith to microservices or why cool theory could be a painful practice
  • 2. O P O W E R C O N F I D E N T I A L D O N O T D I S T R I2 Boring Theory “Whenever a theory appears to you as the only possible one, take this as a sign that you have neither understood the theory nor the problem which it was intended to solve.”― Karl Popper
  • 3. O P O W E R C O N F I D E N T I A L D O N O T D I S T R I3 Spherical Monolith Architecture in Vacuum Pros: 1. Simple to develop 2. Simple to deploy 3. Simple to scale 4. Simple to test Cons: 1. Huge codebase 2. Need to deploy whole app 3. Loyalty to technology stack chosen once Don't put all your eggs in one basket
  • 4. O P O W E R C O N F I D E N T I A L D O N O T D I S T R I4 Spherical Microservice Architecture in Vacuum Cons: 1. Relationships could be tricky 2. Testing is more difficult 3. Complex deployment 4. Increased resource consumption Pros: 1. Easy to develop and understand 2. Independent developing, testing and deployment 3. Easy to scale 4. Fault tolerant 5. Easy to experiment with technology stack
  • 5. O P O W E R C O N F I D E N T I A L D O N O T D I S T R I5 Theoretical Monolith to Microservices Migration 1. Split up monolith by functionality 2. Find dependencies 3. Make each part as a service 4. ??? 5. PROFIT
  • 6. O P O W E R C O N F I D E N T I A L D O N O T D I S T R I6 Funny Practice “It doesn't matter how beautiful your theory is, it doesn't matter how smart you are. If it doesn't agree with experiment, it's wrong.” ― Richard P. Feynman
  • 7. O P O W E R C O N F I D E N T I A L D O N O T D I S T R I7 Real Life Monolith architecture 1. Your app knows how the T-Rex looks like 2. If it’s working do not touch it 3. If you know how to do better look at p.2 4. Monolith is huge and sometimes you think even sales guys pushed some code there 5. Lucky you if test coverage exists
  • 8. O P O W E R C O N F I D E N T I A L D O N O T D I S T R I8 Real Life Microservice architecture 1. You always depend from service which not released yet 2. Microservices are often macroservices 3. Microservices temporary depend from monolith 4. I’m joking not temporary 5. Regression testing is a significant challenge Monolith DB service Feature Service A Feature Service B Feature Service C
  • 9. O P O W E R C O N F I D E N T I A L D O N O T D I S T R I9 Migration to microservices in practice 1. Impossible to migrate by one shot 2. Microservice could become a new monolith 3. Two pizzas is not enough to feed your team 4. There is no place for refactoring 5. Dependencies Dependencies Dependencies
  • 10. O P O W E R C O N F I D E N T I A L D O N O T D I S T R I10 w How to deal with it? “A man who carries a cat by the tail learns something he can learn in no other way.” ― Mark Twain
  • 11. O P O W E R C O N F I D E N T I A L D O N O T D I S T R I11 Useful tips and tricks 1. There is no silver bullet 2. Think about cross team communication 3. Think about shared resources 4. Think about regression testing 5. Think about integration in existing infrastructure 6. Think about service size 7. Stay calm it’s real world, dude
  • 12. O P O W E R C O N F I D E N T I A L D O N O T D I S T R I12 Useful links and resources 1. Igor Vahromeev: Archmage presentation on Opower Open Doors 2. Dropwizzard framework http://www.dropwizard.io/ 3. Apache Zookeeper https://zookeeper.apache.org/ 4. Any book of system analysis. Don’t you think microservice is a brand new idea? 5. Choose your own ninja way
  • 13. O P O W E R C O N F I D E N T I A L D O N O T D I S T R I13 Questions?