Skip to content

Runway Platform Service

Runway is an experimental PaaS for stage groups to deploy and operate services. Runway is currently built with GitLab CI/CD, GitLab Environments, and GCP Cloud Run.

Not to be confused with a service that is managed by Runway, e.g. AI Gateway.

For diagram, refer to architecture blueprint.

Runway is a platform, so services determine deployment frequency. Performance primarly depends on following factors:

Due to versioning releases in source projects, these SLIs can be lagging indicators that do not occur until subsequent deployment is triggered by a service.

Runway is a platform, so services determine workload rightsizing. Scalability primarly depends on following factors:

  • Resources (CPU, Memory)
  • Instances (Minimum, Maximum, Concurrency)

When investigating short-term saturation with a service deployed to Runway, you may need to scale on behalf of service owner. Long-term saturation resources are monitored with capacity planning.

By default, Runway will scale up instances to handle all incoming requests. When a service is not receiving any traffic, instances are scaled down to zero.

The minimum number of instances of a service. To update, set configuration in runway.yml of source project.

Recommendation: Use this setting if you need to reduce cold start latency for a service.

The maximum number of instances of a service. To update, set configuration in runway.yml of source project.

Recommendation: Use this setting if you need to limit the number of connections to a backing service, e.g. database.

The maximum number of concurrent requests per instance of the service. To update, set configuration in runway.yml of source project. When tuning concurrency, consider increasing memory.

Recommendation: Use this setting if you need to either optimize cost efficiency, or limit concurrency of a service.

By default, Runway will provision lightweight CPU and memory resources limits of 1000m and 512Mi, respectively. When a resource limit is exceeded, instance is terminated.

The memory limit of an instance. To update, set configuration in runway.yml of source project.

The CPU limit of an instance. To update, set configuration in runway.yml of source project.

Provide additional CPU during instance startup time. To update, set configuration in runway.yml of source project.

Recommendation: Use this setting if you need to reduce cold start latency for a service.

Runway provides capacity planning for saturation resources of a service. To view forecasts, refer to Tamland page.

Runway is a platform that depends on GitLab.com and GCP, so deployments cannot occur when components are unavailable.

Runway is a platform, so services determine region availability. Runway supports multi-region deployments across 40 GCP regions. The default region is us-east1. For more information, refer to documentation.

Runway is a platform, so services could be impacted by Cloud Run quota limits. To request quota increase, refer to GCP console.

Runway is a platform, so services determine reliability. Cloud Run metrics are made available to services by scrapping with Stackdriver exporter.

When investigating issues with a service deployed to Runway, you may need to drill-down on behalf of service owner:

To rollback a deployment for Runway service, you have two options:

  1. Revert MR, or
  2. Re-run previous deployment job (Example)

By default, Runway automatically promotes to production after delay of 10 minutes. To promote sooner, you can manually play production Promote job.

Runway secrets are stored in Vault and integrated with Secret Manager. To rotate a secret, refer to documentation.