I am Joannes Vermorel, founder at Lokad. I am also an engineer from the Corps des Mines who initially graduated from the ENS.

I have been passionate about computer science, software matters and data mining for almost two decades. (RSS - ATOM)


Entries in prospective (2)


Top 10 cloud computing predictions

The Microsoft World Partner Conference 2010 is due to begin next Monday, and it's clear that Windows Azure is going to be one of the product that will get the most attention this year.

Over the last 2 years, I have attended and even took part to many cloud computing talks, and I am hearing tons of very confused opinions on cloud computing, and even more concerning the future of cloud computing. Hence, here are my top 10 cloud computing predictions for the next 5 years.

1) Cloud will become mainstream in enterprise adoptions

Cloud computing is already mainstream in consumer markets. Amazon, Google, Yahoo, Microsoft, ... all of them are running on top of their own clouds. If you're using a web search engine, then you're using the cloud already. In the next 5 years, I expect the cloud to become the mainstream adoption pattern. I am NOT saying that the cloud will dominate the enterprise in just 5 years from now, I am saying that it will dominate setups and upgrades. It might take one or two decades to progressively move away from strict on-premise solutions.

2) ISVs will vastly dominate the overall cloud consumption

Yet, the migration toward the cloud will be implicit. Indeed, enterprises care little about cloud computing itself, they will buy SaaS solutions not raw processing power. The vast majority of those SaaS solutions will be powered by public clouds, but for non-IT companies this fact will be irrelevant. The economical forces will drive ISVs toward the cloud, which will vastly dominate the overall cloud consumption. Single-tenant apps have very hard time competing with the low management costs of multi-tenant apps. Nothing will actually prevent companies to buy raw cloud processing power, but I expect this behavior to be marginalized as the SaaS ecosystem grows.

3) Private clouds are nonexistent and will remain marginal

We keep hearing about private clouds, yet, if we exclude the few private clouds designed by internet consumer leaders (eBay, Yahoo, Facebook, Yandex, ...) that have not been turned into public clouds, there is NOTHING even close to a private cloud at present day on the market. The only product that would start looking like a private cloud is Eucaliptus, but it's still lightyears away from global solutions build on top of containerized data-centers that public clouds represent. The skills and the costs required to operate a cloud are steep, I can't figure out why would companies go for private clouds. Some will argue that control is of utmost importance, but shareholders might not agree when they will realize that a small cloud costs millions upfront, and millions for ongoing management. Although, companies with ad-hoc data centers will keep improving them, probably importing best practices established by major cloud hosters, but that's it. Yet, those improved data centers will still be extremely far feature-wise, reliability-wise, security-wise from public clouds.

4) Hybrid clouds are fantasy and will remain fantasy

Another myth I keep hearing about is the idea of hybrid clouds: you have your own private cloud, and when you lack capacity, you rent some extra from a public cloud. Although the idea is fascinating, IMHO, it's vastly impractical. Designing a true auto-scalable app on top of a cloud - any cloud - is already quite hard. Clouds are easing the scale-out process by offering some very normalized environments, but scaling-out remains a challenge, especially for enterprise apps. Offloading processing power into some heterogeneous computing environment is bad idea, software complexity would skyrocket, and it will fail like grid computing failed before. What was a nice idea in theory was just way to difficult to be routinely implemented. Although, please note I am not stating that hybrid clouds are impossible; I am just stating that it's very unwise, and that complexity will comes back as punishment.

5) Cloud mashups will be the dominant pattern

I expect SaaS mashups to become the dominant pattern in enterprise environments - for consumer environments, it's already the case. Companies and people alike will combine the apps they want most, irrespective of the underlying clouds. As a results, scenarios where a single company adopts Salesforce for the CRM, Microsoft BPOS for the collaborative suite and Netsuite for the ERP are likely. Obviously, those mashups will requires very capable integration tools, which will also be offered on the cloud. RunMyProcess would be a good example of such tools.

6) Self-hosted servers will be considered as liability

Some people consider self-hosted servers as more secure than remote or cloud-hosted solutions. As far I can tell, 99.99% of the time, this appears to be complete fallacy. Securing a computing environment takes skills that even my bank (a very large international bank) is obviously lacking. The situation is worse in nearly all non-IT companies I have investigated while running Lokad. Some companies happen to be very confident in their IT security, but most of time, it's just over-confidence, with no tangible processes to support this confidence. As cloud computing grows more mature, I expect the community consensus to gradually converge toward the opinion that unless proven otherwise, any self-hosted server should be considered as an IT liability.

7) No1 cloud issue will stay the lack of qualified manpower

Media, influencers, integrators, and cloud providers keep discussing the relative strengths and weaknesses of the cloud, but there is one issue that dwarf all others, and yet, this issue is barely mentioned: the extreme lack of talented workforces to develop in the cloud. Not believing me? Just try to hire any experienced cloud computing software architect. Hiring good developers is already extremely hard, hiring good developers who happen to have skills and experience in large scale distributed systems is only harder.

8) Fine-grained geolocation will be the No1 entry barrier

Two years ago I was stating that cloud computing was an arena for big players. I still believe this isn't going to change. In particular, geolocation capabilities - aka the possibility to bring the computing resources close to the end-user - are already exponentially increasing the entry costs in the cloud market. Closer data-centers will mean lower latencies, and smoother UI behaviors for cloud-hosted apps. Ultra-responsive UI are so much more enjoyable that it's little wonder than Google recently started to add website speed as an extra criterion for their website ranking. In 5 years, clouds will no more be expected to have half a dozen of worldwide locations (Windows Azure has 6 locations at the moment), but dozens, with a data-center close to every major megalopolis. Considering that each data center costs more than a few hundred millions USD, entering the cloud market will be just impossible for anyone but the largest IT companies of the planet.

9) Cloud computing is not going to kill desktop apps

Some believe that the cloud is going to kill desktop apps. I don't. I believe that all software areas will be growing (cloud / desktop / embedded / games, ...). There will be more desktop apps in 5 years from now, and WAY much more cloud apps. Although cloud computing will shift the purpose and the value of desktop apps. The AppStore is a good example of the strong interactions that are likely to exist between non-web apps and the cloud: apps are available on the cloud at any time, typically interact with the cloud, and bring a top user experience that would be very hard to deliver otherwise. And no I don't think that World of Warcraft is going to run on HTML 5 any time soon.

10) Dev stacks are going to develop their cloud affinity

The software world is basically divided between a hand-few development stacks: Microsoft/.NET, Linux/LAMP, Oracle/Java, ... I expect each stack to develop some growing affinity with one public cloud in particular. The .NET world as already a very natural orientation toward Windows Azure. Linux-based solutions will keep moving forward with Amazon, eventually Rackspace. As Google is expending the coverage of its App Engine, I expect more development Java/Python tools to be released - basically the ones internally developed and used at Google. Some are dreaming about cloud interoperability, but considering the pace of change in the cloud computing world, I don't see that happening in the next 5 years.

What are your predictions for the cloud in the next 5 years?


Cloud 2.0, what future for cloud computing?

Almost one year ago, I posted a a personal review about Azure, Amazon, Google Engine, VMWare and the others. One year later, the cloud computing market is definitively taking shape. Patterns are emerging along with early standardization attempts.

My own personal guess is that the cloud computing market (not the technology) will somehow be reaching a v1.0 status at the very end of 2009, when the latest big player - that is to say Microsoft - will have finally launched it's own cloud.

My personal definition for cloud computing v1.0 is a complex technology mash-up that involves a series of computing resource abstractions:

  • Scalable key-value storage (1)

  • Scalable queues

  • Computing nodes on demand (1)

  • Scalable functional CPU (ala MapReduce)

  • Scalable cache (2)

  • Sharded relational DB (3)

(1) Both storage and computing nodes come in two flavors depending if the cloud supports geo-localization of its resources. In particular, read-only geo-localized scalable storage also known as content delivery networks provide advanced automated geo-localization; while computing nodes are still manually geo-localized.

(2) At present time, virtually no major cloud provider support distributed cache - but considering the success and community interest in Memcached, I am guessing that all major cloud providers will be supporting this service by the end of 2010.

(3) Again, virtually no major cloud provider support sharded relational DB at the moment, but considering the importance of relational data in virtually every single enterprise app, I am also guessing that most major cloud providers will offer that by the end of 2010.

With those services in place, I will consider that the cloud v1.0 milestone will have been reached.

Guessing what lies further ahead, beyond 2010, is a difficult game as the cloud computing technology is still under a very fast paced evolution.

Yet, I think (or rather I guess) that there will be two major forces for cloud computing 2.0:

  • Drastic productivity improvements though mature environments.

  • Fine grained geo-localization for near real-time latencies (say 10ms).

Indeed, at present time, cloud computing is mostly an option available for projects carrying little or no legacy, as the migration toward the cloud represents a complete redesign of most apps.

Furthermore, cloud computing v1.0 involves loads of hard-core development skills and a significant amount of knowledge about distributed computing. This is a vast barrier that will slow down the adoption rate of the cloud.

Thus, a key aspect of cloud computing 2.0 will be to obtain drastic productivity improvement through mature programming environments that will significantly facilitate design and testing of cloud apps. Considering the breath of issues to migrate existing apps toward the cloud, I believe that this task will require no less investments than the actual design of the cloud v1.0.

Then, if cloud v1.0 is vastly scalable, it's also still far from real-time interactions (*) as latency is, at best, only marginally better than what is obtained with classical server setups. Indeed, geo-localization is made available, but at a very coarse grained level (typically continents) and rather with a spirit of compliance with local regulations, as opposed to latency fine-tuning.

(*) Check OnLive for an early attempt at low-latency cloud infrastructure.

I feel that the potential for on-demand computing resources made available in nearly locally allowing nearly real-time interactions - from mobile apps to urban commodities - is huge. UI responsiveness is addictive, and the competition between cloud providers will reflect that.

Yet, lowering the latency will probably mean multiplying cloud data centers around the world so that most people (who will remain as blissfully ignorant about cloud computing, as they are about water supply) can enjoy loads of services with improved user experience.

To achieve that, I suspect that major cloud providers will end-ups with dozens (and ultimately hundreds) datacenters starting with the largest/wealthiest cities.

Considering that data centers typically costs hundreds of millions of dollars. Cloud 2.0 will represent investments no less important than what has been made historically to setup the power grid.