I’m Eric Morse, the Director of Emerging Ecosystems at Microsoft. Though my title may sound like I don hip boots to discover new species of salmon spawning in northwest rivers, I’m actually more jazzed about enabling new technologies to take hold and provide opportunity where perhaps there was not before. That’s why I’m particularly excited about the Azure™ Services Platform. It occurred to me, however, that not everyone may be as on board as I am, so I’m hoping to pontificate outside of my waders to tell you a bit about how your software company can prosper with Azure.
The competition is getting tougher as budgets shrink, so what are agile software companies doing? They are using Azure to give customers a range of choices in user experience. By embracing software plus services, you can deliver your solutions for your customers over the Web or on connected PCs, servers, and mobile devices without having to build and maintain data centers. That’s cost savings for you, combined with new revenue…also for you.
I see three great scenarios to take advantage of the Azure as follows:
1. Extend Existing applications to the cloud: Take advantage of the inherent advantages of cloud computing.
- Reach a large user base and expand beyond corporate boundaries
- update business logic without breaking the application
- build services that add functionality to existing on-premise solutions.
built an enterprise search capability running in the Azure Platform that connects back to an on-premise ERP application. This allows their customer base to expand usage patterns for things like CRM data or Inventory data beyond corporate boundaries and existing business processes. Their customers love it!
In another scenario, an ISV could use Windows Azure to allow their on-premise application to “burst” into the cloud to meet increases in required processing (i.e. increased demand, increased data analysis, etc.) What better service to offer your customers than enabling them to scale to meet peak processing demand without over investing in CapEx and OpEx?
2. Compose new applications from cloud services: Use the tried and true, but combine the old with new.
- Use the familiar .NET Framework and languages and/or Visual Studio that your development team can probably code with one arm tied behind their backs. But all good developers love a challenge and to learn something new. So…
- The Eclipse framework and other languages such as Ruby on Rails and Python will be the next best bets. Through these technologies, your dev team will write applications that run natively on Azure.
- Take advantage of the Services Model exposed by Windows Azure and you get, out of the box:
- Automated Service Management – you define the rules and provide the code and the platform deploys, updates, and manages your service based on those rules
- Powerful Service Hosting environment – This layer comprises the physical datacenter (machines, load balancers, network bandwidth, power, etc…) and provides a myriad of computing options ranging from virtualized to direct execution of application logic
- Cloud Storage – The File System in the cloud which includes local disk and durable storage and incorporates BLOB, Queuing and Table Storage
- .NET Services – Workflow Services, Connectivity Services, Message Bus Services and Identity Services combined to provide a rich hosted application platform in the cloud
- SQL Services – A set of database services that provide rich data management and reporting/analysis services in the cloud
- Live Services – A set of device independent services that provide application access and data synchronization across a multitude of user interaction models
- Developer Experience – All of this is provided to you through a rich, consistent developer experience through Visual Studio
3. Deploy Existing applications in the cloud: This is probably the most controversial of all of the three scenarios. So let’s dive in.
Challenge: Sometimes it is not as straightforward as taking an existing application with X number of years of development as an on-premise application, and simply migrating it to the cloud. Many existing applications have business logic and architecture designed and implemented with a single tenant, a single datacenter execution environment in mind. Therefore, simply migrating this application to a multi-server, multi-tenant environment may not provide the inherent benefits that a cloud platform can provide.
Solution: With this in mind we advise that you think carefully about the architecture of your application and decide if migrating the application is the right move and what, if any, modifications need to be built into the application to more natively take advantage of the underlying cloud platform. Because the Azure Services Platform has symmetry between the on-premise OS and Application Platform, there will be some amount of code re-use available, however, you will need to strongly consider both the business model and the architectural implications of application migration as a first step towards adoption of cloud computing. For some, this model will work very well, for others the cloud will provide an opportunity to take advantage of one of the scenarios described above.
Next Steps: Ride the rapids and learn more about the Azure Services Platform at the website and definitely take advantage of a free trial. There’s also a great whitepaper to wade to deeper depths, and of course, reach out to your Microsoft contacts to schedule an informational session. Or, simply post a comment or question below and we’ll be happy throw you a line.
Director, Emerging Ecosystems