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.
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.
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.
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.
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.
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 |
|
Kubernetes |
Apache Ignite cluster can be easily deployed in and maintained by |
Public Clouds |
For public cloud environments, Ignite has native integration with |
Apache Mesos |
Ignite provides native integration for |
Hadoop Yarn |
Ignite provides native integration for |