In a previous blog, I discussed an Application Architecture for a Hybrid Cloud Architecture. In that case, I discussed building the Web/Mobile Application Server in the Cloud. However, not everyone can make such a drastic jump into the cloud. In reality, your journey to the cloud may happen in a finer grained fashion. There are places in your on-premise implementations that you can start offloading function to the cloud and gain immediate benefit. Using cloud based services can end up saving you hardware, implementation costs, and so forth. There are several use cases you can think about offloading to a service in the cloud. Some examples include:
- Mobile Push Notifications
- Edge Caching Services (many do this via a CDN)
- Management Use Cases
Let's look at Mobile Push Notifications as an example. A typical implementation of push notifications on-premise is to have a Mobile Gateway Server, such as IBM Worklight. Worklight implements a Push Notification Service allowing you to have a single API where you can send push notifications through APNs, Google Cloud Messaging, SMS, and others. A typical implementation is shown in the figure below.
Worklight makes it easier by giving you a framework and implementation for doing Unified Push Notifications. However, it requires you to maintain the application artifacts, scale, and so forth. Since mobile notifications require you to go through a provider's network, you are already sending messages through a proxy such as Apple or Google. So in essence, Worklight is providing a place where you can generalize push out to different networks. Messages are usually driven by some back end event, so with this implementation, you usually have to integrate your backends (usually a messaging provider like MQ) to the push notification service. Again, this is not a bad thing, however, there is a cost to integration as you scale and so forth. It is possible you could provide this implementation as a PureApp Pattern as a private cloud implementation and therefore providing a service to other parts of your organization.
You can envision this type of service being offloaded to the public cloud, given that you have to already send messages through someone else's network. The figure below shows the same implementation using IBM BlueMix.
In this case, your ESB tier can use the Push service in Bluemix to send the Push Message directly to the Cloud and allow Bluemix to worry about sending notifications to APNs or the GCM. You can immediate see the savings in hardware, implementation, integration, testing, and so forth.
Net/net, you need to think about what type of cloud services can you use with your on-premise implementations that can give you immediate savings. Example.