These days, everyone in business and technology is talking about "the cloud". Cloud computing is a rapidly changing topic that encompasses many different variations.
Cloud computing in the broadest sense is the shift from traditional software models to the Internet. But a more specific definition can vary depending on which vendor, consultant, or analyst you are talking to. Some define cloud computing as narrowly as virtual servers available over the Internet. Others argue that anything you consume outside your company's firewall is "in the cloud".
Generally, cloud computing models can be categorized as Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). A reference article from Dummies.com describes these categories as follows:
- Infrastructure as a Service (IaaS): The IaaS layer offers storage and compute resources that developers and IT organizations can use to deliver business solutions.
- Platform as a Service (PaaS): The PaaS layer offers black-box services with which developers can build applications on top of the compute infrastructure. This might include developer tools that are offered as a service to build services, or data access and database services, or billing services.
- Software as a Service (SaaS): In the SaaS layer, the service provider hosts the software so you don’t need to install it, manage it, or buy hardware for it. All you have to do is connect and use it. SaaS examples include customer relationship management as a service.
This article by Eric Knorr for InfoWorld breaks down cloud computing into several common components:
- SaaS: A single application is delivered through the browser to thousands of customers using a "multitenant" architecture. Familiar examples include Google Apps and Salesforce.com.
- Utility computing: Storage and virtual servers that IT can access on demand.
- Web services in the cloud: Closely related to SaaS, Web service providers offer APIs that enable developers to exploit functionality over the Internet, rather than delivering full-blown applications.
- Platform as a service: Another SaaS variation, this form of cloud computing delivers development environments as a service. You build your own applications that run on the provider's infrastructure and are delivered to your users via the Internet from the provider's servers.
- MSP (managed service providers): A managed service is basically an application exposed to IT rather than to end-users, such as a virus scanning service for e-mail or an application monitoring service.
- Service commerce platforms: A hybrid of SaaS and MSP, this cloud computing service offers a service hub that users interact with.
- Internet integration: The integration of cloud-based services is still in its early days. These offerings connect SaaS providers and provide integrated solutions to customers.
You will often hear the terms "single-tenant" and "multi-tenant" when cloud computing is discussed. As you can probably guess, single-tenant systems store the data for one company only; multi-tenant systems store the data for multiple businesses on one server. This white paper from Sapien analyzes the the differences between single-tenancy and multi-tenancy in three areas:
- Technology: Multi-tenant systems place the data from multiple companies on the same server, generally separating them from each other via a simple partition that prevents the data from migrating from one company to another. All companies are running the same basic application, with the same basic functionality and with the same limited configuration capabilities. Single-tenant systems give a user its own database and its own instance of the software application. Users of single-tenant systems enjoy the benefits of significant configurability of software, robust functionality, and enhanced security.
- Functionality: Software functionality is significantly greater for single-tenant systems than for multi-tenant systems. In the multi-tenant option, modifications to the software are limited because multiple customers are running the same instance of the software and because their data is being housed in a pre-configured database format. However, multi-tenant SaaS providers generally do a very good job of anticipating customer needs and the standardized functionality is often all that is needed. By comparison, single-tenant systems use the provider's software as the base of the final application, and perform extra configuration to meet the specific needs of the user.
- Security: A single-tenant system will have a higher degree of inherent security than a multi-tenant system, as the potential for data migration from one company to another is eliminated. However, multi-tenant systems are still secure, and the level of security offered by these systems may be adequate for a particular company’s needs.
Cloud computing happens on a public cloud, private cloud, or hybrid cloud. Again citing the Dummies.com article:
- Public clouds are virtualized data centers outside of your company’s firewall. Generally, a service provider makes resources available to companies, on demand, over the public Internet.
- Private clouds are virtualized cloud data centers inside your company’s firewall. It may also be a private space dedicated to your company within a cloud provider’s data center.
- Hybrid clouds combine aspects of both public and private clouds.
What type of cloud computing makes the most sense? Tim Reynolds, owner of enterprise-wide distribution management software company Tribute, Inc., believes a single-tenant solution is preferable. Software customization and versioning are usually important for ERP customers, along with easy data access and third party integration. However, a hybrid solution may also be possible, where the application is multi-tenant but the database is single-tenant (a completely separate database for each company). Such a solution would offer flexibility and data access with some economies of scale for cost savings. However, customization may be difficult with a hybrid solution.
Before you take the leap to the cloud, be sure to consider:
- Performance: Not just your data center, but also your network, PCs, ISP and bandwidth.
- Security: Can you access the application from any device? What security measures are in place? Data center attacks are rare, but not unheard of.
- Customization: Can you use the cloud application "out of the box", or do you need customizations?
- Integration(s): How easy is it to integrate with third-party prividers?
- Privacy: Who owns and controls your data? Who can access your data and metadata?
- Reliability: How reliable is the technology? What kind of disaster recovery plan is in place?