Developer Center

Cloud components

Build complex services and apps the way you would like by combining cloud components to represent different pieces of your app.

A cloud component represents a deployment of code in a service. Each service must have at least one cloud component.

Complex apps can be represented by many services with a single cloud component, or a single service with many cloud components.

Static components

Static sites let you deploy static resources, such as JAMstack apps, landing pages and even static assets like JS / CSS bundles or images.

Static sites are provisioned as cloud buckets with a cdn configuration for instant load times and updates.

A basic static site component looks like:

---
components:
  - type: static-public
    route: static.example.com
    cmd: /app/scripts/build-assets

Learn more.

Https components

Https components let you deploy http servers such as web applications, apis and webhooks. You can build these in any language you like, they simply run as Docker containers.

Https components are provisioned using either a public or internal load balancer and native Kubernetes resources.

A basic https component looks like:

components:
  - type: https-public
    route: api.example.com
    cmd: /app/scripts/start

Learn more.

Worker components

Worker components let you run scripts and other ongoing processes. You can build these in any language you like, they simply run as Docker containers.

Worker components are provisioned using native Kubernetes resources.

components:
  - type: worker
    cmd: /app/scripts/run

Learn more.

Cron components

Cron components let you run cron jobs. You can build these in any language you like, they simply run as Docker containers.

components:
  - type: cron
    crontab: '* * * * 15'
    cmd: /app/scripts/run

Learn more.

Serverless components

Serverless components let you run serverless functions to serve traffic. Serverless components run inside your Kubernetes cluster using Knative.

Serverless components are not currently supported on AWS.

You can create custom serverless languages if you would like.

Edge components (coming soon)

Edge components let you deploy code to Fastly Edge, Lambda Edge and Cloudflare Edge.

Datastore components (coming soon)

Datastore components let you deploy SQL databases, caches and more with your service.

How do cloud components work?

When you package a service's code using pt build, a manifest is created for the service at that specific version.

When you deploy a service, the PowerTools deployment version fetches the packaged service.yml schema for the version being deployed and reconciles a graph of cloud infrastructure.

During the deploy, PowerTools will provision any new infrastructure in your cloud accounts by comparing the expected state with the desired state. It does this in a reliable, robust way to ensure services do not

PowerTools uses Kubernetes for serverless and https deployments, and native cloud resources for static sites.

Custom cloud components

PowerTools is designed to support software teams on day one and when they scale and have hundreds of services and collaborators.

Cloud components scale with you. Your team can develop custom cloud components for your developers to use in services. If you would like to learn more, contact us.