Building Resilient Cloud Integrations with Microsoft Azure
Your business applications are not meant to live in isolation. They thrive when they can interact with other apps and share data. Effective application integration is critical for every organization, because it will impact the effectiveness of your end users. Do you think your team will be efficient switching between multiple applications? No. They will be most successful if they can focus on a single app that houses all of their data.
Most integrations connect multiple independent systems in very complex ways, and need to be resilient to ensure business continuity. With the high availability of cloud computing, organizations are building resilient integrations as Platform as a Service (iPaaS) solutions offered by Microsoft Azure Integration Services.
I've been building integrations for over 20 years, and I've always believed that the three keys to a successful integration are resiliency, repeatability and automation.
Resiliency is an integration's ability to gracefully recover from failures. Microsoft Azure provides a cost effective way to spin up these environments, which are highly available and run as designed in a healthy state with no significant downtime. They also provide the tools to allow you to build durable integration patterns, which will fail back to a centralized monitoring platform like Application Insights. Simply building on top of the Azure platform ensures a resiliency that you can't obtain by funding your own infrastructure.
Repeatability is an integration's ability to recreate an environment with minimal variables. Microsoft Azure gives you this ability by generating templates for most all of their resources, then allowing you to recreate them programmatically. This is a very efficient way to rebuild an environment, or replicate a Dev environment when deploying a Quality Assurance or Production environments.
Automation is an integration's ability to deploy changes with minimal human intervention. Microsoft Azure gives you this ability to deploy changes from your Dev environment thru Production with Azure DevOps. Azure DevOps enables you to build, test, and deploy any application to any cloud environment. Azure DevOps combine automation techniques such as infrastructure as code with automated pipelines to provision, configure and deploy your integration infrastructure and code.
Microsoft Azure Integration Tools
Microsoft Azure provides many different tools to build resilient cloud applications, which differ based on your needs and skillset. As an application developer, I prefer driving logic with Azure Function Apps. They allow you to run small pieces of code (called "functions") without worrying about application infrastructure. They are a great solution for processing bulk data, integrating systems, working with the internet-of-things (IoT), and building simple APIs and micro-services.
I love deploying Azure Service Bus Queues to handle my messaging challenges. They allow me to decouple my applications, and improve the reliability and scalability of my applications and services. They also provide a framework for failure monitoring, and empower my team to build solutions that automate failure recovery.
If you put all of these tools together, then here's what a sample resilient integration would look like when integrating Microsoft Dynamics with Azure Cosmos database.
We love to implement cloud integrations here at Beringer Technology Group. We have a tremendous amount of experience working with iPaaS solutions, and we’re always finding innovative ways to help smooth the transition to the cloud. I hope that you have your head in the clouds, and are embracing cloud technology.