Cloud-First Development on Azure
Customer, an international technology leader in optics and optoelectronics, continues to break ground with Azure solutions that enhance quality and efficiency across the business. The latest innovation is a cloud-native approach to order processing that replaces an existing monolithic application architecture which made it increasingly difficult to update business rules and to scale. Working with Microsoft Gold Partner customer became an early adopter of the Distributed Application Runtime (Dapr), an open-source developer runtime created by Microsoft that makes it easy to build resilient, stateless, and stateful microservice applications that run on the cloud and at the edge. The new application uses the global reach of Azure and the integration of Dapr with Azure Kubernetes Service (AKS) to fulfill orders faster for end customers, while also speeding development and improving business continuity for the company
A More Agile Solution
This Group is an internationally leading technology enterprise operating in the fields of semiconductor manufacturing technology, industrial quality and research, medical technology, and consumer markets. Since it was founded in 1846, customer has continued to advance the world of optics and to shape technological progress.
The main challenge was a 20-year-old back-end system with hard-coded business rules. “The original order validation and routing solution was based on a monolithic architecture with fixed capacities,” notes Kai Walter, a lead architect at this Group. Developers couldn’t easily update, reroute, or track orders without reconfiguring tables directly in the system. In addition, business units had no direct control over their order processing flow. With so many system dependencies, changes always require costly, time-consuming developer intervention.
In an earlier project, the team used APIs to decouple front-end interfaces from back-end systems. This time, however, the team also wanted to go global and distribute the order processing environment across multiple Azure data centers to provide faster service to customers around the world.
The Dapr Approach To Coding
The Customer team found a solution for rapidly building its new order processing system using Dapr. This event-driven runtime helps enterprise developers build resilient and portable microservice applications. Customer was an early adopter of Dapr. As an open-source project, Dapr has a large and rapidly growing community—including the customer developers—that contributes code, components, and tools.
Dapr solves the distributed system challenges facing developers when building microservices applications. It does this by codifying the best practices into open, independent, building blocks—APIs that enable developers to build portable applications with the language and framework of their choice. For example, using the secrets building block, developers can easily access secrets from Azure Key Vault or other secrets stores, not only reducing their development time but also making code portable across cloud and edge environments.
In addition, with no additional work, they get essential information for diagnosing issues in production. Using the Dapr APIs, a customer gets detailed tracing, metrics, and logging information from its applications to send to Azure Application Insights.
An Event-driven Workflow
The architecture of the Order Processing application distributes the workload across Azure data centers. The ingress point for incoming orders is Azure Front Door, a scalable and secure entry point for global web applications. Azure Front Door routes a request to the nearest region, and each region includes the Azure resources needed to process and store data specific to that locale. An order submitted from a customer in Spain, for example, can be sent to the nearest Azure region in Europe. Customer plans to run in at least six regions, representing three continents. In the event of unexpected errors, an order is automatically routed to another region.
Azure Front Door passes the order to Azure Application Gateway, a web traffic load balancer that is mounted on an Azure API Management endpoint. API Management serves as the gateway to the regional resources, giving customer a single place for efficiently managing its APIs hosted on-premises and on Azure. Next, API Management triggers Azure Service Bus, a message broker, to pick up the incoming orders. Order details are stored in Azure Blob Storage, and the order processing logic runs in containers orchestrated by Azure Kubernetes Service.
High Level Design
The launch of the new order processing platform has given customer the scalable and resilient architecture it needed. Using AKS in combination with Dapr helped customer to develop services and get them to market faster. customers benefit from faster order fulfillment and timely notifications of progress—something the existing system couldn’t do. The new solution is also completely configurable. The business can easily make updates when its customers or supply chains change and can roll these out in hours instead of days.
“Dapr made it much faster for us to build an app on Azure Kubernetes Service,” notes Walter. “The development team could focus on the business logic instead of spending cycles on the common configuration elements.”