Week 4 – The Enterprise Technology Infrastructure Architecture

Arun Chandrasekaran (2022) discussed in Gartner´s material called “Compute Evolution: VMs, Containers, Serverless Which to Use When?” compute layer evolution. These new application architectures have brought about advancements at the computational level, with the introduction of concepts like application containers and serverless functions in recent years. This has enabled further virtualization of the computational layer, going beyond just virtualizing servers. As a result, the computational layer has become more focused on applications, offering benefits such as agility, scalability, and automation.

In all industries software is becoming increasingly prevalent, and modern digital businesses are utilizing software to analyze data and develop applications to gain a competitive edge.

So how important is to correctly choose between VMs x Containers x Serverless? Is more important to choose correctly or to move fast? Is more important to make 100% sure when and why to use it? Or is more important to understand what scenarios they enable for business?

Cloud Computing has enabled startups to born and grow. An also, startups helped Cloud Computing to grow, to gain force and experience. Why? Because Cloud enabled these ideas to start with low investment in IT, gain experience and space with a reduced IT team but also scale fast and on time to increase exponentially the demand, and to not lose momentum. So Cloud was key to enable new business paradigms.

If you take a look at your cellphone right now the most common apps you use like Netflix, Spotify, Instagram, Uber, AirBnB and what they have in common? They recreated the paradigm on their industries, AirBnb revolutionized the way people travel and how cities handle the capacity of tourists and Uber became a concept and took to another level the discussion of having a car x enable you to commute easily without having the overburden of maintain a car, we saw “uberization” everywhere.

So, Enterprise Architects look for how to empower the business and as stated by an Cox, Noah Rosenstein, and Monika Sinha (2021) on Gartner’s toolkit “IT Strategy Template — Embedding Information and Technology in Business Strategy”, “strategy seeks to clarify how the enterprise will compete and succeed in its chosen markets or, for the public sector, how the enterprise will achieve its mission. Enterprises should have only one strategy — the business strategy — and information and technology (I&T) must be a core part of it. This means that the effort of creating an IT strategy must shift away from creating a separate document focusing on the IT organization toward creating a set of inputs, or key chapters, that are embedded directly in the business strategy”.

If we consider, for example, NuBank a fast growing fintech in Brazil, they used the Cloud to enable their solution, considered the software and the app as part of their core business and developed a strong concept, easy to use app and services, and made bank services more accessibly to people. So they focused on their product, first on VMs and at some point they had to start a long time waiting for EC2 to boot and start containers, so adopting Kubernetes became compelling for their business, because I made sense for the business agility and resiliency they were looking. If you want to know more access Nubank | Cloud Native Computing Foundation (cncf.io).

So Enterprise Architects are key to enable the company to achieve business goals and help to drive the best choice thinking about the Agility the company is looking for, resiliency and costs.

Serverless is a great way to start fast, agile and light, as you can start from code. But as the solution requirements evolves, at some features, modules, or systems, the flexibility and how containers can take advantage and use more efficiently the infrastructure can help you to achieve better results. It also depends on the team proficiency and learning curve, to make the company decide to shift from VMs to containers to serverless.

Rui Zhang, Kristin Moyer, Hung LeHong (2020) on Gartner’s document called “Digital Transformation Starts With Redefining Your Value Proposition” brings a very interesting case from TRATON Group (formerly Volkswagen Truck & Bus). They historically focused on selling products. So the company decided to launch a digital logistics platform called RIO to connect the transportation and delivery value chain. They explain that RIO is an open, cloud-based platform that combines data about tractor units, trailers, superstructures, drivers and orders with traffic, weather and navigation data to provide real-time recommendations. So to launch this new market segment, and idea to be fast delivered, tested and scale fast once the market requires and a cloud-based architecture was the Enterprise Technology Infrastructure that enabled their intents.

So the best Architecture and Underlying technologies are not only a matter of the best technical decision, it also considers components of team skills, how fast I can learn and move and how we can consider softwares can evolve and take advantage of new paradigms to achieve the objectives. Who could imagine 1 year ago that everything we know so far about chatbots would change so fast? Generative AI has changed the game, opened room for new use cases, and use what can be beneficial for the business is more important than consider that your application cannot change or move.

Week 2 – Post 2 – Application Architectures and Sytems development

In the week 2 we discussed Application Architectures considering Monolithics, Service Oriented Architecture, Microßservices and a MASA Model (Mesh Apps and Services Architecture.

Recently Amazon Prime Video published a success case called Scaling up the Prime Video audio/video monitoring service and reducing costs by 90% discussing how Prime Video effectively handled a growing volume of content while achieving 90% reduction in costs by leveraging a monolithic architecture, which enabled them to consolidate various components of their system into a single cohesive unit.

In this case, the monolithic architecture was beneficial for Prime Video due to some reasons. Firstly, by consolidating various components into a single cohesive unit, it simplified the development, deployment, and management processes. This allowed for seamless communication and data sharing between different modules, improving overall efficiency. Additionally, the monolithic architecture provided better scalability as it could handle increased volumes of content without significant performance issues. Moreover, it enabled Prime Video to leverage existing infrastructure and technologies, reducing the need for additional resources and lowering costs. Overall, the monolithic architecture proved to be a suitable choice for Prime Video in terms of simplicity, scalability, and cost-effectiveness for their audio-video monitoring service.

It caused a lot of discussions and noise about Monolithic x Micro-services. But as always the only certainty we have is that one size never fits all on IT World.

While it has its advantages, such as simplicity and easier development, there are scenarios where other architectural approaches may be more appropriate.

During our class Dave Hollar, our Professor, shared this very interesting diagram from Gartner that shows the Mesh App and Service Architecture. Masa architecture promotes the use of loosely coupled services and APIs, allowing for easier integration and reusability of components. It encourages the development of microservices and event-driven systems, enabling greater agility and responsiveness to changing business needs. By adopting Masa, organizations can build resilient, scalable, and distributed applications that are adaptable to evolving technology landscapes and can effectively leverage cloud-native capabilities.

In large-scale systems with complex and rapidly evolving requirements, a monolithic architecture can become cumbersome and difficult to maintain. It can hinder agility and scalability since any changes or updates require modifying the entire system. In such cases, a microservices or distributed architecture might be more suitable. I worked in the past with Internet Banking in a monolithic approach. After the fast growth of the Mobile and Internet usage, the deployments became each time bigger, harder to test and if one thing failed, everything needed to be rolled back. So breaking into services and more business and features driven components, helped to expedite features and fixes launches in a parallel way reducing the surface of problem in case of something broken were delivered.

Microservices architecture allows for modular and independent services that can be developed, deployed, and scaled independently. This offers flexibility, scalability, and fault isolation, but it also introduces complexities in managing the interactions between services.

Also, with more than 20 years in IT area I have seen big companies with a huge legacy environment that keeps helping the business. With APIs and event-driven patterns is possible to decouple systems, while you still keep some legacy and third party applications that will be more complex and require a longer time to be modernized.

The Prime Video experience teaches us that in some cases, the monolithic address the most important thing the business needs. Prime Video team realized that distributed approach wasn’t bringing a lot of benefits in their specific use case, their specific tool for audio/video quality inspection, so they packed all of the components into a single process. This eliminated the need for the S3 bucket as the intermediate storage for video frames because our data transfer now happened in the memory. They also kept the same components, but now instead of the distributed architecture, in a monolithic approach.

So here we have the good IT DEPENDS statement that Architects say a lot. Considering the requirements of scalability, costs, the feature and which are the goals to address are key to show which one is the best architecture to address our needs.

Week 1 – Post 2 – Digital Disruption

At EA 874 in the first week we studied about Digital Disruption. These were the suggested readings:

The AWS Well-Architecture Framework establishes some pillars to better take advantage of the power of the cloud: Security, Resiliency, Operational Efficiency, Cost Optimization, Reliability, Performance Efficiency and Sustainability. It brings meaningful and important guidelines to take advantage of the Cloud Computing through the elasticity of cloud, costs optimization, only use the capacity you need when you need in an automatic way, and many more important best practices. And this is very agnostic to any Cloud you intent to adopt, as these are foundational principles to all of them.

The Cloud can make Docker’s impact even more powerful as Lucas Carlson states in Docker and its Impact as creates a more concise and flexible way to deliver applications specially micro-services. The cloud makes infrastructure and devops tools out of the box to be used as soon as needed, as It provides a self service and just in time way to provision resources. In the same way, is easier to create composable applications and microservices, as you can state using Infrastructure as a Code the basis of the environment and reuse the reference architectures to expedite new solutions that have assured security, the company guidelines and rules that can be forced into an Infrastructure as a Code (IAAC) script reference.

Connecting with the Gartner’s Composable Reference Architecture described in ourPost 1 once we define our business goals and which business contexts are important, cloud helps to expedite the creation and evolvement of each Packaged Business Capability, make it continuously integrated and delivered through DevOps and expedite the journey defining by script integration layers through IaaC.

Week 1 – Post 1 – Application Architecture

In the first week we studied the Application Architecture with some meaningful readings:

An important concept described are the Composable Enterprise Applications. It defines based on business topics applications’ boundaries that exposes the important business functions through APIs or events mechanisms like IoT MQTT messaging, publish subscriber approaches, queues etc.

The reference architecture that Gartner proposes is truly meaningful and shows a path that can still consider previous investments made or applications that are third-party, not easy to modernize or convert in micro-services. Many OT applications have this characteristics and using events to help to decouple them, to allow innovation and agility, but at the same time use them as a composable application help company to create a roadmap to still keep and evolve some old of third-party applications while create new cloud native and based in micro services for other scenarios that are feasible.

The Gartner’s Reference Architecture for Intelligent Composable Business Applications defines how these applications can be organized. In the top of the image belo, you find the composed application experiences that can address specific business scenarios and just below to it a Composition Platform that enables the business to compose it and create different compositions for products and processes. Here also the concept of a marketplace of solutions is very key, as can help to expose to the corporation investments already made, avoid duplicated investments and also give flexibility and agility as provides a self service approach to consume business services.

In the left we have Business Operation applications and in the right Data Management Applications (Analytics Applications) that are integrated providing a 360° view of the information for customers, products and other important  data entities. The integrated Data Fabric works to maintain the data lineage, organize information and make it ready to be used.

Reference Architecture for Intelligent Composable Business Applications

Source: NATYS, Yefim. Strategic Architecture Roadmap for Composable Enterprise Applications.

Considering this reference architecture, we can connect technologies described by SINGH, Abhishek and O’NEILL, Mark on Hype Cycle for Application Architecture and Development. 2020 to make this concept even more powerfull. Cloud native applications can help to expedite the launch of new applications and make it easier to scale to meet unexpected or seasonal demands, also DevOps helps to deliver each composed application evolutions and having these decoupled business topics, each one can evolve without the risk of impact others. Also Low Code is very powerful on composition layer giving to citizen/business developers the power of using pre stablished APIs and connections using their knowledge to compose them and easily create new scenarios.