Saturday, March 18, 2023

I want to develop a provisioning tool that has almost no learning curve that is built on top of Pulumi and Ansible. Is this a good idea? Is there a better combination of existing tools that I can consider?

Developing a provisioning tool with a minimal learning curve built on top of Pulumi and Ansible can be a good idea, as both tools are popular and have their strengths. Pulumi excels at managing cloud infrastructure using familiar programming languages, while Ansible is known for its simplicity and agentless architecture for configuration management.


However, it's essential to consider that combining these tools might still present some learning curve due to the inherent complexity of cloud infrastructure and configuration management. To minimize the learning curve, focus on creating an intuitive interface, clear documentation, and providing use-case-specific templates for users to start with.


As for alternatives, there are other tools you can consider. Some popular options include:


Terraform: A widely-used infrastructure-as-code (IaC) tool that supports multiple cloud providers and has a large community of users. It uses its own declarative language (HCL) and can be combined with Ansible for configuration management.


CloudFormation (AWS-specific): Amazon Web Services' native IaC tool, which uses JSON or YAML templates to define and manage AWS resources.


Azure Resource Manager (ARM) templates (Azure-specific): Microsoft Azure's IaC solution that allows you to define and deploy Azure resources using JSON templates.


Google Cloud Deployment Manager (GCP-specific): Google Cloud Platform's IaC tool that uses YAML templates to define and manage GCP resources.


You can evaluate the suitability of these alternatives based on the target user base, the specific cloud providers you intend to support, and the level of extensibility and customization you want to offer.


Remember that the key to creating a tool with a minimal learning curve is to focus on simplicity, usability, and providing a guided experience for users who might not be familiar with the underlying technologies.