Clustering and Deployment

Apache Ignite cluster is based on the shared-nothing architecture which implies that all the cluster nodes are equal, independent and self-sufficient, and there is no single point of failure across the cluster.

Ignite nodes can automatically discover each other relying on flexible Discovery SPI component. This helps to scale the cluster out or down when needed and easily.

Apache Ignite can run stand-alone, in a cluster, within Kubernetes and Docker containers, as well as on Apache Mesos and Hadoop Yarn. It can also run on physical servers as well as within virtual environments or clouds. Technically there are no limitations on where the cluster can be deployed.

 
Servers, Clients and Protocols

There are two types of nodes defined in Ignite - client and server nodes. The nodes server a different purpose.

The server nodes act as containers for data and computations. Once interconnected, the server nodes will represent a distributed database (or data grid) that stores the data, participates in queries processing, compute execution, stream processing, etc.

The client nodes, on their turn, provide an ability to connect to the distributed database (a group of server nodes) remotely. Ignite native clients allow using the whole set of Ignite APIs, including SQL, transactions, compute, streaming, services, etc. from the client side.

In addition to the client nodes, you can access the cluster by means of Ignite binary client protocol, JDBC and ODBC drivers, or REST API.

Public Clouds

For public cloud environments, Ignite has native integration with Amazon AWS and Google Compute Engine. For all other cloud environments, Ignite integrates with Apache JClouds that has support for most of the existing cloud providers.

Containers

Ignite can freely run within container environments. Ignite's integration with Docker allows to automatically build and deploy user code into Ignite prior to server startup.

Apache Ignite cluster can also be deployed in Kubernetes that allows automatic deployment and management of containerized applications.

Resource Managers

Ignite provides native integration for Hadoop Yarn,Kubernetes, and Apache Mesos making it very easy to seamlessly deploy Ignite into specific environments and manage it there.

More on Clustering and Deployment
Feature Description
Clients and Servers

There are two types of nodes defined in Ignite - client and server nodes. The nodes server a different purpose:

Self-Healing Cluster

Ignite cluster can self-heal, where clients automatically reconnect in case of failures, slow clients are automatically kicked out, and data from failed nodes is automatically propagated to other nodes in the grid:

Cross-platform Support

Applications can access the cluster from numerous programming languages as well as JDBC/ODBC drivers, and additional protocols:

Zero Deployment

Ignite nodes automatically become aware of custom classes, eliminating the need to explicitly deploy them:

Dynamic Schema Changes

Ignite stores objects in binary format eliminating the need to deploy classes on server nodes:

Stand-Alone Clusters

Ignite nodes can automatically discover each other. This helps to scale the cluster when needed, without having to restart the whole cluster - simply start up new additional nodes and they will automatically join the existing work loads:

Docker Container

Docker allows to package Ignite deployment with all the dependencies into a standard container. Docker automates downloading the Ignite release, deploying users' code into Ignite, and configuring nodes. It also automatically starts up the fully configured Ignite node:

Kubernetes

Apache Ignite cluster can be easily deployed in and maintained by Kubernetes which is an open-source system for automating deployment, scaling, and management of containerized applications:

Public Clouds

For public cloud environments, Ignite has native integration with Amazon AWS and Google Compute Engine. For all other cloud environments, Ignite integrates with Apache JClouds which has support for most of the existing cloud providers.

Apache Mesos

Ignite provides native integration for Apache Mesos making it very easy to deploy into Mesos data centers, such as, for example, Hadoop and Spark environments:

Hadoop Yarn

Ignite provides native integration for Hadoop Yarn making it very easy to deploy into Hadoop and Spark environments: