What’s Infrastructure as a Service?
Most companies at present have some facet of operational IT in one in every of two primary cloud operations. Both they’re utilizing a cloud-based service to ship software program instruments to customers (corresponding to Microsoft Workplace 365 or the Salesforce Sales Cloud) or they’re running their own software tools, storing data, or developing software on virtual infrastructure hosted in a public cloud. They’re essentially moving the contents of their in-house data centers into a virtualized environment managed by the cloud provider, using pooled physical resources and accessible via secure Internet connections. That kind of architecture is what defines Infrastructure as a Service (IaaS).
We’ve done many reviews of the first kind of cloud operator—also called cloud service providers or Software-as-a-Service (SaaS) providers—mainly because the model has become so successful and cost-effective; it’s rapidly evolving into the preferred deployment method for most business software. But the second kind of operator is as equally compelling to IT professionals, especially those working for small to midsize businesses (SMBs). Dubbed “cloud infrastructure providers, these services provide undeniable benefits over local server, storage, and network infrastructure for businesses of any size.
Bottom line: The cloud is cheaper than a traditional data center, and it gives developers, operators, and users greater flexibility over how they work and connect to corporate resources. But it’s not just that clouds are cheaper. CFOs know that, with the cloud, instead of buying gear and ringing up capital expenses (CAPEX), they can spend infrastructure dollars as operational expenses (OPEX) instead. This gives them greater flexibility and more purchasing power as OPEX tends to be much easier to manage than CAPEX.
From an IT professional’s perspective, operating a data center in the cloud has important benefits as well. For one, all of the hardware management tasks are performed by the cloud provider. Your servers, switches, and storage arrays are all just virtualized versions of themselves running on pooled hardware managed by a third party. If a particular server in Amazon’s data center tips over, for example, it’s the cloud service provider’s responsibility to seamlessly move your workloads to other hardware—without downtime on your end. That’s the goal and, while they’re not perfect at it, they’re pretty good as our reviews in this roundup will show.
IT pros operating cloud infrastructure therefore have a simpler time managing resources since they’re not constrained by a potentially faulty hardware layer. Resources don’t just operate more reliably that way, they’re also easier to spin up (often involving just a series of clicks to create a brand-new server as opposed to ordering, paying, waiting for delivery, unboxing, installing operating systems and software, etc., at the physical layer) and spin down (unneeded servers are simply turned off or deleted as software records instead of big, hulking dark boxes cluttering up your server racks).
That second one, the spinning down, is also the key reason that IaaS-based data centers are cheaper than their physical counterparts: You only pay for what you’re using at any given time. If your company needs to up its in-house server and network capacity to, say, service a seasonal online sales rush, that means purchasing new servers and networking hardware and absorbing that cost in full—only to wind up with “dark” hardware once the season is over. In the cloud, it’s as simple as spinning up some new virtual machines (VMs) with your mouse, paying their per-minute costs for as long as you use them, and then deactivating them once they’re not needed. That’s a very compelling model for an IT pro used to facing a frowning chief financial officer (CFO) twice a year at budget time.
In particular, that’s true of the public cloud. And, technically, the easiest way by far to start deploying cloud services to your company is with a public cloud. While there are several dozen public clouds, I examined the six biggest public clouds available to customers in the United States.
“OK,” a few old sysadmins reading this are thinking right now. “It’s just a bunch of servers hosted off-site. There’s nothing new here!” Excuse me as I bang my head against the wall. This is so, so wrong. Let’s go over the basics of what a cloud really is.
Open with me, the National Institute of Standards and Technology’s (NIST) Definition of Cloud Computing and read aloud with me from page two. The essential characteristics of a cloud are:
“On-demand self-service. A consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically, without requiring human interaction with each service provider.” Can your users do this with your in-house servers? I don’t think so!
“Broad network access. Capabilities are available over the network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g., mobile phones, tablets, laptops, and workstations).” Sure, if you’ve designed your apps well, this can be done by using the good old client-server model we’ve used for decades. But they’ll be more flexible and reliable still with a cloud backing them up.
“Resource pooling. The provider’s computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand. There is a sense of location independence in that the customer generally has no control or knowledge over the exact location of the provided resources, but may be able to specify location at a higher level of abstraction (e.g., country, state, or data center). Examples of resources include storage, processing, memory, and network bandwidth.” This one depends on how you’ve designed your data center. Generally speaking, the more capable your infrastructure is towards meeting these requirements, the closer it is to the cloud computing paradigm. The key word here is “dynamic.” In a data center, you’re doing everything by hand or by purpose-built scripts. It’s a more static approach that doesn’t serve developers, operators, or users nearly as well as the much more nimble cloud approach.
“Rapid elasticity. Capabilities can be elastically provisioned and released, in some cases automatically, to scale rapidly outward and inward commensurate with demand. To the consumer, the capabilities available for provisioning often appear to be unlimited and can be appropriated in any quantity at any time.” This one is cloud-only. Old-fashioned, on-site data center infrastructure simply can’t do this.
“Measured service. Cloud systems automatically control and optimize resource use by leveraging a metering capability at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency for both the provider and consumer of the utilized service.” Yes, you can certainly automate in-house system resources to meet demand or to limit a greedy user to just so much bandwidth. Where this moves from data center to cloud is that the pooled resources appear to be a seamless whole rather than individual services.
Moving along, let’s go over the basics of what kinds of clouds are available to you.
IaaS Cloud Types
We mentioned two basic types of cloud operations earlier but, from an IaaS perspective, there are three basic ways those kinds of clouds are presented to users. These are public, private, and hybrid. If a cloud service is run by a third-party and can be used by anyone, it’s a public cloud. Public clouds are the easiest way to start using a cloud. You can literally spin up server instances for free or with a credit card in a matter of minutes.
Indeed, you’ve already been using public cloud services. For example, if you’ve ever run a Google search, you were using a Let Me Contain That For You (lmctfy) container running on the Google Cloud Platform.
In a private cloud, you’re simply providing cloud-style services from your existing data center. You can do this by using the same cloud programs as the big companies (such as Microsoft Azure, OpenStack, or VMware vCloud. You can also scale clouds down to a size you can run out of your server closet by using programs such as ownCloud. Any way you do it, if you own and control the hardware and software, and it provides the capabilities I listed earlier by the NIST, then it’s a private cloud.
The majority of businesses, however, simply can’t adhere strictly to either the public or private cloud model for all of their infrastructure and workload needs. There are many reasons for this, including custom software that needs an on-premises footprint or legal regulations that restrict where customer data can be stored. This is where a hybrid cloud shines and why it’s become the most popular cloud deployment option by far. Hybrid clouds allow you to simply extend your on-premises infrastructure into a managed, public cloud. Whatever works for you out there is moved, while whatever needs to stay is left on-site. To your IT managers, it all looks—and gets managed—as a single cohesive whole; you’re simply taking as much advantage of cloud benefits as possible for your particular organization.
Performance Is More Than Technical
The six clouds we examine in our reviews for this roundup are all public clouds. Most will let you easily extend themselves into hybrid cloud deployments. All of them offer IaaS resources and most also offer additional services, either in a SaaS model or as Platform-as-a-Service (PaaS) solutions.
The hardware these vendors use to construct their clouds—upon which you’ll build your virtual infrastructure—is all built on Intel Xeon processors. Exactly which CPU depends upon your pricing tier. As you would guess, the more you pay, the faster the processors. Almost all of the vendors and pricing tiers use a combination of solid state drives (SSD) for primary storage with standard hard disk drives (HDD) for secondary and archival storage.
But while the underlying hardware is important, don’t think for a minute you can decide which cloud is best just based upon CPU speed. Clouds are not simply clusters of servers; their performance is determined by a wide variety of factors. Many of these elements are outside your control. For example, elements can include the time of day, how burdened the provider’s regional cloud data center is at any given moment, and network performance—both within the cloud and between your offices and the cloud. As you can see in the benchmarks cited in these reviews, you can expect to find a range of performance capabilities rather than one set of absolute numbers.
Your performance will also depend upon your software stack. If, for example, you’re buildings apps for a SaaS or PaaS from Java, Go, Spring, or Python, you’ll do well with Google App Engine. If, on the other hand, you prefer to use Microsoft .NET, Microsoft Azure is what you should use.
A related issue is what application programming interface (API) a service offers and how it exposes them to your developers. If an API is open and supported by multiple vendors, it will be much easier to port your cloud services from one provider to another. For example, HPE Helion and Rackspace Managed Cloud both use OpenStack so it should be much easier to move services from one of them to the other rather than, say, to the Google Cloud Platform.
However, when it comes to fully understanding a particular cloud vendor’s performance versus another’s, business considerations are just as important as technical capabilities. Service-level agreements (SLAs) are the basis for any account with a cloud provider. By themselves they’re not good indications of how well a service runs but they do give you an idea of the consequences to the cloud provider if they fail to deliver their services. I say “an idea” because the default SLAs are written to protect the providers, not the customers.
If you’re a small business dealing with a cloud giant, you’ll almost certainly be stuck with the default SLA. The bad news here is that most SLAs only cover general availability. If your particular servers or the single zone in which they live goes down, it may very well not be considered an SLA violation. That’s why it’s critical to have your company attorney work closely with your IT execs to examine SLA details before deciding on a vendor.
Last but never least, there’s cost considerations. You might think that this would be simple but it’s not. There is no consistency—none—with how cloud companies describe their resources. Sure, everyone provides you with VMs but not all VMs are remotely alike. Besides, you’re not paying simply for VMs; you’re paying for a particular cloud vendor’s interpretation of VMs. In Amazon Web Services’s case, for example, that means “EC2 Compute Units.”
In addition, the cloud vendors offer a bewildering variety of options and licensing arrangements. If you’re sticking to a pure Linux, Apache, MySQL, PERL/Python/PHP (LAMP) stack, you won’t need to worry about the latter issue. But if you’re using licensed programs such as Microsoft Windows Server, Microsoft Exchange, or Oracle, pricing quickly becomes very complex.
The only way to know what kind of price and performance you’ll get from a cloud provider is to run your services and applications on their platform and test it out. When you do this, be certain to run them at various times of the day and on different days of the week. An application that will run like a top on a Saturday afternoon may topple over from a lack of resources during a busy workweek. Finally, you must ask the hard questions about contracts, licensing, and SLAs. If you don’t, all the cost savings you hoped you’d get from moving to the cloud can be quickly eaten up by unexpected costs.
All of this may sound like I’m warning you to stay away from IaaS clouds but I’m not. IaaS is too compelling to ignore, from both a business and IT manager perspective. But, while their benefits are great and often obvious, properly implementing them still isn’t nearly as easy as most of these vendors will want you to think. So take advantage of cloud infrastructure for sure. But do it the same way you’d implement any other data center technology, namely, with careful analysis, thorough testing, and multi-staged rollouts.