Cloud Basics


What is Cloud

Cloud 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
Application Programming Interface (API): Allow machines to interact with the Cloud – facilitating automation and simplification of infrastructure and platform related services
  • Zero Maintenance: Monitoring, maintenance and upgrades are handled by the Cloud service provider and cost is included in the overall service pricing

Cloud Computing Models

Infrastructure-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
Infrastructure-as-a-Service (IaaS)
  • IaaS provides pre-configured computing resources and storage in the cloud.
  • Provider owns, operates and manages all infrastructure (hardware, storage, operating system, network, etc.) related to the computing resources and storage.
  • Users use the resources to deploy, run and manage their own applications (or 3rd party applications they own) and generally pay for what they use.
  • Generally IaaS offerings from different service providers are interchangeable thus making it easier for users to compare features and pricing and switch from one IaaS platform to another.
  • IaaS is available as public, private and hybrid cloud models.
 

Simple website

  • Linux server and storage provided by the cloud vendor
  • Apache, MySQL and PHP code for the site deployed1 and managed by the user
Reporting Dashboard
  • Windows server and storage provided by the cloud vendor
  • MS SQL server, SQL Server Reporting Services, SharePoint and related code deployed1 and managed by the user

Amazon Web Services

IBM

Savvis

Rackspace

GoGrid

Tier3

Hosting.com

HP

Plaform-as-a-Service (PaaS)
  • PaaS provides an application stack/framework, including the underlying computing resources and storage, in the cloud that users can use to develop, deploy and manage applications.
  • PaaS generally offers an application framework that abstracts and manages the underlying computing resources, storage, hardware, network, etc. and allows user to focus on the business application functionality.
  • PaaS offerings are generally targeted to custom software development or ISV needs and not for deploying and running 3rd party applications.
  • Generally PaaS offerings from different service providers are not comparable and PaaS requires designing and developing applications against a specific set of PaaS APIs, making it difficult to switch from one PaaS platform to another.

Credit Card & ACH Processing using Force/Salesforce.com

  • Salesforce.com has a PaaS offering called Force.com. Using Force.com a developer can create a credit card and ACH processing application/module that can run within Salesforce CRM and leverage Force/Salesforce.com APIs, Administration, Security, Reporting, etc. capabilities.

Google App Engine

  • Google has a PaaS offering called Google App Engine. It lets developers develop, deploy and run their applications on Google's infrastructure. Using Google App Engine a developer can create an email marketing tool (for example MailChimp) which can use the App Engine for dynamic web serving, persistent storage , automatic scaling, load balancing, authentication and sending emails. The application can also be easily integrated with/accessed from other applications built on the App Engine

Salesforce Force.com

Google App Engine

Microsoft Azure

Heroku

VMWare Cloud Foundry

Bungee Labs

Electric Cloud

Rollbase

Software-as-a-Service (SaaS) 2
  • SaaS provides a complete business application (accounting, CRM, collaboration, ERP, etc ) as a service in the cloud.
  • Provider is responsible for infrastructure as well as application tier and all management around them.
  • Users pay service/subscription fee which is generally based on per-user or usage of the application.
  • Most of the SaaS providers are Independent Software Vendors (ISVs) that offer subscription-based access to their software-service.
 

Salesforce.com CRM

  • Salesforce.com is a good example of CRM offered as a SaaS. Companies interested in using the CRM can do so by signing up on a subscription basis and pay per-user
NetSuite
  • Netsuite is another good example of ERP, CRM and E-commerce offered as a SaaS.

Salesforce.com

Microsoft Dynamics CRM

Microsoft Office 365

NetSuite

RightNow (Oracle)

WorkDay

SpringCM

Box.net

GoogleDocs

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 Elasticity

One 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:

3: http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-28.pdf

Better Management

Another 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 Access

Another 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 Business

Cloud 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 – Challenges

While 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
Categories: Cloud

SEARCH ARTICLES