Use Cases
This section explores some of the use cases driving cloud computing. Cloud computing offers many advantages that are important for individual use cases. Infrastructure virtualization also opens up new possibilities and IT assets that traditional computing does not use. Finally, operating in a public Internet environment offers new collaboration possibilities while also introducing security challenges. See “Use Cases and Interactions for Managing Clouds” [Distributed Management Task Force, 2010] for more detail on use cases.
Actors
A number of actors collaborate together in cloud use cases. Consider this basic list.
- Cloud service developer—Develops software and other assets for consumption on the cloud.
- Cloud service consumer—Requests cloud resources and approves business expenditures. Cloud service consumers can include users, administrators, and business managers.
- Cloud provider—Provides a cloud service to consumers.
Web Site Hosting
Operating a web site that requires database access, supports considerable traffic, and possibly connects to enterprise systems requires complete control of one or more servers, to guarantee responsiveness to user requests. Servers supporting the web site must be hosted in a data center with access from the public Internet. Traditionally, this has been achieved by renting space for physical servers in a hosting center operated by a network provider far from the enterprise’s internal systems. With cloud computing, this can now be done by renting a virtual machine in a cloud hosting center. The web site can make use of open source software, such as Apache HTTP Server, MySQL, and PHP; the so-called LAMP stack; or a Java™ stack, all of which is readily available. Alternatively, enterprises might prefer to use commercially supported software, such as WebSphere® Application Server and DB2®, on either Linux® or Windows operating systems. All these options are possible in IaaS clouds and, in particular, in the IBM SmartCloud Enterprise.
Figure 1.1 shows a use case diagram for this scenario.
Figure 1.1. Use case diagram for hosting a web site on the cloud
When building the web site, the developer needs to create a virtual machine instance that will host the web and application servers needed. The developer can save an instance to an image when the development of the site reaches a certain point or just for back-up purposes. Usually an administrator does not want to use an instance that a developer created. However, the administrator needs to know the hosting requirements in detail and might use an image that the developer saved or scripts that a developer created, as a starting point. In the process of maintaining the web site, an administrator might need to add storage and clone storage for back-up purposes. After cloning, the administrator might want to copy the data to some other location, so having it offline from the production web site would be an advantage. From the users’ perspective, users will be unaware that the web site is hosted in the cloud.
The activities of the developer and administrator can be accomplished via a console with a graphical user interface, such as the one the IBM SmartCloud Enterprise provides. However, as time passes, many regular cloud users will automate with scripts. Command-line tools are ideal for these power users because they execute much faster than a user can click a mouse and navigate pages. Many power users have cheat sheets for common operations, such as installing software and patches, that they can retrieve and edit as needed. They can save scripts for creating instances, saving images, and performing other operations along with the rest of the script collection.
The main advantage of using the cloud for this use case is that renting a virtual machine in a location where it is accessible from the Internet is considerably cheaper than placing physical machines in a data center accessible from the Internet. Other cloud advantages also apply to this use case, including the rapid ability to substitute in a new virtual machine for a server experiencing a hardware fault.
Short-Term Peak Workloads
In the retail industry, workloads come in short peaks at certain times of the year (notably, at Christmas) or coincide with advertising campaigns. Quickly adding capacity during these times is important. With their elastic ability to add servers as desired, clouds are ideal in this situation. Monitoring is important because user traffic varies from year to year based on economic conditions and other factors that make predicting the workload difficult. The IBM SmartCloud Enterprise includes an IBM Tivoli Monitoring image in the catalog that can be helpful. Along with other images in the catalog, it can be rented for as long as needed, and no installation is necessary. Figure 1.2 shows a use case diagram for this scenario.
Figure 1.2. Use case diagram for monitoring peak workloads
As in the previous use case, all actions required to do this can be done in the console graphical user interface. However, scripts avoid repetitive work and save administrators time.
The main advantage of the cloud in this use case is its elastic scalability.
Proof-of-Concept
Enterprises usually do proof-of-concept or pilot studies of new technologies before committing to use them. External IT consultants are often invited to do these proof-of-concepts. The consultants are typically under a lot of pressure to deliver a large quantity of computing capacity in a short period of time. If they do not have prior experience in this area, they generally have little hope of succeeding. Assets that they can take from job to job are critical. The cloud can make this easier by allowing saved images to be reused directly and to allow consultants and enterprise users to easily share the same network space. This solution is a better one than requiring the consultant to transport physical machines, install everything on her or his laptop, or install all the software on-site at the enterprise in a short period of time.
Figure 1.3 shows a use case diagram for this scenario.
Figure 1.3. Use case diagram for a proof-of-concept on the cloud
Working in a public cloud environment with support for user administration is critical here, to allow the enterprise to add an account for the consultant. Alternatively, the consultant could use his or her account space and simply allow access via a network protocol such as HTTP. If the enterprise likes the proof-of-concept, it might want to use it long term. It can move it to the company’s private network by saving an image and starting up an instance on its virtualization LAN. Table 1.2 compares a traditional proof-of-concept and a proof-of-concept on the cloud.
Table 1.2. Comparison of Traditional and Cloud Environments for a Proof-of-Concept
Traditional |
Cloud |
The consultant travels to the customer site. |
The consultant works over the Internet. |
The customer gives the consultant access to the enterprise network, subject to an approval workflow. |
The customer gives the consultant access to the cloud with account or specific virtual machines with cryptographic keys. |
Customer procures hardware for the pilot. |
Customer creates an instance with the self-service interface. |
The consultant works independently. |
The consultant pulls in experts for high availability, performance, security, and so on for a few hours, as needed. |
The consultant cannot connect his or her laptop to the enterprise network and instead must use only tools that the customer makes available. |
The customer can use her or his favorite application lifecycle management tools on a laptop or available on the cloud. |
The consultant installs everything from scratch. |
The consultant starts up instances from prebuilt images. |
The server is repurposed after completion. |
Server instances are saved as images, and running instances are deleted. |
The cloud enables a different set of deliverables for proof-of-concept, pilot, beta programs, and consulting projects. In traditional environments, enterprise network constraints (especially security issues) often require consultants to work with unfamiliar tools. This results in written reports documenting deployment steps and best practices that customers cannot easily consume. In other situations, consultants are left in a permanent support position long after the project has “finished.” The cloud enables a different set of deliverables, including virtual machine images, deployment topology models, and software bundles, as shown Table 1.3.
Table 1.3. Comparison of Traditional and Cloud Project Artifacts
Traditional |
Cloud |
Software installation program (time consuming to develop) |
Virtual machine image (capturing an instance with the click of a button) |
Written reports summarizing deployment steps |
Deployment topology models, automation scripts |
User documentation written from scratch |
Documentation reused from standard images |
Configuration files in miscellaneous locations |
Asset added to cloud catalog |
Difficult support process |
Support via remote access to cloud |
The primary advantages of the cloud for this use case are elastic scalability, access from the Internet, and the capability to save and reuse projects assets.
Extra Capacity
In this scenario, the IT department runs out of computing resources, delaying in-house projects. The department rents resources on the cloud to meet the shortfall. A virtual private network is used to connect to a private virtual local area network (VLAN) in the cloud to the enterprise network.
Open Source/Enterprise Collaboration
Recently, enterprises have embraced the idea of open source. However, this is best done in a controlled way. An organization might be unwilling to host an open source project on SourceForge or Apache but might want to use open source in a more controlled way. By hosting the project itself on the cloud, the enterprise maintains complete control over the project while still gaining the advantages of an open source model.
Outside contributors can make use of these advantages:
- Be given user accounts without granting access to the enterprise’s internal IT systems
- Use a common set of development tools hosted on the cloud
Storage System for Security Videos
Some application domains consume huge amounts of data. Video files are one example. In addition to the files themselves, a management application must allow the videos to be accessed and store additional metadata about them. Hadoop, a freely available open source distributed file system capable of storing huge amounts of data, might fulfill the storage needs of such a security video management and access system. IaaS clouds are an ideal platform for hosting Hadoop and being able to add nodes to the cluster on demand.
Business Scenario: IoT Data Hosting Provider
To tie together the information presented in this book, this section describes how it can be used in a business scenario. In this situation, the company IoT Data provides a hosting service for Internet-connected devices to store data. IoT Data’s business services include the following:
- Registering devices
- Storing data from a device using a REST web service
- Conducting HTML and programmatic searches of the data
- Sharing the data in public, community, and commercial modes
IoT Data charges customers by gibibytes (GiB) of data stored and 10% of any data sold. For large customers, IoT Data also provide the entire suite of software for private hosting on the cloud itself. In this case, the changes are per virtual machine hour and depend on the size of the virtual machine (in addition to the per-GiB charge). A diagram showing the main actors and use cases for IoT Data is shown next.
IoT Data does not have a large budget to hire employees, so as much work as possible has to be automated. IoT Data also cannot afford to buy servers, so it needs a pay-as-you-go model, such as a public cloud provides. In addition, the company has few resources to develop its own software and thus must leverage as much as possible from the cloud provider. This book explains how different technologies can meet IoT Data’s business needs (however, we do not actually write the code for doing so).