mirror of
https://github.com/graphql-hive/console
synced 2026-04-21 14:37:17 +00:00
16 lines
1.1 KiB
Markdown
16 lines
1.1 KiB
Markdown
|
|
## Deployment
|
||
|
|
|
||
|
|
Deployment is based on NPM packages. That means we are bundling (as much as possible) each service or package, and publish it to the private GitHub Packages artifactory.
|
||
|
|
|
||
|
|
Doing that allows us to have a simple, super fast deployments, because we don't need to deal with Docker images (which are heavy).
|
||
|
|
|
||
|
|
We create an executable package (with `bin` entrypoint) and then use `npx PACKAGE_NAME@PACKAGE_VERSION` as command for a base Docker image of NodeJS. So instead of building a Docker image for each change, we build NPM package, and the Docker image we are using in prod is the same.
|
||
|
|
|
||
|
|
Think of it as Lambda (bundled JS, runtime is predefined) without all the crap (weird cache, weird pricing, cold start and so on).
|
||
|
|
|
||
|
|
### How to deploy?
|
||
|
|
|
||
|
|
We are using Pulumi (infrastructure as code) to describe and run our deployment. It's managed as GitHub Actions that runs on every bump release by Changesets.
|
||
|
|
|
||
|
|
So changes are aggregated in a Changesets PR, and when merge, it updated the deployment manifest `package.json`, leading to a deployment of only the updated packages to production.
|