extend ../_components/base.pug

block pagetitle
    | Deployment Options  

block css 
    link(rel="stylesheet", href="../css/native-persistence.css?ver=" + config.version)
    link(rel="stylesheet", href="../css/deployment-opts.css?ver=" + config.version)



block main
    - global.pageHref = "features"
    - config.hdrClassName = "hdr__blue"
    include ../_components/header.pug


    section.innerhero
        .container.innerhero__cont
            .innerhero__main
                .innerhero__pre.pb-3 Apache Ignite
                h1.h1.innerhero__h1.innerhero__mega Deployment <br>Options
            img.innerhero__pic.innerhero__pic--deploy(src="/img/features/deployment/hero.svg", alt="Deployment Options")
    // /.innerhero


    section.deploymenytext.container.flexi 
        .deploymenytext__main
            p Apache Ignite&reg; implements the shared-nothing architecture where all cluster nodes are equal and there is&nbsp;no&nbsp;single point of&nbsp;failure or&nbsp;bottleneck. Ignite does NOT have a&nbsp;component such as&nbsp;a&nbsp;master node or&nbsp;name node that is&nbsp;present in&nbsp;most distributed systems.
            
            p Ignite nodes discover each other automatically in&nbsp;your environment, and the cluster can be&nbsp;scaled out or&nbsp;in&nbsp;easily.

            p.pb-4 Apache Ignite can run on&nbsp;bare metal, virtual machines, Docker, Kubernetes, and cloud environments. Technically there are no&nbsp;limitations in&nbsp;regards to&nbsp;deployment environments&nbsp;&mdash; since Ignite nodes can auto-discover each other via the TCP/IP interface, you can launch a&nbsp;cluster anywhere.

            h3.h5.pt-2.pb-2.deploymenytext__title Servers, clients and protocols
            p Ignite defines two types of&nbsp;nodes&nbsp;&mdash; servers and clients. A&nbsp;server node is&nbsp;the base computational and data storage unit. Typically, you start a&nbsp;single server node per machine or&nbsp;container and it&nbsp;will scale vertically by&nbsp;utilizing all of&nbsp;the CPU, RAM, and other resources available unless specified differently. These resources are pooled and become available to&nbsp;Ignite applications once the server node joins the cluster of&nbsp;other server nodes.
            
            p A&nbsp;cluster is&nbsp;a&nbsp;group of&nbsp;server nodes interconnected together in&nbsp;order to&nbsp;provide shared resources like RAM and CPU to&nbsp;your applications.

            p Client nodes (aka. thick clients) are your connection endpoints and gateways from the application layer to&nbsp;the cluster of&nbsp;server nodes. You always embed a&nbsp;client into your application code and execute the required APIs. The clients shield all the complexity of&nbsp;Ignite&rsquo;s distributed nature from application developers who will see the cluster as&nbsp;a&nbsp;single unit. It&rsquo;s as&nbsp;simple as&nbsp;connecting to&nbsp;an&nbsp;RDBMS via a&nbsp;JDBC driver or&nbsp;Spring Data framework.

            p In&nbsp;addition to&nbsp;the thick clients, you can access the cluster with Ignite thin clients, JDBC and ODBC drivers, or&nbsp;the REST API.


        aside.deploymenytext__picwrap.picwrap 
            img.deploymenytext__pic(src="/img/features/deployment/deploy-pic.svg", alt="")


    section.native-bottom.container
        .native-bottom__grid 
            article.nativebotblock
                h3.h4.nativebotblock__title
                    img(src="/img/features/native-rocket.svg", alt="").nativebotblock__icon
                    span Ready to Start?
                p.nativebotblock__text Discover our quick start guide and build <br>your first application in 5-10 minutes
                a.nativebotblock__link.arrowlink(href="https://ignite.apache.org/docs/latest/", target="_blank") Quick Start Guide
            article.nativebotblock.nativebotblock--learn
                h3.h4.nativebotblock__title
                    img(src="/img/features/native-docs.svg", alt="").nativebotblock__icon
                    span Want To Learn More?
                p.nativebotblock__text Read Native Persistence article
                a.nativebotblock__link.arrowlink(href="/arch/native-persistence.html") Native Persistence Article




