Open space for technologists, investors, tech companies and hackers in Nairobi.


iHub By Mugethi Gitau / March 19, 2014

Windows Azure: Cloudy with No Chance of Downtime


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).

Windows Azure

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 great infographics portal gives you a comprehensive understanding of Windows Azure’s features, services, and common uses.

Instance Monitoring

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 were Automate Everything and Source Control, 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 startup business. We also get to talk about BizSpark, a free offering from Microsoft that gets you 3 years of free Windows Azure usage!

Tags , , ,

Author : Mugethi Gitau

Mugethi Gitau is an all round creative. A techie by training, she is into all things design - Graphics, fashion, interiors. A writer of fiction and a poet, and tech/gadget blogger on Mugethi has a rich mix of experience ranging from training, community development and advocacy, research and design. A people's person, she enjoys linking the iHub Tech Community with each other, investors/corporates, academics and other stakeholders. She has a dream that one day, Kenyan techies will innovate their own computers and mobile devices and people all over the world will buy them. And use them.

    No comments yet

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

{{ theme:js file="jquery.fittext.js" }}