A cloud service has three distinct characteristics that differentiate it from traditional hosting. It is sold on demand, typically by the minute or the hour; it is elastic -- a user can have as much or as little of a service as they want at any given time; and the service is fully managed by the provider (the consumer needs nothing but a personal computer and Internet access). Significant innovations in virtualization and distributed computing, as well as improved access to high-speed Internet and a weak economy, have accelerated interest in cloud computing.
A cloud can be private or public. A public cloud sells services to anyone on the Internet. (Currently, Amazon Web Services is the largest public cloud provider.) A private cloud is a proprietary network or a datacenter that supplies hosted services to a limited number of people. When a service provider uses public cloud resources to create their private cloud, the result is called a virtual private cloud. Private or public, the goal of cloud computing is to provide easy, scalable access to computing resources and IT services.
When we think of computer resources in the cloud, we usually think of public clouds, such as the ones offered by Google or Amazon, with infrastructure or applications shared by millions of clients worldwide, through the Internet. Cloud computing has proven to be a good alternative for companies, because it reduces costs and generates flexibility. But security and availability issues still need to be resolved. That is why more and more companies are choosing private clouds.
Some organizations, because of their organizational cultures or for security or regulatory concerns, cannot move directly into public clouds, but they have the option of private clouds. Banks, for example, cannot join public, Internet-access clouds. Organizations that need greater security will have to invest in private clouds, but they also need to be sure that they can rely on the availability and performance of services.
Attributes of private clouds
A private cloud, also called an "internal cloud" or "corporate cloud," resides within the company environment (firewall) and its access is restricted, usually to company employees or business partners.
The Gartner Institute has defined five key attributes for private clouds:
- Offering resources (infrastructure and applications) as services
- Flexibility and scale that meet client demands
- Resource sharing among a large number of users
- Measurement and payment according to use of the service
- Use of Internet protocols and technologies to access cloud resources
Examples of ways to implement the model
Consider these three practical examples.
Infrastructure as a service
The most widely adopted private cloud model currently is infrastructure as a service (IaaS), which is a natural development of the virtualization process that these companies are undergoing.
Consider a development team that needs a server for their project. In large companies, it takes at least 30 days to make a new physical resource available. Imagine that, rather than 30 or 40 days, that server becomes available within a few hours. How many additional projects could that same team deliver in a year?
Software as a service
Another example is offering applications as a service in the software as a service (SaaS) model, where a company goes from investing in license purchases to paying a fee according to use. Implementation occurs through a pool of servers that work like a giant computer through a single layer of virtual machine management software. The workload can be evenly spread across the resource pool. If there is a need for a specific workload, the private cloud works with the required flexibility. After removing load peaks, any unnecessary server can be turned off to save resources.
As a self-regulation and return system
Another practical example is in the testing and quality assurance phase of software development, which is currently a major expense in the budgets of most IT companies.
Software developers need different kinds of software environments to develop and test their code. Managers must test the code to guarantee concurrent user load in transactions. But we know that developers do not need all of those environments all of the time. That's why we need what we call a self-regulation and return system. In other words, when these computer resources are inactive, they can be used by other projects or by other development teams.
Moving software development to the cloud is becoming increasingly good business. The greatest challenge is balancing the demand. When there is a lot of work, the whole team needs development tools, which is often expensive. When there is less work, these tools go unused.
An IT executive from McDonald's explains why they chose a private cloud: "We needed a model that was flexible in any business and development conditions. Sometimes, we have months focused on development, and other periods are dedicated to deployment. The model must be flexible enough to handle this."
Benefits of private clouds
The reasons for using a private cloud are cost reduction, enhancing service quality, and, more importantly, reducing the time it takes to deliver what users demand.
Cost savings are driven by standardization or automation of services or IT computer resources. Standardization and automation reduce operational costs and free IT personnel to focus more on servicing customers than on activities with little or no added value, such as allocating disk space or configuring software.
It is absolutely crucial for the quality of cloud services delivered by IT to be superior to the current model.
How to optimize development and testing in the cloud
As mentioned earlier, one of the key benefits of the private cloud is cost reduction.
Market and IDC data show that the idle rate in computer capacity of development environments can reach 85%. Most test servers, for instance, run at less than 10% of full capacity. There are also high costs related to management of complex infrastructures, installation, configuration, and maintenance of these servers.
The trick to maintaining the cloud environment lies precisely in the optimization of these computer resources through virtualization, service standardization, geographically compatible services, fast scalability, and what we call self-service.
Figure 1: Optimize workload for use of your infrastructure
Three examples of cloud services
Now let's review three examples, among many, of services that could be available in a cloud environment.
Globally distributed development
Collaboration between external and internal teams is transparent through the IBM® Rational Team Concert™ collaboration environment (RTC in Figure 2), installed and configured in a standardized way for all teams and available in the cloud.
Outsourcing has been an increasingly common reality in companies. It has generated the need for an effective means of communication between internal and external resources. As mentioned earlier, during development peaks, we can work concurrently with many distributed suppliers or teams, and then save resources during slow development cycles when there are few projects to be developed.
Figure 2: Collaboration with Rational Team Concert available in the cloud
Virtual test farms
Virtual test farms are preconfigured cloud images with agents for functional testing with, for example, Rational® Functional Tester. These test farms enable efficient regression testing in applications and an agile setup process for running on different operating systems and middleware combinations.
Services related to performance testing (Rational® Performance Tester, RPT in Figure 3), which are also associated with physical or virtual agents in the cloud, can be executed, thus enabling optimized use of infrastructure (known as "pay-as-you-go").
Figure 3: Virtual test farms in the cloud to optimize use of infrastructure
Application security testing
Security testing is necessary to mitigate risks associated with regulatory requirements and to protect applications against malicious or fraudulent use.
By using a cloud service (Rational® AppScan®, for example), you can keep web applications secure through an infrastructure that is also available in the pay-as-you-go model.
Private clouds do not make sense for small businesses. But for large and even medium-sized businesses, IT teams can make parts of their infrastructures virtual, so they can use their business processes and computer resources in a private cloud. As the concept becomes more mature, the idea would be to move everything that needs more flexibility to the cloud.
We have some big challenges ahead, and we should start facing them now. Cloud computing is not a promise but a reality, and if you do not design your adoption strategies, you will miss the bus.