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
3. 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
4. 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
15. 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.
16. 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.
17. 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).
19. 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.
20. 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.
22. 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.
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
○ 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.
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.
28. 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.
30. 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
31. Thank You!
You can connect with me on
LinkedIn or shoot an email for
any questions.