An enterprise application is a large software system platform, typically comprising multiple applications that are designed to assist the organization in solving its business problems in a well-coordinated fashion. These platforms are complex, generally evolve over a period, and must be scalable and extensible. They are largely driven by the strategic technology initiatives that are identified to accomplish the vision and business objectives of the organization.
The purpose of this chapter is to share insights on how enterprise solution architectures have evolved from being a collection of standalone monoliths to service-oriented architectures (SOA) to a more modern microservices-based solution approach in recent times.
Over the past decade, there has been a significant rise in the demand for omnichannel and interconnected experiences. Be it the consumerization of IT or mobile-first applications, emergingtechnology trends have created a compelling need for businesses to invest in cloud-native applications (CNCF) or integrate with Software-as-a-Service (SaaS) product offerings. If you are new to these terms, a brief explanation follows:
- CNCF: Cloud-native applications are typically modern applications designed to run on the cloud using the recommended cloud architecture and design principles. They are mostly microservices hosted using managed services to offer great scale and performance.
- SaaS: Software as a Service refers to the model of hosting a software solution or product on the cloud. This is accessible over the internet using a subscription or pay-as-you-go model.
You can make use of the links provided in the Further reading section to understand the preceding concepts in greater detail.
In this chapter, we are going to cover the following main topics:
- History of application architectures in an enterprise
- IT strategies in the modern world
- The emergence of API-led architectures
By the end of this chapter, you will understand how to prioritize your IT solutions strategy for any upcoming digital transformation projects.
The topics presented in this chapter assume that you have a basic level of understanding of solution architectures in an enterprise context. At the end of the chapter, additional suggested reading links have been provided for you to review and explore more on the various topics.
History of application architectures in an enterprise
A solution architecture is typically the outcome of the bundle of ideas and experiences that you may apply to any specific business and customer context in order to meet a specific vision, within the constraints of timelines and budget availability.
- Provide a competitive advantage.
- Reduce wastage and manual effort.
- Limit costs to improve revenue and profit.
The primary goals have always revolved around a few key priorities, such as improving business processes for greater productivity, timely decision-making ability, and the seamless flow of information across various siloed systems and channels to foster more effective coordination among various departments and personnel within the enterprise.
From monoliths to SOA and microservices
With the evolution of the World Wide Web around early 2000, the adoption of IT within enterprises gained momentum. Information was accessible remotely, thereby opening up new avenues of business collaboration:
Since early 2010, enterprises have started leaning toward mobile apps as their primary channel to offer an online experience to their customers. Over the past decade, there have been tremendous advances in the field of mobile technology, especially with internet connectivity and mobile devices being a viable alternative to desktop computing devices. This has led to a surge in the present-day user-friendly business apps, enabling users to get a job done from anywhere in just a few steps.
Furthermore, the evolution of cloud computing technologies has revolutionized how enterprises plan to deploy their line-of-business (LOB) applications. CNCF and online services (SaaS) served as game-changers for enterprises. The cloud offered the promise of elastic scale, with high performance and availability. This was possible through managed services and scaling on-demand capabilities available on all public clouds. Basically, the cloud provider would manage the underlying server infrastructure to meet the workload demands. This allowed enterprises to modernize their business and work environments.
There was a gradual decline in the traditional development style of building applications, leading to a more microservices-based approach. By making use of this approach, complex and massive distributed systems can easily be broken down into smaller components, also termed microservices.
Microservices are self-contained and can be independently deployed and scaled. These microservices perform just one business function and are relatively easy to change and upgrade without impacting the broader ecosystem of services. This approach allows enterprises to take a more customer-centric approach and react quickly to market demands. The differences between microservices and monoliths are explained later in this chapter.
As was evident in the years that followed, Solution Architecture Blueprints progressively shifted from monoliths to microservices-based architectures, preferably deployed in the cloud. With these changing trends, developers shifted their focus to building robust API platforms comprising granular and loosely coupled microservices, with each service acting as a business sub-system serving a specific purpose within the ecosystem. These API platforms can be easily integrated with, and consumed from, lightweight mobile or web apps.
For your understanding, the following are the differences between microservices, mini-services, and monoliths (or macroservices):
- Microservice: This refers to a granular unit of a business functionality that can be independently developed, deployed (as a service), and managed without having a significant dependency on other services around it. It is loosely coupled and is based on the single-responsibility principle.
- Mini-service: This refers to a group or collection of microservices that come together as a unit to solve a specific business functionality. Typically, this group of microservices is deployed on a common infrastructure and shares any underlying database.
- Monolith or macroservice: This refers to the legacy way of building applications, wherein all business services were deployed as a single package on an application server. The components in the system were tightly coupled and have less complexity in both design and deployment. System upgrades were expensive, even requiring downtime.
Refer to the following article to understand more about the differences: https://thenewstack.io/miniservices-a-realistic-alternative-to-microservices/.
IT strategies in the modern world
The unprecedented disruption to economies as a result of the COVID-19 pandemic has forced CTOs to rethink and reinvent their IT strategies and roadmaps. It was obvious that companies had to expedite their digital transformation journeys to stay in business, or else they risked losing out to their competitors.
The constantly evolving digital ecosystem is driving companies to reimagine their relationships with their customers, suppliers, and employees by engaging in ways that were not possible before.
Let's explore the motivating forces driving digital transformation initiatives.
Outlook for digital transformation
As per Gartner, for success in this new era, the corporate vision for all enterprises must shift toward business outcome-driven strategies. The consumerization of IT has led to the enormous growth and adoption of mobile and cloud technologies, both of which are now considered critical enablers for digital transformations:
In this rapidly changing competitive landscape, companies that demonstrate greater adaptability are able to survive through the disruption in the industry as different business models are constantly evolving, along with different ways to deliver a service.
However, it must also be noted that digital transformation is not easily achievable. Business and IT leaders must strive to remove the boundaries of corporate silos and innovate in terms of their IT roadmaps to create more inclusive and interconnected digital experiences for their customers, partners, and employees.
In summary, to address the compelling demands of the market and to establish a truly distinct and differentiated offering, enterprises must propel their digital transformation agendas toward the following:
- Adopting an API-first architecture to support resilient operations
- Decoupling frontend presentation from backend data functionality
- Capturing and visualizing data-driven business insights to improve customer experiences
- Building cloud-native hyperscale applications and (API) platforms
Hence, it is quite evident as to why API-led architectures are the way forward for building enterprise applications.
The emergence of API-led architectures
The term Application Programming Interfaces, or APIs, was coined way back in the 1940s to establish some standardization in data formats, communication protocols, conventions to follow, and so on when different computing systems interacted with each other. Over time, API-based integration has become the de facto standard for interactions between applications, be it client-server or process-to-process communications.
In the new normal, enterprises rely heavily on APIs and microservices to build and connect applications. There has been a paradigm shift on the basic premise while building applications. Modern era experiences must aid in the following:
Simplifying the business processes: For example, in a retail kind of scenario, the tracking of inventoried items can be simplified by creating an API-based system over your inventory management system. These APIs can be consumed by different applications targeted at the store manager, point of sale, or back-office clerk to view and update the same.
- Improving the productivity of the workforce: For example, employees can make use of a variety of devices with apps that integrate with the backend APIs to get their work done. This will render them mobile while publishing real-time updates.
- Providing omnichannel access to customers: For example, customers today prefer to make use of both mobile and web apps to access any service or solutions.
- Achieving seamless data integration with channel partners and vendors: API-based integration platforms in the cloud allow easy integration and access to enterprise workflows.
- Ensuring data privacy and compliance: The standardization of IT policies, coupled with stricter governance over API platforms, plays a big role in preventing any security risks.
The complexity problem
Large enterprises typically have multiple IT systems to cater to the need of various departments so as to support the different business processes. This typically leads to the creation of silos, requiring the duplication of data across different systems.
The focus of discussion of most enterprise architects is the integration between these systems and how to constantly evolve them to support the demands of the business. Considering that more than 80% of IT budgets are spent on maintaining and managing these large business systems, the return on investment (ROI) is highly dependent on the ease with which additional capabilities can be rolled out without impacting the existing rhythm of business.
APIs, being the basic building blocks of any digital footprint, act as a catalyst to reduce the complexity problem. APIs are relatively easy to develop and deploy. A good ecosystem of APIs within an enterprise can expedite the revenue generation process through the direct or indirect utilization of the underlying exposed data. Insights derived from data can serve as essential feedback to optimize both the business processes and associated IT systems.
The importance of API-led architecture
With data being the new currency for digital transformations, API-led architectures come to the rescue here. Almost all enterprises can be modeled as islands of discrete business capability, with some overlap for a cohesive operating model. This approach helps in defining the boundaries for the various systems and sub-systems that must be provisioned, and what interfaces must be developed to allow for data collection and exchange in a secured manner.
As the technology trends suggest, enterprises are increasingly adopting an API-led architecture strategy as it enables them to open their IT systems to external clients, business partners, and even third-party developers. The APIs serve as a black box, encapsulating all the business validations and rules that may apply to any process flow. In today's application development ecosystem, we find APIs everywhere, be it cloud computing services, productivity tools, or even on-premises integrations.
Consumers of the APIs simply reference the documented interfaces to develop their applications and services to transact with the respective systems, using the exposed APIs. For business owners, this simplifies the life cycle management of the solution, as the underlying logic for an API can be upgraded independently without breaking any upstream or downstream systems so long as the documented contract and data definitions do not change.
- Act as accelerators of cloud adoption within an enterprise.
- Provide the foundations for establishing an omnichannel strategy.
- Advance the decentralization of IT and business workflows.
- The generation of revenue through API economy.
The focus of the various chapters in this book is to show you how to getthe benefits stated here and see how the adoption of various tactical strategies by your software development team may have a huge bearing on the success of your initiatives.
This case study has been designed to simulate a real-world scenario. However, it is not meant to be comprehensive and exhaustive, catering to all business requirements or scenarios. The solutions and approach presented in the later stages are based on my point of view and should not be misconstrued as prescriptive guidance. Architecture and design is an evolving process and, hence, the reader is expected to build upon their existing understanding by working through this case study.
About Packt Insurance Inc.
Over the last few years, the year-on-year growth of Packt Insurance has not been on a par with market opportunities. It is gradually receding to its competition due to a lack of market adaptability, high cycle time on innovation, and poor workforce productivity and collaboration owing to the use of legacy LOB applications for running the business. Its cloud presence is limited, and most of its applications are deployed as on-premises solutions.
In a recently concluded board meeting, a decision was taken to accelerate the company's digital transformation journey through its cloud adoption program. Packt Insurance wants to modernize even its LOB applications with a core priority of cloud-first and mobile-first approaches.
A summary of the key business drivers and stakeholder viewpoints is mentioned in the following section. For this case study, it is meant to demonstrate how each stakeholder perceives the business problem and their requirements for the target solution.
Key business drivers
- Become a cloud-based digital business within the next 2-3 years.
- Improve the speed to market, launching new services on a par with market trends.
- Expand operations in newer locations and geographies.
- Achieve > 10-15% growth by expanding on product offerings, broadening distribution channels, and enhancing integration with channel partners.
- I don't want to invest in IT infrastructure upfront, but rather spend incrementally as we expand the business.
- I want to know the profitability of our business units. I would appreciate some insights into our business that will enable me to make decisions.
- It would be great to know customer sentiments in terms of what they like about us and what they don't like.
- I would like to be known as a technology innovator/pioneer in the domain and attract the new tech-savvy generation.
- The adoption of modern practices for cloud-based solution development and deployment across the enterprise.
- Ensure compliance with security and data privacy standards.
- The onboarding of new branch offices should be quick and seamless.
- Reduce the cycle time of new insurance products from the current 6-8 months to a maximum of 2-3 months.
- It would be preferable if actuarial rules can be updated without any IT intervention.
- Phase 1: In this phase, the prioritized list of capabilities targeted for a Minimum Viable Product (MVP) will be developed. The objective of this phase is to quickly operationalize the first version of the platform.
- Phase 2: This is a continuation of Phase 1, and the next set of prioritized capabilities can be taken up. Typically in this phase, the first release of mobile apps and web portals will be targeted.
- Phase 3: This is the continuous innovation phase wherein AI and machine learning capabilities will be utilized to drive newer product offerings and improve the overall digital services deployed.
A simplistic business workflow
- Maximize the conversion rate of quotes to users purchasing a policy. This is how the main revenue is generated. Hence, the premium amount quoted to customers should be comparable with other market players. Customers can evaluate the pros and cons, comparing the risk factors to decide whether to purchase a policy.
- Optimize the claim amount to improve the margin on policies. This is to ensure that the benefits extended are appropriate, but still come at a low cost to the company.
In this chapter, we have reviewed the importance of API-led architectures and how they are critical to the success of the digital vision of an enterprise. Every enterprise is different, having varying degrees of maturity in terms of their usage of IT for the running of the business. Hence, the focus of this chapter has been to establish some common principles that must be on the radar of the IT leaders of the organization. Digital transformations cannot be achieved through makeshift arrangements. It requires careful planning and ruthless prioritization to reap greater benefits fromthe investments made.
As revenue generation is the most important priority for any organization, this chapter highlighted the impact APIs can have within an enterprise, and what role they play in enabling transformation and agility vis-à-vis achieving business outcomes.
In the next chapter, we will understand how APIs act as digital connectors and their impact on the digital economy.
- Eight reasons why architects love API-driven architectures: https://hub.packtpub.com/architects-love-api-driven-architecture/
- Microservices: An application revolution powered by the cloud: https://azure.microsoft.com/en-us/blog/microservices-an-application-revolution-powered-by-the-cloud/
- Microservices by Martin Fowler: https://www.martinfowler.com/articles/microservices.html
- What is API-Led – An Architectural Approach: https://dzone.com/articles/what-is-api-led-an-architectural-approach-by-luis
- Enterprise Architecture – Building a Robust Business IT Landscape: https://medium.com/quick-code/enterprise-architecture-building-a-robust-business-it-landscape-e966edda102a
- Build cloud-native applications in Azure: https://azure.microsoft.com/en-in/overview/cloudnative/
- Software as a Service (SaaS) concepts: https://www.w3schools.in/cloud-services/software-as-a-service/