Always-On Containers
Nexaa’s Always-On Containers are designed for applications that require a persistent, always-available runtime environment. Unlike event-based or short-lived container jobs, Always-On Containers stay up to continuously serve requests, process events, or maintain stateful connections. They are ideal for APIs, web servers, microservices, and background services that require uninterrupted availability and predictable performance.
Use Cases
Always-On Containers are a good fit for:
-
Web Applications & APIs
Host continuously available APIs and web frontends that need to serve requests at any time. -
Microservices
Build and scale individual services that communicate with each other as part of a distributed architecture. -
3-Tier Applications
Deploy presentation, logic, and data layers in separate containers for modular, maintainable architecture. -
SaaS Applications
Isolate tenant environments by deploying per-customer containers that ensure data separation and uptime. -
Event Processing
Handle real-time streams or event listeners that require constant availability. -
ETL & Data Pipelines
Continuous data ingestion and processing with persistent volumes.
Key Characteristics
-
Always Running
Containers stay online and handle traffic 24/7 until you explicitly stop them. -
Automatic Scaling
Define rules to autoscale based on CPU and/or memory usage and reduces costs during idle time. -
Rolling Updates
Deploy new versions with zero downtime using rolling updates. Traffic is gradually shifted to the new container version once health checks pass. -
Health Checks
Configurable health checks allow Nexaa to route traffic only to healthy containers and roll back if needed. -
Custom Domains
Bring your own domain using a CNAME. See our How-To Guide on Custom Domains for more. -
Private Registries
Use your own container registry — public or private — by supplying credentials with pull permissions. -
Persistent Storage
Mount volumes to store and share data between containers or preserve important files. (See Persistent Storage for details.) -
Logging via Stdout/Stderr
Output from job executions is available via standard logging mechanisms — ideal for debugging or monitoring via external tools.
Underlying Technology
-
OCI-Compatible Runtime
Containers run on an orchestration system built for scale, using industry-standard runtimes behind the scenes. -
Image-Based Deployments
Nexaa does not build Docker images. You must host your image in a registry (e.g., Docker Hub, GitLab, GitHub, or your private registry). -
Environment Variables
Configuration is injected via environment variables — ideal for secrets, endpoints, and runtime settings.
Execution Behaviour
-
Startup
When deployed, your container image is pulled from your registry and started with the provided configuration. -
Auto Scaling
Nexaa monitors CPU and memory utilization and adjusts the number of replicas accordingly. You define min/max limits. -
Lifecycle Management
You can manually stop, or update containers. During updates, rolling deployment ensures uninterrupted availability. -
Health Checks
Optional probes monitor container readiness and liveness, ensuring traffic is only routed to healthy replicas. -
No Build System
You are responsible for maintaining and updating your own image registry. Nexaa pulls but does not build.
Best Practices
-
Keep It Stateless
Design containers to be stateless. Use persistent storage or external databases for state. -
Use Health Checks
Configure readiness and liveness probes to avoid routing traffic to unhealthy containers. -
Minimize Image Size
Smaller images start faster and consume fewer resources. -
Secure Your Registries
Use credentials with the least privilege required to pull your images. -
Scale Down When Idle
Take advantage of “scale to 0” to save costs when the container is not needed at the moment. -
Separate Environments
Use isolated environments for dev, staging, and production to simplify lifecycle and rollback strategies. -
Image Versioning
helps ensure predictable deployments and safe rollbacks by tagging container images with explicit version numbers instead of using mutable tags like latest.
FAQs
Q: Can I use Windows containers?
A: No. Nexaa currently supports Linux-based containers only.
Q: Can I SSH into the container?
A: No. You should log output to stdout/stderr and use external logging for inspection.
Q: How do I update my app?
A: Push a new image to your registry and trigger a rolling update in the Nexaa portal or via API.
Q: Is there a sandbox environment?
A: Not yet. All containers run on production-grade infrastructure.