Many senior analysts who are concerned about the technology industry think the concept of cloud computing (the "cloud") is almost universally known. A few months ago, the jargon was barely known. Until now, most of the technical analysts, news, vendors and conferences seem to be evaluating this a lot. Although this concept is quite fire, at present, there is no concept of cloud computing consensus. Sometimes cloud computing is comparable to simple utility and grid computing, and sometimes it is not similar to SaaS and virtualization. What is the cloud computing, many of the current model need to challenge:
Data security and privacy The cloud computing infrastructure is multi-tenant and vendors often can not guarantee that A's data is physically separated from B's data. In addition, the physical location of the data may not be guaranteed given the requirements of large-scale scalability. Users may feel uncomfortable if they need to comply with national or international regulations regarding business transactions and related data. However, it is argued that statutes may consider such a large-scale, distributed, multi-tenant environment by then.
Data Access and Storage Model Whether it's Amazon's S3 and SimpleDB services or Microsoft's Azure Data Service, today's storage models need to adapt to many different usage scenarios. Thus, they may favor simple storage models based on blobs or simple hierarchical models. While this brings significant flexibility, it adds a burden to the application logic to explain the relationship between different data elements. Many transactional applications that rely on relational database structures are not suitable for this data storage model.
3. Lack of standards and vendor lock-in. Most vendors define standards-based mechanisms (HTTP, REST, SOAP, etc.) to access and use their services. However, standards for developing services in the cloud computing environment have only just emerged, and there is now a lack of functionality to write and run around. For example, using Google's AppEngine to develop applications is quite different from developing apps on Microsoft Azure or Force.com. Using a vendor's programming model to develop applications to migrate to another vendor's platform is not easy. However, organizations such as the Open Cloud Consortium have emerged that encourage the adoption of open source-based software development in cloud computing environments and are considering the development of standards that work together.
4. Deal with the problem. Given the massive distributed nature of cloud computing applications, it is not always easy to understand what types of failures occur. Therefore, the development of applications to deal with failures as a normal implementation of the process, rather than an exception.
5. Economic model. Pay-per-use models have some advantages, but if usage is consistently high, the economics of this model no longer exist. Especially if the business-intensive applications to use cloud computing, manufacturers have to consider the implementation of the maximum amount of fees.
As we all know, cloud computing model is still relatively new, different manufacturers of this definition, working model and service are still evolving. Therefore, before choosing any one vendor, you need to fully analyze each other to provide services, quality of service, security model and payment model.
Overall, cloud computing models may already be ready for certain types of enterprise applications, but certainly not for critical and transaction-intensive applications. Applications are ideal for cloud computing if they are expected to experience some peak usage or if they require volatile storage capacity. In addition, while it is not easy for traditional applications to migrate to a cloud computing environment without major rework, new applications will certainly take full advantage of cloud-based services to meet certain requirements.