39,59 €
API-centric architectures are foundational to delivering omnichannel experiences for an enterprise. With this book, developers will learn techniques to design loosely coupled, cloud-based, business-tier interfaces that can be consumed by a variety of client applications.
Using real-world examples and case studies, the book helps you get to grips with the cloudbased design and implementation of reliable and resilient API-centric solutions. Starting with the evolution of enterprise applications, you'll learn how API-based integration architectures drive digital transformation. You'll then learn about the important principles and practices that apply to cloud-based API architectures and advance to exploring the different architecture styles and their implementation in Azure. This book is written from a practitioner's point of view, so you'll discover ideas and practices that have worked successfully in various customer scenarios.
By the end of this book, you'll be able to architect, design, deploy, and monetize your API solutions in the Azure cloud while implementing best practices and industry standards.
Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:
Seitenzahl: 303
Veröffentlichungsjahr: 2021
A guide for architects and developers to expedite digital transformation with API-led architectures
Subhajit Chatterjee
BIRMINGHAM—MUMBAI
Copyright © 2021 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author(s), nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
Group Product Manager: Richa Tripathi
Publishing Product Manager: Kushal Dave
Senior Editor: Ruvika Rao
Content Development Editors: Ananya Endow, Kinnari Chohan
Technical Editor: Pradeep Sahu
Copy Editor: Safis Editing
Project Coordinator: Ajesh Devavaram
Proofreader: Safis Editing
Indexer: Subalakshmi Govindhan
Production Designer: Alishon Mendonca
First Published: July 2021
Production reference: 1160721
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham
B3 2PB, UK.
ISBN 978-1-80181-391-4
www.packt.com
To my mother, Krishna Chatterjee, and my father, the late Nirmalendu Chatterjee, whose countless sacrifices have made me the man that I am today.
To my elder brother, Abhijit, without whose support and guidance I wouldn't have come this far.
To my loving wife, Tamanna, for believing in me and keeping me motivated.
To my daughter, Tanusha, who makes me a proud father.
– Subhajit Chatterjee
Subhajit Chatterjee completed his bachelor's degree in engineering from NITK, Surathkal, India, way back in 2002. He also holds a postgraduate diploma in information technology from Amity University. Aside from this, he has undertaken various other online certifications that have helped him to learn and grow as a software engineering professional.
Subhajit has close to two decades of exposure to designing, implementing, and managing software development projects, using Microsoft and open source technologies. He currently works as a solutions architect with Microsoft Consulting Services, leading large and complex projects in Azure, IoT, enterprise integrations, web applications, and mobility space.
Subhajit loves to solve problems and has had the privilege of working with customers across the globe. He is passionate about sharing what he learns with the community. He believes in continuous learning and enjoys coaching and mentoring others for professional enrichment.
I wish to thank the people who have been close to me and supported me, especially all my colleagues and mentors who have shared their knowledge and experiential learning with me.
Niloshima Srivastava has around 12 years of experience working as Software Architect in a Product Based Organization. She is a graduate in CSE and holds several Cloud Certifications on Azure/AWS. She has been an evangelist when it comes to Microsoft platforms, augmented by being a hands-on developer, solution architect, and outstanding illustrator of design concepts and methodology. Not the least but proven track records even in training and orchestrating what she has learned to new rising developers across various platforms on various forums.
Rapid adoption of cloud technologies has revolutionized the way modern-day applications are architected and implemented. Solution architects and IT decision-makers are constantly faced with the challenge to quickly adapt to the latest technology trends to establish a competitive advantage in the marketplace. Gartner has predicted that by 2025, about 80% of enterprises will have shifted their operations to the cloud. Hence, it has become even more imperative that enterprises pay attention to their digital transformation roadmaps to benefit from their cloud-first and mobile-first initiatives. Tactically, this means a lot of changes on the ground, including reinventing business processes, adopting agile and DevOps best practices, and even embarking on the modernization of operations.
API-led architecture is not something new – rather, it has just become a lot more relevant and important in today's world. Cloud computing offers three key benefits: flexibility, efficiency, and strategic value. API-led connectivity has changed the way enterprises interact with their customers and partners. Customers today are very demanding. They expect businesses to be agile and adapt to their demands. They prefer a simple and intuitive approach to meeting their needs. They are open to the use of technology and apps to get the job done in just a few steps. Thus, enterprises are required to utilize the insights derived from analyzing customer behavior as the basis for their digital innovation strategies.
Over the past few years, I have worked with multiple enterprise customers to define their blueprints for a robust and reliable API-led solution. However, the common challenge has been in getting them to understand the benefits of this approach, as it requires some initial investment and work prioritization. It was always a hard sell unless the key stakeholders had prior experience with implementing solutions using a service-oriented architecture (SOA) approach. Many lacked the appetite to incur any additional complexity on top of what they were used to. It was also a revelation to me that teams weren't too well versed in the concept of microservices. Everybody wanted to do it, but nobody seemed to know how to approach it. A few believed that splitting a large monolith into smaller services was, in effect, building microservices. While this was still a good starting point, it lacked a futuristic vision, as the many other aspects of a microservices architecture were not considered as part of the design process. The technical teams were also getting used to the new way of building solutions and would often miss out on the fundamentals, leading to problems later in the life cycle. Teams often lacked a production-first mindset as many of the important architecture-critical requirements were deferred to later.
In this book, it has been my endeavor to provide a glimpse of the "whole nine yards" that is essential for the successful delivery of an API-led enterprise solution. This book focuses on the latest emerging trends in the industry, supplementing theoretical concepts with real-world scenarios and examples to help you grasp the concepts more easily. The book touches upon the important principles and practices that can eventually serve as a checklist for development teams. While I have used the Microsoft Azure cloud as the platform of choice, the topics discussed are valid even for a multi-cloud scenario as well.
After reading this book, you will be well versed in how to architect, design, implement, deploy, and maintain a digital service.
This book is meant to serve as a ready reckoner for solution architects, developers, and IT and business decision-makers as they are taken through a journey showing how to approach their API-led connectivity requirements. The book has been written from a practitioner's point of view, with lots of tips, practical guidance, and additional references that will surely provide clarity of thought for developers, allowing them to confidently prepare for their next API-first architecture implementation.
Chapter 1, Evolution of Enterprise Solution Architectures, gives you a background on the evolution of enterprise architectures, from SOA to a more microservices-based approach, and discusses how the adoption of open standards will help advance the building of interconnected experiences in the evolution process.
Chapter 2, APIs as Digital Connectors, walks you through the concept of a connected enterprise, emphasizing the role and importance of APIs in fueling the growth of the digital economy.
Chapter 3, Architecture Principles and API Styles, provides an overview of important architecture principles that are the basis for the foundation of any API platform. The chapter also covers the popular architecture styles that are frequently used in an enterprise and how they can be implemented in the Azure cloud.
Chapter 4, Assuring the Quality of the API Service (or Product), focuses on the quality attributes that are critical for the success of API solutions. It also explains how to make use of the Azure Well-Architected Framework to design, implement, and measure the quality of service for your API solutions.
Chapter 5, RESTful APIs – The New Web Standard, covers some of the best practices that must be followed while designing and implementing RESTful-style API interfaces, which are becoming a new web standard.
Chapter 6, API Design Practices, discusses the important design practices that must be followed while building your API-centric solutions. It also briefly covers the different patterns that are commonly used for implementing your API microservices.
Chapter 7, Accelerating through DevOps Essentials, focuses on the essential DevOps practices that must be followed by the engineering teams to drive greater IT maturity across the broad spectrum of the enterprise.
Chapter 8, API-Centric Enterprise Integrations, takes a deeper look into some real-world enterprise integration scenarios and considers how the Azure Integration Services offering can be utilized for this purpose.
Chapter 9, API as a Monetized Product, discusses how enterprises can realize greater business value and improve their revenue streams by applying an intelligent productization strategy for their API assets.
This book is intended for audiences who are likely to have a role in either defining and/or implementing API-centric solutions. Hence, it is recommended that you apply the inferences shared to your own practical requirements and do further self-study and analysis to better understand the concepts presented.
We also provide a PDF file that has color images of the screenshots/diagrams used in this book. You can download it here: https://static.packt-cdn.com/downloads/9781801813914_ColorImages.pdf.
There are a number of text conventions used throughout this book.
Code in text: Indicates code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles. Here is an example: "For example, say the URI /api/policies/id returned the policy resource for the specified ID. Then the URL /api/policies/id/assets will return all the assets linked to the respective policy."
A block of code is set as follows:
GET /policy/getPolicy?id=POLICY1122334455 HTTP/1.1
Host: api.contoso.inc
When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:
https://api.packinsurance.com/quotingservice/getquote?api-version=1.0
https://api.packinsurance.com/quotingservice/getquote?api-version=2.0
Bold: Indicates a new term, an important word, or words that you see on screen. For example, words in menus or dialog boxes appear in the text like this. Here is an example: "Observe that Quote Service (Basic) is accessible to Guests."
Tips or important notes
Appear like this.
Feedback from our readers is always welcome.
General feedback: If you have questions about any aspect of this book, mention the book title in the subject of your message and email us at [email protected].
Errata: Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you have found a mistake in this book, we would be grateful if you would report this to us. Please visit www.packtpub.com/support/errata, selecting your book, clicking on the Errata Submission Form link, and entering the details.
Piracy: If you come across any illegal copies of our works in any form on the internet, we would be grateful if you would provide us with the location address or website name. Please contact us at [email protected] with a link to the material.
If you are interested in becoming an author: If there is a topic that you have expertise in, and you are interested in either writing or contributing to a book, please visit authors.packtpub.com.
Once you've read Designing API-First Enterprise Architectures on Azure, we'd love to hear your thoughts! Please click here to go straight to the Amazon review page for this book and share your feedback.
Your review is important to us and the tech community and will help us make sure we're delivering excellent quality content.
In the first part of the book, you will discover why API-based integration architectures within enterprises are increasing, and how they are beneficial compared to traditional approaches to expedite digital transformation in a cloud-first, mobile-first world.
This section includes the following chapters:
Chapter 1, Evolution of Enterprise Solution ArchitecturesChapter 2, APIs as Digital ConnectorsAn 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.Note
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 architecturesBy the end of this chapter, you will understand how to prioritize your IT solutions strategy for any upcoming digital transformation projects.
Disclaimer
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.
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.
Over the past two to three decades, organizations have progressively invested in building enterprise applications and systems that aim to do the following:
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.
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:
Figure 1.1 – Solution architecture trends
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 ArchitectureBlueprints 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.Note
Refer to the following article to understand more about the differences: https://thenewstack.io/miniservices-a-realistic-alternative-to-microservices/.
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.
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:
Figure 1.2 – Mobile technology market size as of March 31, 2021
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 operationsDecoupling frontend presentation from backend data functionalityCapturing and visualizing data-driven business insights to improve customer experiencesBuilding cloud-native hyperscale applications and (API) platformsHence, it is quite evident as to why API-led architectures are the way forward for building enterprise applications.
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 core objective has always been to reduce complexities when dealing with people, processes, and tools within an enterprise.
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.
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.
Hence, the key benefits of API-led architectures can be summarized as follows:
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.
We will make use of the following case study to correlate and contextualize the concepts presented in subsequent chapters.
Note
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.
Packt Insurance Inc, a company with a presence in over 10 countries (across America and Europe), offers a wide range of insurance products and services to its customers.
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.
CEO:
Achieve > 10-15% growth by expanding on product offerings, broadening distribution channels, and enhancing integration with channel partners.CTO:
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.IT operations:
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.Product manager:
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.The executives at Packt Insurance have prioritized the roadmap for the different IT initiatives to modernize their core LOB application in three phases:
Figure 1.3 – A phased approach for digital transformation milestones
In the preceding diagram, the following applies:
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 very high-level flow diagram of business processes from an end-user perspective is provided here:
Figure 1.4 – A very high-level end-user flow
Packt Insurance Inc. is interested in the following business objectives:
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.
