In the world of mobile gaming, Angry Bird has not only generated some amazing download and revenue stats, but also offered new insights into simple but sustainable business models that could serve well for big software corporations to emulate. 

To date, the Angry Bird game is available in the Apple, Nokia Ovi and Android app stores. The Windows Phone 7 version is also expected to be available in the Windows Phone App Marketplace this month.

In an interview with Peter Vesterbacka of Rovio, Peter said that they have intentionally kept the business KPI of Angry Bird very simple, focusing on download and retention rate as the primary metrics of success. So far, they’ve had impression results, with over 30 million total downloads and 80% retention rate since the game’s launch in late 2009.

Rovio also has a simple business model, offering 2 versions of Angry Bird: a paid version for the Apple and Nokia app store, and an ad-funded version for the Android app store.

Given Rovio’s focus on retention rate, the company have been updating the game periodically with new levels to retain users’ interests in the game. The fact that the users only have to pay once when they first download the game but yet is able to enjoy “free” new level upgrades also plays well to consumer spending psychology. This is like “unlimited refill soft drink” at fast food chains. However, this approach also poses a challenge for Rovio to make money on the new levels if the users had already downloaded and installed the mobile game.

This is where Rovio’s ad-funded business model becomes interesting.

The ad-funded Android version of Angry Bird was downloaded one million times on its first day of release in October 2010. To date, this version boast 7 million downloads. What’s even more interesting to note is Rovio expects to make 1 million USD in mobile-ad revenue every month with the current number of Android game downloads. This ad revenue number is achieved within less than 2 months after the ad-funded game version is launched. Given Rovio’s approach of using new levels to keep retention rate high, the ad-funded model could potentially address long term revenue sustainability much better than the one-time paid version.

So what does Rovio’s ad-funded Angry Bird game has to do with the monetization of business cloud apps in emerging markets?

Three years ago, I wrote a blog post on SaaS in China, advocating the use of hosted software distribution model for addressing various challenges with selling software to businesses in emerging markets. Since then, I’ve worked with many teams in Microsoft to pilot and deploy business cloud services in China and Vietnam. One key lesson I learned is even with a hosted software model and cloud services, it remains a challenge for international software companies to sell software in emerging markets.

I will not go into all the challenges here (e.g. government regulatory and data sovereignty issues), but will highlight one that can potentially benefit from Rovio’s ad-funded business model.

A key issue with selling software to local business in developing economies is the low value-perception of non-physical goods. So even with a subscription model, businesses in emerging market are still sensitive to the relatively high monthly user fee they have to pay to use business software such as CRM. Most companies set their user subscription price based on developed markets price elasticity, which ranges from 5 USD for basic communication services to about 20 – 30 USD for a CRM user license each month. At this kind of price, software remains an expensive commodity for emerging market business owners.

Moreover, there are usually a few local software vendors who can offer the business software at a much more competitive price, frequently at 5 – 10 times less money than software solution offered by US-based companies. Although the features and quality of local software companies may not be as high, it is often perceived as “good enough” for local businesses, whose buying decision is also heavily weighted on the lower cost.

Enter ad-funded software as an alternative monetization model for business cloud services in emerging markets.

With the consumerization of business IT, there is never a better time to target both B2B and B2C ads in common productivity,communication and collaboration business cloud services. For SMB in emerging market, it is even more true that users are frequently using the same PC for business, personal and entertainment purposes. For example, in Vietnam, it is not uncommon to see the staff in small hotel chains using the same PC for checking in hotel guests and watching music videos on youtube when the work pace is slow.

Unlike B2C ads, B2B ads can be accurately targeted to business app users, using some industry information provided by the SMB when they sign-up for the cloud service. For example, ads for cleaning supplies, wholesale food and groceries can be targeted to business app users of restaurant businesses. 

Given the vast number of SMBs in emerging markets, “free” ad-funded version of business cloud services could quickly gain popularity and broad adoption. When business software are daily tools for increasing work productivity and revenue, it naturally yield a high retention rate, thus bringing continued user eyeballs for ads that are being displayed by the cloud application.

The fact that software produced by “foreign” large software companies have a better brand and quality perception in emerging markets, also helps improve the prospects of adoption when the price is reduced to “free ad-funded”.

Therefore, an ad-funded business model seem to be an effective way for business cloud service providers to overcome the price sensitivity issues in emerging market, and accelerate initial adoption with some immediate ad-revenue to help cover operational costs.

Over time, as SMB in emerging market matures in their value-perception of business software, the service provider may consider an option for them to migrate to an ad-free paid version of the business cloud services. Perhaps by then, we may also find out if ad-funding is a better (and more lucrative) model than paid subscription for selling business cloud services in emerging markets.

Mikael Hed, CEO of Rovio said that he wanted to make the Angry Bird game available to as many people as possible, and given the complex nature of the Android marketplace, “free” appears to be the right solution.

Getting people to pay for software in developing world also present multi-dimensional challenges, and the ad–funded free model could just be the right approach for international software brands to nest their golden eggs in emerging markets. 

These days, one of the cloud topics I discuss frequently with colleagues and customers is the concept of private vs. public cloud.

In this post, I would like to share my thoughts on a few commonly asked questions on public and private clouds.

Most people have heard of public cloud and few would argue that Microsoft Azure, Amazon EC2 and Google App Engine are fine examples of public cloud services. But are these the only organizations that can provide public cloud services?

I think the answer is no. Any entity can provide public cloud services, as long as the service provider satisfies 2 criteria below:

(1) The services are commercially available to anyone outside of the service provider’s organization (i.e. available to anyone who is not an employee or a business partner)

(2) The infrastructure and software platform for delivering the services satisfy the definition of a “cloud”. I personally like the current NIST definition of the “cloud model”. The NIST’s cloud definition describes 5 essential characteristics (see the referenced NIST doc for detailed description of the characteristics) :

  • On demand self-service
  • Broad network access
  • Resource pooling
  • Rapid elasticity
  • Measured Service

Of the five characteristics, the ones that are difficult for most cloud service providers to enable in their infrastructure are resource pooling and rapid elasticity. These are really the key attributes that differentiate traditional ASP/web hosting infrastructure from true cloud infrastructure. True cloud infrastructure are expected to scale reliably and react dynamically in response to real time inputs such as usage loads, customer requests and infrastructure failure.

However, designing and implementing a cloud platform is not a simple task. In additional to huge capital overlay, it also requires highly technical professionals who know how to apply new architecture models and patterns that are different from designing traditional data centers.

Therefore, it’s likely that some self-proclaimed “public cloud” that we will see in the future are actually more appropriately classified as “public Web services” (or similar terms) if it does not exhibit sufficient degree of elasticity or automation that a “cloud” should.

What about private cloud? What is the definition of private cloud services? I think the definition of private cloud should include 2 similar criteria:

(1) The service is only available for use by employees or business partners of an organization.

(2) The infrastructure and software platform used to deliver the services exhibit the same five characteristics mentioned above.

Once again, elasticity and (effective) resource pooling are the most difficult attributes to enable.

In reality, most people actually adopt a very loose definition of private cloud. This is not helped by the fact that many “private cloud” technology vendors shamelessly tout and sell virtualization software as the magic potion for enabling enterprise private cloud.

I like what Tom Bittman (Gartner VP and Analyst) said about virtualization – “Virtualization, without good management, is more dangerous than not using virtualization in the first place”. How true this is – a virtualized data center does not automatically qualifies as a cloud.

A question that private cloud skeptics like to ask is: given all the benefits of public cloud computing, is there a need for private cloud? After all, building a cloud that operates with economy of scale is not a light undertaking and certainly not every enterprise is capable of building a true cloud.

This is a tough question to answer with a definite yes or no. However, if the question is: “is there an enterprise need for customized IT infrastructure and services that are not available from public cloud service provider?”. This is an easier question to answer, and the answer is yes. Below are some good reasons and examples that support this answer:

  • There are high value business applications features that employees and business partners need, that are not simple horizontal Software as a Services (like Email) and cannot be sourced from a public cloud provider (e.g. Microsoft BPOS service). Complex and high transaction throughput ERP software for Fedex’s employees, transportation and distribution partners all over the world to track and deliver packages is a good example of custom business application services that can be delivered through cloud computing platform.
  • The IT service level quality that the enterprise expects cannot be met by any publicly available cloud services. Service level quality usually refers to metrics such as the amount of expected service uptime, network speed for data transfer, application respond time etc. When the enterprise requires a higher level of quality service not available from one-size-fits-all public cloud services, one option is to deploy a customized infrastructure that can meet its own service requirements.
  • For government agencies, financial institutions and health care organizations, the customer data that is being processed and stored may be highly sensitive and therefore public cloud service providers may not be able to provide the level of data security protection that these enterprises need.


If we acknowledge the fact that enterprises do require custom IT infrastructure and services that are not provided by standard public cloud service providers, the next couple of logical questions to ask are:

1. How should the enterprise in-source or out-source the technology, IT management and business desk operation to get the needed IT services?

Below is a diagram that I use to describe the fact that any organization can choose to offer customized public or private cloud services. However, an organization’s decision to offer private and public cloud service should be a separate “why and what” business decision  from how it is going to enable and deliver those cloud services. For example, a bank wanting to offer private cloud services that present business intelligence information to its internal employees may choose to implement the BI application using a public Platform as a Service (PaaS) such as Microsoft Azure (assuming it meets the bank’s data confidentiality requirements). Although the underlying Azure cloud platform is a public cloud service, the end application (perhaps offered as a BI Software as a Service) is only available to internal employees as private cloud services.


Infrastructure and application platform are not the only things that can be in or out-sourced. The staff and operational processes for IT management and business desk operations are also cloud building blocks/capabilities that can be in or out-sourced to enable public and private cloud services.

A paper that I wrote back in 2006 described the factors that influence enterprises to choose SaaS vs. deploying on-premises applications. I think the same categorization of considerations based on political, technical, financial and legal factors also apply in this case of how cloud service providers choose to in- or outsource their cloud building blocks.

2. What is the most effective short and long term compute model for delivering those IT services – is there a need to build a true cloud or some combination of virtualization with automated management of existing data center is going to provide the best ROI?

My personal opinion is that few enterprises will be able to automate and operate a data center with the same efficiency that Microsoft, Amazon and Google is able to. Moreover, at the smaller scale that the enterprises usually operate at (compared to public cloud like Microsoft Azure), it may not yield the optimal ROI even if they aspire to run at the same level of efficiency.

Although I personally do not like to classify everything that is not public cloud as private cloud, the industry marketecture nomenclature is definitely going in that direction.

Rather than fight the industry trend and debate whether an enterprise has a true private cloud or just a virtualized soup-up data center, I will leave the reader with the following thought and illustration below:


The illustration describes the “cloudiness” of a cloud as a continuum. On the extreme right end of the continuum, you have your definition of a true cloud, with the highest possible level of self-service, network ubiquity, resource sharing, on-demand capacity and granular metering. At the extreme left end of the continuum, you can definitely tell that it is a data center that is manually managed and there is tight coupling between the end-user application and the dedicated hardware.

In reality, many so called enterprise private cloud will lie somewhere on this continuum in between the 2 end points. Hopefully, with this cloud definition, they should be “all in”  Smile


These days I spend a lot of time looking into architecture approaches for designing and implementing cloud infrastructure.

At yesterday’s Microsoft PDC 2010 event, Bob Muglia mentioned a significant milestone was made in 1992, when Bill Gates announced the 1st release of the Windows NT operating system at PDC. It was a significant milestone because Windows NT is really the predecessor and OS kernel foundation of subsequent releases of Windows Server and desktop OS, including Windows XP and Windows 7.

In his keynote, Bob Muglia also noted that Windows NT is an OS designed to manage hardware and virtual resources within a single machine. In today’s world of cloud computing, hundreds and thousands of machines are running in synchrony in the data center, and we need a different kind of OS for automating, orchestrating and managing the software and hardware distributed across the data center.


So once again, Bob announced another milestone is being established in this dawn of a new era: Windows Azure is the Operating System for the Cloud:


Similar to the single machine operating system, the core of the cloud OS is a resource manager that manages physical and virtualized resources to enable reliable, scalable and secure computing services across remote locations. Sometimes, this cloud resource manager is also called the compute fabric controller.

When I think about the differences in approaches to deliver massive compute power using cloud computing vs. supercomputers, the following visual comparison comes to mind:


Building a cloud computing platform is like organizing a large army of fighting-fit Spartans into well coordinated battle formations (called phalanx). Each individual soldier has been trained and passed the standard military tests. The army delivers victory based on the overall strategy and execution of the whole fighting unit rather than relying on the superhuman ability of any single soldier. The commander also plays a key role in the battle as he issues new fighting instructions according to the battle situation. The soldier must then react in synchronized manner to maintain formation for executing the planned strategy.

The cloud fabric controller plays the same critical role of the Spartan commander by sending new commands to the compute nodes, according to monitored events and management messages it receives. The commands instruct the nodes in the compute platform to react by automatically provisioning additional resources for added capacity or repair segments of the fabric that is failing.

By using standard commodity hardware and implementing intelligent resource management through the fabric controller (i.e. the cloud OS),  modern cloud computing is able to deliver massive computing power at reasonable incremental cost.


Contrast that with the approach of delivering compute horsepower through supercomputers. Using a similar analogy, this would be like training a gifted super warrior that is highly trained to fight and win as a single soldier. The conditions and cost to train such super warriors is much much higher than the standard military training delivered. In addition, even a super warrior has limits and unlikely to win a battle against the attacks of a few units of phalanx.

The building cost and limitation of a supercomputer is similar to that of a super warrior. After a certain point, it costs more and more to deliver every increasing unit of compute power. The upper compute limit is also constrained by the physical size of the supercomputer.

Now that we have established the basic premise of how cloud computing achieve scalability and added compute capacity, in my future posts I’ll share some insights on architecture approaches for designing the brain of the cloud OS – the fabric controller.