Cloud Computing - Virtual Environments - Observations
During webDU here in Sydney, I got into several conversations centered around ColdFusion-CFML in cloud computing environments. I have not yet had any client use any of the cloud computing offerings for production, I have had one client I worked with who moved from a dedicated server environment to a fully virtual one, with VM Ware ESX and another client who moved from dedicated SQL Server boxes to an Storage Area Network (SAN) environment. Both are mildly related to cloud computing and in both cases these two different clients had performance degradation after the move. Where I see these as being "mildly related" is that there was a loss of actual physicality (NIC's, Hard Drives CPU's etc) and these were substituted by virtual equivalents.
In one of the conversations, which related more to virtual environments at webDU, we got talking about what we actually get in a virtual server. Well we get a defined CPU with a defined amount of RAM, we get an amount of storage space but what we don't get are defined, unique, dedicated hard-drives. We share storage space and I personally do not like that, it is in fact, the very reason that the two clients I mentioned above both had problems. So in cloud computing, I imagine the abstraction from resources is, at the very least, similar. As I spend most of my time troubleshooting issues I always want to investigate everything, network layer detail, hard-drive configuration and controllers etc.
Another element in all of this relates to accountability and auditability. I have helped several clients who fell into PCI and/or Sarbanes Oxley compliance requirements. Both of these sets of needs impose many clear levels of responsibility and procedures. Client data is largely seen as belonging to the client and not to the company that holds the client data (this is simplistic I know but it is a mind set that is often not present). So in my opinion both virtual and cloud computing obscure/blur the pristine element of dedicated hard-drive storage. Unless my experiences so far are not typical, cloud computing seems to, at best, cause confusion about PCI-SOX compliance in a cloud.
My last issue with cloud computing, in particular, relates to getting out of a cloud offering, there are several vendors of course, easily and having portability to go to a rival vendor. This is more of a concern than something I have seen clients experience. However, there are several documented issues that address this problem around the Internet.
There is no doubt that cloud computing and the ability it gives to grow and shrink, at will, is powerful and pervasive. We will be impacted by it and I am sure it will continue to grow in terms of usage, at this point, however, were a client to ask me if I would recommend it for production I could not recommend that they use cloud computing for production purposes with any great level of confidence.
If any out there have direct experience using cloud computing for production and know that they are well covered in terms of PCI-SOX compliance, I would be interested to know.