Provisioning is the process of creating and setting up IT infrastructure, and includes the steps required to manage user and system access to various resources. Provisioning is an early stage in the deployment of servers, applications, network components, storage, edge devices, and more.
Provisioning is not the same thing as configuration management, but they are both steps in the deployment process. Once a system has been provisioned, the next step is to configure the system and maintain it consistently over time.
Types of provisioning
Server provisioning is the process of setting up physical or virtual hardware; installing and configuring software, such as the operating system and applications; and connecting it to middleware, network, and storage components. Provisioning can encompass all of the operations needed to create a new machine and bring it to the desired state, which is defined according to business requirements.
Cloud provisioning includes creating the underlying infrastructure for an organization’s cloud environment, like installing networking elements, services, and more. Once the basic cloud infrastructure is in place, provisioning involves setting up the resources, services, and applications inside a cloud.
User provisioning is a type of identity management that involves granting permissions to services and applications within a corporate environment—like email, a database, or a network—often based on a user's job title or area of responsibility. The act of revoking user access is often referred to as deprovisioning.
An example of user provisioning is role based access control (RBAC). Configuring RBAC includes assigning user accounts to a group, defining the group’s role—for example, read-only, editor, or administrator—and then granting these roles access rights to specific resources based on the users’ functional needs.
The user provisioning process is often managed between IT and human resources.
When referring to IT infrastructure, network provisioning is the setting up of components such as routers, switches, and firewalls; allocating IP addresses; and performing operational health checks and fact gathering.
For telecommunications companies, the term “network provisioning” refers to providing users with a telecommunications service, such as assigning a phone number, or installing equipment and wiring.
Service provisioning includes the set up of IT-dependent services for an end user and managing the related data. Examples of service provisioning may include granting an employee access to a software-as-a-service platform, and setting up credentials and system privileges to limit access to certain types of data and activities.
Benefits of automated provisioning
Provisioning often requires IT teams to repeat the same process over and over, such as granting a developer access to a virtual machine in order to deploy and test a new application. This makes manually provisioning resources time-consuming and prone to human error, which can delay the time-to-market of new products and services. Manual provisioning also pulls busy IT teams away from projects that are more important to an organization’s larger strategy.
Today, most provisioning tasks can easily be handled through automation, using infrastructure-as-code (IaC). With IaC, infrastructure specifications are stored in configuration files, which means that developers just need to execute a script to provision the same environment every time. Codifying infrastructure gives IT teams a template to follow for provisioning, and although this can still be accomplished manually, automation tools can make this process far more efficient.
Using repeatable workflows, automated provisioning provides greater consistency across modern IT environments, reduces the likelihood of errors and loss of productivity, and frees IT teams to focus on strategic business objectives. With this more efficient provisioning process:
- End users and developers can gain access to the IT resources and systems they need in less time, empowering them to be more productive.
- Developers can bring applications and services to market faster, which can improve customer experience and revenue.
- IT teams can spend less time on menial, repetitive tasks—like correcting errors and misconfigurations—which allows them to focus on more critical priorities.
What to look for in an automated provisioning tool
Automated provisioning tools can focus on a specialized use case or type of system—such as a cloud provisioning or network provisioning platform—but in general terms, most organizations benefit from a solution that:
- Supports use cases such as public and private clouds, networking, security, and applications.
- Reduces IT costs by assuming the work of multiple disparate provisioning tools.
- Enables IT teams to manage configuration, Day 2 operations, and orchestration processes.
- Offers a declarative structure that allows you to define the desired state you want, without having to provide specific commands to achieve it.
- Includes self-service and role-based access features for security and control.
- Removes vendor lock-in to proprietary tools.
What's the difference between Ansible and Red Hat® Ansible® Automation Platform?
Why choose Red Hat?
Red Hat Ansible Automation Platform helps your organization scale automation with control and insight, foster collaboration across teams, and manage policy and governance.
Ansible Automation Platform includes all the tools needed to implement enterprise-wide automation, including content creation tools, a visual dashboard, and rich analytics. It delivers Red Hat's open source innovation—hardened for your enterprise—so you can boost productivity and reduce time-to-completion for new projects.
With your Ansible Automation Platform subscription, you can access Red Hat Ansible Certified Content and Ansible validated content, curated by both Red Hat and our robust partner ecosystem. You can also take advantage of hosted management services and life cycle technical support to help you fully integrate automation into your organization.