SlideShare a Scribd company logo
Microservices.
Mastering Chaos
©2000-2017 PortaOne, Inc. All rights reserved
Maxim Kondratenko
Head of Development department
Antiplan
● What is service/microservice oriented
architecture
Antiplan
● What is service/microservice oriented
architecture
● History
Antiplan
● What is service/microservice oriented
architecture
● History
● Comparing (monolith vs microservices)
Plan
Problems :
Plan
Problems :
● At the beginning
○ Organization
○ Technical
Plan
Problems :
● At the beginning
○ Organization
○ Technical
● During development
Plan
Problems :
● At the beginning
○ Organization
○ Technical
● During development
● While testing
Plan
Problems :
● At the beginning
○ Organization
○ Technical
● During development
● While testing
● In production
Problems at the beginning
Problems at the beginning
LEGACY
Problems at the beginning.
Organization (legacy)
"Organizations which design systems ... are
constrained to produce designs which are copies of
the communication structures of these
organizations."
M. Conway
Problems at the beginning.
Teams for monolith
Conway's Law in action
(https://martinfowler.com/articles/microservices.html)
Problems at the beginning.
Teams for microservices
Service boundaries reinforced by team boundaries
(https://martinfowler.com/articles/microservices.html)
Problems at the beginning.
Organization (legacy)
Problems at the beginning.
Organization (legacy)
● Only one host for running the service
Problems at the beginning.
Organization (legacy)
● Only one host for running the service
● Any possible way used to get data
Problems at the beginning.
Organization (legacy)
● Only one host for running the service
● Any possible way used to get data
● All data is located “nearby”
Monolith first! Or not?
(https://martinfowler.com/bliki/MicroservicePremium.html)
Problems at the beginning
(technical). “Citizen” rules
Define:
Problems at the beginning
(technical). “Citizen” rules
Define:
● Running env (bare metal/VM/container;
host/guest OS; rpm/image/git)
Problems at the beginning
(technical). “Citizen” rules
Define:
● Running env (bare metal/VM/container;
host/guest OS; rpm/image/git)
● Update policy (major/hotfixes/API)
Problems at the beginning
(technical). “Citizen” rules
Define:
● Running env (bare metal/VM/container;
host/guest OS; rpm/image/git)
● Update policy (major/hotfixes/API)
● One common name format (domain names)
Problems at the beginning
(technical). “Citizen” rules
Define:
● Running env (bare metal/VM/container;
host/guest OS; rpm/image/git)
● Update policy (major/hotfixes/API)
● One common name format (domain names)
● Communication protocol (RPC/messages)
Problems at the beginning
(technical). “Citizen” rules
Decide whether to use:
Problems at the beginning
(technical). “Citizen” rules
Decide whether to use:
● Orchestration system
Problems at the beginning
(technical). “Citizen” rules
Decide whether to use:
● Orchestration system
● Service discovery (use domain names)
Problems at the beginning
(technical). “Citizen” rules
Decide whether to use:
● Orchestration system
● Service discovery (use domain names)
● Secured/unsecured communication channels
Problems at the beginning
(technical). “Citizen” rules
Decide whether to use:
● Orchestration system
● Service discovery (use domain names)
● Secured/unsecured communication channels
● Scalable services
Problems at the beginning
(technical). “Citizen” rules
Decide whether to use:
● Orchestration system
● Service discovery (use domain names)
● Secured/unsecured communication channels
● Scalable services
● Stateless/stateful services
Problems at the beginning.
Summary
● Get rid of monolith in the head
Problems at the beginning.
Summary
● Get rid of monolith in the head
● Prepare your background
Problems at the beginning.
Summary
● Get rid of monolith in the head
● Prepare your background
● Make a plan
Problems at the beginning.
Summary
● Get rid of monolith in the head
● Prepare your background
● Make a plan
● Microservices can be as much effective
as difficult
Problems during development
Usage of shared libraries
Keep in mind
“network in the middle”
Distributed functions calls
(https://martinfowler.com/articles/distributed-objects-microservices.html)
Problems with API
● Get data via separate call
Problems with API
● Get data via separate call
● Get extra data
Problems with API
● Get data via separate call
● Get extra data
● Cache RPC results
Problems with API
● Get data via separate call
● Get extra data
● Cache RPC results
● Chain of calls
Problems with API
● Get data via separate call
● Get extra data
● Cache RPC results
● Chain of calls
● Versioning
Problems with API
● Get data via separate call
● Get extra data
● Cache RPC results
● Chain of calls
● Versioning
● APIs are forever
Documentation
Development environment
Used for development/testing:
Development environment
Used for development/testing:
● Own PC/laptop
Development environment
Used for development/testing:
● Own PC/laptop
● Own OS/libs
Development environment
Used for development/testing:
● Own PC/laptop
● Own OS/libs
● Only “my” service for running/testing
Development environment
Used for development/testing:
● Own PC/laptop
● Own OS/libs
● Only “my” service for running/testing
● Only one process per service
Development environment
Used for development/testing:
● Own PC/laptop
● Own OS/libs
● Only “my” service for running/testing
● Only one process per service
● And have full control over
service/process/logs/data/...
Problems during
development. Summary
● Don’t use common/shared libs
Problems during
development. Summary
● Don’t use common/shared libs
● Design API for your needs
Problems during
development. Summary
● Don’t use common/shared libs
● Design API for your needs
● Write documentation
Problems during
development. Summary
● Don’t use common/shared libs
● Design API for your needs
● Write documentation
● Consider at least 2 instances of each
service at any time
Problems during
development. Summary
● Don’t use common/shared libs
● Design API for your needs
● Write documentation
● Consider at least 2 instances of each
service at any time
● Start with orchestration system
Problems while testing
How to test all this “zoo”?
Straightforward testing flow
basic build/test pipeline
(https://martinfowler.com/articles/microservices.html)
Problems while testing
What should we test?
Problems while testing
Testing critical parts
Problems while testing.
Summary
● Automate testing
Problems while testing.
Summary
● Automate testing
● Create build/testing pipeline
Problems while testing.
Summary
● Automate testing
● Create build/testing pipeline
● Define critical services that have to be
tested anyway
Problems in production
Release...
Face the reality
When something crashes...
Need more info
Developer asks to:
Need more info
Developer asks to:
● Provide with steps to reproduce (STR)
Need more info
Developer asks to:
● Provide with steps to reproduce (STR)
● Turn on debug mode/levels/...
Need more info
Developer asks to:
● Provide with steps to reproduce (STR)
● Turn on debug mode/levels/...
● Gather logs
Need more info
Developer asks to:
● Provide with steps to reproduce (STR)
● Turn on debug mode/levels/...
● Gather logs
● Get request/response data
Need more info
Developer asks to:
● Provide with steps to reproduce (STR)
● Turn on debug mode/levels/...
● Gather logs
● Get request/response data
● Provide with access to server
Where is my service?
Problems in production.
Summary
● Use request tracing over services (traceID)
Problems in production.
Summary
● Use request tracing over services (traceID)
● Use traceID in logging
Problems in production.
Summary
● Use request tracing over services (traceID)
● Use traceID in logging
● Use log aggregator
Problems in production.
Summary
● Use request tracing over services (traceID)
● Use traceID in logging
● Use log aggregator
● Gather container/system metrics
Problems in production.
Summary
● Use request tracing over services (traceID)
● Use traceID in logging
● Use log aggregator
● Gather container/system metrics
● Gather application metrics
Problems in production.
Summary
● Use request tracing over services (traceID)
● Use traceID in logging
● Use log aggregator
● Gather container/system metrics
● Gather application metrics
● Check system availability from different world
zones
Problems in production.
Summary
● Use request tracing over services (traceID)
● Use traceID in logging
● Use log aggregator
● Gather container/system metrics
● Gather application metrics
● Check system availability from different world
zones
● Use self-health checks
Global summary
● Microservices can be as much effective as
difficult
Global summary
● Microservices can be as much effective as
difficult
● Prepare your teams and workflows
Global summary
● Microservices can be as much effective as
difficult
● Prepare your teams and workflows
● Make a plan for development/testing/support in
production
Global summary
● Microservices can be as much effective as
difficult
● Prepare your teams and workflows
● Make a plan for development/testing/support in
production
● Leave “bread crumbs”
Global summary
● Microservices can be as much effective as
difficult
● Prepare your teams and workflows
● Make a plan for development/testing/support in
production
● Leave “bread crumbs”
● Enjoy!
Thank you for attention!

More Related Content

PDF
Intro to Microservices
PDF
Surviving microservices
PPTX
Are you ready for Microservices
PPTX
Tef con2016 (1)
PDF
Production-Ready_Microservices_excerpt.pdf
PPTX
.Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20...
PDF
Microservice architecture
PDF
The Case Against Microservices
Intro to Microservices
Surviving microservices
Are you ready for Microservices
Tef con2016 (1)
Production-Ready_Microservices_excerpt.pdf
.Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20...
Microservice architecture
The Case Against Microservices

Similar to Microservices. Mastering Chaos (20)

PDF
Microservices - when, why and how incontrodevops.it
PDF
Building Microservices Software practics
PDF
Microservices - stress-free and without increased heart attack risk
PPTX
Microservices pros and cons
PDF
SACon 2019 - Surviving in a Microservices Environment
PPTX
Pros & Cons of Microservices Architecture
PDF
Introduction to Microservices Architecture - SECCOMP 2020
PPTX
Microservices pros and cons dark
PDF
Service Mesh Talk for CTO Forum
PDF
Microservices Architecture
PDF
Microservices for Mortals by Bert Ertman at Codemotion Dubai
PPTX
An introduction to Microservices
ODP
micro services architecture (FrosCon2014)
PPTX
Microservices architecture
PPTX
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
PDF
Microservices for Mortals
PDF
Microservices architecture overview v3
PDF
Microservices Architecture
PDF
Microservices 101: opportunities, dilemmas and problems
PDF
4Developers 2015: Mikroserwisy - szanse, dylematy i problemy - Łukasz Sowa
Microservices - when, why and how incontrodevops.it
Building Microservices Software practics
Microservices - stress-free and without increased heart attack risk
Microservices pros and cons
SACon 2019 - Surviving in a Microservices Environment
Pros & Cons of Microservices Architecture
Introduction to Microservices Architecture - SECCOMP 2020
Microservices pros and cons dark
Service Mesh Talk for CTO Forum
Microservices Architecture
Microservices for Mortals by Bert Ertman at Codemotion Dubai
An introduction to Microservices
micro services architecture (FrosCon2014)
Microservices architecture
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
Microservices for Mortals
Microservices architecture overview v3
Microservices Architecture
Microservices 101: opportunities, dilemmas and problems
4Developers 2015: Mikroserwisy - szanse, dylematy i problemy - Łukasz Sowa
Ad

More from UP2IT (18)

PPTX
Сочетание классической и гибкой методологий управления проектами
PPTX
Go для веба глазами PHP-разработчика
PPTX
Дизайнер в эпоху цифровых перемен
PPTX
Продуктовий дизайн і UX / UI дизайн процеси при розробці цифрових продуктів
PPTX
Модели OPEN SOURCE компаний и можно ли выжить без OPEN CORE и ENTERPRISE EDITION
PPTX
VR/AR в бизнесе
PPTX
Native DB transactions
PDF
Hell 2 Heaven or Choosing Cloud Provider
PPTX
Automation pyramid within CI process
PPTX
Containers, containers, containers...
PPTX
Kotlin для розробки Android
PPTX
React. Learn once, write anywhere
PPTX
Сложности и специфика построения систем раздачи адалт видео контента
PPTX
H2H Communication in IT
PPTX
Как я не стал барабанщиком или Как менеджер создает ценность
PPTX
Epic Sales Fails Compilation
PDF
Design Thinking
PPTX
Как настроенные процессы повышают прибыльность и снижают стресс
Сочетание классической и гибкой методологий управления проектами
Go для веба глазами PHP-разработчика
Дизайнер в эпоху цифровых перемен
Продуктовий дизайн і UX / UI дизайн процеси при розробці цифрових продуктів
Модели OPEN SOURCE компаний и можно ли выжить без OPEN CORE и ENTERPRISE EDITION
VR/AR в бизнесе
Native DB transactions
Hell 2 Heaven or Choosing Cloud Provider
Automation pyramid within CI process
Containers, containers, containers...
Kotlin для розробки Android
React. Learn once, write anywhere
Сложности и специфика построения систем раздачи адалт видео контента
H2H Communication in IT
Как я не стал барабанщиком или Как менеджер создает ценность
Epic Sales Fails Compilation
Design Thinking
Как настроенные процессы повышают прибыльность и снижают стресс
Ad

Recently uploaded (20)

DOCX
Action plan to easily understanding okey
PDF
_Nature and dynamics of communities and community development .pdf
PPTX
Lesson-7-Gas. -Exchange_074636.pptx
PPTX
Rakhi Presentation vbbrfferregergrgerg.pptx
PDF
IKS PPT.....................................
PDF
Microsoft-365-Administrator-s-Guide_.pdf
PPTX
NORMAN_RESEARCH_PRESENTATION.in education
PDF
Presentation on cloud computing and ppt..
PPTX
Bob Difficult Questions 08 17 2025.pptx
PPTX
INDIGENOUS-LANGUAGES-AND-LITERATURE.pptx
PPTX
Copy- of-Lesson-6-Digestive-System.pptx
PPTX
Phylogeny and disease transmission of Dipteran Fly (ppt).pptx
PPTX
2025-08-17 Joseph 03 (shared slides).pptx
PPTX
FINAL TEST 3C_OCTAVIA RAMADHANI SANTOSO-1.pptx
PDF
MODULE 3 BASIC SECURITY DUTIES AND ROLES.pdf
PPTX
PurpoaiveCommunication for students 02.pptx
PDF
Yusen Logistics Group Sustainability Report 2024.pdf
PPTX
3RD-Q 2022_EMPLOYEE RELATION - Copy.pptx
PPTX
CAPE CARIBBEAN STUDIES- Integration-1.pptx
PPTX
power point presentation ofDracena species.pptx
Action plan to easily understanding okey
_Nature and dynamics of communities and community development .pdf
Lesson-7-Gas. -Exchange_074636.pptx
Rakhi Presentation vbbrfferregergrgerg.pptx
IKS PPT.....................................
Microsoft-365-Administrator-s-Guide_.pdf
NORMAN_RESEARCH_PRESENTATION.in education
Presentation on cloud computing and ppt..
Bob Difficult Questions 08 17 2025.pptx
INDIGENOUS-LANGUAGES-AND-LITERATURE.pptx
Copy- of-Lesson-6-Digestive-System.pptx
Phylogeny and disease transmission of Dipteran Fly (ppt).pptx
2025-08-17 Joseph 03 (shared slides).pptx
FINAL TEST 3C_OCTAVIA RAMADHANI SANTOSO-1.pptx
MODULE 3 BASIC SECURITY DUTIES AND ROLES.pdf
PurpoaiveCommunication for students 02.pptx
Yusen Logistics Group Sustainability Report 2024.pdf
3RD-Q 2022_EMPLOYEE RELATION - Copy.pptx
CAPE CARIBBEAN STUDIES- Integration-1.pptx
power point presentation ofDracena species.pptx

Microservices. Mastering Chaos