Skip to content

Create and Launch

Creating and launching an application in Nullstone is very simple and does not require infrastructure expertise. On this page, we will walk through the basic steps required. The following pages in this section provide additional guidance for connecting to databases, setting environment variables, and more.

Create Application

From the Applications page in your stack, click on Create Application and provide some information about your application.

Create Application

Name and Application Type

Provide a name for your application. It can contain lowercase letters, numbers, and hyphens. Nullstone supports 4 different types of applications.

Container

Container applications allow you to deploy as a Docker container and host it in a cluster such as Kubernetes or Fargate. By packaging your application as a container, you can use any language or framework. This also makes it very portable and can be hosted as a serverless application as well. This option provides a wide range of options for CPU, memory, and autoscaling.

Static Site

Select the option for a static site if your application requires no server-side code. Typical uses for this option are html/css websites, file shares, or SPAs such as React, Vue, or Angular. For SPAs, you can enable history mode to ensure the proper navigation in your application. Static sites provide public access via a CDN.

Serverless

Serverless applications are a great way to deploy simple workloads. They are limited to a single function with each function request having a limited timeout. For example, an AWS Lambda function can only run for 15 minutes. If you need to run a very long-running process, it is best to use a container application instead. This option is great for individual api endpoints or short background jobs. Combine multiple serverless applications to support event driven applications such as workflows, state machines, data pipelines, and other more complex systems.

Server

This option allows you to launch a virtual machine that you can manage yourself. Typical configuration management options include Ansible, Chef, or Puppet. This can be the most complex option because you must install and maintain dependencies as well as do your own code deployment. However, this is often a great option if you have specific needs such as large memory or cpu. Many AI or machine learning applications can make great use of this option.

Identifying Your Application

Next, provide some information about your application in order to easily identify it. Both Repo and Framework provide important contextual information to your team. This information is displayed throughout Nullstone and makes it easy to find your application. Application Repo

Code Deployment

How would you like to deploy your code? By default, Nullstone allows you to deploy your code using your own CI/CD pipeline. This allows you to setup your own test suites and approval processes before deploying code. Check out the guide on custom code deployment for instructions, examples, and tools. Examples for CircleCI and GitHub Actions are provided and make it easy to get started. Code Deployment

Auto Deploy

If you would like to have your code automatically deployed with every code commit, select one of the auto-deploy options. You can either auto-deploy your code to just the first environment (typically dev) or to all environments. For each environment, choose which branch should be deployed to each. As you make commits to each branch, Nullstone will automatically keep each environment up to date with the latest code.

Code Deployment - Auto Deploy

Launch Your Application

After creating your application, you are taken to the application overview page. From here, you can launch your application for each environment.

Application Overview

Configuration

In the example, we have chosen a Container application, so we are prompted to provide inputs for service count, cpu, memory, image, and port. For other application types, we would be prompted with different inputs.

Launch Application

Capabilities and Environment Variables

Capabilities allow you to enhance your applications with additional functionality and connectivity to other infrastructure. These capabilities provide things like access to a database, fronting the application with a Load Balancer, and injecting a generated JWT key. When launching your application, you can review the capabilities that will be launched with your application. To learn more about capabilities, check out the Capabilities docs.

As you launch your application for each environment, you can also configure environment variables. Environment variables allow you to provide environment specific values to your application, including secrets that should not be shared. In the example, we have added a STRIPE_API_KEY. To learn more about environment variables, check out the Environment Variables docs.

Capabilities and Environment Variables

After reviewing and clicking the Launch button at the bottom of the page, all the infrastructure and configuration for your application will be launched.