ElasticGrid is a highly available, distributed cluster and application scheduler. It supports data centers along with long-running services, batch jobs, and other critical functions, and can manage virtual machines (VMs) and containers across cloud, on premise, and hybrid environments.
ElasticGrid performs service discovery and service mesh, ensuring secure communication between services.
Overall, ElasticGrid has the following advantages when compared to Kubernetes:
- Better performance for GigaSpaces products - up to 20% faster
- Broader installation options - supports VMs in addition to Docker containers
- Supports more environments - can be used in hybrid environments that include both cloud and on premise
- Simplified networking and security configuration
- Lower cost for worker nodes (GKE/EKS/AKS)
In addition to the above advantages, ElasticGrid has the following functionality:
- Provides auto-provisioning and installation with built-in monitoring. You benefit from declarative software installation and orchestration, so you can focus on defining the type of software you want to install and its requirements in terms of memory and CPU, and ElasticGrid installs and manages your software on the cluster according to the constraints that you defined. As the cluster changes, ElasticGrid makes adjustments, so your infrastructure is always suited to your workload demands.
- Collects metrics on the host machines and all the software defined on the nodes, and displays them using built-in Grafana dashboards. ElasticGrid uses standard metrics tools, so you can easily design your own dashboards in addition to those that GigaSpaces provides.
- Supports rolling upgrades, so there is zero downtime of the system. You can use the Grafana dashboards to monitor performance before and after upgrade, or during canary deployment of your software.
- Offers distributed tracing using Zipkin, so you can troubleshoot latency issues.
ElasticGrid has a master-worker architecture. The master is the brain of the cluster and manages all the jobs and workers, along with scheduling and tasks. There can be multiple masters in a cluster.
Workers communicate with the masters using Remote Procedure Calls (RPC). When a worker registers with a master, it provides information about itself; available resources, attributes, and installed drivers. The master can then use this information to decide how to schedule and allocate tasks among the workers.
Single Region Topology
This is how the master-worker relationship may look in a single-region topology.
In this topology, one master is the leader, and any other masters are followers. The master nodes accept jobs, manage the worker nodes, and allocate tasks among them. The leader replicates data to the followers, and the followers forward updates to the leader. The worker nodes are data centers, and there may be more than one data center registered with a master node.
Deploying GigaSpaces on ElasticGrid
The gsctl utility is used to create the ElasticGrid cluster and deploy GigaSpaces, much like using Helm to install GigaSpaces, and deploy services and Spark jobs, on Kubernetes. For information on how to deploy GigaSpaces on ElasticGrid, see Creating a GigaSpaces Cluster in the Cloud.