Get On The Tools, and Give It a Go!
The second annual Brisbane Integration Bootcamp took place at QUT’s Garden’s Point Campus in Brisbane on Saturday, 24th March 2018. This saw Mexia’s integration specialists put the spotlight on serverless computing, creating bots, face recognition, API Management and integration design.Approximately 20 participants delved into several of Microsoft’s latest integration stack offerings with hands-on sessions and labs, in the process learning about the latest technologies and how to implement them in the Microsoft Azure cloud application platform.
The Integration Bootcamp is a global, annual event that allows members of the wider software development community (including Mexia integration experts) to demonstrate technical leadership and excellence, and network professionally in an open and friendly setting.
In Australia, it takes place in Melbourne, Sydney, Brisbane and Perth. The Brisbane event was organised by Mexia Principal Consultant and Microsoft MVP Dan Toomey, and forms an integral part of Mexia’s involvement in the wider software development community.
Mexia encourages staff members to participate in events such as the Bootcamp to demonstrate cloud-based integration solutions. The company supports staff members who wish to contribute to the wider community by making time to review presentations and labs, as well as providing thought leadership.
As Microsoft’s 2017 Partner of the Year, Mexia provides team members access to the latest information material from Microsoft experts and leaders such as; Kent Weare (Principal Program Manager – Microsoft Flow), Eldert Grootenboer (Integration Architect – Motion 10), Jim Harrer (former Principal Group Program Manager, Microsoft), Jeff Hollan (Program Manager), Kevin Lam (Principal Program Manager) and Anjli Chaudhry (Principal Program Manager – Microsoft).
The Brisbane Integration Bootcamp is just one growth opportunity, and this year three Mexia team members provided value by sharing their technical knowledge, experience and expertise:
- Lee Simpson (Practice Lead) presented on Integration Design and the need for trade-offs when making integration design decisions.
- Dan Toomey (Principal Consultant) spoke about Serverless computing, including Logic Apps, Functions and a relatively new service on Azure, Event Grid, as well as LUIS, Bots and API Management.
- Susie Moore (Senior Consultant) presented on Microsoft’s Flow, which provides for simple system integration scenarios.
Another upcoming opportunity on 21st April 2018 is the Brisbane Global Azure Bootcamp, a one-day global event where participants talk about the expanding universe of Microsoft Azure and deep dive sessions on Microsoft Azure for Developers and IT Professionals.
In terms of value and richness of practical information about solving complex integration challenges, spending a Saturday attending the Brisbane Integration Bootcamp is well worth the time.
According to Susie Moore, the opportunity to present at the Bootcamp allowed her to “practise my public speaking, assist Dan who is such a great MVP representative for both Microsoft and Mexia, learn more about the great capabilities within the Azure and Microsoft eco-systems.”
She said that new previews and updates were constantly provided, and that the Bootcamp forum was a great way to “get on the tools and give it a go.”
Serverless Computing - Logic Apps, Functions and Event Grid
Kicking the day off, and presenting on Serverless Computing, Logic Apps, Functions and the newest kid on the block Event Grid, Dan explained that with serverless computing, “the entire concept of servers is completely abstracted, you don’t need to worry about scaling. You don’t have to worry about tin (hardware) and pay only for what you consume.”
As a rapidly growing cloud computing execution model, the term “serverless” basically alludes to the fact that, from a user’s perspective, there is no server to maintain. In simple terms, a user configures the functions that he/she wants to execute, and then triggers them whenever they are needed.
“There is a whole ecosystem there to develop tools and software in a very effective way”, Dan explained. Among the benefits of implementing solutions on the serverless offering in Microsoft Azure are ease of scale, pay per execution and reduced management. Serverless cloud computing presents value in terms of reduced DevOps, reduced time to market and per action billing.
Said Dan: “There is no need to worry about VMs/ or PaaS VMs, no need to worry about resources but events. With a DevOps focus on code, deployment and managing the app and not the platform.”
Serverless application platform components that are currently available on Microsoft Azure includes Logic Apps, Functions and Event Grid apart from all the other Azure services, such as database, storage, security & access control, IoT, analytics and intelligence components.
Azure Logic Apps is an example of serverless technology that provides powerful integration capabilities. Essentially, Logic Apps allow organisations to implement and orchestrate visually designed and complex integration workflows, and orchestrate distributed microservices. Over 200 connectors provide for apps, data, systems and services across enterprises to be integrated with Logic Apps.
Azure Functions “give you the ability to run arbitrary code in the cloud”, said Dan. “The way this works is with triggers and bindings. The trigger starts the code running, and it is then possible to bring in data from other sources with bindings.”
Azure Functions is a solution for easily running small pieces of code, or "functions," in the cloud and can be used to implement code-based, synchronous and asynchronous microservices. Programming languages supported include C#, F#, Node.js, Php, PowerShell, Python, bash and batch.
“I’m pretty excited about Event Grid”, said Dan. “One thing that has been missing until now within the server less space is eventing on a large scale. Event Grid is a fully managed event routing system that can do intelligent filters for subscriptions, is massively scalable and can run in real time. It is not confined to managing events in Azure, the events can come from anywhere and all events and subscriptions can be managed in one place”, he said.
“Event Grid is poised to become the backbone of event-driven computing” he explained. Event Grid sits on top of Service Fabric, Microsoft’s platform for building microservices and is one of three services that assist with delivering event messages throughout a solution: Event Grid, Event Hub and Services Bus.
Following Dan’s in-depth and extensive presentation, participants built an integration solution with Event Grid, Azure Storage, and Functions. The solution provides for a picture (jpg) to be uploaded to Azure using the Azure Storage Explorer, following which an event ‘BlobCreated’ is raised and sent to Event Grid Topic within a Storage Account (Blob), and an Azure Function and WebHook (RequestBin) subscribes to this event. The Azure Function then handles the event by calling a Cognitive Service API (Computer Vision API). The WebHook (Request Bin) receives the event too, and users can inspect the raw event format.
The objective of the lab, which was created by veteran Microsoft MVP Steef-Jan Wiggers, was to learn the capability of leveraging cognitive services through messaging/event mechanism, which Integration professionals are familiar with.
Taming LUIS and Bots
“LUIS, or Language Understanding Intelligence Service, is a Microsoft cognitive service that provides developers with an easy way to create language models to allow applications to understand user commands,” Dan explained. Bots on the other hand, are software application that run automated tasks (scripts) over the Internet.
Other cognitive services that can be leveraged to give solutions a human side include vision, speech, knowledge and search. Solutions that use these services are becoming pervasive and are used to provide online customer support, shopping support, travel booking support and many others.
“To build these bots”, he said “Microsoft provides a Bot Framework” that includes tools for building REST web sites, implements standard protocols and provides composable and intelligent controls to manage complexity.”
The basic process of building a bot includes defining LUIS Intent and Entities, downloading the Bot framework templates and emulator and then building the controllers, models and prompts. From thereon, the Logic App needs to be implemented and protected with API Management, and tested locally with the emulator.
Working with Microsoft Flow
“One of the great benefits of working for Mexia is that there are opportunities to learn, to network and build a professional profile” said Susie Moore, Senior Consultant at Mexia. “Since joining Mexia I have found renewed inspiration to lean in, try new things and set up to new opportunities.”
Susie did an engaging presentation on Microsoft Flow, which helps non-developers work smarter by automating workflows across services, such as receiving notifications, copying files, collecting data and automating approvals.
“Flow democratises the ability to perform limited, simple integrations and where there are limited resources for central integration specialists” explained Susie. Flow provides a “self-service” capability for less technical users in an organisation. Where Logic Apps are, for example, aimed at IT professionals and Developers that utilise Visual Studio and Azure, Flow is aimed at business users and Office or Dynamics specialists.
A typical Flow example is for a notification:
- A manual, scheduled or event-based trigger kicks off a flow.
- The trigger is followed by an action, which can use data from the trigger.
- For more advanced scenarios, multiple steps with branching conditions, scheduling looping and more can be performed.
"And because Flow is built on Logic Apps, Logic Apps can do everything that Flow can,” Susie explained. Further, any Flow can be converted to a Logic App, which provides for an upgrade path to full-blown Logic Apps for business-critical and advanced scenarios.
Following the presentations by Dan and Susie, participants created a smart expense claims bot using Flow and Bizzy. The bot was built using Bizzy, and can be started from Microsoft Teams by using natural language. When started, the bot will ask users about expenses and place the claim for approval in SharePoint.
As part of another lab, participants built a service that recognises people with Cognitive Services Face API. Both labs were created by MVP Eldert Grootenboer. The solution allows a user to upload a picture to Microsoft OneDrive, from where it is picked up by a Logic App which, in turn, calls the Face API and determines if this is a known person. If it is not a known person, the solution sends the picture to Azure Table Storage where it can be assigned to a person.
The lab was preceded with a presentation by Software Developer Adam Finster, who spoke about Cognitive Services in Azure, and how to leverage them for face recognition solutions implementing in Azure.
Solving Integration Design Challenges
Presenting on integration design, Lee Simpson (Mexia Practice Lead) put it that “every design decision is a trade-off.”
“Development trade-offs to be considered include whether to do automated or manual builds, automated or manual testing and whether to test first, do test-driven development or test after developing code,” he explained.
Regarding design trade-offs, Lee suggested monolithic versus components-based design, resource or message based and whether to use a Universal Domain Model or a Project/Department model.
“Whichever decisions you take regarding these things, and the trade-offs you have to take, consider that software essentially has a half-life in this day-and-age. The pattern to follow, in this sense, is one of Software Half Life”, Lee explained. “Nothing is permanent, and by the time a large integration solution is completed, parts of it may already have changed.”
Thinking about core integration capabilities, Lee suggested three approaches: Telephone, letter and subscription.
“Take a telephone. To use it, there needs to be a person at the end of the line. If it gets busy, the caller must wait, or retry or could even give up” he explained. “The caller needs to know the receiver, and the receiver has to deal with spikes.” This approach, Lee said was good for requesting immediate information that is not available.
With a letter, on the other hand, “the sender does not deal with delivery – the Post Office does, and so the Post Office can retry delivery if the receiver is not there, letters can queue up and spikes can be dealt with by the receiver.”
This approach, Lee suggested, was good telling a system to go do something, in a command pattern. It was also good for scenarios where there are separate reads from commands, typically understood as a CQRS pattern. CQRS stands for Command Query Responsibility Segregation. At its heart is the notion that different models can be used to update and read information.
The third core integration capability is that of a subscription. “This is my favourite way of doing things,” Lee said. “Here the sender creates a newsletter with information and people subscribe to the newsletter. Each subscriber may use the information differently and the sender does not know who the subscribers are.” Further, “the publishing house takes care of ensuring newsletters get delivered”. Subscriptions are good for completely de-coupling systems, and where publishing systems and subscribing systems need to change independently, thereby improving business agility.
Whichever trade-offs you make, and whichever integration capability you choose, basing the design on real requirements is one of the main challenges.
Mexia Can Help
Our approach to digital transformation is unique. As leaders in cloud solutions, Mexia can help you design a roadmap for your enterprise journey to the cloud. We specialise in complex system integration and leverage the latest Microsoft Azure Platform as a Service (PaaS).
Have a conversation with one of our integration experts. Get in touch.