Do you trust data in the cloud?

Cheap hosted storage, app engines, and hosted code libraries. Can you really trust your data, or your client's data in the magical Web 2.0 cloud?

Cheap hosted storage, app engines, and hosted code libraries. Can you really trust your data, or your client's data in the magical Web 2.0 cloud?

Online services that take the hard yakka out of building Web solutions have popped up left, right and centre over the past two years. Instead of hosting a JavaScript library you can now call one from Google. Need cheap hosted storage for your website? Amazon's S3 service is cheap as chips. And if you know a bit of Python a whole Web app engine can be supplied at nearly zero cost.

It seems setting up your own server environment is so passè. Is the way of the future for Web developers a tangle of services thrown together?

Before the yolk starts flying from the cool kids in Twitter land, let me explain that I believe in the SaaS model. My beef is creating core infrastructure with cloud services, especially the free webware ones available.

Let's take two examples. The first one is Google's app engine. It's a fun service that will let you create online apps. If you trust Google, you can run your Web apps fine with this service and even put it on a domain of your choice. It's also a good choice because Google has plenty of money and won't disappear overnight. However, what happens if you want to move your app to another provider? It's not as easy as plonking your application on another Web host.

Another example is using small start-ups to run your Web infrastructure. Omnidrive is an Australian-born company that was one of the pioneers in online storage and even touted as a developer platform.

While it's a promising technology, the company's future looks dubious if reports by ReadWriteWeb are true. While Omnidrive's CEO, Nik Cubrilovic, claims Omnidrive is "churning along" and is preparing a new release, the website seems to not be working today.

I don't mean to be too hard on the Aussie company and kick it while it has its own problems, but downtime affects even the big companies. Recently, Amazon's S3 service was down for more than six hours, causing much angry blogging around the Web.

These are just two examples of many but highlight an important point, cloud services for core infrastructure isn't portable and if you can't handle the outages, you’re not ready. Maybe I'm a control freak but I wouldn't want to host core Web infrastructure on either service.

But these aren't the only reasons on why you should be at least concerned about the building apps on the cloud:

* Technical standards for cloud services aren't clearly defined, making them difficult to transport

* You don't really know where the data is hosted for many services. Is data crossing borders it isn't supposed to?

* Cloud computing assumes everyone is on the same broadband connection speed and has access to all services from different domains. For example, some domains are blocked by China, making your website unreadable in that country. Also some companies and schools block certain domains. If your service is running on it, your website will also break.

* Privacy. This sounds a bit tin-foiled hat, but have you read the privacy documents for your online service provider? Do you trust a company that offers a free service and all of its employees with your client's data? Are you breaking laws by exposing some of this data?

* Downtime. Most cloud services are pretty good but what happens when they break. You, not the hosted service, might be responsible according to a Service Level Agreement (SLA).

* Perpetual beta products that change without notice. One day your service will work, and then next the company might release a new version that is "cool and hip" but breaks your services. If it results in downtime, again you might be responsible.

While some are touting cloud computing as the next funky cold medina of Web development and Web application development, be sure to check what control you're giving up. Development is supposed to make things easy, not to be done easily.