Provisioning is the process of setting up IT infrastructure. It can also refer to the steps required to manage access to data and resources, and make them available to users and systems.
Provisioning is not the same thing as configuration, but they are both steps in the deployment process. Once something has been provisioned, the next step is configuration.
When the term "provisioning" is used, it can mean many different types of provisioning, such as server provisioning, network provisioning, user provisioning, service provisioning, and more.
Server provisioning is the process of setting up a server to be used in a network based on required resources.
Provisioning can encompass all of the operations needed to create a new machine and bring it to a working state, and includes defining the desired state of the system.
Server provisioning includes setting up the physical hardware in a datacenter, installing and configuring software, including the operating system and applications, and connecting it to middleware, networks, and storage.
User provisioning is a type of identity management that monitors access rights and authorization privileges. Provisioning is defined through user objects, such as employees, vendors, contractors, etc. and user attributes. Services provided might include email, access to a database, or access to a network.
Configuring role based access control (RBAC) is an example of user provisioning. RBAC is generally comprised of permissions, roles, groups, and users.
A user is assigned to a group or groups, a group is assigned to roles (read-only, editor, or administrator, for example), and a role is comprised of permissions.
User provisioning is often managed between IT and human resources.
Network provisioning can include setting up a network to be accessed by users, servers, containers, and IoT devices, among other things. In today’s connected world, there are many different types of items that are network consumers.
Network provisioning has frequently been used by the telecommunications industry as a way to refer to providing a telecommunications service to a user, including the required equipment and wiring. It may also include service activation of a wireless environment for a user.
Service provisioning includes the set up of a service and managing the data related to it. Service provisioning has applications in the telecommunications industry, in setting up a service for a customer, as well as with cloud infrastructure.
As an example, cloud service provisioning is the self-service component of cloud computing. Users obtain cloud services through a self-service portal without requiring the help of IT staff.
There's a lot more to do with automation.
In the past, IT infrastructure provisioning was typically handled manually, including setting up the physical servers and configuring hardware to the desired settings. And if you needed additional capacity, you would have to order more hardware, wait for it to arrive, and then set it up and provision it.
Today, infrastructure is now often defined in software, and virtualization and containers have sped up the provisioning process while eliminating the need for frequent hardware provisioning and management. Provisioning can also be handled through automation.
Virtual infrastructure has increased the scale and capacity of many enterprise environments as well, which comes with its own challenges. Developers still need to provision virtual infrastructure for each new deployment, and manual provisioning is time consuming and prone to human error.
It’s difficult to track changes and control versions, and avoid errors and inconsistencies when provisioning is managed manually by developers for each deployment.
Infrastructure as code (IaC) offers a solution and makes it possible to automate your infrastructure.
IaC is the managing and provisioning of infrastructure through code instead of through manual processes.
Automating infrastructure provisioning with IaC means that developers don’t need to manually provision and manage servers, operating systems, storage, and other infrastructure components each time they develop or deploy an application.
With IaC, configuration files are created that contain your infrastructure specifications. This takes away the majority of provisioning work from developers, who just need to execute a script to have their infrastructure ready to go.
IaC ensures that you provision the same environment every time.
Deploying your infrastructure as code also means that you can divide your infrastructure into modular components that can then be combined in different ways through automation.
Codifying your infrastructure gives you a template to follow for provisioning, and although this can still be accomplished manually, an automation tool, such as Red HatⓇ Ansible AutomationⓇ Platform, can do it for you.
With Ansible Automation Platform, a playbook is used to describe the desired state of your infrastructure, which the tool can then provision. You can also use Ansible Automation Platform for configuration management to maintain your systems in the desired state.
Automating the provisioning of any infrastructure is the first step in automating the operational life cycle of your applications.
Creating an enterprise-wide approach to automation lets you automate not only IT processes, but also entire technologies, teams, and organizations.
With the right automation solution in place, you can deploy new applications and services faster, manage IT infrastructure more efficiently, and see an increase in app development productivity.
Red Hat believes automation is a strategic and foundational component of IT modernization and digital transformation. Our solutions, services, and training give you the control you need to automate your business so you can focus on innovation and moving forward.
So whether you’re just getting started with automation or want to expand across new use cases, Red Hat’s solutions can help you to scale automation across your business.