Today, most sizable IT organizations have hundreds, if not thousands, of licenses for software tools that are critical for building and running the databases and applications that power their business. Managing these tools and their associated licenses, including deploying, provisioning, and updating them, is time-consuming and incurs many hidden costs. There are also real productivity costs when IT professionals can’t readily access the tools they need at the right time. On the other hand, putting a bunch of tools on a server with no management, provisioning or usage tracking capabilities around them can come at an even higher cost. So then, where should IT professionals or anyone else responsible for setting up and managing a tools infrastructure look for answers? The latest phenomenon sweeping the IT landscape – cloud computing – may hold the most promise to overcome this issue.
The reduced complexity, lower costs and improved scalability afforded by enterprise clouds are growing in appeal to many IT organizations. What many people fail to realize is that cloud-derived advantages such as on-demand access, shared pools and rapid provisioning are not limited to running their databases and applications. These same benefits can also be extended to help them reduce the costs and complexities of managing the myriad software tools they use to design, build and manage their systems. By employing cloud principles to set up a private cloud infrastructure for tools – a tool cloud, if you will – complete with application virtualization capabilities, organizations can centrally provision and manage licenses across their enterprise.
The emerging tool cloud approach can give IT groups within an enterprise instant access to many of the tools they need to solve critical tasks, both improving their productivity and reducing tooling costs by allowing software to be shared.
A Bird’s Eye View of Cloud ComputingBefore diving into the specifics of a tool cloud, we need to first define cloud computing and identify key attributes that characterize classic cloud computing versus a tool cloud. While a tool cloud bears some similarities to cloud computing and is able to address the issues mentioned above, it is important to note that it does not meet the common definition of cloud computing today. The National Institute of Standards and Technology (NIST) defines cloud computing as “a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.”1
Here are a few important characteristics of cloud computing that carry through to the tool cloud concept:
- On-demand self-service: The user can automatically provision resources such as server time and network storage without human intervention.
- Broad network access: Capabilities are available through standard forms of network access using heterogeneous thick or thin clients.
- Rapid elasticity: Fast and automatic provisioning for scalability, often with the appearance of unlimited resources.
- Measured service: Metering capability based on type of service such as storage, processing, band width, and user accounts where usage can be monitored, controlled and reported on.
- Resource pooling: Location independent computing resources are pooled or shared via a multi-tenant model where physical and virtual resources can be dynamically assigned.
- Virtualization: Cloud computing typically utilizes virtualization as a means for rapid computing resource creation and reallocation.
Clouds are also commonly described as having different service models. This means there are different cloud capabilities provided to users. The three most common service models implemented today are:
- SaaS (Software-as-a-Service): This model is also known as Web applications. The application runs on a provider’s cloud infrastructure and is accessible through a Web browser. The user does not manage or control the underlying network, servers, storage or application features. Examples include Salesforce.com, Flickr, Gmail and Facebook.
- PaaS (Platform-as-a-Service): The user has access to abstracted middleware infrastructure. The user can deploy their own created application in the cloud using the provider’s programming languages and tools. The user does not manage or control the underlying network, servers, storage or application features. Examples include Google Apps and Force.com.
- IaaS (Infrastructure-as-a-Service): The user is able to provision on-demand CPU, storage, networks, and other computing resources from a provider. They are able to deploy and run arbitrary software, which can include operating systems and applications. The user does not manage or control the underlying cloud infrastructure, but has control over operating systems, storage, deployed applications, and possibly limited control of select networking components (e.g. host firewalls). Examples include Amazon EC2, Amazon S3 and Akamai.
How Tool Cloud Fits with Cloud ComputingA tool cloud is an emerging model for delivering software tools to users within a company. It incorporates cloud characteristics, like on-demand self service, rapid elasticity, and virtualization. By design, a tool cloud brings many of the benefits of cloud computing to users of application development and database tools.
And, while strictly speaking, a tool cloud cannot be categorized into any one service model, it does draw on several elements from both the SaaS and IaaS models. It gives users a view into the cloud via a Web application that shows the tools available to them based on criteria such as user ID, role or access privileges. The user can then select the tools they would like to provision and run without having to worry about software installation or licensing issues.
Why Enterprises Would Want to Use a Tool CloudIT executives are struggling with the pressure to reduce tool acquisition and maintenance costs, standardize and simplify across projects, and reduce the number of vendors – or simply put, reduce tool management costs and procurement complexity. So how can a tool cloud help with these corporate directives and what benefits can you expect to realize when adopting such a strategy for your organization?
First, a tool cloud can simplify license management by putting the IT manager in control of license inventory and allocation; centrally, on premises. It provides easy control over who has access to the tools, with complete visibility into usage, including reporting. A tool cloud can also provide centralized deployment of new versions of tools to an entire user base.
A well architected tool cloud also supports automatic downloads of new versions of software from a vendor’s site as they are available. Users can easily switch between old and new versions without concern over conflicts due to installation, setup, or licensing issues.
Actually, the tool cloud approach makes licensing seamless for the end user, and greatly eases deployment and licensing complexities. It can help optimize license configurations and purchases and help prevent over-buying. Because of the tool cloud’s an on-demand capabilities, it is easier to react to changing tooling needs. Finally, a tool cloud can help ensure compliance by enforcing licensing policies centrally from one location, and providing reporting tools for audits.
Reasons to Stick with a Traditional ModelBelieve it or not, there may be good reasons to stick with a traditional model. It is practically impossible to find a “one size fits all” solution in software that really is just that. Every opportunity has its own characteristics, parameters, boundaries and intricacies that differentiate it from other situations that may appear similar at first glance. Hence, every solution when implemented in software tends to satisfy the requirements of the specific opportunity, but will likely not be as useful in other situations, even if they appear similar. For example, both large enterprises and small-to-medium sized businesses typically use some form of ERP system, but their ERP requirements are dramatically different. That is why companies like SAP and Oracle offer both full-blown expensive ERP systems and scaled-down, cheaper versions. As well, SaaS ERP applications may not always be a fit for a company; both on-premises and SaaS fit various needs and requirements.
Such is the case with tool clouds. It might seem that if tool clouds are such a great idea, why not use them everywhere to replace more traditional models and technologies for provisioning and managing tools and the associated licenses? The short answer is – surprise – they are not a great fit for every situation. Here are a few scenarios and factors where a more traditional approach may actually be the better way to go:
Security policies and disconnected servers: Companies whose servers are not connected to the Internet or whose security policies do not allow software to be downloaded from external sites, would not benefit from automatic product and license updates from the tool cloud vendor’s site.
User flexibility versus operational efficiency: In some situations, users may require (or demand) greater flexibility and more ownership of the software and licenses they use. In this case, users may not favor giving up control of the software and licenses to a centralized administration model as they may perceive this as limiting their flexibility to install, configure and manage the software on their own machines as needed. Although, on the flip side, one of the key characteristics of cloud computing is on-demand self-service which should help address this concern.
Some administration required: There is some work required to install and administer a central tool cloud server on your premises. In many cases, the time and effort it takes to administer the tool cloud software will be less than the time it would take to administer the software and licenses on each user’s desktop. However, this will vary from organization to organization. Factors such as the number of users, the availability of IT staff to take on the additional administration tasks, and an IT department’s approach to centralized or decentralized asset management are just a few things that require consideration.
Truth in numbers: The truth is that using a tool cloud may be overkill for small teams. While there are no exact measurements to suggest that teams under a certain size should remain with traditional models, and teams over a certain size would benefit by moving to a tool cloud model, it is fairly intuitive that there is a point of inflection somewhere in this equation. The reality is that this will depend on each company’s specific situation and factors such as the number of users, location and proximity of those users, available administration resources, the amount of time available to allocate for each user to administer their own machine versus providing central administration, and so on.
Considerations for Deploying a Tool CloudThe goal of a tool cloud is to minimize or even eliminate common areas of pain felt by nearly every IT organization that has responsibility for acquiring, provisioning and managing the application development and database tools used within their company. Roughly speaking, these issues fall into one of three categories – tool acquisition, tool deployment, and license management. Here are several questions you can ask yourself to see if your organization is faced with any of these issues and could therefore benefit from a tool cloud implementation
- Does your team spend a lot of time manually tracking tool licenses, often times via spreadsheets?
- Has your team ever been caught off guard, scrambling around to find out who has what license for compliance audits?
- Have you ever received a large, unexpected expense due to vendor true-ups?
- Does your IT department manage desktops? How long does it take to get a new tool licensed and installed?
- Do you often need to move licenses between team members, projects, or machines? If so, how do you deal with the re-issuance and tracking of licenses?
- Do you have consultants on your projects that need access to software for limited durations?
- How does your team or IT department deploy new versions of software to make sure they meet corporate desktop standards and don’t conflict with other applications? Does this involve packaging, testing, and deploying new versions? Or are end users responsible for managing their own software, and for taking the time to do installs and uninstalls?
- Is your team able to get a new release of our software quickly, when they need them? How long does that typically take?
- How much time does your team spend rolling back and forth between versions, uninstalling and re-installing?
- Do you have various versions of databases running, and find you need to use older tool versions to support them, along with the new versions?
- Do some tools and applications conflict with or even break existing desktop software? Are problems caused by the fact that multiple versions of a tool cannot coexist on the same machine?
- How long does it take to get different tools for different projects when they are needed? Does it take a long time and require additional budget approval cycles for each new tool?
- Is it difficult to get new tools because your company/IT is reluctant to deal with too many vendors, because of vendor management costs? Are you being asked to reduce the number of vendors?
- Is it difficult to get enough value out of infrequently used tools to justify owning them?
By employing cloud principles to set up a private cloud infrastructure complete with application virtualization capabilities, organizations can centrally deploy tools and manage licenses across their teams. This brings benefits to the technologists who get instant access to the many tools they need to solve critical tasks, while reducing costs and improving productivity of IT organizations.
Cloud computing is gaining widespread adoption among small and large organizations, and we’re just beginning to see the possibilities of how and where the principles associated with cloud computing can be leveraged to solve problems beyond application delivery and data storage. The tool cloud is an emerging application that falls within these concepts and technologies – an important one that can potentially change the way tools are acquired, provisioned and managed.
- The NIST Definition of Cloud Computing. Authors: Peter Mell and Tim Grance. Version 15, 10-7-09