Containers as a Service

Containers

A container is a bundle of software containing an application's code together with the related configuration files, libraries, and the dependencies required for the app to run. Developers choose containerized code thanks to its agility, portability and rapid scalability.

Run and schedule containers

Easily link Northflank with GitHub, Bitbucket, or GitLab (both gitlab.com and self-hosted) and build or build and deploy your containers. Choose from your containers or use existing images from Container Registries. You can deploy existing Docker and OCI compliant images on Northflank from public or private repositories. Northflank completely automates your build and deployment of containers, either ephemeral or persistent.

As things start to scale, select from a range of plans starting at $2.70 per month.

Need to deploy containers on your Kubernetes cluster? Click here.

Containers on Northflank

CI/CD

Deploy latest setting on a deployment service will switch between deploying a specific build or linking to a branch or pull request.

Ready for scale

Horizontal and vertical scaling with replicas and increased compute capacity.

Observe and Monitor

Observe your container runs and builds in real-time with log tailing, search and performance metrics.

CMD Override

Set a custom docker startup command to override default configuration.

Advanced networking

Secure private network, enable public load-balancing and connect locally with Northflank CLI proxy.

Health Checks

Configure HTTP(S), TCP and CMD liveness/readiness health checks to monitor the status of your deployed services.

Deploy external Docker images

Choose an external Docker image for deployment so you can run any pre-built image.

Environment variables

Make environment variables available at runtime. Variables are stored and injected securely.

Volumes

Set up persistent and stateful containers by adding volumes to your depoyment service.

Containers on Northflank dashboard

Why use containerized code

  • Once code is designed to run inside a container, deployment both on-premises and in the cloud is done in the same way.
  • Provides a consistent deployment environment, therefore reducing environment variables.
  • Keep code neatly separated, to create a microservices infrastructure.
  • Isolated services and applications, making applications more secure.
  • Maximise scalability and availability

Container image registries

  • Amazon Elastic Container Registry
  • Google Cloud Container Registry
  • GitHub
  • GitLab
  • Northflank
  • Quay

Container image builders

  • Docker
  • BuildKit
  • Kaniko
  • Buildpacks
  • Paketo Buildpacks
  • CNBs - Cloud Native Buildpacks

Platform Teams

Northflank makes it easier for infrastructure and platform teams to focus on levelling up the developer experience for their teams building great apps.

Common Containers questions among developers and platform teams:

How to set up health checks for a container?

Health checks can be configured so that incoming traffic is only routed to available and healthy containers. Under health checks, you can configure the type, path, protocol and frequency with which the checks will run.

How to scale a container deployment with more replicas or resources?

When creating a service, under Resources you can choose the compute plan (memory and virtual CPU), storage and replicas. Once the service is created, under resources you will always be able to change these to adapt to your needs.

How to set up an external connection outside of the cluster?

When creating a service, under Networking you can choose the ports at which the service will be accessible. You can choose “Publicly expose this port to the internet”, your service will be given a public URL and it will be externally accessible.

How to set up environment variables and secrets?

You can inject build arguments and environment variables to your services to be injected at build or runtime respectively. The editor for both allows you to view arguments and variables, edit them as key-value pairs, or in JSON or ENV format.

Containerized Applications on Kubernetes with Northflank

Northflank makes building containerized images, either from public container registries or your VCS account, very simple.

The complex and challenging Kubernetes container orchestration is immediately usable via the Northflank UI and API.

Immediately set up CI/CD flows, scale the RAM and CPU resources to meet your requirements, and customise the exposed ports.


Persistent and stateful containers on Northflank

Volumes are great for persisting data generated by and used by containers. On Northflank, volumes can be attached to services to persist data across restarts.


Run a container with an image on DockerHub via API

await apiClient.create.service.deployment({
  data: {
    "name": "Example Service",
    "description": "A service description",
    "deployment": {
      "instances": 1,
      "external": {
        "imagePath": "nginx:latest"
      }
    },
    "ports": [
      {
        "name": "port-1",
        "internalPort": 8080,
        "public": true,
        "domains": [
          "app.example.com"
        ],
        "protocol": "HTTP"
      }
    ],
    "runtimeEnvironment": {
      "VARIABLE_1": "abcdef"
    }
  }    
});

Scale containers via API

await apiClient.scale.service({
  data: {
    "instances": 1,
    "deploymentPlan": "nf-compute-20"
  }    
});