“Human knowledge has been changing from the word go and people in certain respects behave more rationally than they did when they didn’t have it. They spend less time doing rain dances and more time seeding clouds.”
Cloud computing – that server in the sky – has gotten a lot of press recently. Organizations are investigating its power to offer less expensive client services, to more tightly couple dispersed organizations, and to integrate open source applications with proprietary ones to improve the comprehensiveness of services. Cloud computing is also touted as a way to save money and be more green because less energy and natural resources are used. In fact, I just got back from the Microsoft Worldwide Partner conference in DC where every presentation had something about “the cloud” and how you needed to be “all in.”
Tim O’Reilly, CEO of founder and CEO of O’Reilly Media, talked with operations personnel at OSCON 2010 about cloud coordinating services during the relief efforts after the Haiti earthquake. He discussed using information services provided through Ushahidi (Tufts University) to take source data from SMS, creating interactive maps using Google Earth, provide instantaneous translation with software developed in close to real-time, and connecting people through Skype.
How will cloud computing change development and project management?
From a project management perspective, several things about business change in a cloud environment. Costing, for example, reflects service agreements rather than hardware and software purchases. Maintenance and troubleshooting becomes more difficult because it is the responsibility of the service provider. How queries are written against stored data changes because of the way that databases are handled in the cloud. Comfort in data security services from providers becomes a huge deal. Developers need proficiency in dynamic programming languages such as Python, Perl, Ruby etc.
Architectures change as Lew Tucker, Sun’s CTO of Cloud Computing cautions, “Different parts of an application might be in many places in the cloud. For example, a presentation layer might be on Facebook, storage could be on Amazon.com’s S3, and application logic could run somewhere else entirely. "
Nikita Ivanov, CEO of GridGain Systems – Cloud Computing Software suggests that The best way to think about cloud computing is as a data center with an API. In his blog, he presented a provocative list of real-life challenges and observations about cloud computing from which I have selected a couple major ones for consideration by project managers and developers:
- You will spend weeks and months fine tuning your application and developing additional functionality; plan accordingly
- With 1000s of remote nodes, things that worked in 10s of nodes often “mysteriously” don’t work on the “cloud” scale.
- Debugging problems require pretty deep understanding of distributed computing; learning curve is very steep; trial and error is often the only solution
- Cloud(s) are implemented based on hardware virtualization – make sure your grid middleware can dynamically provision such images on demand.
Cloud computing requires a platform that can manage the dynamics of the application including troubleshooting performance issues. There are currently no great approaches to identify quickly the root cause of application performance issues in the Cloud. Existing tools and solutions are limited in the way they capture information reports Andreas Grabner in the post, “Challenges of Monitoring, Tracing and Profiling your Applications running in The Cloud”.
To cloud or not to cloud, that is the question. There is certainly potential value added to applications and organizations using the capabilities of cloud computing. However, before making the plunge into territory that will significantly change the way you do application development and manage projects, I strongly recommend educating yourself on process and procedures and get advice from experts. There are several good places to start and Microsoft has some good resources to help you get started.
Please share your thoughts and experience with computing in the cloud.