Microservices

Understand what are microservices, how is it different from Monolithic app

Get Started. It's Free
or sign up with your email address
Rocket clouds
Microservices by Mind Map: Microservices

1. single application is built as suite of small services

1.1. communicating over open and lightweight protocol

1.1.1. HTTP

1.1.2. REST

1.2. each running as independent processes

1.3. separately written, deployed, scaled

2. Microservices are not SOA

2.1. SOA: integrating various enterprise applications

2.2. Microservices: decomposing single application into suite of smaller applications

3. Monolithic vs Microservices with example

3.1. Ecommerce application with functionalities

3.1.1. Searching

3.1.2. Product Catalog

3.1.3. Inventory management

3.1.4. Shopping cart

3.1.5. Payment Management

3.1.6. User Management

3.1.7. Order Management

3.1.8. Checkout

3.2. Monolithic application

3.2.1. disadvantages

3.2.1.1. Locked to technology/language

3.2.1.1.1. Entire app written with single tech stack

3.2.1.1.2. Cannot experiment/take advantage of emerging technologies.

3.2.1.2. Difficult for single developer to understand complete code

3.2.1.3. big team working on entire app, issues during merges

3.2.1.4. single app connecting to multiple databases, complex app

3.2.1.5. Changes are held back by other changes.

3.2.2. advantages

3.2.2.1. Easy to test as a single unit.

3.2.2.2. Easy to deploy as single unit.

3.2.2.3. Easy to scale.

3.2.2.4. Easy to manage changes.

3.2.2.5. Easy to manage versions.

3.3. Microservice application

4. advantages

4.1. different process different technology

4.2. developer easy to understand code

4.3. change cycle decoupled

5. challenges

5.1. so many services to manage

5.2. more monitoring required

5.3. design for failures

5.4. remote calls vs in process call speed

5.5. transactions which goes over multiple services

5.6. sometiems features spans multiple services

5.6.1. multiple services required to be tested together

5.7. version management

6. How to break Monolith into Microservices?

6.1. Noun based (catalog, cart, customer)

6.2. Verb based (search, checkout, shipping)