final_presentation

16
Building Scalable Architectures Micro Services Sasidhar Gogulapati

Upload: sasidhar-gogulapati

Post on 18-Feb-2017

75 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Final_Presentation

Building Scalable Architectures

Micro Services

Sasidhar Gogulapati

Page 2: Final_Presentation

Agenda

The Monolith

Decomposing Applications into Services

Microservice Characteristics

Reference – Microservice Architecture

Drawbacks of Microservices

Page 3: Final_Presentation

The Monolith

Let’s Imagine we are building an Taxi-hiring application

Page 4: Final_Presentation
Page 5: Final_Presentation

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

Page 6: Final_Presentation

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

Page 7: Final_Presentation

X-axis : Horizontal Scaling

Y-axis: functional decomposition

Scale by splitting different things

Z-axis: data partitioning

The Scale Cube

Decomposing Application into Services

Page 8: Final_Presentation

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

Page 9: Final_Presentation
Page 10: Final_Presentation

Microservices

More Service, Less Micro

But more realistically..

Focus on building services that make development and deployment easier

- not just tiny services

Page 11: Final_Presentation

Benefits of Microservices

Smaller, Simpler apps

Easier to Understand and Develop

Faster to Build and Deploy

Reduced startup time

Less jar/class path problems

Page 12: Final_Presentation

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

Page 13: Final_Presentation

Microservices Architecture for Taxi Hiring Application

Page 14: Final_Presentation

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

Page 15: Final_Presentation

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

Page 16: Final_Presentation

Questions ?Thank You.