Architectural manifesto: An introduction to the possibilities (and risks) of cloud computing

Cloud computing has been a hot topic in the media and in the IT industry. There are critics who say that it's nothing new. In this final edition of Architectural Manifesto, learn about the possibilities and risks of cloud computing.

Mikko Kontio, Partner, Dazid

Mikko Kontio has a background in software development and consulting. Formerly a director with Softera, a software development company focusing on business portals and telecom-billing solutions, Mikko is currently a partner at Dazid.



02 February 2009

Also available in Russian Japanese Spanish

Introduction

Develop skills on this topic

This content is part of a progressive knowledge path for advancing your skills. See Cloud computing: Fundamentals

There has been increasing hype about cloud computing during the last year. Big companies such as IBM®, Microsoft®, and Amazon have announced their strategies for cloud computing. Smaller companies, even start-ups, have offered their services. As always, when something is hyped a lot, it's good to ask why we care about it, and what are the benefits to be gained by customers. This last installment of the Architectural Manifesto explores, at a high level, cloud computing and its possibilities for both vendors and customers.

Often called Software as a Service (SaaS), cloud computing is also sometimes referred to as everything as a service (EaaS). It can include the servers, databases, software, or any combination of them. In Layers we’ll explore the different layers (or services) that cloud computing vendors can offer. We'll also discuss the risks of cloud based services. First, though, an introduction to cloud computing.


Cloud computing

IBM and Amazon Web Services

IBM and AWS are teaming up to provide access to IBM software in a virtual computing environment. The Amazon EC2 experience lets you evaluate and use software without having to install it on your own system. You can adjust capacity almost instantly, building enterprise-ready applications in a reliable, high-performance environment where you pay only for the time and capacity you use. Our software offerings on EC2 include:

  • DB2 Express-C 9.5
  • Informix Dynamic Server Developer Edition 11.5
  • WebSphere Portal Server and Lotus Web Content Management Standard Edition
  • WebSphere sMash

This is product-level code, with all features and options enabled. Get more information and download the Amazon Machine Images for these products on the developerWorks Cloud Computing Resource Center.

For more cloud computing resources, see the Cloud computing space on developerWorks.

In short, cloud computing means that companies, the users of IT services, can buy their IT related services as a service. Instead of buying servers for internal or external services, or buying software licenses, the company can buy them as a service. This is nothing new. Hosting services have been around for quite some time, allowing you to focus more on your business than on the IT infrastructure. Still, cloud computing has something more to offer.

Imagine that a big vendor is selling their goods through a Web portal. They need access to servers and infrastructure to support the biggest peaks in demand (peak hours of day, peak days before holidays), but most of the time they can manage with smaller capacity. They start wondering if they really have to own so much infrastructure which is not fully used most of the time. With a hosting service, the big vendor could buy the needed infrastructure as a service, pay a monthly or yearly fee, and worry less about their infrastructure. They would buy exactly the capacity they need, as they need it at peak times. With cloud computing, they would pay for peak capacity based on usage. The benefits for the customer are quite obvious.

Characteristics

There are several key characteristics of cloud computing:

  • The customer doesn't have to know (and buy) the full capacity they might need at a peak time. Cloud computing makes it possible to scale the resources available to the application. A start-up business doesn't have to worry if the advertising campaign works a bit too well and jams the servers.
  • Customers pay only for what they use. They don’t have to buy servers or capacity for their maximum needs. Often, this is a cost savings.
  • The cloud will automatically (or, in some services, with semi-manual operations) allocate and de-allocate CPU, storage, and network bandwidth on demand. When there are few users on a site, the cloud uses very little capacity to run the site, and vice versa.
  • Because the data centers that run the services are huge, and share resources among a large group of users, the infrastructure costs are lower (electricity, buildings, and so on). Thus, the costs that are passed on to the customer are smaller.

Customers get the services they want, and pay only for their actual usage. If their Web site gets a lot of visitors five days a week, but is almost dead on weekends, they'll pay for the capacity they need (and use) only on the weekdays.


Layers

There are several recognized layers in cloud computing. The vendors in these layers have very different service offerings and operating models. Some vendors concentrate on building and maintaining a huge data center, while others concentrate on building a user friendly and feature-rich application. The layers, from bottom to top, are: infrastructure, storage, platform, application, services, and client.

Infrastructure
At the bottom is the infrastructure of the service, or the platform virtualization. You get the kind of server environment you want. This is the basic offering; customers still need to handle the server, all software installation, and maintenance by themselves.

The cloud computing infrastructure does differ from traditional hosting services because of scalability, and pay-as-you-go pricing. A start-up company might be very interested in getting the scalability, and in not paying for the time they're not using the service. It is convenient, especially if you’re trying to grow the traffic on your Web application but don’t know how soon, or how well, you'll succeed.
Storage
With the storage layer, you get a database or something similar, and pay per gigabyte per month. A storage layer is nothing new or special, except for the full stack of services. It is, of course, vital.

There are several possibilities for storage. Some are traditional relational databases, and some are proprietary solutions such as Google's Bigtable or Amazon's SimpleDB.
Platform
The platform layer has solution stacks such as Ruby on Rails, LAMP, or Python Django. Now things start to get interesting. That fictitious start-up company doesn't have to deal with the installation of server software, or keep their versions updated, because that comes with the service. They can focus on developing and marketing their application.
Application
The application layer contains applications that are offered as services. The most famous examples are probably Salesforce.com and Google Docs, but there are hundreds if not thousands of (real) applications that can be purchased as services.

Popular Web applications such as Facebook, Flickr, and LinkedIn are cloud services. In these cases, the customer probably doesn't know if the application is run in a scalable data center, in an ordinary hosting service, or in the service providers basement. But, that isn't a concern or problem for the customer who needs to use the application. This layer is probably the most visible part of cloud computing. It emphasizes the benefits that can be seen by customers.
Services
The services layer contains interoperable machine-to-machine operations over the network. The most prevalent example of this layer is Web services. Other examples include payments systems, such as Paypal, and mapping services, such as Google Maps and Yahoo Maps.
Client
At the top of the stack is the client layer, which contains the users of the cloud systems. Clients are, for example, desktop users (thin client or thick client), and mobile users (Symbian, Android, iPhone).

As you can see, there are vast opportunities for vendors to offer exiting and new services, and for customers to find services and applications that solve their problems. However, there are some risks that customers need to understand.


Risks

There are several points to consider before signing up for cloud based services. Don’t think of the risks below as show stoppers or cardinal failures, but as issues you must acknowledge while making decisions. You should analyze whether cloud based services are right for your needs, and which of the available services is the right one for you.

Vendor lock-in
Make sure there is an easy way to get your data out of the service. If you're using an infrastructure service, backing up the files and data should be relatively easy. If you’re using a Web application, be sure to have a plan for taking your data with you in case you need to switch to another vendor. You don't always need to move all of your data to the new application if you have a way to somehow view the data. For example, you don't have to move all of the old time tracking application's data to the new one if you have viewable access to it.
Reliability
If something goes wrong with the service provider, such as servers going down, the customer can do nothing. For situations like this, it's better to choose a service provider who offers mirrored sites. Sometimes, though, even this is not enough; even the big vendors can have problems.
Data security
This is not always a risk. The security procedures and expertise of the vendor might be a lot better than those of a small start-up.

The issue to consider is: who gets to see your data, and what are the vendors policies for this. For example, if your data is sensitive for competitors to see, check your vendor's policies.
Going out of business
Investigate what would happen to your data, or to the application, if your vendor is forced to shut down. This negative aspect might be something that is seldom mentioned in marketing materials. If exporting your data is easy, then the possible shut down of the vendor shouldn't be that dangerous. You would still face the problem of finding a suitable new application (or vendor) for your business needs, though.

Conclusion

In this edition you learned about the essence of cloud computing, key characteristics, the layers, and some risks to be assessed. To the average customer, cloud computing means getting the services you want and paying per your usage. Cloud computing has many characteristics, such as scalability, on demand resource allocation, and economies of scale. There are six layers in the cloud computing stack, ranging from infrastructure to the client layer. Vendors operate and offer services in one or more of the layers. You also learned about risks that customers and future vendors should consider.

Cloud computing is not just a trend that might happen some day. It's a reality; typical Web users use cloud services daily whether they know it or not. In the near future we’ll probably see a stronger trend of corporate services and applications moving toward clouds. Naturally there are certain applications that corporations would rather run in their own servers, but the majority of corporate applications should be appropriate for cloud computing.

Resources

Learn

Get products and technologies

Discuss

Comments

developerWorks: Sign in

Required fields are indicated with an asterisk (*).


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

Choose your display name



The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


All information submitted is secure.

Dig deeper into Open source on developerWorks


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Open source, Web development, Cloud computing, Rational
ArticleID=367837
ArticleTitle=Architectural manifesto: An introduction to the possibilities (and risks) of cloud computing
publish-date=02022009