“There was a time when every household, town, or village had its own water well. Today, shared public utilities give us access to clean water by simply turning on the tap. Cloud computing works a lot like our shared public utilities. However, instead of water coming from a tap, users access computing power from a pool of shared resources. Just like the tap in your kitchen, cloud computing services can be turned on or off as needed, and, when the tap isn’t on, not only can the water be used by someone else, but you aren’t paying for resources that you don’t use. Cloud computing is a new model for delivering computing resources – such as networks, servers, storage, or software applications”.
- Testimony on Cloud Computing by Vivek Kundra, former CIO, U.S. government
Cloud computing is the next stage of evolution of computer technology after mainframe, client-server and internet era. It enables customers to share computing resources, similar to utilities, providing economies of scale. Enterprises like to focus on their core competencies whether they be in finance, manufacturing or retail. But they do need technology capabilities to effectively and efficiently deliver services. Cloud computing provides enterprises with newer choices to consume and deliver digital services, significantly reducing IT infrastructure complexities.
Cloud computing or simply called as ‘Cloud’, is delivered through three main service models: Infrastructure as a Service (IaaS), Platform as a Service (PaaS) and Software as Service (SaaS).
Infrastructure as a Service (IaaS)
“The capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, deployed applications, and possibly limited control of select networking components (e.g., host firewalls).
IaaS vendors are responsible for physical infrastructure including building, servers, network, storage etc and make it available as virtualized services. As needed, IaaS customers can procure the virtual computing hardware, typically through a web-based interface or application programming interface. This significantly reduces the procurement life cycles from months to minutes. Leading IaaS vendors include Amazon Web Services, Verizon Cloud and Rackspace. OpenStack is an Open Source Cloud Computing platform that provides customers the ability to avoid vendor lock-in and build their own private cloud.
Platform as a Service (PaaS)
The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or -acquired applications created using programming languages and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage, but has control over the deployed applications and possibly application hosting environment configurations
PaaS vendors are responsible for the application platform, development tools and IT infrastructure. PaaS customers use PaaS providers’ tools to create and deploy applications. PaaS providers’ control how much computing power a customer can use including memory, threads, CPU etc. Leading PaaS vendors include Salesforce1, Amazon Web Services, Google App Engine , Microsoft Azure and IBM Cloud.
Software as a Service (SaaS)
The capability provided to the consumer is to use the provider’s applications running on a cloud infrastructure. The applications are accessible from various client devices through a thin client interface such as a Web browser (e.g., Web-based email), or a program interface. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.
SaaS vendors are responsible for the delivery of the software application as a service including business functionality, development stack and infrastructure. Customers are responsible to configure the cloud application as per their business needs for implementation. Enterprises have been deploying packaged applications such as CRM, ERP and financial applications. But delivery of software as service through cloud platform has significantly reduced the implementation lead time and costs due to economies of scale. Leading SaaS vendors include Salesforce, LinkedIn, Workday and NetSuite.
The Cloud Services are available through following deployment models: Public Cloud, Private Cloud, Community Cloud and Hybrid Cloud.
Public cloud is a multi-tenant environment where customers pay and use shared resources. Customers have seemingly endless pool of resources available that can be procured through web user interface or application programming interface. The customers only pay for the resources they use, allowing to scale resources up or down to meet fluctuating demand. Customers leverage cloud provider’s expertise in managing infrastructure, tools or applications. This frees-up customer resources to focus on running their business. Customers do need to rely on vendor to meet security, availability and performance SLAs.
Private cloud is hosted by the customer organization themselves to support their business units. It allows customers to control the type and configuration of hardware procured. The customers have complete control over security aspects of the cloud deployment. They also have greater flexibility in enforcing compliance related requirements around data ownership and privacy. The disadvantages include reduced flexibility in scaling computing resources and no cost sharing option due to single ownership.
Community cloud is a multi-tenant environment that is targeted to a limited set of organizations (such as banks or investment firms). The organizations come together to share computing resources and reap benefits. The organizations typically have similar security, privacy, performance and compliance requirements. The community generally restricts participants from the same industry or with similar needs.
Enterprises typically use hybrid cloud option, which is a combination of above three cloud deployment options viz. public cloud, private cloud and community cloud satisfying the unique needs of each enterprise. A best practice is to use public cloud as much as possible to get all benefits of cloud computing like rapid elasticity and cost sharing but leverage the private cloud where security and privacy needs are too high.
Security: Enterprise customers, in particular those in regulated industry, pay very close attention to cloud services security to ensure that their data is safe. IaaS cloud vendors need to provide security for their physical infrastructure as well as network security etc. PaaS cloud vendors ensure that the operation systems, application servers and databases etc. are secured e.g. Ensure that the application stack is up to date with the latest stable patch level. SaaS cloud vendors need to secure the application by providing user authentication and authorization services. Vendors periodically perform application vulnerability threat assessments and can share findings with customers as needed.
Privacy: Data privacy is a vital area of concern for customers when moving to cloud. In case of public cloud deployments, customers are sharing data with other customers. Cloud vendors need to demonstrate that customer’s data privacy will not be compromised. Customers in regulated industry would want to ensure that the cloud vendor is compliant with industry specific regulations.
Service Level Agreement: Cloud customers give up control and rely on the cloud vendors to ensure various service level agreements (SLAs) are met. Cloud vendors need to demonstrate that their service will meet Service Availability SLAs, Service Performance SLAs and Disaster Recovery SLAs. Vendors need to employ robust monitoring solutions to detect and prevent incidents that may affect their ability to meet customer SLAs. Customer confidence will increase significantly when vendors have a proven track records of consistently meeting these SLAs.
Application Design: SaaS vendors should design their applications based on RESTful services. Cloud application maintainability is significantly increased due to RESTful services by decoupling various layers and system. RESTful services enable cloud vendors to allow customers to consume services through multiple interfaces including web interface, mobile interface or programmatically. RESTful services enable cloud vendors to easily scale the cloud service up or down to meet fluctuating demands. Cloud customers are able to consume the services through a simplified interface and do not need to know details of underlying implementation.
Usage Billing: Cloud customers do not need to make large upfront capital expenditure to procure cloud services. Pay-as-you-go model allows customers to only pay for the services used, allowing them to invest the capital in other areas. Cloud vendors’ product, sales and finance team need to work closely to come up with an optimal pricing structure that satisfies the needs of predicting revenue and costs.
Cloud vendors provide an illusion of infinite computing resources available on demand. Cloud customers no longer need to spend extensive time on ‘accurate’ forecasting of the future resource needs. Customers can start small and scale up computing resources as and when the need arise. Customers are able to redeploy investments from capital expenditure to full fill other business needs. This is a boon for start-up companies who can make small investments and quickly validate their business idea before committing significant resources.
As customers share the computing resources with other tenants, the cloud vendors are able to pass on the cost efficiencies to the customers. As vendors are typically experts in providing the services, they are likely to be more efficient and effective in delivering the services than the customers themselves.
Time to Market
Customers are able to realize business value of their ideas sooner because of the time saved by consuming existing cloud services rather than developing it themselves. Customers do need to integrate the cloud services with other services that they are offering. Still if done correctly, the time spent on integration is significantly less than the time that would be needed to building services themselves.
Cloud services can be accessed from any location through web and typically through multiple interfaces. This enables customers to allow their employees to work from anywhere.
Not all application or services are suited to be moved to cloud. Cloud computing strategy will succeed for highly-standardized commodity services. Enterprise applications that require extensive integration with other internal systems may not be good candidates to move to cloud.
Moving to cloud computing promises reduced cost and increased time to market to deliver new services. But organizations underestimate the cost and time required to integrate cloud services with other internal systems. Generally, organizations need to feed data from internal source systems to the cloud that takes time. Organizations need to plan adequate time to cleanse the internal source system data so that it will be suitable for consumption by cloud application.
As with any change, embracing cloud computing is a significant change for the organization employees. Employee resistance or slower cloud service adoption significantly delays business value realization. Before moving to cloud, organizations should perform required due diligence to assess organization readiness and put change management plan in place. Industry change management models such as ADKAR are very useful to lead successful change.
[Images: Mobile World, US Cloud, Tide SDK, Heroic, Custom Icon Design, Icons DB]