DocumentationUse CasesCloud Infrastructure

Deploying resources on AWS, GCP, or Azure often means learning cloud-specific details like resource hierarchy, network design, and configuration models, which can be a frustrating experience. ProjectPlanton simplifies this by offering a standardized, declarative API architecture and a consistent deployment experience for provisioning various cloud infrastructure components. It provides a higher level of abstraction compared to tools like Terraform and Pulumi, enabling a seamless deployment experience without the hassle of multiple paradigms.

This use case shows how ProjectPlanton makes cloud infrastructure deployment consistent and manageable, giving developers and platform engineers a unified approach without needing to adopt different deployment tools and methods.

Benefits of Using ProjectPlanton for Cloud Infrastructure

Standardized & Declarative APIs

ProjectPlanton’s APIs are designed to be standardized and declarative, making it easy to define and deploy infrastructure components across different cloud platforms. Instead of having to learn different tools and configurations for each cloud service, ProjectPlanton uses Kubernetes-like manifests that provide a consistent, user-friendly structure, reducing complexity and speeding up development.

Consistent Deployment Experience

ProjectPlanton offers consistent deployment experience, no matter what kind of infrastructure you are deploying. Whether it’s a DNS Zone, a Kubernetes cluster, or a virtual network, the deployment workflow remains uniform, reducing the learning curve and increasing productivity. This consistency is similar to what tools like Terraform and Pulumi offer, but ProjectPlanton adds an extra layer of abstraction through unified APIs that make deployments even easier.

Higher-Level Abstraction

With ProjectPlanton, you don’t have to worry about the details of cloud-specific resources or learning the syntax for each provider. Instead, ProjectPlanton provides well-defined APIs that make deployments more intuitive and less error-prone. This additional abstraction layer simplifies the deployment process, making it accessible even for those who may not be experts in cloud infrastructure.

Example Manifests for Deploying Cloud Infrastructure

The following examples demonstrate how ProjectPlanton uses consistent API definitions to deploy different cloud infrastructure components.

  • AWS Route53 DNS Zone:
apiVersion: aws.project.planton/v1
kind: Route53Zone
metadata:
  name: example.com
spec:
  records:
    - name: test-a.example.com.
      recordType: A
      values:
        - 1.1.1.1
    - name: test-cname.example.com.
      recordType: CNAME
      values:
        - some-other.example.com.
  • GCP DNS Zone:
apiVersion: gcp.project.planton/v1
kind: GcpDnsZone
metadata:
  name: example.com
spec:
  projectId: <enter-gcp-project-id>
  records:
    - name: test-a.example.com.
      recordType: A
      values:
        - 1.1.1.1
    - name: test-cname.example.com.
      recordType: CNAME
      values:
        - some-other.example.com.
  • GCP GKE Cluster:
apiVersion: gcp.project.planton/v1
kind: GkeCluster
metadata:
  name: dev-cluster
spec:
  clusterProjectId: <enter gcp project id>
  region: asia-south1
  zone: asia-south1-a
  clusterAutoscalingConfig:
    isEnabled: false
  kubernetesAddons:
    isInstallCertManager: true
    isInstallExternalDns: true
    isInstallExternalSecrets: true
    isInstallIstio: true
    isInstallKafkaOperator: true
    isInstallPostgresOperator: true
  nodePools:
    - machineType: n2-custom-8-8192
      maxNodeCount: 2
      minNodeCount: 1
      name: n2-custom-8-8192
  ingressDnsDomains:
    - name: <enter dns domain name>
      dnsZoneGcpProjectId: <enter-dns-project>
      isTlsEnabled: true

Comparison with Traditional Alternatives (e.g., Pulumi and Terraform):

Standardization & Abstraction

  • Pulumi and Terraform: These tools are powerful but require learning different configurations for each cloud provider.
  • ProjectPlanton: Provides a higher-level abstraction, reducing complexity by offering consistent APIs for different cloud platforms.

Declarative Configuration

  • Pulumi and Terraform: Pulumi uses multiple programming languages, and Terraform has its own syntax, which requires learning and managing new scripts.
  • ProjectPlanton: Uses a declarative YAML approach similar to Kubernetes manifests, making it easy to define infrastructure without platform-specific knowledge.

Default Pulumi Modules for Every Component

  • Pulumi and Terraform: Users need to either find well-written modules and understand their inputs, or if no well-maintained module is found, write the module from scratch.

  • ProjectPlanton: Every deployment component has a default Pulumi module. If customizations are required, users can fork the default module and use it as a baseline, making it easier to adapt to specific requirements.

Summary:

ProjectPlanton provides a unified, consistent approach to deploying cloud infrastructure across platforms. With its standardized declarative APIs, added abstraction, and consistent deployment workflow, ProjectPlanton makes managing cloud infrastructure easier and more efficient, saving time and reducing complexity. Whether deploying a GKE cluster, an AWS Route53 DNS zone, or any other cloud resource, ProjectPlanton offers a streamlined solution that boosts productivity and minimizes the challenges associated with learning different tools for each cloud provider.