A Practical Guidance to Microservices in the
Enterprise
About Us
• Emerging technology firm focused on helping enterprises build breakthrough
software solutions
• Building software solutions powered by disruptive enterprise software trends
-Machine learning and data science
-Cyber-security
-Enterprise IOT
-Powered by Cloud and Mobile
• Bringing innovation from startups and academic institutions to the enterprise
• Award winning agencies: Inc 500, American Business Awards, International
Business Awards
About This Webinar
• Research that brings together big enterprise software trends, exciting startups and
academic research
• Best practices based on real world implementation experience
• No sales pitches
• Microservices overview
• Some inspirational architectures
• Microservices in the enterprise
• Enterprise microservices patterns
• Capabilities
• Technologies
Agenda
Microservices: What’s the fuss all about?
• SOA fatigue
• Top down has proven to be impractical in the enterprise
• Large monolithic applications can’t evolve fast enough
• Large monolithic applications can’t scale fast enough
• Docker and the container revolution
• Emergence of new and exciting programming platforms (NodeJS, GO, etc)
• Friction between the need for innovation and the constrained enterprise software
development practices
Factors Contributing to the Raise of Microservices
Microservices?
A Definition of Microservices
Loosely Coupled Service Oriented Architecture
with Bounded Contexts
Loosely Coupled SOAs
• Service dependencies
• Component sharing
• Database sharing
• Centralized ESBs
• Organizational coupling
• Conway’s Law: https://en.wikipedia.org/wiki/Conway%27s_law
Bounded Contexts
• Inspired by domain driven design
• Encapsulates the details of a single business domain
• Self-contained entity for the purpose of software development
• Ability to update a microservices without knowledge of its peers
Microservices in the Real World
Some Examples
http://www.infoq.com/presentations/Twitter-Timeline-
Scalability http://www.infoq.com/presentations/twitter-
soa http://www.infoq.com/presentations/Zipkin
https://speakerdeck.com/mattheath/scaling-micro-services-in-go-highload-plus-
plus-2014
AWS Re:Invent : Asgard to Zuul
https://www.youtube.com/watch?v=p7ysHhs5hl0 Resiliency at Massive
Scale https://www.youtube.com/watch?v=ZfYJHtVL1_w Microservice
Architecture https://www.youtube.com/watch?v=CriDUYtfrjs
http://www.infoq.com/presentations/scale-gilt
http://www.slideshare.net/mcculloughsean/itier-breaking-up-the-monolith-
philly-ete
Foundational Building Blocks of Microservices Architectures
ConfigurationTooling Discovery Routing Observability
Datastores
Operational: Orchestration and Deployment Infrastructure
Development: Languages and Container
Netflix OSS Microservices Architecture
Edda
Archaius
Configuration
Asgard
Aminator
Tooling
Eureka
Prana
Discovery
Denominator
Zuul, Netty
Ribbon 2.0
Routing
Hystrix
Pytheus
SALP
Observability
Ephemeral datastores using Dynomite, Memcached, Astyanax, Staash, Priam,Cassandra
Manual Orchestration with Asgard and deployment on AWS or Eucalyptus Java, Groovy,
Scala, Clojure, Python, Node.js with AMI and Docker Containers
Twitter Microservices Architecture
Decider
ConfigurationTooling
Finagle
Zookeeper
Discovery
Finagle
Netty
Routing
Zipkin
Observability
Custom Cassandra-like datastore: Manhattan
Orchestration using Aurora deployment in datacenters using Mesos
Scala with JVM Container
Gilt Microservices Architecture
Decider
Configuration
Ion Cannon
SBT
Rake
Tooling
Finagle
Zookeeper
Akka
Finagle
Netty
Discovery Routing
Zipkin
Observability
Datastores per Microservice using MongoDB, Postgres, Voldemort
Deployment on AWS
Scala and Ruby with Docker Containers
Hailo Microservices Architecture
Configuration
Hubot
Janky
Jenkins
Tooling
go-platform
Discovery
go-platform
RabbitMQ
Routing
Request trace
Observability
Datastore based on Cassandra
Deployment on AWS
Go using Docker
Microservices in the Enterprise
Challenges for Adopting Microservices in the Enterprise
• Open source technology adoption
• Organizational boundaries
• Strict business processes
• Traditional SOA mindset
• Limited cloud adoption
Benefits of Adopting Microservices in the Enterprise
• SOA that works
• Building products instead of projects
• Agility
• Speed to market
• Innovation
• Remove friction for the adoption of new technologies
Microservices vs. SOA
• SOA promise == Microservices reality
• Federated innovation vs. Designed by committee
• Small functional services vs. Large business services
• REST and lightweight RPC vs. SOAP and WS-*
• Lightweight middleware vs. ESBs
• Decentralized governance vs. Centralized service repository
• Development agility vs. Control
Building Enterprise-Ready Microservices
Solutions
Relevant Capabilities of Enterprise Microservices Architectures
• Service discovery
• Service description
• Deployment isolation
• Lightweight middleware
• Service gateway
• Data Source partition
• Verb partition
Microservices discovery
Capabilities
• Removing coupling between microservices and client apps
• Dynamically registering microservices in an enterprise topology
• Allow client applications and other services to dynamically discover microservices and adapt
to changes
• Avoid the centralized registry pattern of traditional SOAs
Enterprise Microservices Discovery Pattern
Technologies
• Consul.io ( https://consul.io/ ): DNS-style service discovery and configuration
• Netflix’s Eureka ( https://github.com/Netflix/eureka ): AWS service registry used for
locating services for the purpose of load balancing and failover
• Zookeeper (https://zookeeper.apache.org/ ): Centralized service used for maintaining highly
available configuration information
• Etcd (https://github.com/coreos/etcd ): Distributed key value store optimized for service
discovery
Microservices description
Capabilities
• Express features of microservices in a descriptive format that can be understood by client
applications
• Manage microservices metadata
• Simplify the creation of client artifacts
• Manage versions of microservices
Enterprise Microservices Description Pattern
Technologies
• Swagger (http://swagger.io/ ): Description language and description modeling tooling for
RESTful services
• API Blueprints (https://apiblueprint.org/ ): Description language and description modeling
tooling for Web APIs:
• Apache Thrift IDL (https://thrift.apache.org/ ): Highly scalable, cross language service
development
• Google’s gRPC IDL(http://www.grpc.io/ ): HTTP2 framework for cross platform service
development
IPC microservices
Capabilities
• Enable internal communication between microservices
• Provide high performance interactions between large number of microservices
• Enable seamless cross language communication between microservices and client
applications
• Facilitate rapid microservices implementations across different languages
Enterprise Microservices IPC Pattern
Technologies
• Apache Thrift (https://thrift.apache.org/ ): Highly scalable, cross language service
development
• Google’s gRPC (http://www.grpc.io/ ): HTTP2 framework for cross platform service
development
• Akka (http://akka.io/ ) : Framework for building highly concurrent, distributed applications
• Twitter’s Finagle(https://twitter.github.io/finagle/ ): RPC framework for JVM services
• Netty(http://netty.io/ ): Asynchronous, even driven framework for client server solutions
Deployment isolation
Capabilities
• Isolate the infrastructure between microservices
• Enable continuous deployment practices
• Allow microservices portability across platforms
Enterprise Microservices Deployment Container Pattern
Technologies
• Docker (https://www.docker.com/ ): Container platforms for packaging, shipping and
distributing applications
• Rocket(https://coreos.com/blog/rocket/ ): Runtime for Linux containers
• Google’s Kubernetes(http://kubernetes.io/ ): Platform for managing containers
Microservices: Data source partition strategy
Capabilities
• Enable a standard model for accessing data via microservices
• Partition microservices at the data source level
• Facilitate the composition of data access microservices
• Allow flexible data access models for client applications
Enterprise Microservices Data Source Partition Pattern
Technologies
• Facebook’s GraphQL(https://facebook.github.io/react/blog/2015/05/01/graphql-
introduction.html) : URI-centric protocol for data fetching
• Odata(https://http://www.odata.org/ ): REST protocol for querying data
• Netflix’s Falcor(http://netflix.github.io/falcor/ ): Data access API framework for JSON data
sources
Microservices: Verb/Use Case partition
strategy
Capabilities
• Efficiently partition microservices by use case or function
• Compose microservices to enable more complex use cases
• Facilitate the functional testing of microservices
Enterprise Microservices Verb Partition Pattern
Technologies
• Apache Thrift (https://thrift.apache.org/ ): Highly scalable, cross language service
development
• Google’s gRPC (http://www.grpc.io/ ): HTTP2 framework for cross platform service
development
• Akka (http://akka.io/ ) : Framework for building highly concurrent, distributed applications
• Twitter’s Finagle(https://twitter.github.io/finagle/ ): RPC framework for JVM services
• Netty(http://netty.io/ ): Asynchronous, even driven framework for client server solutions
Lightweight middleware
Capabilities
• Extend microservices with simple middleware capabilities such as routing, transformation,
persistent messaging etc
• Provide a standard model to enable the communication between client apps and
microservices
• Expand the message exchange patterns supported by microservices solutions
Enterprise Microservices Lightweight Middleware Pattern
Technologies
• RabbitMQ (https://www.rabbitmq.com/) : Simple messaging infrastructure for applications
• Linkedin’s Kafka(http://kafka.apache.org/ ): Scalable publish-subscribe model for
applications
• ZeroMQ(http://zeromq.org/ ): Embeddable networking and messaging model for
applications
API Gateway
Capabilities
• Abstract the communication between client applications and internal microservices
• Compose microservices into client-ready services
• Extend microservices with enterprise ready capabilities
Enterprise Microservices API Gateway Pattern
Technologies
• Mashape’s Kong (https://getkong.org/ ): Open source management platform for APIs and
microservices
• Apigee(): Market leader in API management
• 3Scale(http://www.3scale.net/ ): API management platform
• Azure API Gateway(https://azure.microsoft.com/en-us/services/api-management/ ): Azure
native service for API and microservices management
• AWS API Gateway(https://aws.amazon.com/api-gateway/ ): AWS native service for API
management
Microservices Observability
Capabilities
• Detect and prevent failures in complex microservices topologies
• Trace request flow across microservices
• Monitor service dependencies real time
Enterprise Microservices Observability Pattern
Technologies
• Netflix’s Hystrix(https://github.com/Netflix/Hystrix ): Framework for detecting and
preventing microservices failures
• Twitter’s Zipkin(https://twitter.github.io/zipkin/ ): Framework for enabling request tracing
across microservices
• Trace(http://trace.risingstack.com/ ): Platform for tracing interactions between
microservices
• Spigo(https://github.com/adrianco/spigo ): Simulate request interactions between
microservices
Other relevant microservices capabilities
Other Relevant Microservices Capabilities
• Failure isolation
• Federated databases
• Design for failure
• Distributed configuration management
• Testing
• Security
Summary
• Microservices are the future of enterprise distributed systems
• Enterprise microservices solutions need to be implemented from the ground up
• We can drive inspiration from internet giants
• Foundational blocks of microservices architectures include:
-Discovery
-Description
-Lightweight middleware
-Partition by data source
-Partition by verb
-IPC communication
-API Gateway
-Observability
• Start small, iterate….
Thanks
jesus.rodriguez@tellago.com
https://twitter.com/jrdothoughts
http://jrodthoughts.com/
https://medium.com/@jrodthoughts

More Related Content

PPTX
Exploring microservices in a Microsoft landscape
PPTX
10 Big Data Technologies you Didn't Know About
PPTX
Introducing Apache Kafka and why it is important to Oracle, Java and IT profe...
PPTX
Pragmatic CQRS with existing applications and databases (Digital Xchange, May...
PPTX
The Art of Intelligence – Introduction Machine Learning for Java professional...
PDF
Lean Enterprise, Microservices and Big Data
PPTX
Business and IT agility through DevOps and microservice architecture powered ...
PDF
Microsoft: Building a Massively Scalable System with DataStax and Microsoft's...
Exploring microservices in a Microsoft landscape
10 Big Data Technologies you Didn't Know About
Introducing Apache Kafka and why it is important to Oracle, Java and IT profe...
Pragmatic CQRS with existing applications and databases (Digital Xchange, May...
The Art of Intelligence – Introduction Machine Learning for Java professional...
Lean Enterprise, Microservices and Big Data
Business and IT agility through DevOps and microservice architecture powered ...
Microsoft: Building a Massively Scalable System with DataStax and Microsoft's...

What's hot (19)

PPSX
Apache Flink, AWS Kinesis, Analytics
PDF
Cisco's MultiCloud Strategy
PDF
Continus sql with sql stream builder
PDF
Informix into the future13 july2017
PDF
Data Lake and the rise of the microservices
PDF
Openshift 3.10 & Container solutions for Blockchain, IoT and Data Science
PPTX
Review Oracle OpenWorld 2015 - Overview, Main themes, Announcements and Future
PDF
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
PDF
Microservices with Kafka Ecosystem
PDF
Pa getting-started-azure-openshift-ebook-f20686-201911-en
PPTX
6Reinventing Oracle Systems in a Cloudy World (Sangam20, December 2020)
PPTX
Migrating On-Premises DBs to Cloud Systems
PPTX
Spark on Azure HDInsight - spark meetup seattle
PPTX
NextGen IBM Cloud Monitoring and Logging
PPTX
Microsoft ignite 2018 SQL server 2019 big data clusters - deep dive session
PPTX
Con3036 soaring-through-the-clouds-oow2016-160920214845
PPTX
50 Shades of Data - how, when and why Big, Fast, Relational, NoSQL, Elastic, ...
PDF
Lessons from Large-Scale Cloud Software at Databricks
PDF
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Apache Flink, AWS Kinesis, Analytics
Cisco's MultiCloud Strategy
Continus sql with sql stream builder
Informix into the future13 july2017
Data Lake and the rise of the microservices
Openshift 3.10 & Container solutions for Blockchain, IoT and Data Science
Review Oracle OpenWorld 2015 - Overview, Main themes, Announcements and Future
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
Microservices with Kafka Ecosystem
Pa getting-started-azure-openshift-ebook-f20686-201911-en
6Reinventing Oracle Systems in a Cloudy World (Sangam20, December 2020)
Migrating On-Premises DBs to Cloud Systems
Spark on Azure HDInsight - spark meetup seattle
NextGen IBM Cloud Monitoring and Logging
Microsoft ignite 2018 SQL server 2019 big data clusters - deep dive session
Con3036 soaring-through-the-clouds-oow2016-160920214845
50 Shades of Data - how, when and why Big, Fast, Relational, NoSQL, Elastic, ...
Lessons from Large-Scale Cloud Software at Databricks
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Ad

Viewers also liked (20)

PDF
Microservices in the Enterprise: A Research Study and Reference Architecture
PDF
gRPC: The Story of Microservices at Square
PDF
Microservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo
PDF
Dockercon State of the Art in Microservices
PDF
Optimizing Identity and Access Management (IAM) Frameworks
PDF
Microservices: Utilizando o Twitter como Plataforma
PDF
KubeCon EU 2016: A lightweight deployment system for appops
PDF
muCon 2015 "The Business Behind Microservices: Organisational, Architectural,...
PPTX
排队排队--kafka
PDF
KubeCon EU 2016: Kubernetes meets Finagle for Resilient Microservices
PPTX
PDF
맛만 보자 Finagle이란
PPTX
java thrift
PDF
RPC protocols
PPTX
Avro - More Than Just a Serialization Framework - CHUG - 20120416
PDF
Protobuf & Code Generation + Go-Kit
PPTX
Microservices in the oracle cloud
PDF
OpenFest 2016 - Open Microservice Architecture
PPTX
A practical guidance of the enterprise machine learning
PDF
3 avro hug-2010-07-21
Microservices in the Enterprise: A Research Study and Reference Architecture
gRPC: The Story of Microservices at Square
Microservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo
Dockercon State of the Art in Microservices
Optimizing Identity and Access Management (IAM) Frameworks
Microservices: Utilizando o Twitter como Plataforma
KubeCon EU 2016: A lightweight deployment system for appops
muCon 2015 "The Business Behind Microservices: Organisational, Architectural,...
排队排队--kafka
KubeCon EU 2016: Kubernetes meets Finagle for Resilient Microservices
맛만 보자 Finagle이란
java thrift
RPC protocols
Avro - More Than Just a Serialization Framework - CHUG - 20120416
Protobuf & Code Generation + Go-Kit
Microservices in the oracle cloud
OpenFest 2016 - Open Microservice Architecture
A practical guidance of the enterprise machine learning
3 avro hug-2010-07-21
Ad

Similar to Microservices in the Enterprise (20)

PPSX
Microservices Architecture, Monolith Migration Patterns
PDF
Microservices for Application Modernisation
PDF
20141210 - Microservice Container
PPTX
Micro Services Architecture
PDF
Microservices - Hitchhiker's guide to cloud native applications
PDF
Enterprise Integration in Cloud Native Microservices Architectures
PPTX
Introduction to microservices
PPTX
Microservice architecture
PDF
#ATAGTR2020 Presentation - Microservices – Explored
PDF
Kenzan: Architecting for Microservices
PDF
The top 6 microservices patterns
PDF
Why Microservice
PPTX
Microservices architecture
PDF
A Guide on What Are Microservices: Pros, Cons, Use Cases, and More
PPTX
building microservices
PDF
Microservices for java architects it-symposium-2015-09-15
PDF
Practical Microservice Architecture (edition 2022).pdf
PDF
Micro Services Intro
PDF
Microservices Interview Questions and Answers PDF By ScholarHat
PPTX
An introduction to Microservices
Microservices Architecture, Monolith Migration Patterns
Microservices for Application Modernisation
20141210 - Microservice Container
Micro Services Architecture
Microservices - Hitchhiker's guide to cloud native applications
Enterprise Integration in Cloud Native Microservices Architectures
Introduction to microservices
Microservice architecture
#ATAGTR2020 Presentation - Microservices – Explored
Kenzan: Architecting for Microservices
The top 6 microservices patterns
Why Microservice
Microservices architecture
A Guide on What Are Microservices: Pros, Cons, Use Cases, and More
building microservices
Microservices for java architects it-symposium-2015-09-15
Practical Microservice Architecture (edition 2022).pdf
Micro Services Intro
Microservices Interview Questions and Answers PDF By ScholarHat
An introduction to Microservices

More from Jesus Rodriguez (20)

PPTX
The Emergence of DeFi Micro-Primitives
PPTX
ChatGPT, Foundation Models and Web3.pptx
PPTX
DeFi Opportunities and Challenges in the Current Crypto Market
PPTX
MEV Deep Dive .pptx
PPTX
Quant in Crypto Land
PPTX
The Polygon Blockchain by the Numbers
PPTX
Social Analytics for Cryptocurrencies
PPTX
DeFi Quant Yield-Generating Strategies
PPTX
High Frequency Trading and DeFi
PPTX
Simple DeFi Analytics Any Crypto-Investor Should Know About
PPTX
15 Minutes of DeFi Analytics
PPTX
DeFi Trading Strategies: Opportunities and Challenges
PPTX
Practical Crypto Asset Predictions rev
PPTX
Better Technical Analysis with Blockchain Indicators
PPTX
Price Predictions for Cryptocurrencies
PPTX
Fascinating Metrics and Analytics About Cryptocurrencies
PPTX
Price PRedictions for Crypto-Assets Using Deep Learning
PPTX
Demystifying Centralized Crypto Exchanges using Data Science
PPTX
Crypto assets are a data science heaven rev
PPTX
Implementing Machine Learning in the Real World
The Emergence of DeFi Micro-Primitives
ChatGPT, Foundation Models and Web3.pptx
DeFi Opportunities and Challenges in the Current Crypto Market
MEV Deep Dive .pptx
Quant in Crypto Land
The Polygon Blockchain by the Numbers
Social Analytics for Cryptocurrencies
DeFi Quant Yield-Generating Strategies
High Frequency Trading and DeFi
Simple DeFi Analytics Any Crypto-Investor Should Know About
15 Minutes of DeFi Analytics
DeFi Trading Strategies: Opportunities and Challenges
Practical Crypto Asset Predictions rev
Better Technical Analysis with Blockchain Indicators
Price Predictions for Cryptocurrencies
Fascinating Metrics and Analytics About Cryptocurrencies
Price PRedictions for Crypto-Assets Using Deep Learning
Demystifying Centralized Crypto Exchanges using Data Science
Crypto assets are a data science heaven rev
Implementing Machine Learning in the Real World

Recently uploaded (20)

PDF
Consumable AI The What, Why & How for Small Teams.pdf
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
sustainability-14-14877-v2.pddhzftheheeeee
PPT
Geologic Time for studying geology for geologist
PDF
Convolutional neural network based encoder-decoder for efficient real-time ob...
PDF
CloudStack 4.21: First Look Webinar slides
PPTX
Chapter 5: Probability Theory and Statistics
PPTX
Modernising the Digital Integration Hub
PDF
OpenACC and Open Hackathons Monthly Highlights July 2025
PPT
Galois Field Theory of Risk: A Perspective, Protocol, and Mathematical Backgr...
PPTX
The various Industrial Revolutions .pptx
PDF
Getting started with AI Agents and Multi-Agent Systems
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PDF
Architecture types and enterprise applications.pdf
PDF
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
PDF
Enhancing emotion recognition model for a student engagement use case through...
PDF
Developing a website for English-speaking practice to English as a foreign la...
PDF
Hindi spoken digit analysis for native and non-native speakers
PPTX
Microsoft Excel 365/2024 Beginner's training
Consumable AI The What, Why & How for Small Teams.pdf
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
sustainability-14-14877-v2.pddhzftheheeeee
Geologic Time for studying geology for geologist
Convolutional neural network based encoder-decoder for efficient real-time ob...
CloudStack 4.21: First Look Webinar slides
Chapter 5: Probability Theory and Statistics
Modernising the Digital Integration Hub
OpenACC and Open Hackathons Monthly Highlights July 2025
Galois Field Theory of Risk: A Perspective, Protocol, and Mathematical Backgr...
The various Industrial Revolutions .pptx
Getting started with AI Agents and Multi-Agent Systems
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
Architecture types and enterprise applications.pdf
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
Enhancing emotion recognition model for a student engagement use case through...
Developing a website for English-speaking practice to English as a foreign la...
Hindi spoken digit analysis for native and non-native speakers
Microsoft Excel 365/2024 Beginner's training

Microservices in the Enterprise

  • 1. A Practical Guidance to Microservices in the Enterprise
  • 2. About Us • Emerging technology firm focused on helping enterprises build breakthrough software solutions • Building software solutions powered by disruptive enterprise software trends -Machine learning and data science -Cyber-security -Enterprise IOT -Powered by Cloud and Mobile • Bringing innovation from startups and academic institutions to the enterprise • Award winning agencies: Inc 500, American Business Awards, International Business Awards
  • 3. About This Webinar • Research that brings together big enterprise software trends, exciting startups and academic research • Best practices based on real world implementation experience • No sales pitches
  • 4. • Microservices overview • Some inspirational architectures • Microservices in the enterprise • Enterprise microservices patterns • Capabilities • Technologies Agenda
  • 5. Microservices: What’s the fuss all about?
  • 6. • SOA fatigue • Top down has proven to be impractical in the enterprise • Large monolithic applications can’t evolve fast enough • Large monolithic applications can’t scale fast enough • Docker and the container revolution • Emergence of new and exciting programming platforms (NodeJS, GO, etc) • Friction between the need for innovation and the constrained enterprise software development practices Factors Contributing to the Raise of Microservices
  • 8. A Definition of Microservices Loosely Coupled Service Oriented Architecture with Bounded Contexts
  • 9. Loosely Coupled SOAs • Service dependencies • Component sharing • Database sharing • Centralized ESBs • Organizational coupling • Conway’s Law: https://en.wikipedia.org/wiki/Conway%27s_law
  • 10. Bounded Contexts • Inspired by domain driven design • Encapsulates the details of a single business domain • Self-contained entity for the purpose of software development • Ability to update a microservices without knowledge of its peers
  • 11. Microservices in the Real World
  • 12. Some Examples http://www.infoq.com/presentations/Twitter-Timeline- Scalability http://www.infoq.com/presentations/twitter- soa http://www.infoq.com/presentations/Zipkin https://speakerdeck.com/mattheath/scaling-micro-services-in-go-highload-plus- plus-2014 AWS Re:Invent : Asgard to Zuul https://www.youtube.com/watch?v=p7ysHhs5hl0 Resiliency at Massive Scale https://www.youtube.com/watch?v=ZfYJHtVL1_w Microservice Architecture https://www.youtube.com/watch?v=CriDUYtfrjs http://www.infoq.com/presentations/scale-gilt http://www.slideshare.net/mcculloughsean/itier-breaking-up-the-monolith- philly-ete
  • 13. Foundational Building Blocks of Microservices Architectures ConfigurationTooling Discovery Routing Observability Datastores Operational: Orchestration and Deployment Infrastructure Development: Languages and Container
  • 14. Netflix OSS Microservices Architecture Edda Archaius Configuration Asgard Aminator Tooling Eureka Prana Discovery Denominator Zuul, Netty Ribbon 2.0 Routing Hystrix Pytheus SALP Observability Ephemeral datastores using Dynomite, Memcached, Astyanax, Staash, Priam,Cassandra Manual Orchestration with Asgard and deployment on AWS or Eucalyptus Java, Groovy, Scala, Clojure, Python, Node.js with AMI and Docker Containers
  • 15. Twitter Microservices Architecture Decider ConfigurationTooling Finagle Zookeeper Discovery Finagle Netty Routing Zipkin Observability Custom Cassandra-like datastore: Manhattan Orchestration using Aurora deployment in datacenters using Mesos Scala with JVM Container
  • 16. Gilt Microservices Architecture Decider Configuration Ion Cannon SBT Rake Tooling Finagle Zookeeper Akka Finagle Netty Discovery Routing Zipkin Observability Datastores per Microservice using MongoDB, Postgres, Voldemort Deployment on AWS Scala and Ruby with Docker Containers
  • 18. Microservices in the Enterprise
  • 19. Challenges for Adopting Microservices in the Enterprise • Open source technology adoption • Organizational boundaries • Strict business processes • Traditional SOA mindset • Limited cloud adoption
  • 20. Benefits of Adopting Microservices in the Enterprise • SOA that works • Building products instead of projects • Agility • Speed to market • Innovation • Remove friction for the adoption of new technologies
  • 21. Microservices vs. SOA • SOA promise == Microservices reality • Federated innovation vs. Designed by committee • Small functional services vs. Large business services • REST and lightweight RPC vs. SOAP and WS-* • Lightweight middleware vs. ESBs • Decentralized governance vs. Centralized service repository • Development agility vs. Control
  • 23. Relevant Capabilities of Enterprise Microservices Architectures • Service discovery • Service description • Deployment isolation • Lightweight middleware • Service gateway • Data Source partition • Verb partition
  • 25. Capabilities • Removing coupling between microservices and client apps • Dynamically registering microservices in an enterprise topology • Allow client applications and other services to dynamically discover microservices and adapt to changes • Avoid the centralized registry pattern of traditional SOAs
  • 27. Technologies • Consul.io ( https://consul.io/ ): DNS-style service discovery and configuration • Netflix’s Eureka ( https://github.com/Netflix/eureka ): AWS service registry used for locating services for the purpose of load balancing and failover • Zookeeper (https://zookeeper.apache.org/ ): Centralized service used for maintaining highly available configuration information • Etcd (https://github.com/coreos/etcd ): Distributed key value store optimized for service discovery
  • 29. Capabilities • Express features of microservices in a descriptive format that can be understood by client applications • Manage microservices metadata • Simplify the creation of client artifacts • Manage versions of microservices
  • 31. Technologies • Swagger (http://swagger.io/ ): Description language and description modeling tooling for RESTful services • API Blueprints (https://apiblueprint.org/ ): Description language and description modeling tooling for Web APIs: • Apache Thrift IDL (https://thrift.apache.org/ ): Highly scalable, cross language service development • Google’s gRPC IDL(http://www.grpc.io/ ): HTTP2 framework for cross platform service development
  • 33. Capabilities • Enable internal communication between microservices • Provide high performance interactions between large number of microservices • Enable seamless cross language communication between microservices and client applications • Facilitate rapid microservices implementations across different languages
  • 35. Technologies • Apache Thrift (https://thrift.apache.org/ ): Highly scalable, cross language service development • Google’s gRPC (http://www.grpc.io/ ): HTTP2 framework for cross platform service development • Akka (http://akka.io/ ) : Framework for building highly concurrent, distributed applications • Twitter’s Finagle(https://twitter.github.io/finagle/ ): RPC framework for JVM services • Netty(http://netty.io/ ): Asynchronous, even driven framework for client server solutions
  • 37. Capabilities • Isolate the infrastructure between microservices • Enable continuous deployment practices • Allow microservices portability across platforms
  • 39. Technologies • Docker (https://www.docker.com/ ): Container platforms for packaging, shipping and distributing applications • Rocket(https://coreos.com/blog/rocket/ ): Runtime for Linux containers • Google’s Kubernetes(http://kubernetes.io/ ): Platform for managing containers
  • 40. Microservices: Data source partition strategy
  • 41. Capabilities • Enable a standard model for accessing data via microservices • Partition microservices at the data source level • Facilitate the composition of data access microservices • Allow flexible data access models for client applications
  • 42. Enterprise Microservices Data Source Partition Pattern
  • 43. Technologies • Facebook’s GraphQL(https://facebook.github.io/react/blog/2015/05/01/graphql- introduction.html) : URI-centric protocol for data fetching • Odata(https://http://www.odata.org/ ): REST protocol for querying data • Netflix’s Falcor(http://netflix.github.io/falcor/ ): Data access API framework for JSON data sources
  • 44. Microservices: Verb/Use Case partition strategy
  • 45. Capabilities • Efficiently partition microservices by use case or function • Compose microservices to enable more complex use cases • Facilitate the functional testing of microservices
  • 46. Enterprise Microservices Verb Partition Pattern
  • 47. Technologies • Apache Thrift (https://thrift.apache.org/ ): Highly scalable, cross language service development • Google’s gRPC (http://www.grpc.io/ ): HTTP2 framework for cross platform service development • Akka (http://akka.io/ ) : Framework for building highly concurrent, distributed applications • Twitter’s Finagle(https://twitter.github.io/finagle/ ): RPC framework for JVM services • Netty(http://netty.io/ ): Asynchronous, even driven framework for client server solutions
  • 49. Capabilities • Extend microservices with simple middleware capabilities such as routing, transformation, persistent messaging etc • Provide a standard model to enable the communication between client apps and microservices • Expand the message exchange patterns supported by microservices solutions
  • 51. Technologies • RabbitMQ (https://www.rabbitmq.com/) : Simple messaging infrastructure for applications • Linkedin’s Kafka(http://kafka.apache.org/ ): Scalable publish-subscribe model for applications • ZeroMQ(http://zeromq.org/ ): Embeddable networking and messaging model for applications
  • 53. Capabilities • Abstract the communication between client applications and internal microservices • Compose microservices into client-ready services • Extend microservices with enterprise ready capabilities
  • 54. Enterprise Microservices API Gateway Pattern
  • 55. Technologies • Mashape’s Kong (https://getkong.org/ ): Open source management platform for APIs and microservices • Apigee(): Market leader in API management • 3Scale(http://www.3scale.net/ ): API management platform • Azure API Gateway(https://azure.microsoft.com/en-us/services/api-management/ ): Azure native service for API and microservices management • AWS API Gateway(https://aws.amazon.com/api-gateway/ ): AWS native service for API management
  • 57. Capabilities • Detect and prevent failures in complex microservices topologies • Trace request flow across microservices • Monitor service dependencies real time
  • 59. Technologies • Netflix’s Hystrix(https://github.com/Netflix/Hystrix ): Framework for detecting and preventing microservices failures • Twitter’s Zipkin(https://twitter.github.io/zipkin/ ): Framework for enabling request tracing across microservices • Trace(http://trace.risingstack.com/ ): Platform for tracing interactions between microservices • Spigo(https://github.com/adrianco/spigo ): Simulate request interactions between microservices
  • 61. Other Relevant Microservices Capabilities • Failure isolation • Federated databases • Design for failure • Distributed configuration management • Testing • Security
  • 62. Summary • Microservices are the future of enterprise distributed systems • Enterprise microservices solutions need to be implemented from the ground up • We can drive inspiration from internet giants • Foundational blocks of microservices architectures include: -Discovery -Description -Lightweight middleware -Partition by data source -Partition by verb -IPC communication -API Gateway -Observability • Start small, iterate….