Cloud Computing – In a nutshell
What is Cloud Computing?
Cloud Computing is the latest buzz word in the world of IT, some consider it the next step in the progression or development in computing. This new technology is simply a platform for which online and offline applications can be ‘hosted’ – similar to current hosting models – but way bigger, better, more integrated, and hopefully more secure.
So where did an idea like Cloud Computing Come from?
Computing in my lifetime started with trying to get as much power as possible behind the 5.25 floppy disk drive. When Pentiums came out, I thought that a 120MHz would be all the processing power I’d ever need, 6 months later, I found myself drooling over the 333MHz in the shop window…. Due to these hardware changes and subsequent drop in costs companies started to move away from slave terminal models and towards a networked Desktop approach.
Also around this time the internet was commercially kicking off and services such as Ask Jeeves, Amazon and eBay made their names and their millions over night in the Dot Com era. Companies rightly saw the huge potential and value in the net as a way of cheaply communicating with their customers… until the bubble burst of course! However moving a business to a completely web based model was still far from people’s minds.
Over the last few years, we have seen a shift back to a Client-Server type Model and talk about Web 2.0 and Web Services taking on more and more processing, almost allowing us to use ‘Dumb’ terminals again like back in the olden days(!). You can now do you Word Processing and your Spreadsheets online, and there is now talk from John Nack (senior product manager for Photoshop) of having a free online service for image editing.
So as these Web 2.0 applications get larger and require more from their platforms, the platforms have to step up… and this is where the Cloud is born. The Cloud offers incredible processing power and enterprise data storage. It has been designed as a utility model, or services model with the concept of pay-for-what-you-use.
A typical Cloud is built from one or more Data Centres, located anywhere in the world, consisting of a farm of servers, both physical and virtual. Data stored on Cloud Databases can have billions of rows in a table spanning over multiple physical disk drives, again, in many worldly locations, with no noticeable drop in performance. All data stored in the cloud has triple redundancy, and if a server, service, database, or anything fails, a ‘Fabric Controller’ will seamlessly transfer application requests to other resources that can handle it… Applications are load balanced, and resources managed so that application scalability for high volume sites can be catered for by flipping a switch. Gone are the days of having websites failing due to high demand and the lack of Hardware to support.
Concerns
Cloud Computing, by its nature places your data not behind your walls, be them fire or brick, but somewhere out there, scattered in Data Centres around the world. How can you guarantee its integrity, security, privacy, recovery and regulatory compliance? This is a BIG factor to consider when choosing your tools for development. Is your final product going to be trusted in your eyes and those of your customers? Some points to consider:
- Security: This question comes down to the policies set by the Provider, as a consumer, you’ll need to enquire about their security policies by finding out who has privileged access to your data, and understand why they do.
- Legality: Make sure the that data and the processing that you are doing will not impede on any local jurisdictions of the area of where the Data Centre resides
- Data Encryption: As your data is mixed with other users’, ensure that the encryption methods have been checked and tested thoroughly by experienced specialists
- Recovery: Ensure you can recover a full copy of your data if something goes down, and how long that will take to implement.
- Monitoring: Find out if the Cloud Provider supports investigations of any suspicious activity and they continuously log what is happening in the cloud
- Availability: Your Cloud Provider is just another business, try to make sure that they are financially sound and will not go broke or be bought out by another company.
- Regulatory Compliance: As customers are ultimately responsible for the security of their own data, ensure that regular backups are taken and you check the data for consistency as well as testing security and following best practices.
The Future
Having spent some time playing around with the Microsoft Azure, I can safely say that developing anything inside the Cloud and knowing that Microsoft is there ready to support my application from when the first user hits it all the way through to is 100 millionth user, puts my mind at rest and lets me get on with the important things, like coding!
Security wise, I feel that not developing in the cloud (especially as the actual development techniques do not change) and entrusting my application to a smaller hosting company is actually more of a security threat, as well as taking longer to implement, is harder to scale, and ultimately more expensive.
Microsoft Azure was launched late last year (Oct 27, 2008) and already websites are popping up with this technology, it will not surprise me if Azure is seen as the preferred medium to work on with the next few years.