Deploying non-microsoft applications on Azure
In my previous blog post, I had shown you a deployment model in which an application could leverage the capabilities of both on-premise as well as being on cloud. In that blog I had shown how application storage had been migrated from on-premise to the cloud.
In this post I will show you yet another deployment model possible on Azure and which may interest most of you who may have applications running on non-Microsoft technologies. I will discuss a model on how applications build on Java technologies can be deployed on Windows Azure and hence can reap the benefits of Cloud Computing.
More on "Infosys mConnect" in a Microsoft Paper is available here
With the November release of the Azure SDK, Microsoft has opened up the Windows Azure platform to applications build on non-Microsoft technologies such as J2EE. Azure can now host any application which runs on open source platforms such as Apache Tomcat, MYSql etc. In this Blog post I will walk you through one such scenario where we have migrated one of our existing non-microsoft application on to the Cloud.
Infosys mConnect is a “context aware” & “device agnostic” platform that helps to mobile enable any existing application or create one from scratch. Infosys offers mConnect, as a product that enables Web sites, e-commerce, and banking platforms to support mobile devices without costly modifications to their services. The core differentiation of the platform lies in the way it extends traditional application functionality to any device such as a Palm, Blackberry, iPhone etc... in a way that is optimized for that end user device and the network.
With mobile becoming one of the de-facto delivery channels in reaching out to customers or partners for most Enterprises today; scalability and performance are becoming the key challenges faced. With the wide scale penetration of mobile devices, B2C scenarios are seeing huge demands from the growing mobile user community in terms of being able to deliver rich content in real time. Infrastructure build for catering to mobility scenarios will have to stand up and be resilient to meet the growing load and scalability demands of the mobile community. And building such an infrastructure will require significant investments to be made.
While Infosys mConnect being a mobility platform addressing issues like device diversity and optimizing application response as per different mobile devices but with porting of mConnect applications to Azure, we could very aptly address the scalability and performance concerns. In the traditional model, mconnect was deployed within Client locations or sometime within our own Data centers. The challenges here had been with having to over-provision and at the same time manage these systems thus incurring significant upfront capital investments. With mConnect on Azure we are now able to have an offering to deal with the huge appetite of the B2C mobility service for our clients and that too with low upfront investments
Infosys mConnect is a gateway which sits between the end-user & the enterprise. The gateway, services requests from the end user which it can receive from any of the different mobile devices out there today. The request received is forwarded to the enterprise systems in the backend to retrieve the required information. Information received from the enterprise systems is then encoded in the relevant protocols into screens supported by the mobile device. The gateway based on the device info is able to gather the device context and renders screens which are suitable to the device.
Infosys mConnect has been built on J2EE technologies and hosted on Apache Tomcat. Also the application can be configured to work with any relational databases data storage.
With the latest Nov SDK support for “External endpoints for worker roles and access to role configurations“ is made available on Azure. Using these features we were able to move the mConnect technology stack onto Azure AS-IS and that too in the least invasive way thus saving us considerable time and effort in the process. We were able to deploy the entire application on to Azure in 3 weeks.
mConnect deployed on Azure
The mConnect application was deployed to Azure with SQL Azure as the Database. The application start up is handled by the Azure worker role. Before strarting up a Tomcat instance, the worker role will first map the tomcat listening port to the worker roles endpoint such that all request arriving at the worker role endpoint will be directed to Tomcat. Once the mapping has been done the worker role will fire up a tomcat instance which will inturn initialize the mConnect application.
The implementation details of running a Java app on Azure can be easily understood by downloading the Infosys developed, Tomcat solution accelerator on Azure which is available here
Benefits of Moving to Windows Azure:
1. The instant benefits we got from Moving to Azure was ability to gain instant scale without investing a single dime on Infrastructure
2. Also by using SQL Azure as the data storage we were instantaneously able to leverage relational data access capabilities on cloud with changing a single line of code
3. By adopting to a least-invasive approach to application migration, we were able to migrate a Java application on to Windows Azure in a matter of weeks and thus reducing the overall time to market