Developing an app to run either locally on a machine or within the LAN is pretty well understood -- after all it's been the dominant application development and deployment model of the last 25 years. But the cloud changes the rules. Should we take advantage of local processing capability or offload everything to a remote server and just use the computer as a presentation layer? What are the best tools? Are there specific methodologies that work best?
Those of us with a few grey hairs might recall the Waterfall and Spiralmodels of application development. However, today the buzzword is agile. In the old days, there were long phases of planning and testing before new application versions were released. Today, new features are developed, tested and deployed in days rather than months.
However, that rapid turnaround time isn't an excuse to deploy slipshod work. The rules of best practice still apply.
What approaches should I use to ensure my cloud apps are functional?
Delivering functional applications depends on where you're coming from. If you're developing an entirely new application for your business then it's likely that the application requirements will be tied down and you're looking at an application port to the cloud.
To help you along the way there's Moving Applications to the Cloud on the Microsoft Windows Azure Platform published by Microsoft Press. That will guide through the basics through to using storage, automating deployment and application tuning.
As a starting point, Microsoft employee Simon J Ince has produced a handy checklist to assist with the planning process for migrating applications to Azure.
What approaches should I use to ensure my cloud apps scale up easily?
One of the great advantages of Azure over running everything in your own data centre is that Azure makes it it easy to add storage and processing capacity quickly. With your own data centre, the procurement and deployment cycle is far longer that Azure's point and click model of expansion.
However, with that capacity to easily beef up your architecture, there's a need to ensure that applications are able to use the expanded system capability.
Fortunately, Microsoft is working to simplify application scaling for developers through the cleverly-named WASABi - the Windows Azure Auto-Scaling Application Block. It's now a beta release and it allows developers and IT professionals to add and manage automatic scaling capabilities for Windows Azure hosted apps and services.
Where can I find sample code?
Sample code is like gold to developers. Rather than having to start with a blank slate, you can leverage the work of others to get you going.
A great place to start is the open-source community CodePlex. There you'll find the Windows Azure SDK for PHP to support deploying PHP apps to Windows Azure.
Microsoft also provides samples as part of their online learning service. Those Azure code samples cover a variety of platform technologies and programming languages.
Picture by Victoria Peckham