Engineering

5 Benefits of a Modular Architecture

Tuesday, February 9, 2021 - Entando

As you scale up the user base and feature list for a given application, things become increasingly complex. For the enterprise, this complexity can quickly get to a point where an application is difficult to maintain and update. 

This is where organizations can benefit by leveraging a more modular software architecture.

Modularity is a way of breaking down your application into discrete parts of the whole that can be individually managed and yet still integrated into the larger system. Over the years, modularity has evolved to include a number of different tools and techniques. 

The diagram below represents that evolution.

The_Evolution_Of_Frontend_Development_2021_d0.png

The left side of the image represents the monolithic structures of the past, which soon gave way to the tiered system between the frontend and backend. As backend needs grew increasingly complex, microservices were introduced to break up code into smaller pieces of functionality that would communicate with the frontend monolith via an API gateway. 

More recently, micro frontends have become the apparent final frontier of modularity, breaking up the frontend monolith in favor of smaller pieces of frontend code that are decoupled from the base app and connect back to an individual backend service or services. 

When you add containerization and Kubernetes deployments to this overall framework, what you end up with is an incredibly modular architecture that will benefit your organization in a number of key ways. 

Here are 5 benefits of a modular architecture.

1. Team Independence

By separating functionality in your application around business goals, you are able to increase the efficiency of your DevOps processes and grant greater independence to a given business unit. Instead of needing to wait until the entire application is ready for an update, individual teams can push their own updates to production without negatively affecting the rest of the application. 

This independence leads to faster time to market, an increased ability to update iteratively and experiment continuously, and less friction between teams.

2. Manageable Complexity

As has been stated above, modularity is a way to help you manage the complexity of your code and your organization’s user needs and expectations. When you develop in micro frontends and microservices, your codebases are smaller and easier to work with without becoming unwieldy.

3. The Ability To Isolate Failure

In a micro frontend and microservice architecture, the isolation of functionality also allows for isolation of failures. So if one part of your application fails, the rest of your site can continue to perform. 

Furthermore, in a Kubernetes environment, if a particular instance fails, your Kubernetes operator will have the ability to rectify the issue quickly--often times without a severe breakdown in your app’s performance.

4. Smarter Scaling

When you develop your micro frontends that sit on top of microservices that are then deployed in containers on Kubernetes, you also have the ability to scale your applications with finer grained control. 

Instead of scaling up the entire application, you can scale the parts of your site or app that you know will receive a disproportionate amount of traffic with regard to the rest of the app. This will result in a considerable savings with regard to your infrastructural costs.

5. Code Reuse

When you have pieces of functionality organized around a business goal, they can become useful beyond your current project. You can reuse microservices and micro frontends across applications, which will help to standardize your enterprise’s approach as well as decrease the amount of work required to get a new project into production. 

This is where the Entando Component Repository can help drive down your development costs over time. Importing and exporting functionality--or even entire applications--is made easy on the platform to help you get the most out of your code.

Create apps with modular architectures faster with Entando.

When release cycles take months instead of weeks, your business is left unable to deliver modern online experiences. Development and deployment bottlenecks slow your ability to make application updates, keeping you from iterating and innovating. And outdated or clunky UX keeps you from winning customers over and retaining them.

So that’s why we created a platform to help you get your ideas to market faster.

Entando is the leading micro frontend platform for building enterprise web apps on Kubernetes. We want to change the way enterprises think about building their apps, sites, and portals in order to innovate more quickly.

With Entando, you can:

  • Leverage customized blueprints using the Entando Component Generator (built on JHipster) to quickly create micro frontends and assemble them into an app.
  • Reuse UI/UX components across multiple projects via the Entando Component Repository, saving money and increasing development speed. 
  • Scale apps quickly and effectively with Entando’s custom Kubernetes operator, automating the deployment of high availability, self-healing applications. 
  • Centrally manage user roles with Entando Identity Management (built on Keycloak).

Entando is open source with available enterprise support and services. Begin developing on the platform today, and get a quote to see how our team can help your enterprise build better apps, sites, and portals--faster.

Entando_Tuesday_Blog_Post.png
White_Paper_cover.png

Learn How To Create Better Apps, Portals, & Websites--Faster.

This white paper outlines how your organization can accelerate UX innovation by developing with micro frontends on Kubernetes, as well as how a micro frontend platform can help you execute this methodology more effectively.