Copilot for Azure Logic Apps Standard

Those who live in the code-based world have long been enjoying the option to utilise the generative AI assistance via GitHub Copilot.  Powered by OpenAI and Microsoft, Copilot provides invaluable context-based suggestions for completing code patterns based on training from open source code repositories.

Until recently, there was no such assistance available for integration developers who preferred the low-code approach of Logic Apps Standard (although Sandro Pereira has produced a useful utility for Logic Apps Consumption). Given the large number of Logic App connectors available and the inherent complexity in designing integration patterns, a “Copilot” functionality would be especially useful for creating and documenting workflows.

Thankfully, Microsoft is now taking great strides in introducing Azure OpenAI to the Logic Apps development space. In mid-November last year, Microsoft revealed a public preview offering of the Workflow Assistant, a chat interface powered by Azure OpenAI and ChatGPT that can offer context-based suggestions for your workflows that Copilot does for Azure Functions, for instance.  Although currently only available in the Azure Portal (not Visual Studio Code just yet), the assistant can perform many useful functions such as:

  • Suggest which connectors to use in a given scenario and how to configure them
  • Describe how to implement a proven pattern to solve a particular problem
  • Describe an existing workflow giving a detailed report of what it does

What’s more, the responses are determined by the workflow currently open and therefore reflect the relevant context. This is an extraordinary help to those who are not necessarily that familiar with all of Logic Apps capabilities.

Read more of this post

Maximising Your APIs with a Digital Integration Hub

APIs make the digital world go round. According to Gartner, they are an essential element of every digital strategy. They enable systems and applications to interact, connecting disparate data sources and bridging access protocols. APIs can unlock your organisation’s digital assets and allow them to be consumed in a controlled manner.

However, simply exposing your systems and enterprise applications via an API layer presents some formidable challenges, for example:

  • How do you shield your backend systems from being overrun with numerous requests?
  • How do you avoid an unmanageable mess of tightly-coupled point-to-point connections?
  • How do you ensure that consumers only have access to the data they should?

The answer may be a Digital Integration Hub (DIH).

The Problem with a Traditional API Integration Architecture

Modern enterprises will typically have invested in a well-conceived integration architecture for their APIs, introducing multiple layers that serve the data through a request-based integration layer:

clip_image002Image from "Turbocharge Your API Platform with a Digital Integration Hub – Gartner (G00360082, Jul 2018)

The primary role of the integration platform is to field requests from the APIs and deliver data from the source systems. Depending on the complexity of the systems, the underlying data structures, and the expected load from the API consumers, this solution may work reasonably well.

The problem is that even though the integration layer abstracts the underlying systems from the consumers, there is still a degree of coupling:

  • Backend systems ultimately bear the burden of responding to API requests – even if asynchronously.
  • Changes to the backend systems will necessarily impact the APIs and, consequently, the consumers.
  • The data returned by the APIs is typically bound to the data structures of the backend systems as opposed to a non-proprietary business model.
  • Whilst the API Gateway may perform coarse level authorisation, it is unlikely to filter data at a granular level.

In this conventional model, the last two points can only be addressed at the cost of highly complex API service logic – hence the term “macroservices” used by Gartner.

One might represent this coupling as a collection of meshed gears, whereby moving any one will force movement in the others:

clip_image004

Digital Integration Hub to the Rescue

The problems mentioned above can be resolved by introducing a High-Performance Data Store (HPDS) which sits between the integration and the services layer:

clip_image006Image from "Turbocharge Your API Platform with a Digital Integration Hub – Gartner (G00360082, Jul 2018)

The main purpose of this layer is to create an aggregated replica of the system of record data, fed via the integration layer which ideally operates in an event-based fashion (for example, Change Data Capture). This enables several significant improvements:

  • The APIs can deliver a much more responsive user experience as they draw from the HPDS instead of competing with the core processing functions of the target System of Record (SoR).
  • The SoRs can concentrate resources on their primary activities rather than serving API requests.
  • Complete decoupling of the APIs from the SoRs affords potential 24/7 availability, as well as shielding consumers from replacement of a legacy system.
  • The heavy lifting of normalising and aggregating data can be delegated to the HPDS instead of the microservices.
  • Reporting and analytics can also draw from the HPDS, providing business insight whilst again relieving the load on the primary SoRs.

The HPDS can be implemented in many different ways; for example, it may include a data lake, a data warehouse, an MDM, etc. The key is that it is highly performant, and a good metadata management solution would be essential to support a domain-driven design.

The integration layer should also support multiple patterns, although these will vary according to the organisation’s requirements. Example patterns would include:

  • Event brokering / messaging
  • Extract Transform & Load (ETL)
  • Change Data Capture (CDC)
  • Integration Patterns (ESB, iPaaS)
  • Stream processing (Spark, Flint)

Example Architecture

There are few (if any) products that will give you a full Digital Integration Hub out of the box. In all likelihood, it requires an assembly of multiple products, possibly from different vendors.

That said, Microsoft provides an Azure DIH Accelerator to facilitate building a DIH architecture in the cloud. Hosted in GitHub, it provides a pre-configured development environment with a sample application, as well as build and deployment automation.

The architecture is fairly basic, but it is a starting point which supports injection of your own business logic, as well as swapping out components (for example, substituting a SQL Database for the provided PostgreSQL database).

clip_image008Image from Microsoft, DIH Accelerator on GitHub

In this sample, the front-end APIs are implemented via API Gateway and Azure Functions, the integration layer is comprised of Logic Apps and Event Grid, and a data layer consists of a PosgreSQL database. It also provides monitoring via App Insights and Log Analytics. Although not included in the sample, Azure Synapse can easily be bolted on to provide analytics.

Challenges

A Digital Integration Hub is not a simple architecture by any means and would typically be suited to a large mature enterprise that is going through a digital transformation. Some of the key challenges include:

  • Complexity of rolling out a high-performance data management technology (e.g. NoSQL DBMS or in-memory data grid)
  • Supporting bidirectional, event-driven synchronization between the HPDS and SoR applications
  • Designing a canonical data model for the DIH business entities that supports multiple channels
  • Implementing appropriate metadata management to support discovery and introspection of data entities and relationships represented across multiple data sources
  • Designing, building, and managing the complex distributed architecture of a DIH

Any organisation that aspires to setting up a DIH would do well to follow these recommendations:

  • Determine if the organisation needs a DIH and if it has the skills to support it.
  • Know its data and consumer requirements.
  • Understand the integration patterns that will be required.
  • Design its APIs to be abstracted from the underlying systems (“API First” approach).
  • Consider using a technology partner for implementation.

Summary

API-based access to disparate data services is costly from a performance and maintenance perspective. A Digital Integration Hub enables enhanced performance in accessing your organisational data, while ensuring effective protection of your backend systems. A DIH architecture also provides increased scalability, greater flexibility, and better insights.

Sneak Peak: My Integrate 2020 Remote Presentation on Azure Event Grid

I feel very privileged to be a speaker at INTEGRATE for the 4th year in a row. Many thanks to Saravana Kumar and Kovai for the privilege & opportunity! Of course, thanks to COVID-19 this year will be a bit different… no jet lag, no expensive bar tabs, and (sadly) no catching up with my good friends & colleagues from around the world (at least not in person anyway). But on the plus side, an online event does have the potential to reach a limitless number of integration enthusiasts. And if you think that you might be one of them, here’s a discount code for you to use!

Image may contain: 1 person, text

So what will my talk be about? Well as the title suggests, you will learn about the benefits of event-based integration and how it can help modernise your applications to be reactive, scalable, and extensible. The star of the show here is Event Grid, a lynchpin capability offered as part of Azure Integration Services.

image

Event Grid offers a single point for managing events sourced from within and without Azure, intelligently routing them to any number of interested subscribers. It not only supports 1st class integration with a large number of built-in Azure services, but also supports custom event sources and routing to any accessible webhook. On top of that, it boasts low-latency, massive scalability, and exceptional resiliency. It even supports the Cloud Events specification for describing events, as well as your own custom schemas.

My talk will feature a demo showing how Event Grid easily enables real-time monitoring of Azure resources – but this is only one of many possible scenarios that are supported. Register for Integrate 2020 Remote so you can not only attend this session but also 40 other topics presented by 30+ integration experts from around the world! Use the discount code INT2020-SPEAKER-DAN to get 15% off any ticket price.

Hairy Causes: A Movember to Remember

clip_image002You may notice a trend during the month of November where lots of normally clean-shaven blokes are suddenly sporting (often embarrassingly hideous) attempts at growing a moustache. There’s a good chance that they are making a spectacle of themselves for a worthy cause. Over the past sixteen years, the Movember Foundation has raised over a billion dollars globally to promote awareness of men’s health issues, including prostate cancer, testicular cancer, depression and suicide prevention. Last year, participants in Australia alone raised $29 million. More than 75% of the money raised is used to fund at least 1250 men’s health projects, including Beyond Blue and the Prostate Cancer Foundation of Australia.

For the past 12 years, I too have participated in one way or another in Movember, either by growing a mo’ myself or sponsoring others. This year I have joined the official Deloitte Platform Engineering (DPE) Movember team. My motivation has always come in part from my family’s history of prostate cancer: my dad and two of my three brothers have endured this disease. This year, I have even more inspiration, as I recently extended my family’s history via my own battle with prostate cancer. I will share a bit of my story below. Read more of this post

Life as a User Group Leader

Microsoft MVPs are recognised for their voluntary contributions to the technical community. There are many types of eligible contributions, but one of my more notable ones was serving as a user group leader. This is a significant undertaking, and in this post I hope to outline some of the aspects of the commitment and also some lessons I’ve learned over my 14 years of fulfilling this duty.

My Experience

In 2005, I was asked by Microsoft to start the Brisbane BizTalk User Group. The motivation came through working for one of several organisations that adopted BizTalk Server to handle critical enterprise integration processes. As a newbie to the product, I was heavily reliant on the help I received from the very few experts around Australia and the world, including Bill Chesnut, Mick Badran, and several other MVPs who blogged about their experience. With so little available knowledge and experience in Brisbane, Microsoft’s Geoff Clarke decided it would be a great idea to start a user group. It was a daunting challenge and Geoff had to twist my arm a little… but I was encouraged when over 30 people turned up at the first meetup, proving that I wasn’t alone in my struggles. I also had lots of support from Microsoft and my colleagues, and the group met monthly for years to follow.

Then in 2014, I was asked to take the reigns for the Brisbane Azure User Group, which had been established by Paul Bouwer about a year or two earlier. When Paul earned his “blue card” and became a Microsoft employee that year, he felt it was inappropriate for him to continue leading the group and that a community member would be more appropriate for the role. Again, I reluctantly agreed on the condition that I had at least two co-organisers to help. One of these gentlemen (Damien Berry) remains a co-organiser to this day.

I’ve also ran the Global Azure Bootcamp in Brisbane for four years, and the Global Integration Bootcamp for a couple of years as well.

Read more of this post

New Dev SKU for Azure Integration Service Environment (ISE)

Last week, Microsoft responded to numerous requests from the community by announcing a new developer tier offering for Integration Service Environments (ISE). The ISE has been generally available for several weeks, but the single available SKU prior to this announcement carried a hefty price tag.

(fromEldert)WhatsApp Image 2019-06-27 at 10.59.51 AMI had the great honour and privilege of speaking about ISE at the INTEGRATE 2019 conference at Microsoft headquarters in Redmond, WA (USA) last month.  My topic was Four Scenarios for Using an Integration Service Environment, which attempted to shed some light on what type of situations would justify using this flat-cost product as opposed to the consumption-based serverless offering of Logic Apps.

While this presentation hopefully piqued interest in the offering, one of the burning questions from the attendees was “When will a lower cost developer SKU be available so we can try it out?”  All Microsoft was able to say at that point was, “Soon.”  Well, at least they were right, as it is now available only a few weeks later!

Read more of this post

Swift Service Fabric Deployments with PowerShell

Presentation

A few weeks ago I had the great privilege of presenting a 60 minute breakout session at Microsoft Ignite | The Tour in Sydney. It was thrilling to have over 200 people registered to see my topic “Seamless Deployments with Azure Service Fabric”, especially in the massive Convention Centre.

In the session I demonstrated the self-healing capabilities of Service Fabric by introducing a bug in the code and then attempting a rolling upgrade. It was impressive to see how Service Fabric detected the bug after the first node was upgraded and then immediately started rolling it back.

As you can imagine, it took a fair amount of practice to get the demo smooth and functioning within the tight time limits of the average audience attention span. (In fact, I had to learn how to tweak both the cluster and the application health check settings to shorten the interval – perhaps the subject of another blog post!) Naturally this also entailed frequently “resetting” the environment so that I could start over when things didn’t go quite as planned, or if I wanted to reset the version number. If you’ve ever worked with Service Fabric before you would know that deployments from Visual Studio (or Azure DevOps) can take a while; and undeploying an application from Service Fabric manually in the portal is painful!

Read more of this post

How to Explain Messaging Patterns to your Grandmother

First of all, I’d like to apologise to all grandmothers out there… I mean you no disrespect. It’s just meant to be a catchy title, really. I know grandmothers who are smarter than most of us.

A couple of months ago I had the privilege of speaking at the API Days event in Melbourne. My topic was on Building Event-Driven Integration Architectures, and within that talk I felt a need to compare events to messages, as Clement Vasters did so eloquently in his presentation at INTEGRATE 2018. In a slight divergence within that talk I highlighted three common messaging patterns using a pizza based analogy. Given the time constraint that segment was compressed into less than a minute, but I thought it might be valuable enough to put in a blog post.

image

Photo courtesy of mypizzachoice.com

Read more of this post

INTEGRATE 2018: Highlights from Another Great Event

34777644_920192494824567_1394121413341741056_o

Photo by Tariq Sheikh

Two weeks ago I had not only the privilege to attend the sixth INTEGRATE event in London, but also the great honour of speaking for the second time. These events always provide a wealth of information and insight as well as opportunities to meet face-to-face with the greatest minds in the enterprise integration space. This year was no exception, with at least 24 sessions featuring as many speakers from both the Microsoft and the MVP community.

As usual, the first half of the 3-day conference was devoted to the Microsoft product team, with presentations from Jon Fancy (who also gave the keynote), Kevin Lam, Derek Li, Jeff Hollan, Paul Larsen, Valerie Robb, Vladimir Vinogradsky, Miao Jiang, Clemens Vasters, Dan Rosanova, Divya Swarnkar, Kent Weare, Amit Kumar Dua, and Matt Farmer. For me, the highlights of these sessions were: Read more of this post

6th Annual Global Azure Bootcamp Brings Azure to Brisbane

imageLast weekend I had the honour of both organising and speaking at the 6th annual Global Azure Bootcamp in Brisbane. This is always a large event to manage, typically sold out with a long waiting list – and this year was no exception! We had over 70 people attend this all-day Saturday deep-dive into Microsoft Azure technologies – and the response was extremely favourable by all signs.

As the name suggests, this is a global initiative which is organised by six individuals from around the world who donate a massive amount of time and effort to facilitate the launching of local community events on a specific common day. Through their website they manage to collect registrations from local organisers, disseminate information, create hands-on lab materials (e.g. racing game), obtain global sponsors (who donate free licenses and trial subscriptions of their products), set up support for sub-domains, and even help obtain local sponsorship (e.g. Microsoft providing free Subway lunches at most locations).  It is a massive undertaking. This year we had 262 locations from around the world participate.

image

Local organisers were free to decide their own agenda in terms of content and activity. In Brisbane, we nominated to have a full day of presentations while allowing attendees to go off and work on hands-on labs whenever they wanted to. This has worked out well in the past, and this year was not exception. In this way we were able to accommodate seven presentations, from some of which you can download the content (I’ll keep updating this as they are posted, so please check back if a link isn’t available just yet):

Speaker Title Download
Adam Cogan Keynote: The Nine Knights of Azure Slides | Video
Todd Whitehead Azure Ninja Tips & Tricks Slides | Video
Adam Stephensen Bots – The Next UI Revolution Slides | Video
Alessandro Cardoso Identity Modernization with Azure Slides | Video
Dan Toomey Serverless iPaaS in Azure Slides | Video
David Alzamendi Ingesting, Processing & Displaying Real Time Information with Azure Slides | Video
Elliot Munro Automate Office 365 administration with Azure Functions and PowerShell Slides | Video

Dan-wAudience-DeanROne challenge this year was finding a venue after a building-wide power outage at Microsoft was scheduled at the last minute. Fortunately, The Precinct was available and was generous in lending us their Staircase Stadium. What an interesting space! It came with an excellent A/V package, free wi-fi, and a kitchen that was well suited to the catering. Although it did not offer the luxuriant comfortable seating one might prefer for an all day event, the attendees nevertheless seemed to agree that it was a good venue. AdamCogan-Keynote

Lunch was provided by Subway through the generous sponsorship of Microsoft. We also were served an excellent morning and afternoon tea by Art of Catering.

At the end of the day, we were able to raffle off some excellent prizes to six lucky winners thanks to the generous donations of both the global and local sponsors.

There are several people and organisations I’d like to thank for their contributions to this event:

Looking forward to next year!

John Glisson - Geek of the Cloth

Thoughts on integration, technology and what-not...

Prashant BizTalk And Azure Integration Blogs

My Integration Experiences - BizTalk And Azure Integration

The CRUCIBLE

THINK: It's not illegal....yet.....

Architecture for cloud and integration

Abdul Rafay's experiences with software architecture, integration, cloud and things around it.

BizTalk musings

Issues, patterns and useful tips for BizTalk development

EAI Guy.net

Enterprise Applicaiton Integration and SOA 2.0

Connected Pawns

Mainly BizTalk & Little Chess

Adventures inside the Message Box

BizTalk, Azure, and other tools in the Microsoft stack - Johann Cooper

Biz(Talk)2

Talk, talk and more talk about BizTalk

Richard Seroter's Architecture Musings

Blog Featuring Code, Thoughts, and Experiences with Software and Services

Sandro Pereira BizTalk Blog

My notes about BizTalk Server 2004, 2006, 2006 R2, 2009, 2010, 2013 and now also Windows Azure BizTalk Services.

Mind Over Messaging

Musings on BizTalk, Azure, and Enterprise Integration

WordPress.com News

The latest news on WordPress.com and the WordPress community.