We read a lot of articles about Cloud computing in IT magazines and blogs. It reminds me the SOA phenomenon four years ago. Until now I don’t see a big impact of this technology in enterprise information systems. But, it seems attracting the interest of information systems managers.
Photo credit: photocillin
Today I’m curious to know what will be the real impact of cloud computing in enterprises information systems and in applications development?
What is Cloud Computing?
Wikipedia defines cloud computing as an Internet-based computing, whereby shared resources, software, and information are provided to computers and other devices on demand, like the electricity grid.
Cloud computing is delivered as a service accessible through the Internet. These services are broadly divided into three categories.
–Infrastructure as a service (IaaS) is a provision model in which an organization outsources the equipment used to support operations, including storage, hardware, servers and networking components. 
–Platform as a service (PaaS) is a way to rent hardware, operating systems, storage and network capacity over the Internet. The service delivery model allows the customer to rent virtualized servers and associated services for running existing applications or developing and testing new ones.
–Software as a service (SaaS) is a software distribution model in which applications are hosted by a vendor or service provider and made available to customers over a network, typically the Internet. 
The table bellow present the services provided by each type of cloud service.
Cloud computing comes in three forms: public clouds, private clouds, and hybrids clouds.
–Private cloud is one in which the services and infrastructure are maintained on a private network. These clouds offer the greatest level of security and control, but they require the company to still purchase and maintain all the software and infrastructure, which reduces the cost savings. 
–Public cloud A public cloud is one in which the services and infrastructure are provided off-site over the Internet. These clouds offer the greatest level of efficiency in shared resources; however, they are also more vulnerable than private clouds.
–Hybrid cloud is a cloud computing environment in which an organization provides and manages some resources in-house and has others provided externally. Ideally, the hybrid approach allows a business to take advantage of the scalability and cost-effectiveness that a public cloud computing environment offers without exposing mission-critical applications and data to third-party vulnerabilities. 
Cloud Computing impact in enterprise application development
Developing application for the cloud needs some new skills from developers. Because Cloud developing has some specific constraints that they need to deal with:
- Using new kind of databases non-relational ones (Cassandra, MongoDB …), map-reduce frameworks.
- Building for the cloud requires designing stateless applications.
- There’s no concept of a local disk and there’s no registry.
- Different parts of an application might be in many places in the cloud.
All of these issues means that building for the cloud requires new thinking about the system architecture and an emphasis on leveraging massive scale. 
I think that cloud computing will change the way we purchase, use and develop applications. Users have a good experience with some web applications like Mail, CMS, CRM (salesforce)… Some of the larger IT firms (like Google, Amazon, Microsoft, VMware, IBM …) are investing in this technology. I think software and ERP editors are more attracted by migrating their products to the cloud. They give access to their product on a SaaS model. But specific functional application development will resist more to change.