Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Architectural Manifesto - An Introduction To The Possibilities (And Risks) Of Cloud Computing


Published on

Published in: Business, Technology
  • Be the first to comment

  • Be the first to like this

Architectural Manifesto - An Introduction To The Possibilities (And Risks) Of Cloud Computing

  1. 1. Architectural manifesto: An introduction to the possibilities (and risks) of cloud computing Introduction 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 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.
  2. 2. 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. 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
  3. 3. 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 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
  4. 4. 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.
  5. 5. 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.