Talk about hype! I am a firm believer that the principles supporting cloud computing are sound as let’s face it, a lot of them have been around for quite some time. I’m also pretty sure that marketing rules this environment and that marketing is usually full of crap so it is best to keep a skeptical hat around during marketing presentations.
Cloud computing does bring some new concepts to the table. It is effectively a dynamic Adaptive Computing Environment (ACE). That is, it is sufficiently flexible to allow applications to reconfigure the environment in a way that best delivers the functionality required. How is this different to plain old virtualisation? Well, IaaS (Infrastructure as a Service) is a major concept in most cloud deployments and so it isn’t surprising that it incrementally builds on top of that methodology. Cloud Computing is about providing the required level of services and resources when they’re required. It isn’t just about provisioning another Linux or Windows system. It is about giving the applications what they need and when they need it.
Can everything in a Cloud ‘space’ be wonderfully dynamic? Currently No, not really. Some problem sets require specific application and system/network topologies to best solve the problem set at hand. Over time though I fully expect that IT will evolve and it will evolve away from the current system centric or sometimes network centric view of the datacentre. With this evolution we will see different solution components that can be rapidly deployed and that they will seamlessly integrate into the cloud space.
Cloud administrators, which I firmly believe will be very different to existing systems administrators will be responsible for managing a complex and highly dynamic environment. The cloud administrators will have far better understanding of the deployed application requirements. They will have to facilitate database solutions from simple files to multi-system query engines, they will have to be able to provision disk storage when and where it is required, with backup policies meeting the application requirements, they will have to integrate highly performant cpu intensive applications and potentially unique processing capabilities and of course they have to do it securely.
All this cannot be done at the systems administrator level, where we still see constant bickering about whether my operating system is better than your operating system. Big news flash, the applications don’t give a crap, and the businesses just want them to run and meet their requirements. I fully expect to see some form of application enclaving occurring, a technique that will see an application component instance running on one system being seamlessly migrated to another system, possibly even a completely different operating system (you could argue this is possible now with Java and something like Terracotta).
In the cloud, all operating systems and architectures have to co-exist in harmony. They will all play a role in delivering application functionality and guess what – a lot of the reconfiguration of cloud resources will be triggered by the applications themselves, whether to scale up or down according to workload requirements or to reconfigure themselves based on changing business requirements. The processing/connectivity elements in the cloud do not exist for themselves, without the application they are meaningless. The operating system is merely a vehicle to provide services to the application, a concept that has definitely been forgotten.
In the cloud, the power shifts to the application developers who will in close conjunction with cloud administrators deploy and maintain application computing solutions.
As far as I can see. one of the biggest issues with cloud computing is ensuring the locality of the data and the computing elements. If you have transfer petabytes of data considerable network distances to reach the computing resources and back then you will need to question the cost effectiveness of doing so. Under these circumstances your cloud application design may see you creating a private cloud component that interracts with other private clouds (say an outsourcer) or public clouds. To solve these issues, agreed interoperability standards are extremely important and you can easily argue that they are equally important just for ad-hoc consumption of computing resources.
If you ignore the hype and look at the concepts, then there is significant value in an Adaptive Computing Environment.