Cloud Deployment

Leverage the power of the cloud with AWS, Azure, and Google Cloud Run ensuring high availability, data security, and automatic scalability in conjunction with the Form.io platform.

Getting Started

Review the Prepare Your Environment section of the Self-Hosted Deployment guide before continuing with the Cloud Deployment walkthrough. It is important to be familiar with some of the general concepts there for an effective coud deployment.

Preparing The Deployment Files

Before deploying an application, first define or construct the files necessary to run the Form.io containers. There are many tools and services available to accomplish this, and the decision to choose a particular tool may be determined by the existing toolchain or infrastructure.

Docker Compose

Docker-Compose is a tool that allows users to define and manage Form.io's multi-container application and is used in conjunction with the Docker infrastructure. It can simplify the the deployment and definition of container dependencies and configurations. Docker-Compose can define Form.io's services, networks, and variables within a YAML file called docker-compose.yml.

To use docker-compose, refer to the process described in the Readme of the Form.io Github Repo Deploy Repo. The process will accomplish the following steps to begin the deployment:

  1. Install the formio-deploy tool.

  2. Configure the appropriate environment variables.

  3. Create the appropriate deployment package.

Terraform

Terraform is an open-source infrastructure as code (IaC) tool that allows developers to describe their entire infrastructure as code and build resources across different providers. Terraform supports a wide range of cloud providers, including Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), and many others. It can provision and manage infrastructure resources across multiple cloud platforms or on-premises data centers. Terraform will build all these resources across all these providers in parallel.

Helm

Helm is a package manager for Kubernetes, designed to simplify the deployment and management of applications on a Kubernetes cluster. It provides a framework for packaging, distributing, and managing Kubernetes resources, making it easier to define, install, and upgrade complex applications. With Helm, users can create and share packages called "charts" that contain all the necessary Kubernetes manifests, configurations, and dependencies for deploying an application. A chart is a collection of files that describe the resources required to run a specific application or service, such as pods, deployments, services, and configmaps.

As Terraform and Helm Charts are specific to each customer's deployment, Form.io does not explicitly provide these files.

Please contact [email protected] for any questions or support regarding Terraform or Helm Charts.

Database Options

The Form.io platform requires MongoDB or MongoDB-compatible DB (such as DocumentDB or CosmosDB). Most cloud providers support multiple appropriate options. Compare the different systems before deploying.

Note: When using docker-compose, MongoDB is automatically installed during the deployment process.

AWS Cloud Options

Azure Cloud Options

Network Considerations

VPC

When deploying with a VPC, it is important to ensure any instances in a private subnet can connect to services outside the VPC. This is typically achieved using a NAT gateway. The process for configuring a NAT gateway will vary according to the cloud provider chosen. Refer to the provider's documentation for help:

Additional Information

Be sure to review the Enterprise Server and PDF Server documentation for more information on things like Environment Variables and DB connection Strings.

Last updated

Was this helpful?