Apache Ignite Deployment Options
Apache Ignite® implements the shared-nothing architecture where all cluster nodes are equal and there is no single point of failure or bottleneck. Ignite does NOT have a component such as a master node or name node that is present in most distributed systems.
Ignite nodes discover each other automatically in your environment, and the cluster can be scaled out or in easily.
Apache Ignite can run on bare metal, virtual machines, Docker, Kubernetes, and cloud environments. Technically there are no limitations in regards to deployment environments -- since Ignite nodes can auto-discover each other via the TCP/IP interface, you can launch a cluster anywhere.
Servers, Clients and Protocols
Ignite defines two types of nodes — servers and clients. A server node is the base computational and data storage unit. Typically, you start a single server node per machine or container and it will scale vertically by utilizing all of the CPU, RAM, and other resources available unless specified differently. These resources are pooled and become available to Ignite applications once the server node joins the cluster of other server nodes.
A cluster is a group of server nodes interconnected together in order to provide shared resources like RAM and CPU to your applications.
Client nodes (aka. thick clients) are your connection endpoints and gateways from the application layer to the cluster of server nodes. You always embed a client into your application code and execute the required APIs. The clients shield all the complexity of Ignite’s distributed nature from application developers who will see the cluster as a single unit. It’s as simple as connecting to an RDBMS via a JDBC driver or Spring Data framework.
In addition to the thick clients, you can access the cluster with Ignite thin clients, JDBC and ODBC drivers, or the REST API.