App Platform is a Platform-as-a-Service (PaaS) offering that allows developers to publish code directly to DigitalOcean servers without worrying about the underlying infrastructure.
App Platform is a Platform-as-a-Service (PaaS) offering that allows developers to continually publish web applications and static sites directly to DigitalOcean’s hosting servers without needing to set up any of the usual underlying infrastructure, such as servers and runtime environments.
You can connect App Platform directly to your application’s code repository and configure it to monitor your repo for changes, which it immediately deploys. App Platform then hosts the application at a public URL.
App Platform can deploy your Dockerfiles or build image containers for your applications and deploy them.
If your app doesn’t use a Dockerfile, App Platform deploys your app by running the following steps:
For example, if you have a NodeJS application that use the Axios and Mocha packages, App Platform automatically sets up NodeJS and installs those packages in a container image along with your app. App Platform then runs the container on a shared DigitalOcean Kubernetes cluster and makes it publicly accessible.
Additionally, if your application or site requires other elements like databases, worker services, or serverless functions, you can add those components as needed to the app at any time.
The infrastructure of an app deployed to App Platform looks like this:
The infrastructure of a static site deployed to App Platform looks like this:
App Platform is ideal for developers who don’t want to manage and maintain their own servers when hosting a web app. You can deploy a broad variety of different web applications to App Platform, including NodeJS, Python, Go, and Ruby apps. You can also deploy static websites such as Jamstack-style sites, plain HTML websites, and websites that use frameworks like Hugo or Jekyll.
Some common use cases include:
Ruby on Rails apps that use:
sidekiq
).sidekiq
.Django apps that use:
Static sites with dynamic behavior that use:
Components are additional pieces of functionality hosted by DigitalOcean that you can configure and add to your app at anytime. Components include:
When you deploy your application to App Platform, you can deploy your app using either Cloud Native Buildpacks or Dockerfiles:
Dockerfiles - Custom container images that you provide and contain all of the utilities, system libraries, and configurations your application needs to run. Dockerfile images are immutable, meaning your application can only be updated by deploying a new version of the container image. If you want to use Dockerfiles to deploy your app to App Platform, you can store the image file in the root of your code repository or in a DigitalOcean’s Container Registry. Dockerfiles allow you to deploy whatever application you want onto App Platform as long as the container is OCI-compliant (Open Container Initiative).
Cloud Native Buildpacks - Container images built from predefined build packs that contain a popular system libraries and tools specific to your app’s programming language. If you do not provide a container image for your app, App Platform assesses your application’s language and dependencies and builds an OCI-compliant container image from a Cloud Native Buildpack to deploy your application into. Buildpacks are not customizable but contain most common dependencies for modern applications. Deploying your app using buildpacks is fine for most use cases and relieves you from needing to build and manage a container file for your application. See our reference documentation to see which buildpacks we currently support.
When you redeploy an app with its latest changes, App Platform keeps the previous instance of the app running until the new instance is considered healthy and ready to serve traffic.
The deployment flow is as follows:
SIGTERM
signal to shut down and the app can perform any cleanup operations before terminating. The default termination grace period is 30 seconds, but you can change this value in your app’s spec.