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.
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.
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?
How to scale a container deployment with more replicas or resources?
How to set up an external connection outside of the cluster?
How to set up environment variables and secrets?
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"
}
});