6. 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
7. X-axis : Horizontal Scaling
Y-axis: functional
decomposition
Scale by splitting
different things
Z-axis: data
partitioning
The Scale Cube
Decomposing Application into Services
8. 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
9.
10. Microservices
More Service, Less Micro
But more realistically..
Focus on building services that make development and
deployment easier
- not just tiny services
11. Benefits of Microservices
Smaller, Simpler apps
Easier to Understand and Develop
Faster to Build and Deploy
Reduced startup time
Less jar/class path problems
12. 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
14. 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
15. 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