Developer Center

Services

PowerTools lets you combine and deploy code as a single unit or many units in the form of a service

A service is a directory of code that gets developed, packaged, deployed and operated together as a single unit.

A service may be a single cloud component (microservice) or multiple cloud components (monolith) depending on what type of applications your team ships.

Services can be public (accessible to the open internet) or internal (accessible within your network only).

Apps are "end user" products and can be represented by either a single service or many services, depending on how your team ships software.

Services

Each directory in PowerTools that has a service.yml schema is a service. A service represents a unit of deployment - each piece of a service is run together locally using pt dev, built and packaged together using pt build and deployed together using pt deploy and finally, operated together.

Each PowerTools workspace is linked to a mono repository of code, which contains as many services as you would like.

Create a service

The fastest way to create a service is to run pt new. The new command lets you pick from one of many templates to get a "starter" service.

Alternatively, you can turn any directory of code in your team's code repository into a service by creating a service.yml schema manually.

Service Schemas

A minimal service schema consists simple yaml file with the following format:

# service.yml
group: main

environments:
  - prod
  - stage

components:
  - https-public

You can validate a service schema by running pt schema validate my-svc/service.yml.

Groups are how services are split in a PowerTools workspace. Each service must belong to a single group.

Each service can be deployed to one or more environments in a workspace.

Cloud components

Cloud components represent a piece of the"stack". For instance, a modern application may have a frontend, backend and worker component.

Each service must have at least 1 cloud component.

Depending on whether your team ships microservices microservices or a single monolith, PowerTools fits your workflow.

Please check the cloud components section for supported cloud components.

Cloud infrastructure

When you deploy a service in your workspace, PowerTools creates the correct infrastructure for your service.

As a developer, all you need to worry about is writing code and occasionally updating your service.yml schema when you would like to add new components.

Cloud infrastructure managed by PowerTools gets deployed just like your code. Rollbacks and releases just work.

Life cycle

Software teams strive to ship reliable, scalable and secure software rapidly and regularly. PowerTools empowers anyone on your team to develop, deploy and operate any service in a consistent fashion.

The lifecycle of a service consists of:

  • new - create new services that can be deployed to production in seconds with a single command.
  • develop - preview local code changes to a service.
  • build - run tests, hooks and checks before and package code for consistent deployments.
  • deploy - deploy a service and provision any cloud infrastructure for it.
  • operate - ensure a service is running properly.