Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Monoliths to MicroServices | Talk | AGILE GURUGRAM 2018 | 23 - 24 March


Published on

Monoliths to MicroServices - Architecture patterns and migration principles


When migrating a monolith to a microservices based architecture, it is usually easy to do what is required. However, it is tough to not do what is not required.
Teams struggle to manage the incidental complexities related to:
1) Structured Composition, because of a procedural approach
2) Centralized data
3) Concurrency
We need alternatives to these conventional techniques.
Taking the Apache HDFS (a popular and accessible open source) NameNode module as an example, the demo would discuss the alternative principles which simplifies the development of microservices.

Introduction to Microservices
Discussing each challenge, with examples from Apache HDFS
Discussing solutions to each challenge
How to develop/migrate to MicroServices
45 Mins

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Monoliths to MicroServices | Talk | AGILE GURUGRAM 2018 | 23 - 24 March

  1. 1. Monoliths to Microservices Migration Principles
  2. 2. Architecture
  3. 3. Apache HDFS 1. Master/Slave architecture 2. Name Node manages meta data 3. Single Name node simplifies the architecture 4. Name Node takes care of allocation, replication, backup 5. User data flows through data nodes only
  4. 4. Design
  5. 5. backup cache checkpoint FSImage : persistence of metadata INode: In memory metadata Design
  6. 6. Dependencies
  7. 7. Dependencies 100+ external dependencies 20+ users
  8. 8. Centralized Data
  9. 9. Centralized Data INode: In memory meta-data
  10. 10. Mutability
  11. 11. Microservices Functional Segregated Data Simply Concurrent Structured Centralized Data Managed Mutability Monoliths
  12. 12. The good parts
  13. 13. Segregated Data
  14. 14. Simply Concurrent
  15. 15. Simply Concurrent
  16. 16. Summary
  17. 17. Summary C C++ Java Node.js Python Scala Erlang Functional Composition Poor Poor Partial Good Partial Good Good Type System Static Static Static Dynamic Dynamic Static Dynamic Concurrency- Complexity Complex Complex Complex Simple Complex Moderate Simple Concurrency- Mutability Mutable Mutable Mutable Mutable Mutable Separation of values & variables Immutable V.Scaling Good Good Moderate Moderate Good Moderate Good H.Scaling Moderate Moderate Moderate Good Moderate Moderate Good Reactive Extensions Not Available Available Available Available Available Available Not Required Microservices framework Poor Poor Moderate (Vert.x) Good (Express based) Poor Moderate Moderate (Elixir) Libs/tools/fw Poor Moderate Good Moderate Good Good Moderate Popularity High High High Moderate Moderate Low Low
  18. 18. Thank You