Guest blog by John Kimani
As a web developer, you will probably hear these three words by end of coding day at the office: coffee, CSS and cloud (not necessarily in that order). The term “Cloud” has moved from being a technology buzz-word to an everyday reality, like it was at the recently concluded Winter Olympics
in Sochi, Russia. The conversation around cloud has over the years moved from an “if” scenario to a question of “when” most companies will adopt cloud technologies
So what exactly is the “cloud”? Simply put, it is a pool of computing resources (from servers and storage to specific applications) provided on a need basis via a network (wide, local, internet). Depending on the deployment model, a cloud setup can be classified as public, private or hybrid (best of both worlds, so to speak).
4 years ago Microsoft launched a cloud computing platform known as Windows Azure providing application building, deployment and maintenance flexibility across Microsoft’s global data centres. Azure already powers quite a number of Microsoft’s online services e.g. Skype, Office 365, Bing, and Xbox Live. Azure was designed and built with resilience and versatility in mind with the goal of maintaining a 99.95% compute SLA for your solutions.
On the features front, Azure provides both Platform and Infrastructure as a service (PaaS and IaaS respectively). The IaaS aspect is made available through services like VMs, Storage and Compute resources whereas PaaS is offered through a wide range of data and app services. This greatinfographics
portal gives you a comprehensive understanding of Windows Azure’s features, services, and common uses.
One of the challenges with hosting an application in the cloud is how to determine the overall health and performance of your application. Azure is no exception. Since your application may be distributed across multiple instances you need a way to determine the health of each instance, as well as the overall health of the entire deployment. The Windows Azure Management Portal displays the status of a hosted service, including each instance of the service. On top of that, the Windows Azure Service Dashboard gives you an updated Health Dashboard on all the services offered by Azure.
Developing on the cloud
The first two recommended development process patterns wereAutomate Everything
, and the third process pattern combines them. Continuous integration (CI) means that whenever a developer checks in code to the source repository, a build is automatically triggered. Continuous delivery (CD) takes this one step further: after a build and automated unit tests are successful, you automatically deploy the application to an environment where you can do more in-depth testing.
The cloud enables you to minimize the cost of maintaining a test environment because you only pay for the environment resources as long as you're using them. Your CD process can set up the test environment when you need it, and you can take down the environment when you're done testing.
Continuous Integration and Continuous Delivery workflow
Generally we recommend that you do continuous delivery to your development and staging environments. Most teams, even at Microsoft, require a manual review and approval process for production deployment. For a production deployment you might want to make sure it happens when key people on the development team are available for support, or during low-traffic periods. But there’s nothing to prevent you from completely automating your development and test environments so that all a developer has to do is check in a change and an environment is set up for acceptance testing.
How the cloud enables cost-effective CI and CD
Automating these processes in Windows Azure is easy. Because you’re running everything in the cloud, you don’t have to buy or manage servers for your builds or your test environments. And you don’t have to wait for a server to be available to do your testing on. With every build that you do, you could spin up a test environment in Windows Azure using your automation script, run acceptance tests or more in-depth tests against it, and then when you’re done just tear it down. And if you only run that server for 2 hours or 8 hours or a day, the amount of money that you have to pay for it is minimal, because you’re only paying for the time that a machine is actually running. For example, the environment required for the Fix it application basically costs about 1 cent per hour if you go one tier up from the free level. Over the course of a month, if you only ran the environment an hour at a time, your testing environment would probably cost less than a latte that you buy at Pete’s Cafe.
Come join us on Wednesday, 26th
March at the iHub for a Windows Azure walkthrough and how the cloud can benefit your
business. We also get to talk aboutBizSpark
, a free offering from Microsoft that gets you 3 years of free Windows Azure usage!