Apple has selected Microsoft's Azure and Amazon's AWS to jointly host its iCloud service, The Reg has learned.

We understand that Apple has barred Microsoft and Amazon from discussing what would otherwise be a high-profile deal, especially for Microsoft's fledgling Azure cloud service.

But Reg sources close to Microsoft this week confirmed rumours circulating in June that Apple's iCloud is running on Azure and Amazon. Customers' data is being striped between the pair. iCloud was released as a beta in August and is expected by the end of this year.

Apple and Amazon did not respond to our requests to comment, while Microsoft told us: "At this time, we don't have any comment around whether Apple is a Windows Azure customer."

According to our sources, Microsoft insiders see the iCloud deal as a validation of Azure. So far, Microsoft has pushed Azure using the marketing 101 playbook. Redmond has flagged up the start-ups and websites it has attracted in an attempt to prove to other devs that Azure is "cool". It is also promoting those corporate customers who've floated onboard to prove its cloud is being taken seriously by business users.

iCloud puts Azure into a different league, given the brand love for Apple and the Apple management's fanatical attitude to perfection. It is a "huge consumer brand, a great opportunity to get Azure under a very visible workload," our sources told us.

Apple is understood to have elected to outsource the plumbing of iCloud because its core competence lies in "building great consumer experiences". It didn't make sense for Apple to become a cloud provider.

By selecting two suppliers, both very different in their services and their level of maturity, Apple is reducing its risk of becoming hostage to a single supplier.

Microsoft and Amazon will now need to ensure they keep up with the other on reliability, new features, security, and price.

More to learn

Apple has had a recent unpleasant experience in providing online services: in a famous memo, Steve Jobs admitted his company had "more to learn about internet services" following the outages and failures of his precursor to iCloud for email, contacts, calendar, photos and other files – MobileMe.

Also, there's the cost and delay involved in building the infrastructure that iCloud requires as well as assembling and building the core services. Buildings, power, servers, storage, the recruitment of personnel and having the facility certified would cost a minimum of $100m. A more realistic cost for full-scale roll-out could be closer to $1bn.

Microsoft has already built several mega data centres to run Azure, in addition to its search engine Bing, in anticipation of big customers. The company has at least 24 data centres running Azure worldwide.

To give you an idea of the scale, the first phase of one of these in Chicago is 700,000 square feet; it uses a modular design based on containers. Chicago has a capacity of 112 containers, with each holding 224,000 servers – Microsoft uses Dell.

That said, Apple could be biding its time in using Microsoft and Amazon.

Apple is building a $500m data centre in North Carolina. If reports of the hardware going in there are correct, the centre's data capacity should run into tens of petabytes and be more than suited to running iCloud – for now, at least.

Striping

iCloud is believed to be running on the full Azure service – the Windows Azure compute and controller part and SQL Azure storage which hosts tables, queues and flat files. It's not clear how many of Microsoft's Dell servers are hosting iCloud.

The iCloud data is being striped between the Amazon and Microsoft clouds. That means Apple or Microsoft or Amazon or all three have to implement through the software a way of identifying which user's information is stored in what locations and then to route requests to the correct server.

If the data is duplicated, then software would handle load-balancing or randomly send user's requests to one cloud or the other, or change access policies depending on things like network speed and server availability.

The striping process segments logically sequential data such as single files so segments can be written to different physical devices. The process can help speed up access to data because you don't rely on read/write access speeds of a single disk in a machine.

The challenge in running two clouds under an overall service, if there is one, will be in smoothly managing a unified system where the controllers could well be running on different operating systems or be written in different languages.

This is a very real possibility; while AWS and Azure emulate virtual servers, most AWS users run on Linux while all Azure users have to run on Windows. Even if a cross-platform language like Java is used to bridge the gap, then tuning the software for both will mean additional cost and complexity.

One way to avoid managing different code bases and ensuring the best levels of performance could be for iCloud to also run on Windows on AWS. This would be a potentially even bigger victory for Microsoft as it would mean iCloud isn't just running on Azure from Microsoft but is also running on Windows while on Amazon. ®