What is CloudCloud computing is the delivery of application, storage and computing infrastructure as a service rather than a product. Cloud computing allows applications and data to reside, run and be managed on a shared virtual network and be offered as a service to multiple users/tenants. Key characteristics of Cloud computing includes:
- Empowerment/Self-service: Ability to pick which services you need, when you need them and ability to control the
(re-)provisioning of these services
- Broad Access: Ability to access from anywhere on the Internet and from any device
- Shared Resources: Centralized pooled resources (economies of scale), ability to support multiple-clients/instances (multi-tenancy)
- Availability, Scalability & Elasticity: Redundant resources suitable for business continuity and disaster recovery; auto-scaling (no need to design for peak loads) and real-time upward/downward scaling of resources
- Cost elasticity: Utility pricing model – pay as you use; capital expense is converted into operational expense
- Zero Maintenance: Monitoring, maintenance and upgrades are handled by the Cloud service provider and cost is included in the overall service pricing
Cloud Computing ModelsInfrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) and Software-as-a-Service (SaaS) are three most popular cloud computing models currently available in the market.
|Model||Sample Use Cases||Sample Providers|
Amazon Web Services
Credit Card & ACH Processing using Force/Salesforce.com
Google App Engine
Google App Engine
VMWare Cloud Foundry
|Software-as-a-Service (SaaS) 2
Microsoft Dynamics CRM
Microsoft Office 365
1: Some cloud provides also provide commonly used products and packages (like Apache, MySQL, MS IIS, MS SQL, etc.) as part of the computing resource bundle. In the IaaS model, the user is still responsible for managing those products and packages. User is also responsible for providing and managing any licenses and related costs for any software packages it deploys.
2: While this general grouping of cloud computing models is true; the cloud computing marketplace is dynamically expanding and evolving. Vendors like Microsoft and Amazon are offering services as IaaS and PaaS and partnering with other ISVs to also offer SaaS solutions. SaaS provider like Box.net now also offers a platform (PaaS) for developers to build applications using the Box API. Intacct, a SaaS financials application, offers deep integration with Salesforce.com CRM and SpringCM Document/Workflow Management – both SaaS offerings, increasing the overall value/ROI of the SaaS ecosystem and avoiding on-premise/off-premise integration issues.
Why Cloud - Benefits
Asset Utilization and ElasticityOne of the biggest benefits of cloud computing models (particularly IaaS and PaaS) is asset utilization and elasticity:
- Asset utilization: Servers in traditional data centers are generally only utilized between 5% to 20% 3. This is true as most of the data centers are designed for peak capacity and growth. Cloud providers can achieve higher utilization and lower costs due to large infrastructure (economies of scale/lower cost), centralization, virtualization and multi-tenancy with heterogeneous loads (different clients with different peak-times/load requirements). This allows cloud providers to offer similar computing and storage resources at much lower costs than traditional data centers.
- Elasticity: Generally cloud computing allows companies to pay as they go/use the infrastructure and also allows them to incrementally add or remove resources dynamically. This translates into two benefits:
Better ManagementAnother benefit of cloud computing is better monitoring and management:
- Maintenance: Vendors are responsible for managing the tier of service/infrastructure they provide thus freeing companies from worrying about maintenance, upgrades and patches. For IaaS, vendors manage compute and storage level infrastructure; for PaaS, vendors manage framework/platform level and compute and storage level infrastructure; for SaaS, vendors manage all the way to application level infrastructure.
- SLA-based Monitoring: Most of the cloud vendors offer some kind of SLA (service-level-agreement) for their services.
- Reliability: Most of the cloud vendors offer multiple “data centers/cloud hosting facilities” providing more reliability for business continuity and disaster recovery. SLA also addresses reliability related issues and concerns.
- Security: Major cloud vendors have the benefit of scale and size and thus can spend more on securing their infrastructure and getting certified and thus offering more security. However one of the most common concerns with cloud computing is security and loss of control over sensitive data as it’s stored in a multi-tenant environment and is accessible over the Internet.
Wider AccessAnother benefit of cloud computing is wider access to data and applications:
- Broad Access: Cloud-based applications are generally accessed over the Internet and thus can be available across the globe. Certain PaaS and SaaS vendors offer local sites and CDN type caching so applications can be easily accessed across the globe.
- Browser and Device Independence: Cloud-based applications are also generally device independent and can be accessed different browsers and mobile devices
- APIs: Cloud-based applications also provide APIs (Application Programming Interfaces) allowing other 3rd –party applications to access them and interact with them easily
Focus on Core BusinessCloud computing allows businesses to focus on their core business and delegate/outsource IT and other ancillary/support functions/needs to vendors.
- Traditionally a company will need to invest in its infrastructure (hardware, network, power, software, personnel, etc.) and manage its operations. IaaS allows the company to use infrastructure as an utility.
- A company looking to develop a custom application or an ISV looking to offer its application as a service can leverage PaaS to focus on the core functionality the application needs to offer and delegate all platform level needs to the PaaS vendor.
- A company looking to use a business application (for example Customer Relationship Management application) can use a SaaS offering and be up and running within days with users accessing the application globally and not worry about procuring and setting up servers; installing software and hiring personnel for managing the application and global access, uptime, backups, disaster-recovery, etc.
Cloud Adoption – ChallengesWhile cloud computing offers several benefits and has several advantages over traditional hosting and application delivery models; cloud computing does have its own set of challenges and drawbacks:
- Security concerns:Security is one of the most common concerns with cloud computing and it stems from multiple factors:
- Multi-tenancy: An advantage of cloud-computing is virtualization, shared-resources and multi-tenancy but that also means that data from multiple tenants (clients) are stored on a shared environment and computing resources are shared thus offering no “physical” separation among different clients data and applications.
- Loss of control: Since data is stored on central servers owned by the cloud vendor; there is a sense of loss of control over sensitive data that companies prefer to keep “within their boundaries”.
- Device and location independence and Application Programming Interface (APIs): Cloud offers wider access and APIs so other applications can also access the cloud data/applications; but it also opens the door for malicious applications and devices to get access to the data/applications.
- Since countries have different standards around data privacy and security; certain nations have made laws that require SaaS providers to keep sensitive data within national boundary. A country’s court system may direct a cloud vendor to disclose information in its systems even though the data may contain information on users from other nations (for example using the USA Patriot Act).
- Lock-in concerns: There are no general set of standards and APIs for offering cloud-based services; thus creating the risk of cloud-vendor lock-in once a client migrates its applications and data to the cloud vendor or develops application using PaaS APIs of a specific cloud vendor.
- Data-transfer bottlenecks: Since all data transfer takes place over the Internet, transferring in/out large amount of data from the cloud remains a challenge.
- Software licensing: While progress is being made every day; licensing models for commercial software continues to be a challenge for adopting cloud computing.
- Most traditional software licensing models commonly restrict the computers on which the software can run and generally restrict migrating the license from one source to another source or from one company’s servers to another company‘s servers (hosting/cloud provider). Companies that have existing investment in these commercial software must buy new/additional licenses to move their applications to the cloud
- Many software vendors still only offer traditional licensing where customer pays a licensing fee upfront and annual maintenance (anywhere from 15% to 25% of the initial fee). This does not fit with the “pay as you go” utility pricing model of the cloud – forcing cloud vendors to offer more open-source applications or investing capital in purchasing software licenses and passing the cost to the users