SlideShare a Scribd company logo
μServices Architecture
@ EPAM WOW 2015
● SA at EPAM Systems
● primary skill is Java
● hands-on-coding with Groovy, Ruby
● trying to get in touch with Erlang/Elixir
● passionate about agile, clean code and devops
Izzet Mustafayev@EPAM Systems
@webdizz webdizz izzetmustafaiev
http://webdizz.name
Agenda
● What is this?
● Architecture
● Case study
● Existing tools
● Summary
● How to get there?
● Q&A
µServices Architecture @ EPAM WOW 2015
µServices Architecture @ EPAM WOW 2015
● Small (100s LOC)*
Overview
● Small (100s LOC)*
● Lightweight (run several per box)
Overview
● Small (100s LOC)*
● Lightweight (run several per box)
● Takes strength of platform/language (polyglot)
Overview
● Small (100s LOC)*
● Lightweight (run several per box)
● Takes strength of platform/language (polyglot)
● Independent (development/deployment)
Overview
● Small (100s LOC)*
● Lightweight (run several per box)
● Takes strength of platform/language (polyglot)
● Independent (development/deployment)
● Stateless (everything persisted/not persisted)
Overview
● Small (100s LOC)*
● Lightweight (run several per box)
● Takes strength of platform/language (polyglot)
● Independent (development/deployment)
● Stateless (everything persisted/not persisted)
● Monitored (health and business value)
Overview
● Design
● Implementation
● Delivery
● Operation
Architecture
Design
● What ab SOA?
● Domain-Driven Design
● Versioning
● Integration
● Reusability
● Scalability
● Availability
● Asynchronicity
● Externalization of Configuration
What about SOA?
● Sensible idea
● Lack of guidance
● Combat challenges of large monolithic
applications
Domain-Driven Design
Set of principles and patterns that
● are closed to business
● are closed to developers
● to craft elegant object systems
Versioning
● Leave multiple old microservice versions running
● Fast introduction vs. slow retirement asymmetry
Integration
● Own service - own client
● Client load balancer
● Thin and efficient transport/protocol
Reusability
● Cohesive logic
● Usage of Components/Frameworks
● Statelessness
● Independency
Scalability
● Fault-tolerance
● Fast and small failures
Availability
Asynchronicity
● Non-blocking operations
● Reactive principles
● Messaging
Externalization of Configuration
● Support for X > 1 environments
● Run-time changes
● Separation of Concerns
● Caching
Implementation
Separation Concerns
● Inverse Conway’s law – teams own service groups
Separate Concerns
● Inverse Conway’s law – teams own service groups
● Each service is it’s own build
Separate Concerns
● Inverse Conway’s law – teams own service groups
● Each service is it’s own build
● Lightweight mocked dependencies
Separate Concerns
● Inverse Conway’s law – teams own service groups
● Each service is it’s own build
● Lightweight mocked dependencies
● Easy to run locally
Caching
● Stateful cached data access layer
Caching
● Stateful cached data access layer
● Expensive computational data
Caching
● Stateful cached data access layer
● Expensive computational data
● Static resources/CDN/Mirroring
● Immutability
● Disposability
● Containerisation
● Zero-down-time
● Frequency
Delivery
● Build
● Infrastructure
● Infrastructure-as-code
Immutability
● Build
● Run
● Destroy
Disposability
● Container as deployment artifact
● Environment agnostic
● New version - new container
● All dependencies built in
Containerisation
● Blue-green
● Multi-phased
● Feature toggle
● Database migration/versioning
Zero-down-time
Frequency
● Fast rollouts
● Fast rollbacks
● Service Discovery
● Technical Monitoring
● Business Monitoring
● Stats
Operation
● Services use services
● Each service has own version
● Decoupling still matters
● One-the-fly parameterisation
Service discovery
● Hardware monitoring
● Resources utilisation
● Health checking
Technical monitoring
● Business aware metrics
● A/B testing metrics
Business monitoring
● Increased traffic velocity makes individual events
less important
● More vertical components require more
measurement
● Failure Rate is more informative than individual
failures
Stats matter on scale
Benefits
● Polyglot technology stack
● Polyglot persistence
● Frameworks
● Thin transport
Toolset unchained
● Independent provisioning
● Fine tuning
● Elasticity
Scalability
● Development
● Testing
● Deployment
● Reliability
Independence
Shortcomings
● More responsibility from Devs to support Ops
Shortcomings
● More responsibility from Devs to support Ops
● Polyglot infrastructure (if any)
Shortcomings
● More responsibility from Devs to support Ops
● Polyglot infrastructure (if any)
● Orchestration
Shortcomings
● More responsibility from Devs to support Ops
● Polyglot infrastructure (if any)
● Orchestration
● Costs
Shortcomings
● More responsibility from Devs to support Ops
● Polyglot infrastructure (if any)
● Orchestration
● Costs
● Dependency management
Shortcomings
● More responsibility from Devs to support Ops
● Polyglot infrastructure (if any)
● Orchestration
● Costs
● Dependency management
● Distributed applications are complicated
Shortcomings
µServices Architecture @ EPAM WOW 2015
Twitter before
µServices Architecture @ EPAM WOW 2015
Twitter now*
Twitter requests
● Speed wins in the marketplace
Lessons learned
● Speed wins in the marketplace
● Remove friction from product development
Lessons learned
● Speed wins in the marketplace
● Remove friction from product development
● High trust, low process
Lessons learned
● Speed wins in the marketplace
● Remove friction from product development
● High trust, low process
● Freedom and responsibility culture
Lessons learned
● Speed wins in the marketplace
● Remove friction from product development
● High trust, low process
● Freedom and responsibility culture
● Simple patterns automated by tooling
Lessons learned
● Speed wins in the marketplace
● Remove friction from product development
● High trust, low process
● Freedom and responsibility culture
● Simple patterns automated by tooling
● Microservices for speed and availability
Lessons learned
● Speed wins in the marketplace
● Remove friction from product development
● High trust, low process
● Freedom and responsibility culture
● Simple patterns automated by tooling
● Microservices for speed and availability
● Use statistics to monitor behavior
Lessons learned
Toolset
● Dropwizard
● Spring Boot
● Vert.X
● More...
Dropwizard http://dropwizard.github.io/dropwizard/
Java framework for developing ops-
friendly, high-performance, RESTful
web services.
- pulls together stable, mature libraries from
the Java ecosystem into a simple, light-weight
package
- has out-of-the-box support for sophisticated
configuration, application metrics, logging,
operational tools, and much more
Spring Boot http://projects.spring.io/spring-boot/
Takes an opinionated view of
building production-ready Spring
applications.
- favors convention over configuration and is
designed to get you up and running as quickly
as possible.
- production-ready features such as metrics,
health checks and externalized configuration
Vert.X http://vertx.io/
● Lightweight, reactive, application
platform
● Superficially similar to Node.js -
but not a clone!
● Inspired also from Erlang/OTP
● Polyglot
● High performance
● Simple but not simplistic
More...
● Ratpack http://www.ratpack.io/
● Sinatra http://www.sinatrarb.com/
● Spark http://sparkjava.com/
● Compojure https://github.com/weavejester/compojure
● Webbit https://github.com/webbit/webbit
● Finagle http://twitter.github.io/finagle/
● Connect http://www.senchalabs.org/connect/
● XDropWizard https://github.com/timmolter/XDropWizard
Summary
Summary
● Speed wins in the marketplace
Summary
● Speed wins in the marketplace
● Separated concerns at app level
Summary
● Speed wins in the marketplace
● Separated concerns at app level
● Focused and automated
Summary
● Speed wins in the marketplace
● Separated concerns at app level
● Focused and automated
● Elastically scalable
Summary
● Speed wins in the marketplace
● Separated concerns at app level
● Focused and automated
● Elastically scalable
● Polyglot infrastructure
● Automate repeating activities
● “Run what you wrote” – root access and duty
● Freedom and responsibility for developers
How to get there?
References
● http://martinfowler.com/articles/microservices.html
● http://yobriefca.se/blog/2013/04/28/micro-service-
architecture/
● http://microservices.io/
● http://goo.gl/TmZ4Ee
● http://12factor.net/
● http://goo.gl/tnPxLP
Q&A
µServices Architecture @ EPAM WOW 2015
Izzet Mustafayev@EPAM Systems
@webdizz webdizz izzetmustafaiev
http://webdizz.name

More Related Content

PDF
µServices for the rest of us - karl pauls
PDF
Welcome, News and Announcements - osgi users forum uk - 16-nov2011
PDF
Structuring software systems with OSGi - Ulf Fildebrandt
PDF
OSAmI-Commons – an OSGi based platform supporting Open Ambient Intelligence f...
PDF
OSGi Users' Forum UK Meeting 7th Apr 09
PDF
Travelling Light for the Long Haul - Ian Robinson
PDF
HTML5 Overview (Silicon Valley User Group)
PDF
GlassFish Community Update 25 Mar2010
µServices for the rest of us - karl pauls
Welcome, News and Announcements - osgi users forum uk - 16-nov2011
Structuring software systems with OSGi - Ulf Fildebrandt
OSAmI-Commons – an OSGi based platform supporting Open Ambient Intelligence f...
OSGi Users' Forum UK Meeting 7th Apr 09
Travelling Light for the Long Haul - Ian Robinson
HTML5 Overview (Silicon Valley User Group)
GlassFish Community Update 25 Mar2010

Viewers also liked (8)

PDF
Whitepages Practical Experience Converting from Ruby to Reactive
PPT
Distributed Reactive Architecture: Extending SOA with Events
PDF
Reactive Reatime Big Data with Open Source Lambda Architecture - TechCampVN 2014
PDF
Reactive Microservice Architecture with Groovy and Grails
PDF
Refactoring to Java 8 (QCon New York)
PPT
Why Reactive Architecture Will Take Over The World (and why we should be wary...
PDF
Testing artifacts test cases
PPT
Free Download Powerpoint Slides
Whitepages Practical Experience Converting from Ruby to Reactive
Distributed Reactive Architecture: Extending SOA with Events
Reactive Reatime Big Data with Open Source Lambda Architecture - TechCampVN 2014
Reactive Microservice Architecture with Groovy and Grails
Refactoring to Java 8 (QCon New York)
Why Reactive Architecture Will Take Over The World (and why we should be wary...
Testing artifacts test cases
Free Download Powerpoint Slides
Ad

Similar to µServices Architecture @ EPAM WOW 2015 (20)

PDF
Microservices Architecture
PDF
Bootify Yyour App from Zero to Hero
PDF
“Bootify your app - from zero to hero
PDF
Deploying software at Scale
PPTX
Not my problem - Delegating responsibility to infrastructure
ODP
Path Dependent Development (PyCon AU)
ODP
Path dependent-development (PyCon India)
ODP
Deploying your SaaS stack OnPrem
PDF
Continuous Development Pipeline
PPTX
DevOps State of the Union 2015
PPTX
Cloud Native CI/CD with Spring Cloud Pipelines
PPTX
Cloud Native CI/CD with Spring Cloud Pipelines
PDF
Liferay portals in real projects
PPTX
The Professional Programmer
PDF
ElasTest presentation in Panel Sistemas company (Madrid December 2017)
PDF
Infrastructure as code
PDF
API Microservices with Node.js and Docker
PDF
Microsoft power point automation-opensourcetestingtools_matrix-1
PDF
Microsoft power point automation-opensourcetestingtools_matrix-1
PPTX
Smarter deployments with octopus deploy
Microservices Architecture
Bootify Yyour App from Zero to Hero
“Bootify your app - from zero to hero
Deploying software at Scale
Not my problem - Delegating responsibility to infrastructure
Path Dependent Development (PyCon AU)
Path dependent-development (PyCon India)
Deploying your SaaS stack OnPrem
Continuous Development Pipeline
DevOps State of the Union 2015
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud Pipelines
Liferay portals in real projects
The Professional Programmer
ElasTest presentation in Panel Sistemas company (Madrid December 2017)
Infrastructure as code
API Microservices with Node.js and Docker
Microsoft power point automation-opensourcetestingtools_matrix-1
Microsoft power point automation-opensourcetestingtools_matrix-1
Smarter deployments with octopus deploy
Ad

More from Izzet Mustafaiev (19)

PDF
Overcome a Frontier
PDF
Web Security... Level Up
PDF
Kotlin strives for Deep Learning
PDF
Can I do AI?
PDF
Consumer-Driven Contracts to enable API evolution
PDF
Functional web with elixir and elm in phoenix
PDF
Fabric8 CI/CD
PPTX
Don’t let your code to be illiterate along with your colleagues
PDF
Performance testing for web-scale
PDF
[Szjug] Docker. Does it matter for java developer?
PDF
Fault tolerance - look, it's simple!
PDF
Gradle - the Enterprise Automation Tool
PDF
Docker. Does it matter for Java developer ?
PDF
Metrics by coda hale : to know your app’ health
PDF
Buildr - build like you code
PDF
Groovy MOPping
PDF
TDD with Spock @xpdays_ua
PDF
Development environment agile way
PDF
Groovy and noteworthy
Overcome a Frontier
Web Security... Level Up
Kotlin strives for Deep Learning
Can I do AI?
Consumer-Driven Contracts to enable API evolution
Functional web with elixir and elm in phoenix
Fabric8 CI/CD
Don’t let your code to be illiterate along with your colleagues
Performance testing for web-scale
[Szjug] Docker. Does it matter for java developer?
Fault tolerance - look, it's simple!
Gradle - the Enterprise Automation Tool
Docker. Does it matter for Java developer ?
Metrics by coda hale : to know your app’ health
Buildr - build like you code
Groovy MOPping
TDD with Spock @xpdays_ua
Development environment agile way
Groovy and noteworthy

Recently uploaded (20)

PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Approach and Philosophy of On baking technology
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Big Data Technologies - Introduction.pptx
PDF
cuic standard and advanced reporting.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Modernizing your data center with Dell and AMD
Per capita expenditure prediction using model stacking based on satellite ima...
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
The AUB Centre for AI in Media Proposal.docx
Approach and Philosophy of On baking technology
Diabetes mellitus diagnosis method based random forest with bat algorithm
Unlocking AI with Model Context Protocol (MCP)
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Chapter 3 Spatial Domain Image Processing.pdf
MYSQL Presentation for SQL database connectivity
The Rise and Fall of 3GPP – Time for a Sabbatical?
“AI and Expert System Decision Support & Business Intelligence Systems”
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Big Data Technologies - Introduction.pptx
cuic standard and advanced reporting.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Encapsulation_ Review paper, used for researhc scholars
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Modernizing your data center with Dell and AMD

µServices Architecture @ EPAM WOW 2015