Skip to main content

Compute

Servers or cloud resources to execute tasks, run applications, or perform calculations.


Allocation

An Allocation in Nomad represents the deployment of a task group onto a specific client node. It is responsible for running and monitoring the tasks defined in a Nomad job. Each allocation includes detailed information about the resources used, task states, and the node where the tasks are running. Allocations are key to Nomad's distributed system architecture, ensuring workloads are placed efficiently and reliably. They also include metadata that allows for tracking, troubleshooting, and scaling operations.


Compute Spec

A logical group created by Causely that defines a group of containers within a deployment. For example, if you have a deployment with two containers definitions: C1 and C2 then there would be two compute specs in Causely: CS1 and CS2. Since a deployment controller may create many pods each with an instance of C1 and C2, there are multiple containers within each compute spec.


Container

A Container is a lightweight, standalone execution environment that encapsulates an application and its dependencies. Containers provide portability and consistency across different environments, making them essential for microservices architectures. Containers are isolated from each other and the host system, ensuring security and resource efficiency. Container Orchestration platforms like Kubernetes and Nomad enables containers to be dynamically scheduled, scaled, and orchestrated as part of a broader application architecture.


Controller

A Controller is a control loop that monitors the state of resources within a Kubernetes cluster and works to reconcile them with the defined state. Examples include the Deployment controller, which manages replicas of an application, and the Node controller, which handles node statuses. Controllers are integral to Kubernetes’ self-healing capabilities, automatically restarting, scaling, or reconfiguring resources as needed.


Disk

A disk refers to a virtualized storage resource that provides persistent or temporary data storage for cloud-based virtual machines (VMs) or workloads. Disks can be provisioned in various types, such as SSDs for high performance or HDDs for cost-effective storage. They support scalability, redundancy, and features like snapshots for backups or disaster recovery.


Node

A Node is a physical or virtual machine that serves as a infrastructure component in a Kubernetes cluster. Nodes run pods and are managed by the Kubernetes control plane, providing the compute, memory, and storage resources needed to host pods and containers. Each node runs essential Kubernetes components such as kubelet, kube-proxy, and a container runtime. Nodes can be scaled horizontally to handle increased workloads and are monitored to ensure stability and performance.


Nomad Job

A Nomad Job defines a workload to be scheduled and executed by the Nomad orchestrator. Jobs consist of task groups and task definitions, specifying resource requirements, constraints, and runtime configurations for applications. They can be used to schedule various workloads, from containerized applications to batch jobs. Nomad jobs are declarative, enabling operators to define states and allowing the system to manage deployment and scaling automatically.


Persistent Volume

A Persistent Volume (PV) in Kubernetes is a storage resource provisioned for a cluster, independent of any pod. PVs provide durable storage that retains data beyond the lifecycle of individual pods, supporting stateful applications. They are abstracted from the underlying storage technology, allowing seamless integration with cloud-based or on-premises storage solutions.


Pod

A Kubernetes Pod is a deployable unit in Kubernetes, consisting of one or more containers that share resources such as networking and storage. Pods are ephemeral and designed to host tightly coupled application components. They are often used for scaling and scheduling containers in Kubernetes. Pods can be replicated and distributed across nodes to ensure high availability and load balancing.


Virtual Machine

A Virtual Machine (VM) is a software-based representation of a physical computer, providing an isolated environment for running containerized applications like in Nomad architecture. VMs include a virtualized CPU, memory, storage, and network interface, allowing multiple VMs to run on a single physical machine. They enable efficient utilization of hardware resources and provide strong isolation between workloads. VMs are widely used for server consolidation, development environments, and running legacy applications.


Workload

A Workload refers to a single running instance of an application. Each Workload operates independently and can run concurrently with others to handle varying loads—for example, a Kubernetes Pod, a Nomad Allocation, or a managed service. Causely only includes services as Workloads when the underlying infrastructure is not discovered and they are observed communicating with other services in the environment.