SlideShare a Scribd company logo
1 of 33
FRONTLINE SYSTEMS
Microservice Architecture Vikash Kodati
AGENDA
4/6/2016 T-MobileConfidential2
• Microservice: What it IS and NOT
• Motivation
• Characteristics of Microservice
• Monolith vs Microservice
• Activities @ T-Mobile
• Q&A
WHAT IS A MICROSERVICE?
6/13/2016 T-MobileConfidential3
Microservice is an architecture style in which a large application is built as a suite of modular
services. Each service supports a specific business function. Each service is developed, tested,
deployed, updated/replaced and scaled independently without impacting the entire application
Organize
around business
capability
Organize
around product
not project
Have it own
data storage/db
and runs on its
own process
Microservice
Fault Tolerance,
Smart End Point,
Cloud Ready
Componentize,
containerize
developed &
deployed
independently
Common Characteristics
Highly
decoupled and
focused on
doing a single
task
WHAT A MICROSERVICE IS NOT
4/6/2016 T-MobileConfidential4
• A simple API to a more complex service implemented as part of a
monolithic application.
• A service implemented with a small amount of code.
• A service implemented with share database
• A service exposed via API by external service provider (if T-Mobile
doesn’t have control of the implementation, it’s just a service)
• A component, service or capability, labeled as a "microservice" by a
vendor
MOTIVATION
6/13/2016 T-MobileConfidential5
Whats our Motivation?
OUR MONOLITHs
6/13/2016 T-MobileConfidential6
It’s easy to start building applications that become Monolithic
• Diverse business functions/capabilities/modules under one umbrella
• Entire Dev team deals with all parts of the application
• Diverse external libraries in one Classpath, Cross cutting concerns
• Every release and deployment process resulting in ONE logical executable
• Tightly coupled integrations (PL/SQL inserts, synchronous handshakes etc…)
• More data, more users leads to SCALING OUT the application
Super Cool Application
UI Component Business Logic
Persistency
Layer
MONOLITHs CONTINUED…
6/13/2016 T-MobileConfidential7
Super Cool Instance
Super Cool Instance
Super Cool Instance
Super Cool Instance
Super Cool Instance
Super Cool Instance
Super Cool Instance
Super Cool Instance
FRONTLINE SYSTEMS - MISSION
6/13/2016 T-MobileConfidential8
Enable T-Mobile’s Frontline teams to consistently interact
with our customers throughout the selling and serving
lifecycle, delivering an exemplary and intuitive experience
enabled by operational excellence and innovation
MOTIVATION DEFINED
6/13/2016 T-MobileConfidential9
BRIDGE the gap
Applications have to be decomposed into microservices for
improving deployability and scalability and simplifying
adoption of new technologies
WHAT IS MICROSERVICE?
6/13/2016 T-MobileConfidential10
Microservice is an architecture style in which a large
application is built as a suite of modular services. Each service
supports a specific business function. Each service is
developed, tested, deployed, updated/replaced and scaled
independently without impacting the entire application
CHARACTERISTICS OF MICROSERVICES
6/13/2016 T-MobileConfidential11
• Componentization via services
• Organized around business capabilities
• Products not projects
• Smart endpoints and dump pipes
• Decentralized Data Management
• Infrastructure Automation
• Design for failure
COMPONENTIZATION VIA SERVICES
6/13/2016 T-MobileConfidential12
• Break software into components
• Components should be independently
• Replaceable
• Upgradeable
• Model the SERVICE as a Component
• Self sufficiently running in its own process
• Interacting with other services via web service requests
ORGANIZED AROUND BUSINESS CAPABILITIES
6/13/2016 T-MobileConfidential13
Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of
the organization's communication structure.
-- Melvyn Conway, 1967
CONTINUED…
6/13/2016 T-MobileConfidential14
• Make teams will be cross-functional
• Team responsible for development,
operations, communications & business value
• Services take up a broad-stack (UI, Storage
and 3rd party collaborations)
• Well defined boundaries
SCALE CUBE
6/13/2016 T-MobileConfidential15
SMART ENDPOINTS AND DUMB PIPES
6/13/2016 T-MobileConfidential16
• End points should contain
• Business logic, routing rules
• Have a robust and efficient pipping mechanism (plumbing)
• Connect everything together
• Direct RESTful calls
• Lightweight message bus (Kafka or RabbitMQ)
• Analogous to Unix filters : receiving a request, applying logic and produce a
response
SMART ENDPOINTS AND DUMB PIPES
6/13/2016 T-MobileConfidential17
SMART ENDPOINTS AND DUMB PIPES
6/13/2016 T-MobileConfidential18
DECENTRALIZED DATA MANAGEMENT
6/13/2016 T-MobileConfidential19
X Y Z AXES DEFINED
6/13/2016 T-MobileConfidential20
INFRASTRUCTURE AUTOMATION
6/13/2016 T-MobileConfidential21
• Server provisioning
• Configuration management
• Automated builds
• Automated testing
• Automated deployments
• Monitoring
Goal: Infrastructure As Code
• Provision and Tear-down universes (server farms) at the click of a
button/command
CLOUD MODELS
6/13/2016 T-MobileConfidential22
CLOUD MODELS
6/13/2016 T-MobileConfidential23
DESIGN FOR FAILURE
6/13/2016 T-MobileConfidential24
Typical first year for a new cluster:
~0.5 overheating (power down most machines in <5 mins, ~1-2 days to recover)
~1 PDU failure (~500-1000 machines suddenly disappear, ~6 hours to come back)
~1 rack-move (plenty of warning, ~500-1000 machines powered down, ~6 hours)
~1 network rewiring (rolling ~5% of machines down over 2-day span)
~20 rack failures (40-80 machines instantly disappear, 1-6 hours to get back)
~5 racks go wonky (40-80 machines see 50% packet loss)
~8 network maintenances (4 might cause ~30-minute random connectivity losses)
~12 router reloads (takes out DNS and external vips for a couple minutes)
~3 router failures (have to immediately pull traffic for an hour)
~dozens of minor 30-second blips for dns
~1000 individual machine failures
~thousands of hard drive failures
slow disks, bad memory, misconfigured machines, flaky machines, etc.
Note: Data taken from Jeff Dean’s slides
CAP Theorem
6/13/2016 T-MobileConfidential25
It is impossible for a distributed system to simultaneously provide all 3 guarantees
1. Consistency: All nodes see the same data at a given time
2. Availability: Every request receives a response
3. Partition Tolerance: Tolerant to failure of a part of the system
• Not P => CA
– MySQL
• P => C XOR A
– CP System
– AP System
NOSQL Landscape
6/13/2016 T-MobileConfidential26
DATA MODELS
6/13/2016 T-MobileConfidential27
• Relational
– RDBMS like MySQL
• Key-Value
– Support put, get, delete based on a primary key
• Column-Oriented
– Tables are still used and Joins are handled at the client
– Store data by column as opposed to traditional row-oriented databases
• Document-Oriented
– Stores structured documents like XML, JSON
– No Joins
MONOLITHIC vs. MICROSERVICE
6/13/2016 T-MobileConfidential28
Monolithic Architecture Microservice Architecture
Simple: Built as a single, autonomous unit of app Partial Deployment: Each element of functionality
is a separate service
Consistency: Tightly coupled. One database for
the entire app.
Highly decoupled. Each service has its own
database. Eventual consistency
A modification made to a small section of an app
might require building, testing and deploying an
entirely new version
Preserve Modularity: Each service can be
developed/changed/replaced, tested and deployed
individually
The entire app run in one process. Scale by
replicating the entire app
Each service run on it own process/instance (JVM).
Scale by replicating each service
ACID (Atomicity, Consistency, Isolation,
Durability)
BASE (Basically Available, Soft State, Eventually
Consistent)
Super Computer: Adding resources to a single node Distributed System: Adding more nodes
APPLICATION STACK COMPARISON
6/13/2016 T-MobileConfidential29
Typical Monolith Application
29
Single/Multiple Machines
File System
RDBMS
Application Framework
Multiple Machines (Cluster)
Distributed File System
COMPUTATIONAL Framework
Application Application
NoSQL Stores
Distributed Miscroservice Application
OTHER RESOURCES and REFERENCES
6/13/2016 T-MobileConfidential30
• Microservices, Martin Fowler, James Lewis
• http://martinfowler.com/articles/microservices.html
• A day in the life of a Netflix Engineer using 37% of the internet
• http://fr.slideshare.net/AmazonWebServices/dvo203-the-life-of-a-netflix-engineer-using-
37-of-the-internet
• Dzone – Geting started with Microservices
• https://dzone.com/refcardz/getting-started-with-microservices
• SoundCloud – How we ended up with microservices
• http://philcalcado.com/2015/09/08/how_we_ended_up_with_microservices.html
• gRPC - boilerplate to high-performance scalable APIs
• http://fr.slideshare.net/AboutYouGmbH/robert-kubis-grpc-boilerplate-to-
highperformance-scalable-apis-codetalks-2015
• Twelve-Factor methodology:http://12factor.net/
FUTURE TOPICS?
6/13/2016 T-MobileConfidential31
• Docker
• Python and Jupyter notebook
• Light weight message buses & Dataframes (e.g., Kafka)
• Machine Leaning
• Circuit Breaker (e.g., Hystrix)
• Mobile Architecture
• Solr/Lucene
• Case Studies? Use Cases?
• Others?
THANK YOU & QA
6/13/2016 T-MobileConfidential32
Vikash Kodati
• Email: Vikash.Kodati@t-mobile.com
• Yammer: https://www.yammer.com/t-mobile.com/users/vikashkodati
• Github: https://github.com/vikashkodati
• LinkedIn: /in/vikashkodati
• Twitter: @vikashkodati
• Blog: https://tmobileusa.sharepoint.com/portals/hub/personal/vikashkodati
MICROSERVICE is not the answer for all service
4/6/2016 T-MobileConfidential33
Please ask
yourself
You don’t need
microservice !
You need
microservice !
are you 100% sure
you need
microservices?
I think so ! If I have to change any thing in this
monolith app I will kill my self

More Related Content

What's hot

Multi-Cloud Load Balancing and Application Services
Multi-Cloud Load Balancing and Application ServicesMulti-Cloud Load Balancing and Application Services
Multi-Cloud Load Balancing and Application ServicesAvi Networks
 
VMworld 2015: Day to Day Automation of VMware Products to Increase Productivi...
VMworld 2015: Day to Day Automation of VMware Products to Increase Productivi...VMworld 2015: Day to Day Automation of VMware Products to Increase Productivi...
VMworld 2015: Day to Day Automation of VMware Products to Increase Productivi...VMworld
 
Introduction to Reactive Microservices Architecture.
Introduction to Reactive Microservices Architecture.Introduction to Reactive Microservices Architecture.
Introduction to Reactive Microservices Architecture.Richard Langlois P. Eng.
 
JAXLondon 2015 "DevOps and the Cloud: All Hail the (Developer) King"
JAXLondon 2015 "DevOps and the Cloud: All Hail the (Developer) King"JAXLondon 2015 "DevOps and the Cloud: All Hail the (Developer) King"
JAXLondon 2015 "DevOps and the Cloud: All Hail the (Developer) King"Daniel Bryant
 
Jelastic - DevOps PaaS Business with Docker Support for Service Providers
Jelastic - DevOps PaaS Business with Docker Support for Service ProvidersJelastic - DevOps PaaS Business with Docker Support for Service Providers
Jelastic - DevOps PaaS Business with Docker Support for Service ProvidersJelastic Multi-Cloud PaaS
 
REST and Microservices
REST and MicroservicesREST and Microservices
REST and MicroservicesShaun Abram
 
L4-L7 Application Services with Avi Networks
L4-L7 Application Services with Avi NetworksL4-L7 Application Services with Avi Networks
L4-L7 Application Services with Avi NetworksAvi Networks
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices ArchitectureIzzet Mustafaiev
 
Accelerating Public Cloud Migration with Multi-Cloud Load Balancing
Accelerating Public Cloud Migration with Multi-Cloud Load BalancingAccelerating Public Cloud Migration with Multi-Cloud Load Balancing
Accelerating Public Cloud Migration with Multi-Cloud Load BalancingAvi Networks
 
VMware Log Insight
VMware Log Insight VMware Log Insight
VMware Log Insight Iwan Rahabok
 
V mware v realize automation 6.2 knowledge transfer kit
V mware v realize  automation 6.2 knowledge transfer kitV mware v realize  automation 6.2 knowledge transfer kit
V mware v realize automation 6.2 knowledge transfer kitsolarisyougood
 
Deep Dive on GSLB with VMware NSX Advanced Load Balancer (Avi Networks)
Deep Dive on GSLB with VMware NSX Advanced Load Balancer (Avi Networks)Deep Dive on GSLB with VMware NSX Advanced Load Balancer (Avi Networks)
Deep Dive on GSLB with VMware NSX Advanced Load Balancer (Avi Networks)Avi Networks
 
JavaOne Latin America - DevOps with Containers for Java
JavaOne Latin America - DevOps with Containers for JavaJavaOne Latin America - DevOps with Containers for Java
JavaOne Latin America - DevOps with Containers for JavaJelastic Multi-Cloud PaaS
 
Circuit breaker mechanism for Microservices based architecture
Circuit breaker mechanism for Microservices based architectureCircuit breaker mechanism for Microservices based architecture
Circuit breaker mechanism for Microservices based architectureKunal Grover
 
Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...Kim Clark
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices ArchitectureMateus Prado
 
Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.Richard Langlois P. Eng.
 
Node and Micro-Services at IBM
Node and Micro-Services at IBMNode and Micro-Services at IBM
Node and Micro-Services at IBMDejan Glozic
 

What's hot (20)

Multi-Cloud Load Balancing and Application Services
Multi-Cloud Load Balancing and Application ServicesMulti-Cloud Load Balancing and Application Services
Multi-Cloud Load Balancing and Application Services
 
VMworld 2015: Day to Day Automation of VMware Products to Increase Productivi...
VMworld 2015: Day to Day Automation of VMware Products to Increase Productivi...VMworld 2015: Day to Day Automation of VMware Products to Increase Productivi...
VMworld 2015: Day to Day Automation of VMware Products to Increase Productivi...
 
Introduction to Reactive Microservices Architecture.
Introduction to Reactive Microservices Architecture.Introduction to Reactive Microservices Architecture.
Introduction to Reactive Microservices Architecture.
 
JAXLondon 2015 "DevOps and the Cloud: All Hail the (Developer) King"
JAXLondon 2015 "DevOps and the Cloud: All Hail the (Developer) King"JAXLondon 2015 "DevOps and the Cloud: All Hail the (Developer) King"
JAXLondon 2015 "DevOps and the Cloud: All Hail the (Developer) King"
 
Jelastic - DevOps PaaS Business with Docker Support for Service Providers
Jelastic - DevOps PaaS Business with Docker Support for Service ProvidersJelastic - DevOps PaaS Business with Docker Support for Service Providers
Jelastic - DevOps PaaS Business with Docker Support for Service Providers
 
REST and Microservices
REST and MicroservicesREST and Microservices
REST and Microservices
 
L4-L7 Application Services with Avi Networks
L4-L7 Application Services with Avi NetworksL4-L7 Application Services with Avi Networks
L4-L7 Application Services with Avi Networks
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
Accelerating Public Cloud Migration with Multi-Cloud Load Balancing
Accelerating Public Cloud Migration with Multi-Cloud Load BalancingAccelerating Public Cloud Migration with Multi-Cloud Load Balancing
Accelerating Public Cloud Migration with Multi-Cloud Load Balancing
 
VMware Log Insight
VMware Log Insight VMware Log Insight
VMware Log Insight
 
Going Reactive in Java with Typesafe Reactive Platform
Going Reactive in Java with Typesafe Reactive PlatformGoing Reactive in Java with Typesafe Reactive Platform
Going Reactive in Java with Typesafe Reactive Platform
 
V mware v realize automation 6.2 knowledge transfer kit
V mware v realize  automation 6.2 knowledge transfer kitV mware v realize  automation 6.2 knowledge transfer kit
V mware v realize automation 6.2 knowledge transfer kit
 
Deep Dive on GSLB with VMware NSX Advanced Load Balancer (Avi Networks)
Deep Dive on GSLB with VMware NSX Advanced Load Balancer (Avi Networks)Deep Dive on GSLB with VMware NSX Advanced Load Balancer (Avi Networks)
Deep Dive on GSLB with VMware NSX Advanced Load Balancer (Avi Networks)
 
JavaOne Latin America - DevOps with Containers for Java
JavaOne Latin America - DevOps with Containers for JavaJavaOne Latin America - DevOps with Containers for Java
JavaOne Latin America - DevOps with Containers for Java
 
Circuit breaker mechanism for Microservices based architecture
Circuit breaker mechanism for Microservices based architectureCircuit breaker mechanism for Microservices based architecture
Circuit breaker mechanism for Microservices based architecture
 
Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...
 
vRA7 What's New
vRA7 What's NewvRA7 What's New
vRA7 What's New
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.
 
Node and Micro-Services at IBM
Node and Micro-Services at IBMNode and Micro-Services at IBM
Node and Micro-Services at IBM
 

Viewers also liked

The Microservices and DevOps Journey
The Microservices and DevOps JourneyThe Microservices and DevOps Journey
The Microservices and DevOps JourneyC4Media
 
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...Chris Richardson
 
Introduction To Functional Reactive Programming Poznan
Introduction To Functional Reactive Programming PoznanIntroduction To Functional Reactive Programming Poznan
Introduction To Functional Reactive Programming PoznanEliasz Sawicki
 
BED-Con 2016 - I have a stream - Einsichten in Reactive Programming
BED-Con 2016 - I have a stream - Einsichten in Reactive ProgrammingBED-Con 2016 - I have a stream - Einsichten in Reactive Programming
BED-Con 2016 - I have a stream - Einsichten in Reactive ProgrammingJan Carsten Lohmüller
 
Reactive programming with Rxjava
Reactive programming with RxjavaReactive programming with Rxjava
Reactive programming with RxjavaChristophe Marchal
 
Scaling wix with microservices architecture devoxx London 2015
Scaling wix with microservices architecture devoxx London 2015Scaling wix with microservices architecture devoxx London 2015
Scaling wix with microservices architecture devoxx London 2015Aviran Mordo
 
Reactive Programming for a demanding world: building event-driven and respons...
Reactive Programming for a demanding world: building event-driven and respons...Reactive Programming for a demanding world: building event-driven and respons...
Reactive Programming for a demanding world: building event-driven and respons...Mario Fusco
 
Reactive java - Reactive Programming + RxJava
Reactive java - Reactive Programming + RxJavaReactive java - Reactive Programming + RxJava
Reactive java - Reactive Programming + RxJavaNexThoughts Technologies
 
Microservices: Architecture to scale Agile
Microservices: Architecture to scale AgileMicroservices: Architecture to scale Agile
Microservices: Architecture to scale AgileEberhard Wolff
 
Building and deploying microservices with event sourcing, CQRS and Docker (Ha...
Building and deploying microservices with event sourcing, CQRS and Docker (Ha...Building and deploying microservices with event sourcing, CQRS and Docker (Ha...
Building and deploying microservices with event sourcing, CQRS and Docker (Ha...Chris Richardson
 
From Mainframe to Microservice: An Introduction to Distributed Systems
From Mainframe to Microservice: An Introduction to Distributed SystemsFrom Mainframe to Microservice: An Introduction to Distributed Systems
From Mainframe to Microservice: An Introduction to Distributed SystemsTyler Treat
 
Functional Reactive Programming with RxJS
Functional Reactive Programming with RxJSFunctional Reactive Programming with RxJS
Functional Reactive Programming with RxJSstefanmayer13
 
Building and deploying microservices with event sourcing, CQRS and Docker (Be...
Building and deploying microservices with event sourcing, CQRS and Docker (Be...Building and deploying microservices with event sourcing, CQRS and Docker (Be...
Building and deploying microservices with event sourcing, CQRS and Docker (Be...Chris Richardson
 
Microservice Architecture with CQRS and Event Sourcing
Microservice Architecture with CQRS and Event SourcingMicroservice Architecture with CQRS and Event Sourcing
Microservice Architecture with CQRS and Event SourcingBen Wilcock
 
Developing microservices with aggregates (SpringOne platform, #s1p)
Developing microservices with aggregates (SpringOne platform, #s1p)Developing microservices with aggregates (SpringOne platform, #s1p)
Developing microservices with aggregates (SpringOne platform, #s1p)Chris Richardson
 
RxJS and Reactive Programming - Modern Web UI - May 2015
RxJS and Reactive Programming - Modern Web UI - May 2015RxJS and Reactive Programming - Modern Web UI - May 2015
RxJS and Reactive Programming - Modern Web UI - May 2015Ben Lesh
 
(ARC309) Getting to Microservices: Cloud Architecture Patterns
(ARC309) Getting to Microservices: Cloud Architecture Patterns(ARC309) Getting to Microservices: Cloud Architecture Patterns
(ARC309) Getting to Microservices: Cloud Architecture PatternsAmazon Web Services
 
Microservices + Oracle: A Bright Future
Microservices + Oracle: A Bright FutureMicroservices + Oracle: A Bright Future
Microservices + Oracle: A Bright FutureKelly Goetsch
 
Microservices: The Right Way
Microservices: The Right WayMicroservices: The Right Way
Microservices: The Right WayDaniel Woods
 

Viewers also liked (20)

The Microservices and DevOps Journey
The Microservices and DevOps JourneyThe Microservices and DevOps Journey
The Microservices and DevOps Journey
 
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...
 
Introduction To Functional Reactive Programming Poznan
Introduction To Functional Reactive Programming PoznanIntroduction To Functional Reactive Programming Poznan
Introduction To Functional Reactive Programming Poznan
 
BED-Con 2016 - I have a stream - Einsichten in Reactive Programming
BED-Con 2016 - I have a stream - Einsichten in Reactive ProgrammingBED-Con 2016 - I have a stream - Einsichten in Reactive Programming
BED-Con 2016 - I have a stream - Einsichten in Reactive Programming
 
Reactive programming with Rxjava
Reactive programming with RxjavaReactive programming with Rxjava
Reactive programming with Rxjava
 
Scaling wix with microservices architecture devoxx London 2015
Scaling wix with microservices architecture devoxx London 2015Scaling wix with microservices architecture devoxx London 2015
Scaling wix with microservices architecture devoxx London 2015
 
Reactive Programming for a demanding world: building event-driven and respons...
Reactive Programming for a demanding world: building event-driven and respons...Reactive Programming for a demanding world: building event-driven and respons...
Reactive Programming for a demanding world: building event-driven and respons...
 
Reactive java - Reactive Programming + RxJava
Reactive java - Reactive Programming + RxJavaReactive java - Reactive Programming + RxJava
Reactive java - Reactive Programming + RxJava
 
Vagrant to-aws-flow
Vagrant to-aws-flowVagrant to-aws-flow
Vagrant to-aws-flow
 
Microservices: Architecture to scale Agile
Microservices: Architecture to scale AgileMicroservices: Architecture to scale Agile
Microservices: Architecture to scale Agile
 
Building and deploying microservices with event sourcing, CQRS and Docker (Ha...
Building and deploying microservices with event sourcing, CQRS and Docker (Ha...Building and deploying microservices with event sourcing, CQRS and Docker (Ha...
Building and deploying microservices with event sourcing, CQRS and Docker (Ha...
 
From Mainframe to Microservice: An Introduction to Distributed Systems
From Mainframe to Microservice: An Introduction to Distributed SystemsFrom Mainframe to Microservice: An Introduction to Distributed Systems
From Mainframe to Microservice: An Introduction to Distributed Systems
 
Functional Reactive Programming with RxJS
Functional Reactive Programming with RxJSFunctional Reactive Programming with RxJS
Functional Reactive Programming with RxJS
 
Building and deploying microservices with event sourcing, CQRS and Docker (Be...
Building and deploying microservices with event sourcing, CQRS and Docker (Be...Building and deploying microservices with event sourcing, CQRS and Docker (Be...
Building and deploying microservices with event sourcing, CQRS and Docker (Be...
 
Microservice Architecture with CQRS and Event Sourcing
Microservice Architecture with CQRS and Event SourcingMicroservice Architecture with CQRS and Event Sourcing
Microservice Architecture with CQRS and Event Sourcing
 
Developing microservices with aggregates (SpringOne platform, #s1p)
Developing microservices with aggregates (SpringOne platform, #s1p)Developing microservices with aggregates (SpringOne platform, #s1p)
Developing microservices with aggregates (SpringOne platform, #s1p)
 
RxJS and Reactive Programming - Modern Web UI - May 2015
RxJS and Reactive Programming - Modern Web UI - May 2015RxJS and Reactive Programming - Modern Web UI - May 2015
RxJS and Reactive Programming - Modern Web UI - May 2015
 
(ARC309) Getting to Microservices: Cloud Architecture Patterns
(ARC309) Getting to Microservices: Cloud Architecture Patterns(ARC309) Getting to Microservices: Cloud Architecture Patterns
(ARC309) Getting to Microservices: Cloud Architecture Patterns
 
Microservices + Oracle: A Bright Future
Microservices + Oracle: A Bright FutureMicroservices + Oracle: A Bright Future
Microservices + Oracle: A Bright Future
 
Microservices: The Right Way
Microservices: The Right WayMicroservices: The Right Way
Microservices: The Right Way
 

Similar to Microservices architecture ext

Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...Lightbend
 
Micro Services Architecture
Micro Services ArchitectureMicro Services Architecture
Micro Services ArchitectureAli BAKAN
 
AppDev with Microservices
AppDev with MicroservicesAppDev with Microservices
AppDev with MicroservicesRishabh Dugar
 
Monolithic and Microservices styles of Architecture
Monolithic and Microservices styles of ArchitectureMonolithic and Microservices styles of Architecture
Monolithic and Microservices styles of ArchitectureDeepak Vishwanathan
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservicesAnil Allewar
 
What is Microservices
What is MicroservicesWhat is Microservices
What is MicroservicesManoj Kamsali
 
05 microservices microdeck
05 microservices microdeck05 microservices microdeck
05 microservices microdeckfenggang wang
 
MuleSoft Meetup Adelaide 7th April 2021
MuleSoft Meetup Adelaide 7th April 2021MuleSoft Meetup Adelaide 7th April 2021
MuleSoft Meetup Adelaide 7th April 2021Nicholas Bowman
 
Cloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyondCloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyondUgo Landini
 
APIDays 2018 - APIOps & Microservices - What is MICRO by the Way ?
APIDays 2018 - APIOps & Microservices - What is MICRO by the Way ?APIDays 2018 - APIOps & Microservices - What is MICRO by the Way ?
APIDays 2018 - APIOps & Microservices - What is MICRO by the Way ?FABERNOVEL TECHNOLOGIES
 
Comparative Analysis of Software Architectures.pptx
Comparative Analysis of Software Architectures.pptxComparative Analysis of Software Architectures.pptx
Comparative Analysis of Software Architectures.pptxssuserecd44f
 
MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.PLovababu
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architectureAbdelghani Azri
 
Collaboration over Consolidation in the Cloud
Collaboration over Consolidation in the CloudCollaboration over Consolidation in the Cloud
Collaboration over Consolidation in the CloudAude Smiejan-Wanneroy
 
Mobile app-and-microservices-with-ibm-cloud
Mobile app-and-microservices-with-ibm-cloudMobile app-and-microservices-with-ibm-cloud
Mobile app-and-microservices-with-ibm-cloudSrinivasan Nanduri
 
Network Automation and Microservices Application
Network Automation and Microservices ApplicationNetwork Automation and Microservices Application
Network Automation and Microservices ApplicationAppViewX
 
Containers and microservices create new performance challenges kowall - app...
Containers and microservices create new performance challenges   kowall - app...Containers and microservices create new performance challenges   kowall - app...
Containers and microservices create new performance challenges kowall - app...Jonah Kowall
 

Similar to Microservices architecture ext (20)

Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
 
Micro Services Architecture
Micro Services ArchitectureMicro Services Architecture
Micro Services Architecture
 
AppDev with Microservices
AppDev with MicroservicesAppDev with Microservices
AppDev with Microservices
 
Monolithic and Microservices styles of Architecture
Monolithic and Microservices styles of ArchitectureMonolithic and Microservices styles of Architecture
Monolithic and Microservices styles of Architecture
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
Cloud native-microservices
Cloud native-microservicesCloud native-microservices
Cloud native-microservices
 
What is Microservices
What is MicroservicesWhat is Microservices
What is Microservices
 
05 microservices microdeck
05 microservices microdeck05 microservices microdeck
05 microservices microdeck
 
MuleSoft Meetup Adelaide 7th April 2021
MuleSoft Meetup Adelaide 7th April 2021MuleSoft Meetup Adelaide 7th April 2021
MuleSoft Meetup Adelaide 7th April 2021
 
Microservices: Detailed Guide
Microservices: Detailed GuideMicroservices: Detailed Guide
Microservices: Detailed Guide
 
Cloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyondCloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyond
 
APIDays 2018 - APIOps & Microservices - What is MICRO by the Way ?
APIDays 2018 - APIOps & Microservices - What is MICRO by the Way ?APIDays 2018 - APIOps & Microservices - What is MICRO by the Way ?
APIDays 2018 - APIOps & Microservices - What is MICRO by the Way ?
 
Comparative Analysis of Software Architectures.pptx
Comparative Analysis of Software Architectures.pptxComparative Analysis of Software Architectures.pptx
Comparative Analysis of Software Architectures.pptx
 
MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
Why Microservice
Why Microservice Why Microservice
Why Microservice
 
Collaboration over Consolidation in the Cloud
Collaboration over Consolidation in the CloudCollaboration over Consolidation in the Cloud
Collaboration over Consolidation in the Cloud
 
Mobile app-and-microservices-with-ibm-cloud
Mobile app-and-microservices-with-ibm-cloudMobile app-and-microservices-with-ibm-cloud
Mobile app-and-microservices-with-ibm-cloud
 
Network Automation and Microservices Application
Network Automation and Microservices ApplicationNetwork Automation and Microservices Application
Network Automation and Microservices Application
 
Containers and microservices create new performance challenges kowall - app...
Containers and microservices create new performance challenges   kowall - app...Containers and microservices create new performance challenges   kowall - app...
Containers and microservices create new performance challenges kowall - app...
 

Recently uploaded

Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsAndrey Dotsenko
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 

Recently uploaded (20)

Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 

Microservices architecture ext

  • 2. AGENDA 4/6/2016 T-MobileConfidential2 • Microservice: What it IS and NOT • Motivation • Characteristics of Microservice • Monolith vs Microservice • Activities @ T-Mobile • Q&A
  • 3. WHAT IS A MICROSERVICE? 6/13/2016 T-MobileConfidential3 Microservice is an architecture style in which a large application is built as a suite of modular services. Each service supports a specific business function. Each service is developed, tested, deployed, updated/replaced and scaled independently without impacting the entire application Organize around business capability Organize around product not project Have it own data storage/db and runs on its own process Microservice Fault Tolerance, Smart End Point, Cloud Ready Componentize, containerize developed & deployed independently Common Characteristics Highly decoupled and focused on doing a single task
  • 4. WHAT A MICROSERVICE IS NOT 4/6/2016 T-MobileConfidential4 • A simple API to a more complex service implemented as part of a monolithic application. • A service implemented with a small amount of code. • A service implemented with share database • A service exposed via API by external service provider (if T-Mobile doesn’t have control of the implementation, it’s just a service) • A component, service or capability, labeled as a "microservice" by a vendor
  • 6. OUR MONOLITHs 6/13/2016 T-MobileConfidential6 It’s easy to start building applications that become Monolithic • Diverse business functions/capabilities/modules under one umbrella • Entire Dev team deals with all parts of the application • Diverse external libraries in one Classpath, Cross cutting concerns • Every release and deployment process resulting in ONE logical executable • Tightly coupled integrations (PL/SQL inserts, synchronous handshakes etc…) • More data, more users leads to SCALING OUT the application Super Cool Application UI Component Business Logic Persistency Layer
  • 7. MONOLITHs CONTINUED… 6/13/2016 T-MobileConfidential7 Super Cool Instance Super Cool Instance Super Cool Instance Super Cool Instance Super Cool Instance Super Cool Instance Super Cool Instance Super Cool Instance
  • 8. FRONTLINE SYSTEMS - MISSION 6/13/2016 T-MobileConfidential8 Enable T-Mobile’s Frontline teams to consistently interact with our customers throughout the selling and serving lifecycle, delivering an exemplary and intuitive experience enabled by operational excellence and innovation
  • 9. MOTIVATION DEFINED 6/13/2016 T-MobileConfidential9 BRIDGE the gap Applications have to be decomposed into microservices for improving deployability and scalability and simplifying adoption of new technologies
  • 10. WHAT IS MICROSERVICE? 6/13/2016 T-MobileConfidential10 Microservice is an architecture style in which a large application is built as a suite of modular services. Each service supports a specific business function. Each service is developed, tested, deployed, updated/replaced and scaled independently without impacting the entire application
  • 11. CHARACTERISTICS OF MICROSERVICES 6/13/2016 T-MobileConfidential11 • Componentization via services • Organized around business capabilities • Products not projects • Smart endpoints and dump pipes • Decentralized Data Management • Infrastructure Automation • Design for failure
  • 12. COMPONENTIZATION VIA SERVICES 6/13/2016 T-MobileConfidential12 • Break software into components • Components should be independently • Replaceable • Upgradeable • Model the SERVICE as a Component • Self sufficiently running in its own process • Interacting with other services via web service requests
  • 13. ORGANIZED AROUND BUSINESS CAPABILITIES 6/13/2016 T-MobileConfidential13 Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure. -- Melvyn Conway, 1967
  • 14. CONTINUED… 6/13/2016 T-MobileConfidential14 • Make teams will be cross-functional • Team responsible for development, operations, communications & business value • Services take up a broad-stack (UI, Storage and 3rd party collaborations) • Well defined boundaries
  • 16. SMART ENDPOINTS AND DUMB PIPES 6/13/2016 T-MobileConfidential16 • End points should contain • Business logic, routing rules • Have a robust and efficient pipping mechanism (plumbing) • Connect everything together • Direct RESTful calls • Lightweight message bus (Kafka or RabbitMQ) • Analogous to Unix filters : receiving a request, applying logic and produce a response
  • 17. SMART ENDPOINTS AND DUMB PIPES 6/13/2016 T-MobileConfidential17
  • 18. SMART ENDPOINTS AND DUMB PIPES 6/13/2016 T-MobileConfidential18
  • 19. DECENTRALIZED DATA MANAGEMENT 6/13/2016 T-MobileConfidential19
  • 20. X Y Z AXES DEFINED 6/13/2016 T-MobileConfidential20
  • 21. INFRASTRUCTURE AUTOMATION 6/13/2016 T-MobileConfidential21 • Server provisioning • Configuration management • Automated builds • Automated testing • Automated deployments • Monitoring Goal: Infrastructure As Code • Provision and Tear-down universes (server farms) at the click of a button/command
  • 24. DESIGN FOR FAILURE 6/13/2016 T-MobileConfidential24 Typical first year for a new cluster: ~0.5 overheating (power down most machines in <5 mins, ~1-2 days to recover) ~1 PDU failure (~500-1000 machines suddenly disappear, ~6 hours to come back) ~1 rack-move (plenty of warning, ~500-1000 machines powered down, ~6 hours) ~1 network rewiring (rolling ~5% of machines down over 2-day span) ~20 rack failures (40-80 machines instantly disappear, 1-6 hours to get back) ~5 racks go wonky (40-80 machines see 50% packet loss) ~8 network maintenances (4 might cause ~30-minute random connectivity losses) ~12 router reloads (takes out DNS and external vips for a couple minutes) ~3 router failures (have to immediately pull traffic for an hour) ~dozens of minor 30-second blips for dns ~1000 individual machine failures ~thousands of hard drive failures slow disks, bad memory, misconfigured machines, flaky machines, etc. Note: Data taken from Jeff Dean’s slides
  • 25. CAP Theorem 6/13/2016 T-MobileConfidential25 It is impossible for a distributed system to simultaneously provide all 3 guarantees 1. Consistency: All nodes see the same data at a given time 2. Availability: Every request receives a response 3. Partition Tolerance: Tolerant to failure of a part of the system • Not P => CA – MySQL • P => C XOR A – CP System – AP System
  • 27. DATA MODELS 6/13/2016 T-MobileConfidential27 • Relational – RDBMS like MySQL • Key-Value – Support put, get, delete based on a primary key • Column-Oriented – Tables are still used and Joins are handled at the client – Store data by column as opposed to traditional row-oriented databases • Document-Oriented – Stores structured documents like XML, JSON – No Joins
  • 28. MONOLITHIC vs. MICROSERVICE 6/13/2016 T-MobileConfidential28 Monolithic Architecture Microservice Architecture Simple: Built as a single, autonomous unit of app Partial Deployment: Each element of functionality is a separate service Consistency: Tightly coupled. One database for the entire app. Highly decoupled. Each service has its own database. Eventual consistency A modification made to a small section of an app might require building, testing and deploying an entirely new version Preserve Modularity: Each service can be developed/changed/replaced, tested and deployed individually The entire app run in one process. Scale by replicating the entire app Each service run on it own process/instance (JVM). Scale by replicating each service ACID (Atomicity, Consistency, Isolation, Durability) BASE (Basically Available, Soft State, Eventually Consistent) Super Computer: Adding resources to a single node Distributed System: Adding more nodes
  • 29. APPLICATION STACK COMPARISON 6/13/2016 T-MobileConfidential29 Typical Monolith Application 29 Single/Multiple Machines File System RDBMS Application Framework Multiple Machines (Cluster) Distributed File System COMPUTATIONAL Framework Application Application NoSQL Stores Distributed Miscroservice Application
  • 30. OTHER RESOURCES and REFERENCES 6/13/2016 T-MobileConfidential30 • Microservices, Martin Fowler, James Lewis • http://martinfowler.com/articles/microservices.html • A day in the life of a Netflix Engineer using 37% of the internet • http://fr.slideshare.net/AmazonWebServices/dvo203-the-life-of-a-netflix-engineer-using- 37-of-the-internet • Dzone – Geting started with Microservices • https://dzone.com/refcardz/getting-started-with-microservices • SoundCloud – How we ended up with microservices • http://philcalcado.com/2015/09/08/how_we_ended_up_with_microservices.html • gRPC - boilerplate to high-performance scalable APIs • http://fr.slideshare.net/AboutYouGmbH/robert-kubis-grpc-boilerplate-to- highperformance-scalable-apis-codetalks-2015 • Twelve-Factor methodology:http://12factor.net/
  • 31. FUTURE TOPICS? 6/13/2016 T-MobileConfidential31 • Docker • Python and Jupyter notebook • Light weight message buses & Dataframes (e.g., Kafka) • Machine Leaning • Circuit Breaker (e.g., Hystrix) • Mobile Architecture • Solr/Lucene • Case Studies? Use Cases? • Others?
  • 32. THANK YOU & QA 6/13/2016 T-MobileConfidential32 Vikash Kodati • Email: Vikash.Kodati@t-mobile.com • Yammer: https://www.yammer.com/t-mobile.com/users/vikashkodati • Github: https://github.com/vikashkodati • LinkedIn: /in/vikashkodati • Twitter: @vikashkodati • Blog: https://tmobileusa.sharepoint.com/portals/hub/personal/vikashkodati
  • 33. MICROSERVICE is not the answer for all service 4/6/2016 T-MobileConfidential33 Please ask yourself You don’t need microservice ! You need microservice ! are you 100% sure you need microservices? I think so ! If I have to change any thing in this monolith app I will kill my self

Editor's Notes

  1. Encourage interactive session Informal discussion Eat lunch My Goal is to keep us all on the same page at a conceptual level. Please stop me and ask questions
  2. Again a set of statements.
  3. What does it really mean? Hard to define. It has to be a common ground of all the above statements. Least Common Denominator The resulting system is a Network of communicating processes as opposed to a single process in case of a monolith Function and Capability used interchangeably Honeycomb is an efficient structure in terms of min material used and min weight while maximizing the impact.
  4. Again a set of statements.
  5. So Microservice is a common denominator of all those characteristics. So what? Why should we talk about this Do we use it OR do we not use it? Why should we spend time on this . Aren’t we already doing good work in the constraints we have? To answer that we need to first look at Where we are today in the grand scheme of things. Relative to technology, processes and the kind of limitations that imposes on us. Once we understand that, it will offer a reason for us to consider microservices
  6. So lets cast some light on our current way of doing things. Projects start small If successful they will grow Single process Module boundaries Method communication OS level stack One persistence storage for all diverse capabilities. Technology and vendor lock in
  7. This limits us to be successful Problems Prevents from being innovative. Cant try new technologies quickly Large code base ties us to the technology choices that we made at the beginning. Not easy to try new things/techs Long time to market, we may loose opportunities Operationally Scaling requires scaling of the entire application rather than parts of it that require greater resource. Fear of change: a change made to a small part of the application, requires the entire monolith to be rebuilt and deployed.  Lot of testing Overload the IDE and less productive Slow down the container or the application server Simple but does not scale or rather brute force scaling (Scale out) behind load balancer - All nodes talking to one persistence mechanism
  8. Given those current processes and limitations we have our new MISSION from Bill.
  9. How do we bridge the gap between the current realities and our new MISSION? Make them granular
  10. Now that we identified the need and understood why we should be doing this let dive into its characteristics.
  11. Its still hard to come up with a firm definition. Instead of defining think about common characteristics. Most of those who are doing MS will be doing most of these things Lets go through each of these
  12. Software should be broken down in components: Idea was there for a while. Component : Analogy Assemble to build stereo components (amplifier, cd payer,) Software components: in a monolith 3rd party lib part of the single process. One component may depend on java 8 and the other on 7 MS Interprocess communication Using services like this does have downsides. Remote calls are more expensive than in-process calls, and thus remote APIs need to be coarser-grained Service is logically at one process but in reality could be multiple (because of its own DB) MS: A Service should have one responsibility ()
  13. When looking to split a large application into parts, often management focuses on the technology layer, leading to UI teams, server-side logic teams, and database teams.  We can relate this to: Applications having dev and Op responsibilities under different leaderships Deloitte team doing the dev all by themselves
  14. Imp. Theme Companies organize themselves around the technology Convay Law?? MS Org. around biz capabilities. (MS view) Each team should have some elements right the way through the end users themselves Each team should be responsible for their communication right the way through end user experience. How this effects business outcomes. Divide yourself up around business organization and make it as full stack as possible. Boundaries for services, teams 2 pizza teams.
  15. X and Z are the traditional ways of scaling But Y is the functional decomposition that needs to be happen to move to the new world. Partition by noun. -- order service -- customer mgmt service -- checkout service
  16. In the grand scheme of things here the MW should be looked upon as a pipe Lets get some powerful piece of middleware that will automatically do all the magic Route messages Do the transformation Mashups Apply biz rules ESB: Egregious Spaghetti Box
  17. In the grand scheme of things here the MW should be looked upon as a pipe Lets get some powerful piece of middleware that will automatically do all the magic Route messages Do the transformation Mashups Apply biz rules ESB: Egregious Spaghetti Box
  18. In the grand scheme of things here the MW should be looked upon as a pipe Lets get some powerful piece of middleware that will automatically do all the magic Route messages Do the transformation Mashups Apply biz rules ESB: Egregious Spaghetti Box
  19. Has a huge impact on architecture. Monolith has this huge single database containing all the data for all business functions. MS should be responsible for its own data and its peristence. Removes integrated at db level Use data store that makes sense for the problem You may never talk to another service’s datastore. You may only talk to another service via its API Choice of db tech will be upto the service group Including languages. Event oriented architecture. What if Service-A needs the data of Service-B How a service landscape is governed and also in terms of data management
  20. Z One commonly used routing criteria is an attribute of the request such as the primary key of the entity being accessed. Another common routing criteria is the customer type. For example, an application might provide paying customers with a higher SLA than free customers by routing their requests to a different set of servers with more capacity. Challenge: MS-A needs a data element from MS-B for its own function. Solution: event sourcing.
  21. Automation is a must to make all this work Got to have good monitoring
  22. On-Premise: T-Mobile IaaS: Amazon EC2 PaaS: Cloud Foundry SaaS: Gmail , SalesForce
  23. Spring Boot: Convention over Configuration Also has maven and gradle configuration that packages the application as a self contained executable job file Health check On-Premise: T-Mobile IaaS: Amazon EC2 PaaS: Cloud Foundry SaaS: Gmail , SalesForce
  24. Netflix randomly brings down nodes and simulate failure to check resiliency Bring up CAP theorem here
  25. The most critical starting point is to define a clear strategy.
  26. Talk about eventual consistency This concept is also known as BASE (as opposed to ACID) – Basically Available, Soft State, Eventually Consistent ACID (Atomicity, Consistency, Isolation, Durability)
  27. Graph databases (may be for SHMS hierarchy)
  28. Good example. One comma brought down the website of Netflix. Testing is hard Distributed programming is complex Distributed txn w/o 2 phase commit. MS is not just copying one big war file but a lot of moving parts. Eventual consistency Event driven/sourcing BASE (as opposed to ACID) – Basically Available, Soft State, Eventually Consistent ACID (Atomicity, Consistency, Isolation, Durability
  29. COMPUTATIONAL Framework. That’s the key.. Bring the computation to the data and not the other way round. a 20mb jar is more transportable than 1TB of data input. One good example of this paradigm will be: 1. Bring commission engine to our data than the other way around.