blob: b9769ec5489e962382982de5c49ad4d10514d5aa [file] [log] [blame]
<!--
▄▄▄ ██▓███ ▄▄▄ ▄████▄ ██░ ██ ▓█████ ██▓ ▄████ ███▄ █ ██▓▄▄▄█████▓▓█████
▒████▄ ▓██░ ██▒▒████▄ ▒██▀ ▀█ ▓██░ ██▒▓█ ▀ ▓██▒ ██▒ ▀█▒ ██ ▀█ █ ▓██▒▓ ██▒ ▓▒▓█ ▀
▒██ ▀█▄ ▓██░ ██▓▒▒██ ▀█▄ ▒▓█ ▄ ▒██▀▀██░▒███ ▒██▒▒██░▄▄▄░▓██ ▀█ ██▒▒██▒▒ ▓██░ ▒░▒███
░██▄▄▄▄██ ▒██▄█▓▒ ▒░██▄▄▄▄██ ▒▓▓▄ ▄██▒░▓█ ░██ ▒▓█ ▄ ░██░░▓█ ██▓▓██▒ ▐▌██▒░██░░ ▓██▓ ░ ▒▓█ ▄
▓█ ▓██▒▒██▒ ░ ░ ▓█ ▓██▒▒ ▓███▀ ░░▓█▒░██▓░▒████▒ ░██░░▒▓███▀▒▒██░ ▓██░░██░ ▒██▒ ░ ░▒████▒
▒▒ ▓▒█░▒▓▒░ ░ ░ ▒▒ ▓▒█░░ ░▒ ▒ ░ ▒ ░░▒░▒░░ ▒░ ░ ░▓ ░▒ ▒ ░ ▒░ ▒ ▒ ░▓ ▒ ░░ ░░ ▒░ ░
▒ ▒▒ ░░▒ ░ ▒ ▒▒ ░ ░ ▒ ▒ ░▒░ ░ ░ ░ ░ ▒ ░ ░ ░ ░ ░░ ░ ▒░ ▒ ░ ░ ░ ░ ░
░ ▒ ░░ ░ ▒ ░ ░ ░░ ░ ░ ▒ ░░ ░ ░ ░ ░ ░ ▒ ░ ░ ░
░ ░ ░ ░░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░
-->
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<link rel="canonical" href="https://ignite.apache.org/arch/clustering.html" />
<!--#include virtual="/includes/scriptshead.html" -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
<title>Deploy Anywhere - Apache Ignite</title>
<meta name="description"
content="Apache Ignite implements the shared-nothing architecture when all the cluster nodes are equal
and there is no single point of failure or bottleneck. You can run Apache Ignite on bare metal, virtual
machines, Docker, Kubernetes, and cloud environments."/>
<!--#include virtual="/includes/styles.html" -->
</head>
<body>
<!--#include virtual="/includes/header.html" -->
<article>
<header>
<div class="container">
<h1>Apache Ignite <strong>Deployment Options</strong></h1>
</div>
</header>
<div class="container">
<p>
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.
</p>
<img class="img-responsive diagram-right" src="/images/svg-diagrams/ignite_cluster.svg" alt="Apache Ignite cluster diagram" />
<p>
Ignite nodes discover each other automatically in your environment, and the cluster can be
scaled out or in easily.
</p>
<p>
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.
</p>
<h2>Servers, Clients and Protocols</h2>
<p>
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.
</p>
<p>
A cluster is a group of server nodes interconnected together in order to provide shared resources
like RAM and CPU to your applications.
</p>
<p>
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.
</p>
<p>
In addition to the thick clients, you can access the cluster with Ignite thin clients,
JDBC and ODBC drivers, or the REST API.
</p>
<div class="jumbotron jumbotron-fluid">
<div class="container">
<div class="title display-6">Learn More</div>
<hr class="my-4">
<div class="row">
<div class="col-sm-6">
<ul>
<li><a href="/docs/latest/clustering/clustering">Ignite Clustering <i class="fas fa-angle-double-right"></i></a></li>
<li><a href="/docs/latest/clustering/tcp-ip-discovery">Discovery SPI Configuration <i class="fas fa-angle-double-right"></i></a></li>
</ul>
</div>
<div class="col-sm-6">
<ul>
<li><a href="/docs/latest/clustering/network-configuration">Communication SPI Configuration <i class="fas fa-angle-double-right"></i></a></li>
<li><a href="/features/multilanguage.html">Multi-Language Support <i class="fas fa-angle-double-right"></i></a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</article>
<!--#include virtual="/includes/footer.html" -->
<!--#include virtual="/includes/scripts.html" -->
</body>
</html>