Skip to content

Deployment with Kubernetes

Petersen, Anya edited this page May 18, 2020 · 5 revisions

Deployment with Kubernetes

Summary

Cloud-based deployment of OpenStudio Server (OSS) will be updated to leverage the widely adopted open source tools, Kubernetes and Helm. The 3.1 release of OSS, corresponding to the 3.1 release of OpenStudio, will no longer include code to stop and start remote AWS instances. Applications like the Parametric Analysis Tool (PAT) will still be able to connect to cloud-based OSS instances, but management of these instances will be handled independently via Kubernetes and Helm charts. The openstudio-server-helm repo provides documentation and scripts to facilitate deployment and debugging of OSS on a variety of cloud platforms.

Background

Through OSS version 3.0, cloud-based deployments of OpenStudio Server (OSS) have been managed via the openstudio_meta start_remote and stop_remote commands included in the OSS codebase, which are used by Parametric Analysis Tool (PAT) behind the scenes. These deploy Amazon Machine Image (AMI) builds of the OSS stack, including Docker Swarm for stack configuration and management. PAT has provided a front end interface to configure a cluster on AWS and deploy a specified version of OSS. Since this approach was developed, the broader landscape of cloud deployment tools has significantly evolved, with many deployment and configuration challenges solved in a standardized way by the open source tools Kubernetes and Helm.

Kubernetes as a tool for orchestrating Docker-based deployments has matured significantly since OSS cloud-based deployment was first developed. All major cloud providers now support Kubernetes services. Kubernetes allows for dynamic scaling of workers, opening up opportunities for a single OSS deployment to use variable resources as required by the analysis load.

Helm provides a management layer for Kubernetes, allowing for “Helm Charts” to be shared across users. For deployment and management of OSS clusters, this means that any customization can be encapsulated in Helm configuration, decoupled from the main OSS codebase. Moving to Helm for Kubernetes deployment allows users to leverage existing Helm charts for common use cases related to generic Kubernetes clusters, like debugging and status checks. The openstudio-server-helm repo provides documentation and scripts to facilitate deployment and debugging of OSS on a variety of cloud platforms.

How will this change impact me?

Updates to your workflow

If you run OSS via PAT using the "Run Locally" or "Run on Cloud" / "Existing Remote Server" options, your experience will remain unchanged.

If you use the "Run on Cloud" / "Amazon Cloud" option in PAT or deploy to AWS using command line calls to start_remote and stop_remote, you will now be expected to manage your own deployment of OSS. The openstudio-server-helm repo provides resources to support this.

Benefits

  • Deployment to multiple cloud providers, including but no longer limited to AWS. For AWS, updated EC2 resources will now be available.
  • Dynamic allocation of computing resources using Kubernetes.
  • Deployment based on well understood and widely adopted open source tools empowers users to benefit from broader ecosystem of resources for administering, debugging, and profiling clusters.
  • Decoupling of deployment code from the OSS application codebase opens up options for users to customize their deployments.
  • Debugging deployments will no longer require esoteric understanding of the Docker Swarm configuration specifics built into published AMIs.