final_presentation
TRANSCRIPT
Building Scalable Architectures
Micro Services
Sasidhar Gogulapati
Agenda
The Monolith
Decomposing Applications into Services
Microservice Characteristics
Reference – Microservice Architecture
Drawbacks of Microservices
The Monolith
Let’s Imagine we are building an Taxi-hiring application
Browser/Client
LoadBalancer Database
Tomcat
UI WAR/EAR
….......................................Passenger Mgmt. Service
Driver Mgmt. Service
Payment Service
Notifications Service
Traditional Application Architecture
Easy To: Develop, Test, Deploy, Scale
But Large, Complex Monolithic Applications are Problematic
Intimidates Developers
Obstacles to Frequent Deployments
Overloads IDE and Container, Slows down the development process
Obstacle to scaling development: lot of coordination and
communication required between UI and Backend services
Requires long term commitment to a Technology Stack
X-axis : Horizontal Scaling
Y-axis: functional decomposition
Scale by splitting different things
Z-axis: data partitioning
The Scale Cube
Decomposing Application into Services
Y-axis scaling: Application Level
Passenger UI Passenger Mgmt. Service
Driver UI Driver Mgmt. Service
Payment UI Payment Service
Notifications UI Notifications Service
Apply z-axis and x-axis scaling to each service independently
Microservices
More Service, Less Micro
But more realistically..
Focus on building services that make development and deployment easier
- not just tiny services
Benefits of Microservices
Smaller, Simpler apps
Easier to Understand and Develop
Faster to Build and Deploy
Reduced startup time
Less jar/class path problems
Benefits of Microservices
Scales Development
Develop, Deploy and Scale each Service Independently
Improves Fault Isolation
Eliminates long term commitment to a Single Technology Stack
Possible to build Modular, Polyglot, multi-framework applications
Microservices Architecture for Taxi Hiring Application
Drawbacks
Complexity of developing a distributed system
Multiple databases and Transaction management
Complexity of testing a distributed system
Complexity of deploying and operating a distributed system
Future Plans
Working on a POC to build a Microservice, with the technologies Spring Boot and Cisco Search API
Working with Cisco CSTG CSF team to discuss and participate in building real Microservices to solve business problems
Questions ?Thank You.