23 January 2023

Composable Architecture: instructions for use

We live in uncertain times

Volatility in terms of market, business, and customer needs has become a constant to contend with. 

Covid19, the crisis in Ukraine, and the rapid advance of technological progress force us to ask a question: how do we design for a future that changes everyday? 

One answer is Composable Architecture or Composable Business. 

This article by our CTO Mario Stefanutti discusses the importance of composability and how to use composable architecture to help organizations transform and keep pace with change. 

—-----------------------------------------------

Composable Business, a new enterprise-wide approach that will help you in building an IT architecture that fears nothing.

  1. Composable Architecture - Scenario
  2. Composable Architecture - An Expert's Opinion (OpenAI ChatGPT) 
  3. How a Composable Architecture works
  4. What a Composable Architecture is for
  5. Composable Architecture - Read the instructions for use well
  6. What frameworks should be used to adopt a Composable Architecture?
  7. Composable Architecture - Conclusions

Composable Architecture - Scenario

How many different ways of storing information have been invented in the recent past? In addition to classical relational databases (and there are already hundreds of these), we have columnar, object-oriented, graph, knowledge base, probabilistic DBs, key-value DBs, hybrids, and many others with other specificities. The same goes for messaging systems, frameworks for building web applications, service containers, and all areas of IT, bar none. And the pace of these evolutions and changes is growing rapidly.

Among these frameworks or products some are revolutionary, become mature quickly, and in fact, change the IT landscape deeply. Many others, fortunately (most, I would say), die just as quickly.

But why this pace, this increase? On what does it depend?

Two factors are important, and these feed off each other:

  • New business dictates the evolution of technologies
  • The evolution of technologies, allows new businesses to be invented

Business is becoming increasingly demanding and inventive: new start-ups, as technologies evolve, invent new ways to create value for society and do business. And this frenzy dictates increasingly rapid technological changes. The technological changes and the continuous interconnection between humans and technology cause an increase in the amount of data generated, collected and analyzed. This leads to the development of new technologies and techniques to store, manage and analyze data, such as big data and data science. IoT is a practical example of this. New technical possibilities then lead to new business possibilities.

It becomes extremely critical for companies to know well how the IT technology ecosystem evolves, in such a dynamic market. On this knowledge and the choices that are made, neither can depend the life or death of an idea, on which a start-up or company invests time and resources.

In this blog, we will talk about composable architectures and how this architectural model can help you live well with all these changes.

Composable Architecture – An Expert's Opinion (OpenAI ChatGPT) 

Gartner predicts that by 2023 organizations that have adopted a composable approach will be able to deploy new capabilities 80% faster than competitors who have used an ad-hoc solution. And 80% faster is no small feat. 80%!

I must admit that, since nothing else is being talked about on the Internet, I tried to ask some questions about composable architectures to OpenAI ChatGPT, to see what it answered. I now report the answers here. Of course, a lot of information and the definition of composable architectures can be found on many other technology sites: IBM, Gartner, Oracle, Google, Amazon, Microsoft, and others.

I will now leave the floor to OpenAI ChatGPT, then of course I will continue with more personal remarks on the topic.

What is composable architecture? Composable architecture is a design approach for building complex systems from smaller, independent components that can be easily combined and configured to create a desired functionality. This approach allows for flexibility and adaptability in the design of the system, and makes it possible to easily add, remove, or modify individual components without affecting the overall functionality of the system. The goal of composable architecture is to enable the rapid development and deployment of complex systems by making it easier to build and maintain them over time.
Which are the characteristics of composable architecture? Answer in Italian, please Un'architettura composabile è quella che consente la creazione di sistemi complessi a partire da componenti più piccoli e indipendenti. Alcune delle principali caratteristiche di una architettura composabile includono modularità, flessibilità, scalabilità e riutilizzabilità. In una architettura composabile, ogni blocco di costruzione o componente può essere utilizzato e combinato con altri componenti in modi diversi per creare una varietà di sistemi diversi. Ciò consente maggiore flessibilità e adattabilità, nonché una maggiore facilità di manutenzione e aggiornamenti. Inoltre, una architettura composabile può facilitare l'incorporazione di nuove tecnologie e approcci, nonché la possibilità di scalare verso l'alto o verso il basso per soddisfare le esigenze in continuo cambiamento.
Which frameworks can help to build it? There are many different frameworks that can be used to build composable architecture. Some common examples include microservice architecture, service-oriented architecture (SOA), and event-driven architecture. These frameworks provide a set of standardized ways to design, build, and deploy the individual components of a composable system, and make it easier to integrate them into a cohesive whole. Other tools that can be useful for building composable architecture include service discovery and routing mechanisms, message brokers, and API gateways. These tools can help to manage the interactions between the different components of the system, and enable them to work together seamlessly.
What is it important to consider in composable architecture? Answer in Italian Quando si progetta un'architettura composibile, ci sono alcuni fattori importanti da considerare. Questi includono:Modularità: In un'architettura composibile, i singoli componenti o servizi dovrebbero essere progettati il più modularmente possibile, in modo da poter essere facilmente combinati e riutilizzati in modi diversi per creare nuove funzionalità.Interoperabilità: I diversi componenti di un'architettura composibile dovrebbero essere progettati in modo da poter comunicare e interagire in modo perfetto, in modo da poter essere facilmente combinati e integrati l'uno con l'altro.Flessibilità: Un'architettura composibile dovrebbe essere progettata in modo altamente flessibile, in modo da poter essere facilmente modificata o aggiornata senza influire sull'intero sistema.Riutilizzabilità: I componenti di un'architettura composibile dovrebbero essere progettati in modo da essere facilmente riutilizzabili, in modo da poter essere utilizzati in contesti e applicazioni diverse.Scalabilità: Un'architettura composibile dovrebbe essere progettata in modo da essere scalabile, in modo da poter essere facilmente estesa o adattata per supportare nuove funzionalità o carichi di lavoro maggiori.
By considering these factors, it is possible to create a composable architecture that is modular, flexible, and scalable and can support the development of a wide range of applications and services.

Well, the level of conversation quality of OpenAI ChatGPT is impressive, but that is another story.

We will now resume the article, but still, keep in mind OpenAI ChatGPT's answers to the questions above.

How a Composable Architecture works

The concept of composable architecture, technically speaking, is not new. Forcing our hand a bit, we can send it far back in time. Modularity, flexibility, scalability, and reusability (ChatGPT's second answer) have always been present in system design, and the goal even then was to protect the business, to evolve it more easily.

I remember that in the 1990s, there were already many methods and tools for making good composable architectures. CORBA (1991), despite all the problems and criticisms made in the past, was born precisely for this purpose. Tibco, BEA's Tuxedo, later acquired by Oracle, already made it possible to implement architectures with a good level of modularity, but they were still proprietary solutions and still one could not talk about composability. Then, right at the end of the century (December 1999), J2EE was born, and not long after that SOA-oriented architectures. SOA is one of the methods for making composable architectures (ChatGPT's third answer). It was technically more complex to make composable architectures, but from another point of view, the number of technology choices available was much less, which made life a little easier for architects and programmers. There were 4 or 5 DBs, not hundreds like today, and the same was true for messaging systems, in which you could choose from 2-3 different systems and not dozens if not hundreds like now.

The thing that changes over time is the awareness of the concept of composable architecture and the quality and consistency of the theoretical edifice that has been built and that represents the foundation of composable architectures, and the ecosystem of products/frameworks created to realize composable architecture. So many embryonic concepts invented long ago have evolved to converge into a core of concepts that now fully allow one to speak of composable architecture. 

On the one hand, there has been the evolution of many technical aspects: microservices, the emergence of headless products, the concepts of API first, cloud-native, service mesh architectures, and many others. 

On the other, there are business aspects, which require C-level figures (CEOs, CIOs, CFOs, etc.) to consider the choices on composable architectures as fundamental to the good growth of their business, protecting it from the dynamics of IT changes. It encompasses many aspects, including strategic business attitude, set of technologies, and processes that enable organizations to innovate and adapt to changing business needs.

What a Composable Architecture is for

The issues of interchangeable building blocks have been taken to a much higher level than before. Here are some examples of the needs in this area:

  • Change the entire CRM currently based on a custom solution to a market solution (Hubspot, Salesforce, SugarCRM, Zoho CRM to name a few in alphabetical order)
  • Change the CMS system and use a fully managed SaaS solution (some examples of headless CMSs include Strapi, Directus, and Cockpit).
  • Change the BigData database from proprietary to open-source architecture
  • Move the entire system from the current on-premise solution to a Cloud service provider (AWS, Azure, Google to name the main ones in alphabetical order) and simultaneously replace all databases with fully managed solutions from the provider

Much more dynamic evolutionary needs, where responsiveness time to change is critical. This is a complex but glorious time for enterprise architects. New technologies to learn every day.

Composable Architecture - Read the operating instructions well

Let's look at the key aspects of setting up a good composable architecture:

  • Understand the business needs well and prepare an appropriate growth strategy
  • It is one thing to know that you will start with 10 customers within the first three months of 2023 which will then increase by 10 each month, it is another thing to know that the business will quickly scale right away to millions of customers. A relational database, subject to standardized interaction with it (SQL), can be chosen from solutions with very different dimensional and performance requirements in the two cases
  • Understand what technology choices are possible and available in the IT ecosystem of composable architectures and create a map of correspondence with business needs
  • A CRM as an elementary and interchangeable element in composable architectures can be chosen from ad-hoc built solutions, open source solutions, commercial self-managed solutions that can be installed on different clouds or fully managed solutions from service providers themselves. Hubspot or Salesforce come to mind, for example.
  • Make the most appropriate architectural choices for the business growth phase. Are you in an experimental, start-up, business growth, or business consolidation phase? The different life stages of the product should preferably impact only the scalability aspects of the system: start small, think big.
  • Solution construction, and attention to change. If the architecture is well thought out, then changing a component should not be seen as a problem, but as an opportunity to improve the business.

Of course, aside from the best strategy for adopting a composable architecture, there are also the technical aspects that underlie IT systems:

  • Scalability, modularity, robustness, security, and no vendor lock-in
  • In particular, scalability can be understood on a technical level and related to business growth. Many modern clouds offer fully managed services that can start at zero cost and then grow over time
  • API-based and headless mode of operation
  • The ability to interact with building blocks via APIs ensures the isolation of components and well-defined contracting with the services themselves.
  • Multi-cloud support and inherently cloud-native solutions
  • In other words, multi-cloud support allows a technology or solution to be used on multiple cloud platforms, while inherently cloud-native solutions are designed to take full advantage of cloud resources and provide an optimal user experience
  • Multi-cloud support and inherently cloud-native solutions
  • In other words, multi-cloud support allows a technology or solution to be used on multiple cloud platforms, while inherently cloud-native solutions are designed to take full advantage of cloud resources and provide an optimal user experience
  • Operating model and cost of the chosen component
  • Pay per use: In this model, users pay only for the cloud resources they use, such as the number of hours a virtual machine is used or the volume of data stored in a database. Often considered advantageous because it allows users to pay only for what they use, avoiding fixed and unnecessary costs
  • Flat fee: requires users to pay a fixed fee for access to a predefined set of cloud resources, regardless of their actual usage. This model can be advantageous for companies that expect constant and predictable use of cloud resources
  • Free tier: involves cloud providers offering a limited amount of cloud resources for free for a defined period. This model can be useful for developers who want to try out the cloud or for small businesses that need a limited amount of resources
  • Reserved: in which users pay a discounted rate to reserve cloud resources for a defined period, usually one year or three years. This model can be advantageous for companies that anticipate high usage of cloud resources and wish to secure a fixed price for an extended period
  • Spot: In which users can purchase cloud resources at discounted prices based on availability and demand
  • Hybrid: A mixture of the models described above

What frameworks should be used to adopt a Composable Architecture? 

There are several technologies and frameworks that are related to composable architectures, including:

  • Microservices and containers: microservices are small, self-contained applications that can be developed, deployed, and managed independently as modular, reusable components. Typically, microservices are placed in "containers" that allow applications to be isolated in a virtual environment that includes all dependencies necessary for execution. Kubernetes, which has quickly become a reference in modern architectures, is an example of implementing composable architectures
  • GraphQL: is a query language and runtime for executing queries on APIs. It is often used in composable architectures to create modular and easily reusable APIs
  • Jamstack: uses APIs to integrate dynamic functionality into the front-end, you can use headless CMSs that provide an API to manage content, without having to use a default user interface. This allows you to choose the CMS that best suits your business needs and easily integrate it with the front-end developed with Jamstack.
  • Service mesh: is a technology that is used to manage communications between microservices in a composable architecture. A service mesh provides a set of features, such as traffic routing, error handling, monitoring, and security, to facilitate the management and scalability of communications between microservices. In a composable architecture, the service mesh makes it easy to manage communications between different microservices, regardless of the technology or programming language used. This allows developers to easily create modular and reusable microservices that can be easily combined and used in different situations to create new applications and solutions. Istio, Consul, Linkerd, and Envoy are examples that enable the creation of native cloud architectures
  • API-first design: when developing an application or service, the first thing you do is design and create the programming interfaces (APIs) that will be used to access the functionality of the service. With this approach, the API becomes critical in defining and determining the functionality and capabilities of the service. Often this method is used in conjunction with a microservice architecture to create a highly modular and composable system. In a composable architecture, individual components or services can be combined and used in different ways to create new functionality.

Composable Architecture - Conclusions

There are many other technologies that should be mentioned to give a more complete picture of IT evolutions in the field of composable architectures, but we leave that to everyone's personal study... and then if you have made it to the end of the article it means that the topic is part of your daily needs.

To conclude, the need to implement a composable architecture must necessarily be perceived as fundamental by all levels and business groups and not isolated to mere technical issues.

For technical departments, what I would recommend is to focus the study more and more on the evolving ecosystem, choosing architectures carefully, and balancing the available choices well with business needs. This means 1-2 hours a day to devote to studying the technologies.

So good study.

SCRIVI UN COMMENTO

Leave a Reply

Your email address will not be published. Required fields are marked *

ARTICOLI SUGGERITI
How the Internet of Things is Helping Developing Countries

It has been over a decade since Internet of Things was first coined by Kevin Ashton. Since then, it has expanded alongside a growing technological hub spanning a diverse set of industries. In many ways it makes our everyday life more efficient, bridging the gap between physical objects with the collection and sharing of data […]

Approfondisci
The governative program “Industry 4.0”

The National Industry Plan 4.0, presented last September 21st in Milan by the former Prime Minister Matteo Renzi and the Minister of Economic Development Carlo Calenda, aims to create a favorable environment for enterprises, taking into account the new phase of globalization and technological changes happening, through a set of organic measures capable of favoring […]

Approfondisci
GreenVulcano, a vision of shared mobility

The concept of shared and sustainable mobility pursued by GreenVulcano aims to improve the quality of the user experience while at the same time implementing services for operators in the sector.  From Mobility Managers to Car Rental, from Haulers to Logistics Operators, to Fleet Management and Driver Services, GreenVulcano, GreenVulcano, thanks in part to the […]

Approfondisci
ENTRA IN CONTATTO
CON NOI
Compila il form, lascia i tuoi dati ed entra in contatto con noi.
Vuoi ricevere le ultime news di GreenVulcano?
Iscriviti alla nostra newsletter!
Iscriviti

CARRIERE

Candidati attraverso il FORM
Candidati tramite la nostra e-mail

RECLUTAMENTO

recruiting@greenvulcano.com

ITALY

Rome Viale Giulio Cesare n. 14, 00192
Naples Via G. Porzio 4 – Centro Direzionale
Is. C2 scala C, 6° piano, Int. 28 – 80143
info@greenvulcano.com

USA

Boston 124 Reservoir St., Needham Heights MA, 02494
info@greenvulcano.com
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram