Exploring Microsoft Azure service integration with Gluon


Gluon proudly offers an excellent end-to-end solution for Java developers, from mobile, all the way through enterprise, and the cloud. Of late, the engineers at Gluon are particularly excited about serverless computing in the context of combining mobile app development and enterprise functionality. This is because serverless functions allow developers to easily move some computations and configurations away from the mobile app, into a controlled serverless environment running inside a cloud.

One of the key advantages is that if some functionality or configuration changes, only the function need to be changed and redeployed in the serverless infrastructure. Deployment of functions in this infrastructure can be done in minutes, whereas deploying a changed mobile app can take days before the mobile app stores accepts it, and even more days before all mobile app users have updated the app.

Gluon CloudLink provides the bridge between mobile app development, and enterprise infrastructure that is often running in cloud environments. Support for functions as a service is key in Gluon CloudLink. As part of the Gluon Mobile Java API’s, we allow mobile app developers to create a remote function, which simply contains a name and a list of parameters. When a remote function is invoked in the mobile app, a request is made to Gluon CloudLink where the name and the parameters are mapped onto a call in a serverless environment.

In the past we have written about how Gluon CloudLink has serverless connectors into Oracle Cloud and Amazon Web Services, and that we ship Gluon CloudLink in AWS, Pivotal, etc marketplaces. Microsoft Azure has not naturally been a cloud we would explore, however recently with the move of a few notable Java people to Microsoft we have taken a look, and wanted to give an update.

To summarise what we wanted to share today, we have two announcements:

  1. Gluon CloudLink now supports Azure Functions
  2. We’ve written a new end-to-end application that uses Azure services, and we want to talk about it

Gluon CloudLink supports Azure Functions

While Azure Functions for Java are still in a developer preview state, we decided to dive in and do a preliminary investigation. After this investigation concluded we are now happy enough with what is there to include support for it in Gluon CloudLink. What this means is that developers can now write Java applications that call into Gluon CloudLink, and it can now redirect and remap these calls as necessary into Azure Functions for further processing. We have a tutorial available on our docs site on how to create remote functions with Gluon CloudLink and Microsoft Azure.

Azure provides yet another cloud service for our customers to use, and from our experience below, it is very well suited for developers writing Java applications. However, it is in combination with Gluon CloudLink that these cloud services really shine, as Gluon CloudLink removes all boilerplate that is so commonly required for tasks such as authentication, security, synchronization, remote functions, content management, and much more.

Azure service end-to-end hackathon

As noted, three of our engineers recently spent a time-boxed 12 hours working on a simple, end-to-end demo application that uses a large array of the Gluon offering. The application is called PeepsAt (we’re told it is short for “where my people at”, or “people satellite”) which enables people to register their location through their mobile device, and to learn of the location of other users. Here’s a few screenshots of the application in action:

Given the small window for the hackathon, there were many things we skipped over (that we may return back to in a future hackathon). Despite this, the application made use of the following Gluon software:

  • Gluon Mobile: Gluon Mobile enabled us to write Java software with 100% equivalent code for iOS and Android. As part of Gluon Mobile, we made use of Gluon Charm Down for a platform-agnostic API for accessing the GPS hardware found in Android and iOS devices, allowing us to remain in Java the whole time. Storing the name of the user (which only needs to be done the first time you start the app) is also done using a Gluon Charm Down service, leveraging OS-specific storage capabilities. We used Gluon Connect to easily connect to Gluon CloudLink. Finally, we used Gluon VM for the ahead-of-time compilation to enable deployment onto iOS devices.
  • Gluon Maps: Gluon Maps rendered the map user interface using Open StreetMap tiles. Gluon Maps allows for zooming, dragging of maps, and for adding layers (e.g. point of interest layers)
  • Gluon CloudLink: We used the Gluon CloudLink SDK in our mobile app, so that we could easily synchronize our mobile user interface with the data stored in the cloud, and we used Gluon CloudLink itself to provide the mobile management services and cloud / enterprise abstraction with Microsoft Azure.

As well as using a large array of the Gluon offering, we also decided to drink the kool aid and make use of more Microsoft services than we traditionally would. This started, obviously, with using the Java SDK for Azure Functions. This code was written inside Gluon CloudLink and is not visible to users of PeepsAt. We did run into some limitations of Azure Functions (related to still being a preview release and not yet final), but we managed to find workarounds (and we have been assured that these issues have already been resolved for the next preview release).

On top of this, we decided to use Visual Studio Team Services for our development process, rather than GitHub + Jenkins / Travis CI, our usual approach. Visual Studio Team Services is a free Microsoft service that offers CI/CD, git repositories, and agile issue tracking services, all in one integrated service. It also has a lot of baked-in support for Java, including Maven / Gradle building, JUnit testing, etc. Despite initially feeling a little lost, we were impressed by what we saw – our team collaborated effectively and got the job done.

The end result of this work was a app that works very nicely, and demonstrates the power of the end-to-end solution that Gluon provides. As noted, we built this using Visual Studio Team Services, which does not allow for public repos, so we moved the code to our samples repo on GitHub.

Summary

To summarize – in very little time we added Azure support to Gluon CloudLink, and we built an application that makes use of Azure Functions and Azure Storage services. Going forward we will continue to evaluate additional ways we can integrate our software with all cloud providers, and we hope to hear of people successfully deploying their software using Gluon Mobile, Gluon CloudLink, and Azure services!