SlideShare a Scribd company logo
Microservices
Modern software architecture
About me
● Software start up since 2010
● Professional interest
○ To build big scalable apps
○ Engineering as an art of state
● Fine art photography and bio hacking hobbyist
About nomadays
Tourism software started in 2010 October
Complete rewrite from 2013
Refactored into microservices from 2015
2 main UI:
Backoffice - for company manager
Platform - for travelers
Why do we need microservices?
Monolithic architecture
5000 requests per minute 50 requests per minute
Mostly writes, few reads
Compute heavy
Monolithic application architecture cons
Different non functional requirements (read, write, compute...) & optimized for
none
Single points of failure
Overloads your IDE and container
Has physical limit
Monolithic application architecture cons
Monolithic application architecture cons
Monolithic application architecture cons
Scaling applications
Scaling vertical vs horizontal
The scale cube
Y axis scaling & X axis scaling
Microservices
Microservices is a specialisation of and implementation approach for
service-oriented architectures (SOA) used to build flexible, independently
deployable software systems.
Microservices
The services are easy to replace.
Services are organized around capabilities, e.g., user interface front-end, recommendation, logistics,
billing, etc.
Services can be implemented using different programming languages, databases, hardware and
software environment, depending on what fits best.
Services are small in size, messaging enabled, bounded by contexts, autonomously developed,
independently deployable, decentralized and built and released with automated processes.[7]
Partitioning applications
Partitioning strategies
Too few
Drawbacks of the monolithic architecture
Too many - a.k.a. Nano-service anti-pattern
Runtime overhead
Potential risk of excessive network hops
Potentially difficult to understand system
When partitioning
Focus on building cohesive services that make development and
deployment easier… not just tiny services.
- Chris Richardson
Real world example
Amazon (100-150 services to build a page)
Netflix (~600 services)
SoundCloud
Ebay
Uber
…
Nomadays
11 microservices, 1 config server, 1 service registry
Client service interaction design
Inter-service communication options
Synchronous HTTP vs asynchronous AMQP
Formats: JSON, XML, Protocol Buffers, Thrift, ...
Pros and cons of messaging
Pros
Decouples client from server
Message broker buffers
messages
Supports a variety of
communication patterns
Cons
Additional complexity of
message broker
Request/reply-style
communication is more
complex
Pros and cons of HTTP
Pros
Simple and familiar
Request/reply is easy
Firewall friendly
No intermediate broker
Cons
Only supports request/reply
Server must be available
Client needs to discover
URL(s) of server(s)
Microservices - modern software architecture
Microservices - modern software architecture
Our technology choice
Netflix OSS
Api gateway: Zuul
Service registry: Eureka
Client side load balancer: Ribbon
Circuit breaker: Hystrix
Reactive programming: RxJava
RabbitMQ
Cloud foundry PAAS
Zuul, eureka, ribbon.
Circuit breaker: Hystrix
Hystrix dashboard
Lessons learned
Data is different and difficult. Split your database
Reactive programming is necessary. It can be difficult.
It will take time to put pieces together.
Inconsistent failures are SCARY.
Next steps
Event sourcing & cqrs
More reactive programming
Log aggregation
Q&A
Thank you

More Related Content

PDF
Schema Evolution for Resilient Data microservices
PPTX
Avro Tutorial - Records with Schema for Kafka and Hadoop
PPTX
Amazon Cassandra Basics & Guidelines for AWS/EC2/VPC/EBS
PPTX
Kafka Intro With Simple Java Producer Consumers
PPTX
Kafka Tutorial - Introduction to Apache Kafka (Part 1)
PPTX
Kafka Tutorial - introduction to the Kafka streaming platform
PPTX
Brief introduction to Kafka Streaming Platform
PPTX
Kafka Tutorial - Introduction to Apache Kafka (Part 2)
Schema Evolution for Resilient Data microservices
Avro Tutorial - Records with Schema for Kafka and Hadoop
Amazon Cassandra Basics & Guidelines for AWS/EC2/VPC/EBS
Kafka Intro With Simple Java Producer Consumers
Kafka Tutorial - Introduction to Apache Kafka (Part 1)
Kafka Tutorial - introduction to the Kafka streaming platform
Brief introduction to Kafka Streaming Platform
Kafka Tutorial - Introduction to Apache Kafka (Part 2)

What's hot (20)

ODP
KSQL- Streaming Sql for Kafka
PPTX
Kafka Tutorial - basics of the Kafka streaming platform
PPTX
Kafka MirrorMaker: Disaster Recovery, Scaling Reads, Isolate Mission Critical...
PPTX
Kafka Basic For Beginners
PPTX
Kafka Tutorial - DevOps, Admin and Ops
PPTX
Amazon AWS basics needed to run a Cassandra Cluster in AWS
PDF
AWS Study Group - Chapter 07 - Integrating Application Services [Solution Arc...
PPTX
Kafka Tutorial Advanced Kafka Consumers
PPTX
Kafka Tutorial, Kafka ecosystem with clustering examples
PPT
Really Simple Web Content Management
PDF
AWS Study Group - Chapter 10 - Matching Supply and Demand [Solution Architect...
PPTX
Data Pipelines with Kafka Connect
PPTX
Running on Elastic Beanstalk
PPTX
Apache Con 2021 Structured Data Streaming
PPTX
Kafka Tutorial: Streaming Data Architecture
PDF
Deploying Kafka on DC/OS
PPTX
Introduction to Kafka and Zookeeper
PDF
Kafka as a message queue
PDF
Enterprise Integration Patterns with Camel
PPT
Mule overview
KSQL- Streaming Sql for Kafka
Kafka Tutorial - basics of the Kafka streaming platform
Kafka MirrorMaker: Disaster Recovery, Scaling Reads, Isolate Mission Critical...
Kafka Basic For Beginners
Kafka Tutorial - DevOps, Admin and Ops
Amazon AWS basics needed to run a Cassandra Cluster in AWS
AWS Study Group - Chapter 07 - Integrating Application Services [Solution Arc...
Kafka Tutorial Advanced Kafka Consumers
Kafka Tutorial, Kafka ecosystem with clustering examples
Really Simple Web Content Management
AWS Study Group - Chapter 10 - Matching Supply and Demand [Solution Architect...
Data Pipelines with Kafka Connect
Running on Elastic Beanstalk
Apache Con 2021 Structured Data Streaming
Kafka Tutorial: Streaming Data Architecture
Deploying Kafka on DC/OS
Introduction to Kafka and Zookeeper
Kafka as a message queue
Enterprise Integration Patterns with Camel
Mule overview
Ad

Similar to Microservices - modern software architecture (20)

PPTX
Microservices architecture
PPTX
Microservice's in detailed
PDF
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
PPTX
AppDev with Microservices
PDF
WebSphere Message Broker Application Development Training
PPTX
Microservices-101
PPTX
Introduction to microservices
PPTX
Microservices
PDF
Introduction to Micro Services
PDF
Microservice architecture
PPTX
microservices in mulesoft
PDF
Microservices for Enterprises
PDF
[WSO2Con EU 2017] Microservices for Enterprises
PPTX
Microservice Pattern Launguage
PDF
Microservices: Where do they fit within a rapidly evolving integration archit...
PPT
soa1.ppt
PPTX
Comparative Analysis of Software Architectures.pptx
PPTX
Micro services overview
PPTX
Final_Presentation
PDF
All-inclusive insights on Building JavaScript microservices with Node!.pdf
Microservices architecture
Microservice's in detailed
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
AppDev with Microservices
WebSphere Message Broker Application Development Training
Microservices-101
Introduction to microservices
Microservices
Introduction to Micro Services
Microservice architecture
microservices in mulesoft
Microservices for Enterprises
[WSO2Con EU 2017] Microservices for Enterprises
Microservice Pattern Launguage
Microservices: Where do they fit within a rapidly evolving integration archit...
soa1.ppt
Comparative Analysis of Software Architectures.pptx
Micro services overview
Final_Presentation
All-inclusive insights on Building JavaScript microservices with Node!.pdf
Ad

Recently uploaded (20)

PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
top salesforce developer skills in 2025.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
Transform Your Business with a Software ERP System
PDF
Nekopoi APK 2025 free lastest update
PDF
medical staffing services at VALiNTRY
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Digital Strategies for Manufacturing Companies
PDF
How Creative Agencies Leverage Project Management Software.pdf
PPTX
Essential Infomation Tech presentation.pptx
PPTX
L1 - Introduction to python Backend.pptx
PDF
System and Network Administraation Chapter 3
PPTX
CHAPTER 2 - PM Management and IT Context
Upgrade and Innovation Strategies for SAP ERP Customers
wealthsignaloriginal-com-DS-text-... (1).pdf
Operating system designcfffgfgggggggvggggggggg
Wondershare Filmora 15 Crack With Activation Key [2025
PTS Company Brochure 2025 (1).pdf.......
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Design an Analysis of Algorithms II-SECS-1021-03
top salesforce developer skills in 2025.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Odoo Companies in India – Driving Business Transformation.pdf
Transform Your Business with a Software ERP System
Nekopoi APK 2025 free lastest update
medical staffing services at VALiNTRY
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Digital Strategies for Manufacturing Companies
How Creative Agencies Leverage Project Management Software.pdf
Essential Infomation Tech presentation.pptx
L1 - Introduction to python Backend.pptx
System and Network Administraation Chapter 3
CHAPTER 2 - PM Management and IT Context

Microservices - modern software architecture

Editor's Notes

  • #7: Операцийн асуудлууд, бидэнд ирээдүйд тулгарах. Хөгжүүлэлтийн дутагдалтай талууд байгаа.
  • #19: Talk about how it benefits both development and deployment
  • #29: UI, Secrutiy, Zuul together