Monolithic , Microservice Architecture

Monolithic , Microservice Architecture


In this article,we will talk about Monolithic , Microservice Architecture and the difference between them .

Monolith Architecture (Traditional Web Application Architecture) means composed all in one piece. The Monolithic application describes a single tiered software application in which different components combined into a single program from a single platform. Components can be:

  • Presentation —> responsible for handling HTTP requests and responding with either JSON/XML (for web services APIs).
  • Business logic —> the application’s business logic.
  • Database layer —> data access objects for accessing the database.
  • Application integration —> integration with other services (Ex . via messaging or REST API). Or integration with any other Data sources.
  • Notification module —> responsible for sending email notifications whenever needed.

the application is built and deployed as one Application for all platforms ( desktop, mobile and tablet) using RDBMS as a data source. Benefits and Drawbacks of Monolithic Architecture.

Benefits:

  • Simple to develop — At the beginning of a project it is much easier to go with Monolithic Architecture.
  • Simple to test. For example, you can implement end-to-end testing by simply launching the application .
  • Simple to deploy. You have to copy the packaged application to a server.

Drawbacks:

  • Maintenance — If Application is too large and complex to understand entirely, it is challenging to make changes fast and correctly.
  • The size of the application can slow down the start-up time.
  • You must redeploy the entire application on each update.
  • Monolithic applications have difficulty to adopting new and advance technologies. Since changes in languages or frameworks affect an entire application, it requires efforts to thoroughly work with the app details, hence it is costly considering both time and efforts.

Microservice Architecture are an approach to application development in which a large application is built as a suite of modular services . Each module supports a specific business goal and uses a simple, well defined interface to communicate with other sets of services.

Instead of sharing a single database as in Monolithic application, each microservice has its own database. Having a database per service is essential if you want to benefit from microservices, because it ensures loose coupling. Each of the services has its own database. Moreover, a service can use a type of database that is best suited to its needs.


Benefits:

  • Microservices Enables the continuous delivery and deployment of large, complex applications.
  • Better in testing because services are smaller and faster to test.
  • Better in deployment because services can be deployed independently.
  • It enables you to organize the development effort around multiple teams. Each team is responsible for one or more single service. Each team can develop, deploy and scale their services independently of all of the other teams.
  • The application starts faster, which makes developers more productive, and speeds up deployments
  • Microservices Eliminates any long-term commitment to a technology stack. When developing a new service you can pick a new technology stack. Similarly, when making major changes to an existing service you can rewrite it using a new technology stack.

Drawbacks:

  • Developers must deal with the additional complexity of creating a distributed system.
  • Developer tools/IDEs are oriented on building monolithic applications and don’t provide explicit support for developing distributed applications.
  • Developers must implement the inter service communication mechanism.
  • Deployment complexity. In production, there is also the operational complexity of deploying and managing a system comprised of many different service types.
Now The Difference between Them is explained so we will in the next Article that will explain example on Microservice Architecture by using one Of the best framework in microservice (springBoot) .

Thanks .

要查看或添加评论,请登录

Ahmed marey的更多文章

  • SOLID Principles in Java

    SOLID Principles in Java

    In this article we will talk about one of the most important topic in software field , Classes are the building blocks…

  • Microservices < Resilient and Fault Tolerant >

    Microservices < Resilient and Fault Tolerant >

    In a Monolith application, a single error has the potential of bringing down the entire application. This can be…

  • map and flatMap methods in Java 8 .

    map and flatMap methods in Java 8 .

    In Java, Stream interface has >map() and flatMap() methods and both are intermediate stream operations and return…

  • Aspect-Oriented Programming (Spring AOP)

    Aspect-Oriented Programming (Spring AOP)

    In this article , we will talk about aspect oriented programming programming (AOP) definition and implement it using…

  • springboot Microservice Example .

    springboot Microservice Example .

    In this article, we’ll discuss quick example of the most common concept in Spring (BOOT , CLOUD) , we will start…

  • SpringBoot Asynchronous Methods

    SpringBoot Asynchronous Methods

    In this article,we will talk about SpringBoot Asynchronous Methods , We will annotate a bean method; @Async will make…

社区洞察

其他会员也浏览了