Your company’s top management has decided to leverage Cloud computing. They have zeroed on Windows Azure considering their existing investments in Microsoft stack, seamless developer experience, on-premise integration capabilities, competitive pricing, etc. You have been tasked to prepare a roadmap for migrating to Windows Azure. You are not quite sure where to start, what to do, which process to follow, how to come up with a strategy that would show bottom line benefits to top the management? If this is your story, I encourage you to read further.
Windows Azure Platform is an end-to-end development and deployment platform for building cloud services. But moving your on premise applications to Windows Azure isn’t a simple decision. Ideally, one would like to move an application that provides maximum ROI and poses minimum risks. Risks could be ensuring business continuity, data security, technology investments, etc. To get started, a good approach is to take the existing portfolio of web applications in your enterprise and prepare a dashboard. This can help assessing where you stand. Dashboard sample shown below captures not only on-premise applications but also hosted applications enabling you to do vis-à-vis with Cloud model.
Dashboard should also include packaged applications in addition to your home grown applications. It’s important to include package applications as there is quite a possibility that the vendor of the packaged application may have a cloud based offering too. Such an offering can be a quick win for your organization, and you immediately mitigate all risks apart from the once related to governance. Another value add is ROI calculations. Calculations could be quite accurate for these packaged applications and your vendor in most cases will provide you with all the necessary inputs. An example of this could be moving to Microsoft’s Business Productivity Online Suite (BPOS) which provides cloud based versions of Exchange, SharePoint, etc.
Coming to assessment of home grown web applications one needs to look for specific patterns to get maximum ROI. I strongly recommend to get started by using TCO calculator available on Windows Azure Portal. Though TCO numbers may vary a lot, what I like is – it provides a thought pattern. It helps you identify the key parameters you need to consider for your assessment. For instance it forces you to pick one of the 4 growth profiles for your web application
In order to justify your ROI it becomes imperative that you are able to map your web applications to one of these profiles. A Key motivation for this activity is to leverage Windows Azure’s “Scale on demand” capability. Depending on these traffic patterns additional server resources can be dynamically assigned to the web application. After the purpose is met these server resources can be dropped and with “Pay as you go” model, you pay only for the capacity you require. Although patterns above are self-explanatory let’s walk through them quickly. Time Bound refers to the short team compute requirements catering to launch of new products, marketing campaigns, etc. Steady growth is one of those applications in your enterprise which has a steady growing user base and your IT keeps bringing new hardware every few years. Predictable spikes attributes to known scenarios where you expect users to flock on your site. E.g. could be a sports season or a festival season. Unpredictable spikes refer to unforeseen scenarios like bad / good press, mergers, etc. It’s quite obvious to see the value add Windows Azure can bring in for such web applications.
Further compute resources aren’t the only ones that a web application requires. It could be storage resources too. I have come across quite a few web applications that store various kinds of data including images, videos, voice calls, etc. for analysis, processing and streaming. Storage requirements for such applications grow steadily and often become a challenge for in-house IT to keep pace with. Windows Azure provides an infinite sort of non-relational storage including Blob, Table, Drive and Queue, which can be ramped up almost instantly. In addition, Azure storage has redundancy, disaster recovery and backup in place with easy to use APIs for data access. Of course one has to factor in the bandwidth charges for every request made to access the media, but Azure’s Content Delivery Network (CDN) can come in handy. So many a times it’s storage that could be your real differentiator.
A final important piece to your assessment is the effort involved in migrating your web application to Windows Azure. Depending on the current architecture of your web application this could be a serious undertaking. Components like web sessions, diagnostics, relational DB, distributed cache, COM components, operational integration, third party softwares, security, etc. would need a migration plan, feasibility check and corresponding budget approvals. Security especially is a widely discussed topic. While migrating to cloud security normally needs to be applied at 2 levels – data at rest (disk) and data in motion (wire). Security implementation can be done using encryption and related techniques. Windows Azure platform also consists of AppFabric that can allow you to take your on-premise identity investments to the cloud using Access Control Service. In case there is some sensitive data that can be stored only on your premises you can use AppFabric’s Service Bus to tunnel back from Cloud.
To summarize one needs a step based approach in assessing which applications are the ideal ones to migrate to Windows Azure. You need to balance the tradeoffs and risks while ensuring your ROI is intact. Good luck with your assessments.