Last week, we analyzed different business platform solutions and their features. Today, we will delve into the trends that are forcing applications architecture to evolve, such as the emergence of MVC frontend architectures and microservices (both based on the modularization of components). These design proposals help make the technology in which they are implemented more flexible and scalable, as well as to reuse the development processes employed.
Factoring an application into different components is not a novel idea. It is at the very core of object design, software abstraction and componentization. Currently, this factoring tends to adopt the form of classes and interfaces between shared libraries and technology levels. What has changed in the past few years is that developers, driven by companies, now create cloud distributed applications.
MVC architecture and frontend framework
MVC architecture separates data and the business logic of an application, offering elasticity, portability and interoperability between components (which proves really useful for content management collaboration in cloud services). This software architectural pattern is based on code-recycling ideas and concept separation, features that aim to facilitate the development of applications and their future maintenance.
The emergence and great success of MVC architecture in frontend development is an example of implementation in developments that reflects stack maintenance. In the past few years, we have experienced a rise of new MVC frameworks mostly aimed towards frontend development. This boom is the answer to the implementation of a logic and a design organization that, before, was only featured in the backend. That is to say:
a) We download part of the logic that used to be stored in the client’s server and favor the integration of other applications that consume said services.
b) Implementation is planned around component modulation. This allows for completely scalable solutions and improves their maintenance.
Two of the biggest companies according to the NASDAQ technological index (Google and Facebook) are letting their proposals for MVC frontend methodologies battle it out: Angular.js and React. This clearly shows the how important these types of web service implementations are nowadays.
Microservice architecture and backend framework
Microservices allow to build systems for short-scale services, each one in its own process, communicating through light protocols. Normally, a minimum number of services manages common things for all others (like database access). Each microservice corresponds to an app business area.
In addition, each of them is independent from the rest (meaning their codes can be unfolded without affecting the others). They can even be written in a different programming language.
When compared to monolithic approaches, an advantage of microservices is that they can be deployed independently. In other words, a change in the inventory module will not affect the others, business logic is well separated, it is simple and improves scalability. It also helps manage multifunctional and autonomous teams. In addition, we can form multifunctional teams that handle several microservices (escalating the development process in a simpler way).
This architecture poses a series of challenges (such as its automatic deployment) since it introduces a series of complex factors that need to be managed in distributed systems: errors, data consistency, test strategies, etc.
In Teldat, we are developing scalable solutions for our clouds management and administration platform (based on the MVC frontend model), as well as planning the implementation of microservices.