Copyright © 2017, edureka and/or its affiliates. All rights reserved. Agenda
Copyright © 2017, edureka and/or its affiliates. All rights reserved. Monolithic Architecture
Copyright © 2017, edureka and/or its affiliates. All rights reserved. Monolithic Architecture In layman terms, you can say that it is like a big container wherein all the software components of an application are assembled together and tightly packaged Client Side UI Server Side Application HTTP Request Execute a domain specific logic Retrieve and update data from the database Populate the HTML views to be sent to the browser Database Monolithic Architecture
Copyright © 2017, edureka and/or its affiliates. All rights reserved. Monolithic Architecture - Example Let’s take a classic use case of a shopping cart application Single Instance
Copyright © 2017, edureka and/or its affiliates. All rights reserved. Monolithic Architecture - Challenges
Copyright © 2017, edureka and/or its affiliates. All rights reserved. Monolithic Architecture - Challenges Agility Let us consider an asset management industry new services keep on coming for the clients Banking Application New Services Monolithic application can accommodate these changes, but at the cost of reduced agility, because even if a small component in an application has to be changed, the entire application needs to be repackaged and assembled together.
Copyright © 2017, edureka and/or its affiliates. All rights reserved. Let us consider, a shopping cart application gains a lot of customer attraction. Now, we need to scale our application so that can handle our new customers. Instance - 1 Instance - 2 Instance - 3 Load Balancer Just for accommodating more customers, three instances of the same application are created, but resources utilized in other services are getting wasted, since they don’t have a need to scale. Monolithic Architecture - Challenges Scalability
Copyright © 2017, edureka and/or its affiliates. All rights reserved. Monolithic Architecture - Challenges Fault Tolerance Even if one component does not work , the entire system goes down. Single Instance Fault Tolerance
Copyright © 2017, edureka and/or its affiliates. All rights reserved. What Are Microservices?
Copyright © 2017, edureka and/or its affiliates. All rights reserved. Microservices Microservices are an architecture paradigm wherein a monolithic application is decomposed into small tiny micro applications which are packaged and deployed independently
Copyright © 2017, edureka and/or its affiliates. All rights reserved. Microservices - Communication HTTP REST or Message Bus
Copyright © 2017, edureka and/or its affiliates. All rights reserved. Microservice Architecture
Copyright © 2017, edureka and/or its affiliates. All rights reserved. Microservice Architecture
Copyright © 2017, edureka and/or its affiliates. All rights reserved. Monolithic vs Microservice Architecture Monolithic Architecture Microservice Architecture
Copyright © 2017, edureka and/or its affiliates. All rights reserved. Decoupling Easily built, altered, and scaled Business Capabilities Focus on single capability Componentization Components can be easily replaced Autonomy Teams work independently Continuous Delivery Allows frequent releases Responsibility Applications are treated as products De-centralized Governance No standardized patterns Agility Features are quickly developed Microservices Features
Copyright © 2017, edureka and/or its affiliates. All rights reserved. Real- Life Use-Case: Uber
Copyright © 2017, edureka and/or its affiliates. All rights reserved. Use-Case - Uber Uber Technologies Inc. is a global taxi technology company headquartered in San Francisco, California, United States, operating in 633 cities worldwide.
Copyright © 2017, edureka and/or its affiliates. All rights reserved. Uber’s Previous System Uber began its journey with a monolithic architecture. Having one codebase seemed clean at that time, and solved Uber’s core business problems, which included connecting drivers with riders, billing, and payments. It was reasonable back then to have all of Uber’s business logic in one place to scale.
Copyright © 2017, edureka and/or its affiliates. All rights reserved. Expansion Of Uber Uber rapidly expanded into more cities and introduced new products
Copyright © 2017, edureka and/or its affiliates. All rights reserved. Monolithic Architecture Of Uber Continuous integration turned into a liability because deploying the codebase meant deploying everything at once
Copyright © 2017, edureka and/or its affiliates. All rights reserved. New features Fixing bugs Monolithic Architecture Of Uber Adding new features and fixing bugs in a single repo became extremely difficult
Copyright © 2017, edureka and/or its affiliates. All rights reserved. Uber Changed It’s Architecture Uber decided to follow the lead of other hyper-growth companies—Amazon, Netflix, SoundCloud, Twitter, and others—and break up the monolith into multiple codebases to form a Microservice Architecture API GATEWAY REST API REST API REST API REST API REST API REST API PASSENGER MANAGEMENT DRIVER MANAGEMENT TRIP MANAGEMENT DRIVER WEB UI PASSENGER WEB UI BILLING PAYMENTS NOTIFICATION ADAPTER 1 ADAPTER 2 ADAPTER 3
Copyright © 2017, edureka and/or its affiliates. All rights reserved. Best Practices For Designing A Microservice Architecture
Copyright © 2017, edureka and/or its affiliates. All rights reserved. Separate data store for each Microservice 01 02 04 03 05 Treat servers as stateless Deploy in Containers Keep code at a similar level of maturity Separate build for each Microservice Microservices Architecture: Best Practices
Copyright © 2017, edureka and/or its affiliates. All rights reserved. Session In A Minute Monolithic Architecture Microservices Architecture Best Practices Separate data store for each Microservice 0 1 0 2 0 4 0 3 0 5 Treat servers as stateless Deploy in Containers Keep code at a similar level of maturity Separate build for each Microservice Uber Use-CaseMicroservices Features Differences
Copyright © 2017, edureka and/or its affiliates. All rights reserved.

Microservice Architecture | Microservices Tutorial for Beginners | Microservices Training | Edureka

  • 2.
    Copyright © 2017,edureka and/or its affiliates. All rights reserved. Agenda
  • 3.
    Copyright © 2017,edureka and/or its affiliates. All rights reserved. Monolithic Architecture
  • 4.
    Copyright © 2017,edureka and/or its affiliates. All rights reserved. Monolithic Architecture In layman terms, you can say that it is like a big container wherein all the software components of an application are assembled together and tightly packaged Client Side UI Server Side Application HTTP Request Execute a domain specific logic Retrieve and update data from the database Populate the HTML views to be sent to the browser Database Monolithic Architecture
  • 5.
    Copyright © 2017,edureka and/or its affiliates. All rights reserved. Monolithic Architecture - Example Let’s take a classic use case of a shopping cart application Single Instance
  • 6.
    Copyright © 2017,edureka and/or its affiliates. All rights reserved. Monolithic Architecture - Challenges
  • 7.
    Copyright © 2017,edureka and/or its affiliates. All rights reserved. Monolithic Architecture - Challenges Agility Let us consider an asset management industry new services keep on coming for the clients Banking Application New Services Monolithic application can accommodate these changes, but at the cost of reduced agility, because even if a small component in an application has to be changed, the entire application needs to be repackaged and assembled together.
  • 8.
    Copyright © 2017,edureka and/or its affiliates. All rights reserved. Let us consider, a shopping cart application gains a lot of customer attraction. Now, we need to scale our application so that can handle our new customers. Instance - 1 Instance - 2 Instance - 3 Load Balancer Just for accommodating more customers, three instances of the same application are created, but resources utilized in other services are getting wasted, since they don’t have a need to scale. Monolithic Architecture - Challenges Scalability
  • 9.
    Copyright © 2017,edureka and/or its affiliates. All rights reserved. Monolithic Architecture - Challenges Fault Tolerance Even if one component does not work , the entire system goes down. Single Instance Fault Tolerance
  • 10.
    Copyright © 2017,edureka and/or its affiliates. All rights reserved. What Are Microservices?
  • 11.
    Copyright © 2017,edureka and/or its affiliates. All rights reserved. Microservices Microservices are an architecture paradigm wherein a monolithic application is decomposed into small tiny micro applications which are packaged and deployed independently
  • 12.
    Copyright © 2017,edureka and/or its affiliates. All rights reserved. Microservices - Communication HTTP REST or Message Bus
  • 13.
    Copyright © 2017,edureka and/or its affiliates. All rights reserved. Microservice Architecture
  • 14.
    Copyright © 2017,edureka and/or its affiliates. All rights reserved. Microservice Architecture
  • 15.
    Copyright © 2017,edureka and/or its affiliates. All rights reserved. Monolithic vs Microservice Architecture Monolithic Architecture Microservice Architecture
  • 16.
    Copyright © 2017,edureka and/or its affiliates. All rights reserved. Decoupling Easily built, altered, and scaled Business Capabilities Focus on single capability Componentization Components can be easily replaced Autonomy Teams work independently Continuous Delivery Allows frequent releases Responsibility Applications are treated as products De-centralized Governance No standardized patterns Agility Features are quickly developed Microservices Features
  • 17.
    Copyright © 2017,edureka and/or its affiliates. All rights reserved. Real- Life Use-Case: Uber
  • 18.
    Copyright © 2017,edureka and/or its affiliates. All rights reserved. Use-Case - Uber Uber Technologies Inc. is a global taxi technology company headquartered in San Francisco, California, United States, operating in 633 cities worldwide.
  • 19.
    Copyright © 2017,edureka and/or its affiliates. All rights reserved. Uber’s Previous System Uber began its journey with a monolithic architecture. Having one codebase seemed clean at that time, and solved Uber’s core business problems, which included connecting drivers with riders, billing, and payments. It was reasonable back then to have all of Uber’s business logic in one place to scale.
  • 20.
    Copyright © 2017,edureka and/or its affiliates. All rights reserved. Expansion Of Uber Uber rapidly expanded into more cities and introduced new products
  • 21.
    Copyright © 2017,edureka and/or its affiliates. All rights reserved. Monolithic Architecture Of Uber Continuous integration turned into a liability because deploying the codebase meant deploying everything at once
  • 22.
    Copyright © 2017,edureka and/or its affiliates. All rights reserved. New features Fixing bugs Monolithic Architecture Of Uber Adding new features and fixing bugs in a single repo became extremely difficult
  • 23.
    Copyright © 2017,edureka and/or its affiliates. All rights reserved. Uber Changed It’s Architecture Uber decided to follow the lead of other hyper-growth companies—Amazon, Netflix, SoundCloud, Twitter, and others—and break up the monolith into multiple codebases to form a Microservice Architecture API GATEWAY REST API REST API REST API REST API REST API REST API PASSENGER MANAGEMENT DRIVER MANAGEMENT TRIP MANAGEMENT DRIVER WEB UI PASSENGER WEB UI BILLING PAYMENTS NOTIFICATION ADAPTER 1 ADAPTER 2 ADAPTER 3
  • 24.
    Copyright © 2017,edureka and/or its affiliates. All rights reserved. Best Practices For Designing A Microservice Architecture
  • 25.
    Copyright © 2017,edureka and/or its affiliates. All rights reserved. Separate data store for each Microservice 01 02 04 03 05 Treat servers as stateless Deploy in Containers Keep code at a similar level of maturity Separate build for each Microservice Microservices Architecture: Best Practices
  • 26.
    Copyright © 2017,edureka and/or its affiliates. All rights reserved. Session In A Minute Monolithic Architecture Microservices Architecture Best Practices Separate data store for each Microservice 0 1 0 2 0 4 0 3 0 5 Treat servers as stateless Deploy in Containers Keep code at a similar level of maturity Separate build for each Microservice Uber Use-CaseMicroservices Features Differences
  • 27.
    Copyright © 2017,edureka and/or its affiliates. All rights reserved.