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 currenty 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 infrastrucure
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.
- Read Cloud Computing: Changing the World of Information Technology by Cezar Taurion, Applied Technologies Manager at IBM Brazil (in Portuguese)
- Software mentioned in the article:
- Visit the Rational software area on developerWorks for technical resources and best practices for Rational Software Delivery Platform products.
- Stay current with developerWorks technical events and webcasts focused on a variety of IBM products and IT industry topics.
- Improve your skills. Check the Rational training and certification catalog, which includes many types of courses on a wide range of topics. You can take some of them anywhere, any time, and many of the "Getting Started" ones are free.
Get products and technologies
- Download a free trial version of Rational software.
- Evaluate other IBM software in the way that suits you best: Download it for a trial, try it online, use it in a cloud environment, or spend a few hours in the SOA Sandbox learning how to implement service-oriented architecture efficiently.
- Join the Rational software forums to ask questions and participate in discussions.
- Get social about thought leadership. Join the Rational community to share your Rational software expertise and get connected with your peers.
- Ask and answer questions and increase your expertise when you get involved in the Rational forums, cafés, and wikis.
- Rate or review Rational software. It's quick and easy.
- Share your knowledge and help others who use Rational software by writing a developerWorks article. Find out what makes a good developerWorks article and how to proceed.
- Follow Rational software on Facebook, Twitter (@ibmrational), and YouTube, and add your comments and requests.
Dig deeper into Rational software on developerWorks
Get samples, articles, product docs, and community resources to help build, deploy, and manage your cloud apps.
Keep up with the best and latest technical info to help you tackle your development challenges.
Software development in the cloud. Register today to create a project.
Evaluate IBM software and solutions, and transform challenges into opportunities.