AppDev with Microservices - Rishabh Dugar 6th June 2020
About the Speaker Rishabh Dugar SDE2,Amazon MNNIT Allahabad ‘ 2016 Computer Science and Engineering
We will be talking about... ● Introduction to Application Development ● Monolithic Architecture ● Problems With Monolithic ● Microservices as an Alternative ● Pros and Cons of Microservice Architecture ● Scaling Your Application ● Future of Serverless / Cloud Computing ● Infrastructure As A Code
Application development is the process of creating a computer program or a set of programs to perform the different tasks that a business requires. Whats is Application Development
Let’s go Back in Time
Application Code Your Application Package
Application Add More Code Package
Application Add More Code Package
Module1 Application Lets Modularize it... Module2 Module3 Module4 Package
Representation of Monolithic Architecture
Disadvantages New Developer Want to add a new feature
Module1 Application Add New Code Module2 Module3 Module4 Package New Code
When your userbase grows...
Add more servers Module1 Application Module2 Module3 Module4 Module1 Application Module2 Module3 Module4 Module1 Application Module2 Module3 Module4
Monolithic Architecture “Monolithic application has single code base with multiple modules. Modules are divided as either for business features or technical features. It has single build system which build entire application and/or dependency. It also has single executable or deployable binary” – Sometime it also called multi-tier architecture because monolithic applications are divided in three or more layers or tire i.e. presentation, business, database, application, etc.
Limitations Difficulties with monolithic application, when it grow ● Large monolithic code base makes complicated to understand, especially for new developer ● Scaling become challenging ● Continuous integration / deployment become complex and time consuming. You may require dedicated team for build and deploy ● Overloaded IDE, Large code base makes IDE slow, build time increase. ● Extremely difficult to change technology or language or framework because everything is tightly coupled and depend up on each other.
The Shift... Entire paradigm shift from browser / desktop to mobile / smart devices. Enterprise need to serve data to different devices and form factors (smart phone, tablet, handheld, etc).
Decouple your application into multiple services Module1 Module2 Module3 A P I A P I API REST
Microservices Architecture ● Microservice architecture is an approach of building large enterprise application with multiple small unit called service, each service develop, deploy and test individually. ● Each service intercommunicate with a common communication protocol like REST web service with JSON.
Microservices Architecture ● Each service may have own database or storage system or they can share common database or storage system. Microservice is all about distribute or break application in small chunks. ● Each service run individually either in single machine or different machine but they execute its own separate process.
Representation of Microservice Architecture
Benefits of Microservices Privilege with Microservice architecture, when it grow ● Each microservice is small and focused on a specific feature / business requirement. ● Microservice can be developed independently by small team of developers (normally 2 to 5 developers). ● Microservice is loosely coupled, means services are independent, in terms of development and deployment both.
Benefits of Microservices ● Microservice allows easy and flexible way to integrate automatic deployment with Continuous Integration tools (for e.g: Jenkins, Hudson, bamboo etc..). The productivity of a new team member will be quick enough. ● Microservice is easy to scale based on demand. In a nutshell, monolithic vs microservice architecture is like elephant vs ant approach. What you wants to build a giant system like elephant or army of ant, small, fast and effective.
Cons ● Over-Complexity ○ If one feature/change triggers changes in 10s of different microservices, perhaps you may want to re- think. ● Discoverability of Microservices ○ Coordinate request/response on each API and respect any change in that.
Deploying Your Service
Deploying your Microservices ● Microservices can be deployed in a variety of ways; they can be part of a serverless architecture, hosted in containers, developed using PaaS, or, theoretically, used to build a locally hosted application. ● However, the advantages of building an application out of microservices are perhaps most apparent when the application is hosted in the cloud, either using containers or in a serverless architecture.
How does Auto-Scaling works?
Cloud Computing Cloud provider runs the server, and dynamically manages the allocation of machine resources. Pricing is based on the actual amount of resources consumed by an application, rather than on pre-purchased units of capacity.
Popular Serverless Options Aws Lambda Google Cloud Function
Infrastructure As A Code - process of managing and provisioning computer data centers through machine-readable definition files, - Write once, deploy anywhere, expansion is so easy
Thank You! You can connect with me on LinkedIn or shoot an email for any questions.

AppDev with Microservices

  • 1.
  • 2.
    About the Speaker RishabhDugar SDE2,Amazon MNNIT Allahabad ‘ 2016 Computer Science and Engineering
  • 3.
    We will betalking about... ● Introduction to Application Development ● Monolithic Architecture ● Problems With Monolithic ● Microservices as an Alternative ● Pros and Cons of Microservice Architecture ● Scaling Your Application ● Future of Serverless / Cloud Computing ● Infrastructure As A Code
  • 4.
    Application development is theprocess of creating a computer program or a set of programs to perform the different tasks that a business requires. Whats is Application Development
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
    Add more servers Module1 Application Module2 Module3Module4 Module1 Application Module2 Module3 Module4 Module1 Application Module2 Module3 Module4
  • 15.
    Monolithic Architecture “Monolithic applicationhas single code base with multiple modules. Modules are divided as either for business features or technical features. It has single build system which build entire application and/or dependency. It also has single executable or deployable binary” – Sometime it also called multi-tier architecture because monolithic applications are divided in three or more layers or tire i.e. presentation, business, database, application, etc.
  • 16.
    Limitations Difficulties with monolithicapplication, when it grow ● Large monolithic code base makes complicated to understand, especially for new developer ● Scaling become challenging ● Continuous integration / deployment become complex and time consuming. You may require dedicated team for build and deploy ● Overloaded IDE, Large code base makes IDE slow, build time increase. ● Extremely difficult to change technology or language or framework because everything is tightly coupled and depend up on each other.
  • 17.
    The Shift... Entire paradigmshift from browser / desktop to mobile / smart devices. Enterprise need to serve data to different devices and form factors (smart phone, tablet, handheld, etc).
  • 18.
    Decouple your applicationinto multiple services Module1 Module2 Module3 A P I A P I API REST
  • 19.
    Microservices Architecture ● Microservicearchitecture is an approach of building large enterprise application with multiple small unit called service, each service develop, deploy and test individually. ● Each service intercommunicate with a common communication protocol like REST web service with JSON.
  • 20.
    Microservices Architecture ● Eachservice may have own database or storage system or they can share common database or storage system. Microservice is all about distribute or break application in small chunks. ● Each service run individually either in single machine or different machine but they execute its own separate process.
  • 21.
  • 22.
    Benefits of Microservices Privilegewith Microservice architecture, when it grow ● Each microservice is small and focused on a specific feature / business requirement. ● Microservice can be developed independently by small team of developers (normally 2 to 5 developers). ● Microservice is loosely coupled, means services are independent, in terms of development and deployment both.
  • 23.
    Benefits of Microservices ●Microservice allows easy and flexible way to integrate automatic deployment with Continuous Integration tools (for e.g: Jenkins, Hudson, bamboo etc..). The productivity of a new team member will be quick enough. ● Microservice is easy to scale based on demand. In a nutshell, monolithic vs microservice architecture is like elephant vs ant approach. What you wants to build a giant system like elephant or army of ant, small, fast and effective.
  • 24.
    Cons ● Over-Complexity ○ Ifone feature/change triggers changes in 10s of different microservices, perhaps you may want to re- think. ● Discoverability of Microservices ○ Coordinate request/response on each API and respect any change in that.
  • 25.
  • 26.
    Deploying your Microservices ●Microservices can be deployed in a variety of ways; they can be part of a serverless architecture, hosted in containers, developed using PaaS, or, theoretically, used to build a locally hosted application. ● However, the advantages of building an application out of microservices are perhaps most apparent when the application is hosted in the cloud, either using containers or in a serverless architecture.
  • 27.
  • 28.
    Cloud Computing Cloud providerruns the server, and dynamically manages the allocation of machine resources. Pricing is based on the actual amount of resources consumed by an application, rather than on pre-purchased units of capacity.
  • 29.
    Popular Serverless Options AwsLambda Google Cloud Function
  • 30.
    Infrastructure As ACode - process of managing and provisioning computer data centers through machine-readable definition files, - Write once, deploy anywhere, expansion is so easy
  • 31.
    Thank You! You canconnect with me on LinkedIn or shoot an email for any questions.

Editor's Notes

  • #11 Shows How Everything is clubbed in single