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.
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
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.
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.
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 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.
Please check the cloud components section for supported cloud components.
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.
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: