SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
1
Real-world Microservice Architecture
by Viacheslav Poturaev
2
Why microservices?
• Separating	development/releases	
• Decentralized	data	management	
• Testability	
• Scalability
3
Separating development/releases
Big
PHP
Monolith
Team
Team
Team
TeamTeam
Nice
PHP
App
GO
API
GO
API
GO
API
GO
API
GO
API
GO
API
Team
Team
Team
TeamTeam
Team
Shared
libs and
clients
Hundreds of devs
Single app repo
Hundreds commits dailyTens of tickets in release
Many conflicts
Multiple app reposSmall releases Few conflicts
Reliable deliveryOwn roadmap and schedule
4
Why microservices?
• Separating	development/releases	
• Decentralized	data	management	
• Testability	
• Scalability
DB
DB
DB
DB
Big DB
5
Decentralized data management
Big
PHP
Monolith
Team
Team
Team
TeamTeam
Nice
PHP
App
GO
API
GO
API
GO
API
GO
API
GO
API
GO
API
Team
Team
Team
TeamTeam
Team
Shared
libs and
clients
Hundreds of devs
Single all-purpose DB cluster Every service has own storage
Hard to scaleLots of data Easy to join data
Loose data ownership
Hard to join data
Strict data ownership
Less data Easier to scale
6
Why microservices?
• Separating	development/releases	
• Decentralized	data	management	
• Testability	
• Scalability
7
Testability
Big
PHP
Monolith
Team
Team
Team
TeamTeam
Nice
PHP
App
GO
API
GO
API
GO
API
GO
API
GO
API
GO
API
Team
Team
Team
TeamTeam
Team
Shared
libs and
clients
Hundreds of devs
Domain isolation
Manual regression testingMany interferences
No interferences
API level contract
Reliable automated tests
Obscure internal relations
8
Why microservices?
• Separating	development/releases	
• Decentralized	data	management	
• Testability	
• Scalability
Low coupling and complexity
Decentralized governance
Small and simple
9
Development
•Extract monolith features 

as microservices
•Expose API spec/docs
•Strong typing client libs

for communication
•Service is implemented 

on top of reusable framework
•Infrastructure (cache, db, etc)

is unified, accessed with 

shared libs
•Each service has own roadmap

and schedule
•Automated Semantic Versioning
Service
Auto-generated client libs
API spec/docs
Resources of
unified infrastructure
Developers
Shared libs
High-level framework
10
Quality Assurance
•Unit	tests	in	services	and	shared	libs	
•No	unit	tests	for	autogenerated	client	libs	
•Handler	level	integration	tests	with	mocked	external	
dependencies	
•Multi-service	integration	tests	(valid	external	dependencies)
Automated
Manual
•	Regression	test	for	large-scale	changes
11
Conventions over configuration
LZD SOA manager
Unified environment
Makefile targets
Logging format
Health checks
swagger.json
Profiling interface
Discovery unregister
Monitoring metrics
Tracing headers
12
Deployment
Legacy
Provisioning
Configuration
Deployment
13
Transport
• Protocol	
• JSON	
• REST	
• JSON-RPC	
• Binary	
• gRPC	
• Round-robin	P2P	and	load	balancers	
• Dynamic	nodes	list
High compatibility
High performance
Human-readable
Non human-readable Less traffic
More traffic
Avg performance
Lower compatibility
14
Discovery
Register itself
Watch list of nodes
P2P LZD SOA manager
15
Configuration
app.ini.sed
app.tpl
app.ini
credentials.yaml
config.yaml
etcdupdater
Legacy
Dynamic configuration
Command line
and ENV
arguments
LZD SOA manager
16
Tracing and debugging
Tracer tool
Client
X-LZD-TraceId
Logs
Storage
Access Log
Debug Log
X-LZD-ForceDebug
TraceId | Message
17
Logging
Convention-formatted logs
Search and analytics UI
18
Monitoring
/metrics
/metrics
Ninjas on duty
Alert Manager
LZD SOA manager
19
Microservices help us to
Support
Optimize
Increase
Improve
fast business growth
tech team efforts and efficiency
reliability of new features delivery
transparency of the whole system
20
Join the team!
26 nationalities
GO / Java / PHP
220 Employees
Hackathons
Happy FridaysTech Talks
Training Programs
Technology Driven Company Questions?

Mais conteúdo relacionado

Mais procurados

Code Hosting: The Key to Autonomous, Self-Service Development
Code Hosting: The Key to Autonomous, Self-Service DevelopmentCode Hosting: The Key to Autonomous, Self-Service Development
Code Hosting: The Key to Autonomous, Self-Service Development
Rachel Maxwell
 
Developing Great Apps with Apache Cordova
Developing Great Apps with Apache CordovaDeveloping Great Apps with Apache Cordova
Developing Great Apps with Apache Cordova
Shekhar Gulati
 
Que hay de nuevo en 2013 en la plataforma Microsoft para desarrolladores
Que hay de nuevo en 2013 en la plataforma Microsoft para desarrolladoresQue hay de nuevo en 2013 en la plataforma Microsoft para desarrolladores
Que hay de nuevo en 2013 en la plataforma Microsoft para desarrolladores
Rodolfo Finochietti
 

Mais procurados (20)

Managing Changes to the Database Across the Project Life Cycle (presented by ...
Managing Changes to the Database Across the Project Life Cycle (presented by ...Managing Changes to the Database Across the Project Life Cycle (presented by ...
Managing Changes to the Database Across the Project Life Cycle (presented by ...
 
Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...
Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...
Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...
 
Releasing High Quality Packages - Longhorn PHP 2021
Releasing High Quality Packages - Longhorn PHP 2021Releasing High Quality Packages - Longhorn PHP 2021
Releasing High Quality Packages - Longhorn PHP 2021
 
ClearCase Escape Plan
ClearCase Escape PlanClearCase Escape Plan
ClearCase Escape Plan
 
VI package manager
VI package managerVI package manager
VI package manager
 
Enterprise Docker Requires a Private Registry
Enterprise Docker Requires a Private RegistryEnterprise Docker Requires a Private Registry
Enterprise Docker Requires a Private Registry
 
You Were Lied To About Optimization
You Were Lied To About OptimizationYou Were Lied To About Optimization
You Were Lied To About Optimization
 
Super Size Your Search
Super Size Your SearchSuper Size Your Search
Super Size Your Search
 
Git SVN Migrate Reasons
Git SVN Migrate ReasonsGit SVN Migrate Reasons
Git SVN Migrate Reasons
 
Code Hosting: The Key to Autonomous, Self-Service Development
Code Hosting: The Key to Autonomous, Self-Service DevelopmentCode Hosting: The Key to Autonomous, Self-Service Development
Code Hosting: The Key to Autonomous, Self-Service Development
 
Social Network
Social NetworkSocial Network
Social Network
 
Common blind spots on the journey to production vijay raghavan aravamudhan
Common blind spots on the journey to production  vijay raghavan aravamudhanCommon blind spots on the journey to production  vijay raghavan aravamudhan
Common blind spots on the journey to production vijay raghavan aravamudhan
 
Swarm Update
Swarm UpdateSwarm Update
Swarm Update
 
Working effectively with OpenShift
Working effectively with OpenShiftWorking effectively with OpenShift
Working effectively with OpenShift
 
Learning Git
Learning GitLearning Git
Learning Git
 
Deploying PHP Application Using Bitbucket Pipelines
Deploying PHP Application Using Bitbucket PipelinesDeploying PHP Application Using Bitbucket Pipelines
Deploying PHP Application Using Bitbucket Pipelines
 
Why developers love helix team hub
Why developers love helix team hubWhy developers love helix team hub
Why developers love helix team hub
 
Developing Great Apps with Apache Cordova
Developing Great Apps with Apache CordovaDeveloping Great Apps with Apache Cordova
Developing Great Apps with Apache Cordova
 
Application Deployment at UC Riverside
Application Deployment at UC RiversideApplication Deployment at UC Riverside
Application Deployment at UC Riverside
 
Que hay de nuevo en 2013 en la plataforma Microsoft para desarrolladores
Que hay de nuevo en 2013 en la plataforma Microsoft para desarrolladoresQue hay de nuevo en 2013 en la plataforma Microsoft para desarrolladores
Que hay de nuevo en 2013 en la plataforma Microsoft para desarrolladores
 

Semelhante a Real world microservice architecture

Semelhante a Real world microservice architecture (20)

Neo4j for Cloud Management at Scale
Neo4j for Cloud Management at ScaleNeo4j for Cloud Management at Scale
Neo4j for Cloud Management at Scale
 
Pimping the ForgeRock Identity Platform for a Billion Users
Pimping the ForgeRock Identity Platform for a Billion UsersPimping the ForgeRock Identity Platform for a Billion Users
Pimping the ForgeRock Identity Platform for a Billion Users
 
MySQL Options in OpenStack
MySQL Options in OpenStackMySQL Options in OpenStack
MySQL Options in OpenStack
 
OpenStack Days East -- MySQL Options in OpenStack
OpenStack Days East -- MySQL Options in OpenStackOpenStack Days East -- MySQL Options in OpenStack
OpenStack Days East -- MySQL Options in OpenStack
 
Container DevOps in Azure
Container DevOps in AzureContainer DevOps in Azure
Container DevOps in Azure
 
Add Redis to Postgres to Make Your Microservices Go Boom!
Add Redis to Postgres to Make Your Microservices Go Boom!Add Redis to Postgres to Make Your Microservices Go Boom!
Add Redis to Postgres to Make Your Microservices Go Boom!
 
Cloud-Native Patterns and the Benefits of MySQL as a Platform Managed Service
Cloud-Native Patterns and the Benefits of MySQL as a Platform Managed ServiceCloud-Native Patterns and the Benefits of MySQL as a Platform Managed Service
Cloud-Native Patterns and the Benefits of MySQL as a Platform Managed Service
 
Trend Micro Big Data Platform and Apache Bigtop
Trend Micro Big Data Platform and Apache BigtopTrend Micro Big Data Platform and Apache Bigtop
Trend Micro Big Data Platform and Apache Bigtop
 
Streamlining Deployments in a Large Websphere Environment
Streamlining Deployments in a Large Websphere Environment Streamlining Deployments in a Large Websphere Environment
Streamlining Deployments in a Large Websphere Environment
 
Evolving applications-to-serverless
Evolving applications-to-serverlessEvolving applications-to-serverless
Evolving applications-to-serverless
 
Oscon2014 Netflix API - Top 10 Lessons Learned
Oscon2014 Netflix API - Top 10 Lessons LearnedOscon2014 Netflix API - Top 10 Lessons Learned
Oscon2014 Netflix API - Top 10 Lessons Learned
 
Change Management in Hybrid landscapes 2017
Change Management in Hybrid landscapes 2017Change Management in Hybrid landscapes 2017
Change Management in Hybrid landscapes 2017
 
Microservices and Serverless for Mega Startups - DevOps IL Meetup
Microservices and Serverless for Mega Startups - DevOps IL MeetupMicroservices and Serverless for Mega Startups - DevOps IL Meetup
Microservices and Serverless for Mega Startups - DevOps IL Meetup
 
Webinar : Microservices and Containerization
Webinar : Microservices and ContainerizationWebinar : Microservices and Containerization
Webinar : Microservices and Containerization
 
How bigtop leveraged docker for build automation and one click hadoop provis...
How bigtop leveraged docker for build automation and  one click hadoop provis...How bigtop leveraged docker for build automation and  one click hadoop provis...
How bigtop leveraged docker for build automation and one click hadoop provis...
 
MySQL overview
MySQL overviewMySQL overview
MySQL overview
 
The Best Local Database for React Native Application Development .pdf
The Best Local Database for React Native Application Development .pdfThe Best Local Database for React Native Application Development .pdf
The Best Local Database for React Native Application Development .pdf
 
Inside Wordnik's Architecture
Inside Wordnik's ArchitectureInside Wordnik's Architecture
Inside Wordnik's Architecture
 
Open Source Software, Distributed Systems, Database as a Cloud Service
Open Source Software, Distributed Systems, Database as a Cloud ServiceOpen Source Software, Distributed Systems, Database as a Cloud Service
Open Source Software, Distributed Systems, Database as a Cloud Service
 
Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...
Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...
Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Último (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 

Real world microservice architecture