Provisioning new services
Provisioning a service means setting up and configuring everything needed to make the service ready to use. Nullplatform helps you by handling the setup, updates, and management of services. It connects different tools and processes to ensure everything works smoothly with your existing systems.
When a developer requests a new service through nullplatform, the system starts the provisioning process. This also applies to updating or deleting services, making management consistent and straightforward.
Key observations
- Flexible tool support: Nullplatform works with any IaC tool, SDK, or custom system, giving you flexibility in how you manage provisioning.
- Orchestration management: Nullplatform handles orchestration and stores only necessary metadata. Actual provisioning is done within the client’s infrastructure, following their security practices.
- Consistent action handling: All actions, such as creating, updating, or deleting services, are handled the same way in the provisioning system.
- Event-based triggers: Nullplatform triggers events with the information needed for provisioning. These can be processed using GitHub Actions, GitLab Pipelines, or webhooks. Regardless of the method, the data remains the same.
Overview of the provisioning process
Initial request by a developer
The service lifecycle starts when a developer invokes a specific action on the nullplatform, such as creating a MySQL service. These actions might involve creating, updating, or deleting a service, or custom actions defined by your organization, like retrieving credentials.
Following a MySQL service integration example, available actions would include:
- Create MySQL: Initiates the creation of a MySQL service.
- Update MySQL: Applies updates to an existing MySQL service.
- Delete MySQL: Removes a MySQL service from the environment.
- Get credentials: Generates temporal credentials for the MySQL service.
Orchestration and triggering events
When an action is invoked, the nullplatform orchestrator takes over the process flow. It handles:
- calling the necessary services to process the request.
- triggering any additional actions needed using runners and Infrastructure as Code (IaC) tools.
Runners and IaC tools
Runners and Infrastructure as Code (IaC) tools handle the actual provisioning tasks. These processes are triggered by nullplatform, but managed directly by the client, offering flexibility while maintaining adherence to security standards.
Runners
Runners are used to provision services and can be set up using:
IaC tools
IaC tools help you manage and provision resources using code, making infrastructure management easier and more consistent.
If you use tools like Terraform or OpenTofu, you can use our plugin to configure your services.
Additional configuration for OpenTofu/Terraform IaC tools
If you’re using OpenTofu or Terraform as your IaC tool, you'll need the following additional setups:
- Lock mechanism: For AWS, use DynamoDB to lock the state during operations to prevent conflicts.
- Remote state provider: Use Amazon S3 as a remote state provider to securely store and manage your state files.
- Unique state management: Create a unique state for each service or link by using the service/link ID and slug. This helps keep configurations distinct for each entity.
This setup allows you to automate service provisioning on nullplatform while maintaining a reliable and secure environment.