Playing with the building blocks of the cloud: Getting IaaS right

Infrastructure as a Service is the fundamental basis of all cloud services. Here we look at how to get started with IaaS, what skills you'll need in-house and which applications will (and won't) thrive in the cloud.

You could be forgiven for believing that cloud computing floats on nothing (apart, perhaps, from the hot air emited by overexcited vendors), but it actually has a very solid base, otherwise known as infrastructure as a Service (IaaS).

IaaS comprises the most fundamental building blocks of any cloud service; the processing, storage and network infrastructure upon which all cloud applications are built.

Understanding IaaS

Moving to IaaS: An overview

Should your business retain its in-house data centre or outsource it to a service provider? What are the drivers and barriers when it comes to cloud infrastructure? What kinds of workloads are best suited to cloud deployment, and who are the leading cloud platform providers? We look at recent recent research on these important IT architecture questions.

In a typical IaaS scenario, the service provider delivers the server, storage and networking hardware and its virtualisation and then it's up the customer to implement the operating systems, middleware and applications they require.

Because IaaS provides access to a large pool of standardised computing power on an on-demand, self-provisioned basis, developers are able to access more processing power or more storage for their applications within minutes, rather than having to wait weeks for new servers or discs to arrive. This should mean faster development and applications that aren't constrained by a lack of computing resources.

And because IaaS is at heart a rental model, developers only pay for what they use, which means it can be more cost-effective than owning the infrastructure for an application that has very variable loads — one that gets very busy at one time of month or year, for example.

Building such an application in the traditional model would require owning all the infrastructure needed for the peak load, even if that infrastructure remained unused for the vast majority of time.

IaaS can been delivered either as a private cloud (where this infrastructure is kept in a company's own data centre) or in a public cloud (where a variety of organisations will share and reuse the same infrastructure), or in some combination of the two (increasingly common for large enterprises). But wherever it's hosted the main benefits of IaaS should remain the same: flexibility and scalability.

IaaS is the base of the cloud computing pyramid which also includes Platform as a Service (PaaS) and Software as a Service (SaaS) — the latter including line of business applications such as customer relationship management (CRM) or enterprise resource planning (ERP).

Analysts measure the cloud market in different ways, but what's clear is that IaaS remains a large and growing element. According to analyst firm 451 Research, IaaS generated just over half of public cloud revenue last year, with PaaS and SaaS infrastructure (which the analyst defines as cloud IT management and backup/recovery) each accounting for roughly a quarter of revenue.

The analyst puts a conservative value of about $5.7bn on the cloud market, with an estimated compound annual growth rate (CAGR) of around 36 percent. That means this market (not including SaaS) is likely to hit $19.5bn in 2016. Indeed, another leading analyst, Gartner, predicts that IaaS could soon be as big as SaaS.

Right now IaaS adoption is mostly focused on non-mission-critical test and development projects, but usage is widening to other applications.

"In a test and development you have this need for elasticity: one day you are testing four things the next day you are testing one, and you aren't testing things constantly, so you have variable demand. It makes sense only to allocate servers to that when you need it; when you're finished you just give it back to the provider and that means you stop paying for it," Gartner research director Gregor Petri told ZDNet.

The skills you need for IaaS

Just because IaaS is seen as the foundation of cloud, that doesn't mean it's lacking in flexibility; rather, because it allows developers to tweak the fundamentals of how applications handle storage and processing power, middleware and virtual machines, it requires a particularly complicated set of skills.

"It's a fairly technical platform — it's like running a server, so if you as a company over time have outsourced the management and configuration of your servers and don't have those skills in-house, there's a hurdle to moving to the cloud," Petri said.

In addition, as analyst Forrester points out, developer concerns that using PaaS may limit their flexibility, plus a perceived fear of lock-in due to the middleware and the difficulty in migrating on-premise code to the platform, all make IaaS more attractive.

"The programmer can say 'whenever my usage goes over 70 percent of this processor, then add another machine'. Many old applications were never designed like that, so they have more problems moving into the cloud."

— Gregor Petri, Gartner research analyst

Organisations looking at moving projects into the cloud need to take a long hard look at their skills base: if the dev team's strength is in scripting, web page design and form creation, an SaaS platform would provide the right abstraction. But for coders with skills around Java, C# or other languages, PaaS offerings let you build more complex applications, Forrester said, although a combination of the two is almost inevitable.

"Those who prefer PaaS often desire the freedom to drop down to the infrastructure layer when they feel the need for stronger configuration control," Forrester analyst James Staten said in a blogpost.

Different levels of access to IaaS will be more useful to different kinds of developers: rapid application developers, for example, rarely desire to write complex code, configure virtual infrastructure or manage middleware. Other coders may concentrate on building applications, but may occasionally dip into the infrastructure layer, while DevOps programmers are likely to want more control over the configuration of the platform, the application server, database and virtual infrastructure.

This is also fueling the rise of 'dev ops', where app development and operations start to merge.

"What we see is people combining that, so the developers also write some routines that manage the operation of the system," Petri said. "The developer not only says 'this is the functionality', they also programme in the management and the operations and the monitoring, so that the application starts to manage itself on the cloud. The programmer can say 'whenever my usage goes over 70 percent of this processor, then add another machine'. Many old applications were never designed like that, so they have more problems moving into the cloud."

Which workloads can be moved to the cloud?

And as organisations become more comfortable with IaaS, their usage of it will develop further, which is why most market-watchers are predicting growth in the IaaS spending. One typical workload...

(continues on next page)

(continued)

...they are moving to the cloud is simulations or high-performance computing — enormous batch jobs where organisations need to do smart analysis on giant datasets.

"Those are typically jobs where you might need 10,000 processsors, but you only need them for half a day or a couple of hours. With cloud you only pay for the time you need them — you don't have to invest in hardware that you would only use a couple of days a month, so that's the ideal scenario", Petri said.

What can't be moved to the cloud?

Organisations are also looking at taking their in-house applications and moving them to the cloud, but here some additional complexities creep in. Most cloud computing providers only offer x86 servers, so if you have Unix or AS400 there are only very few providers that have something that looks like the cloud for those applications. And the organisations need to be sure that they are moving an application that can utilise the benefits (fast provisioning, flexibility and scalability) that are the main selling points of the cloud.

"The cloud is not a default option: you have to look at what makes sense. Flexibilty, agility and elasticity — those are more reasons to move to the cloud than necessarily cost. If I want to run a workload on 10,000 processors for an hour then it's a lot more cost effective to just pay for that hour rather than buying a machine and running it in-house, so you can say its cheaper although that's a very special scenario. But if I need a machine for the next 36 months and it will be used 24 hours a day, you really have to look at the cost and in-house might be cheaper — but how many systems do we have today where you can predict usage that clearly?" Petri said.

One of the most important things to do when considering the use of IaaS is to get your hands dirty. Start with a small, non-essential system or a new project, and try out some cloud providers, analysts suggest.

Companies also need to consider their existing infrastructure: one option is to keep core workloads in the corporate data centre and place 'bursty', variable workloads in the cloud. In contrast, for a startup, without capital and without its own data centre, cloud might make sense as using cloud services will shift spending from capex to opex.

Will every application move to the cloud eventually?

Certain systems — the ERP systems that are the nervous systems of large organisations, for example, might at first glance seem impossible to move onto the cloud. But even here there is potential to rethink the existing infrastructure. For example, these apparently monolithic applications tend to have a variety of secondary systems — a test system, an acceptance system, a fallback system and a disaster recovery system, for example — that aren't all used at the same time. There's an opportunity in moving some these to the cloud.

Also, from the service provider viewpoint these are complex configurations, and so providing a offering here could deliver a good margin (especially if they can offer the same service to a number of customers). The workloads that may well be left in the corporate data centre could be those niche applications that no vendor particularly wants to support in the cloud, or ones that do not benefit from the flexibility or scalabilty inherent in IaaS.

Getting started with IaaS

One of the most important things to do when considering the use of IaaS is to get your hands dirty. Start with a small, non-essential system or a new project, and try out some cloud providers, analysts suggest.

"What you don't want to do is a large evaluation of many, many cloud providers and then try to find the ideal one without ever having used the cloud. That's what you would have done in the past with ERP systems: those were very complex and hard to comprehend, so you did a paper evaluation using criteria," Petri said.

Test each of the main cloud providers — Amazon Web Services, Microsoft's Azure and perhaps a local provider, and see which option fits best. Because of the pay-as-you-go nature of IaaS it's easy to test out a few options by spending just a few pounds or dollars.

Once your developers have some hands-on experience, you can start the deeper due diligence around certification, the additional services needed, details of service level agreements or the average length of the provider's customer relationships.

"That's what we sometimes see missing with customers: they start a very theoretical evaluation, but hardly have any hands-on experience, and that makes it very hard to make a good decision," Petri said.