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 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
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
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
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
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.
Datastore components let you deploy SQL databases, caches and more with your service.
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.
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.