github.com/ferranbt/nomad@v0.9.3-0.20190607002617-85c449b7667c/website/source/index.html.erb (about)

     1  ---
     2  description: |-
     3    Nomad is a highly available, distributed, data-center aware cluster and
     4    application scheduler designed to support the modern datacenter with support
     5    for long-running services, batch jobs, and much more.
     6  ---
     7  
     8  <header>
     9    <div class="container hero">
    10      <div class="row">
    11        <div class="col-md-offset-2 col-md-8">
    12          <%= inline_svg "logo-hashicorp.svg", height: 120, class: "logo" %>
    13  
    14          <h1>Deploy and Manage Any Containerized, Legacy, or Batch Application</h1>
    15  
    16          <a class="button primary" href="/intro/index.html">Get Started</a>
    17          <a class="button" href="/downloads.html">Download <%= latest_version %></a>
    18        </div>
    19      </div>
    20    </div>
    21  </header>
    22  
    23  <section id="features" class="marketing green">
    24    <div class="container">
    25      <div class="row">
    26        <div class="col-sm-12">
    27          <h2>Simple and Lightweight</h2>
    28          <p class="lead">
    29            Nomad is an easy-to-use, flexible, and performant workload orchestrator that can
    30            deploy a mix of microservice, batch, containerized, and non-containerized applications.
    31            Nomad is easy to operate and scale and has native Consul and Vault integrations.
    32          </p>
    33        </div>
    34      </div>
    35      <div class="row">
    36        <div class="col-sm-6">
    37          <h3>1. Declare Jobs</h3>
    38          <p>
    39            Users compose and submit high-level job files. Nomad handles the
    40            scheduling and upgrading of the applications over time.
    41          </p>
    42          <p>
    43            This flexibility makes it easy to deploy one container, dozens of
    44            containers, or even <a
    45            href="https://www.hashicorp.com/c1m/">millions</a>.
    46          </p>
    47        </div>
    48        <div class="col-sm-6">
    49          <h3>2. Plan Changes</h3>
    50          <p>
    51            With built-in dry-run execution, Nomad shows what scheduling decisions
    52            it will take before it takes them. Operators can approve or deny these
    53            changes to create a safe and reproducible workflow.
    54          </p>
    55        </div>
    56      </div>
    57      <div class="row">
    58        <div class="col-sm-6">
    59          <h3>3. Run Applications</h3>
    60          <p>
    61            Nomad runs applications and ensures they keep running in failure
    62            scenarios. In addition to long-running services, Nomad can schedule
    63            batch jobs, distributed cron jobs, and parameterized jobs.
    64          </p>
    65        </div>
    66        <div class="col-sm-6">
    67          <h3>4. Monitor Progress</h3>
    68          <p>
    69            Stream logs, send signals, and interact with the file system of
    70            scheduled applications. These operator-friendly commands bring the
    71            familiar debugging tools to a scheduled world.
    72          </p>
    73        </div>
    74      </div>
    75    </div>
    76  </section>
    77  
    78  <section id="hybrid-multi-cloud" class="marketing">
    79    <div class="container">
    80      <div class="row">
    81        <div class="col-sm-12">
    82          <span class="callout">Combine</span>
    83          <h2>Hybrid &amp; Multi Cloud</h2>
    84          <p class="lead">
    85            As more organizations adopt cloud technologies, the desire to run in
    86            multiple datacenters and multiple regions becomes critical. Nomad can
    87            span public and private clouds and treat all your infrastructure as a
    88            pool of resources.
    89          </p>
    90        </div>
    91      </div>
    92  
    93      <div class="row">
    94        <div class="col-sm-12">
    95          <%= inline_svg "feature-public-private-clouds.svg" %>
    96        </div>
    97      </div>
    98  
    99      <div class="row">
   100        <div class="col-sm-6">
   101          <h3>Hybrid Cloud</h3>
   102          <p>
   103            Nomad bridges the gap between the public and private cloud, creating a
   104            unified interface for developers to run any application on any
   105            infrastructure. Easily run services across your internal private cloud
   106            and external public cloud transparently to application developers.
   107          </p>
   108        </div>
   109        <div class="col-sm-6">
   110          <h3>Multi Cloud</h3>
   111          <p>
   112            As more organizations adopt cloud technologies, the desire to run
   113            applications simultaneously across multiple clouds increases. Nomad
   114            combines the power of all cloud providers into a single, unified
   115            interface for deploying applications and running services.
   116          </p>
   117        </div>
   118      </div>
   119    </div>
   120  </section>
   121  
   122  <section id="simplify" class="marketing green">
   123    <div class="container">
   124      <div class="row">
   125        <div class="col-sm-12">
   126          <span class="callout">Maintain</span>
   127          <h2>Simplify Operations</h2>
   128          <p class="lead">
   129            Nomad simplifies operations by supporting several deployment
   130            strategies to safely upgrade jobs, automatically handling machine
   131            failures, and providing a single workflow to deploy applications.
   132          </p>
   133        </div>
   134      </div>
   135  
   136      <div class="row">
   137        <div class="col-sm-offset-5 col-sm-6">
   138          <h3>Rolling Deploys</h3>
   139        </div>
   140      </div>
   141      <div class="row">
   142        <div class="col-sm-5" id="feature-rolling-deploys">
   143          <%= inline_svg "feature-rolling-deploys.svg" %>
   144        </div>
   145        <div class="col-sm-7">
   146          <p>
   147            In order to update an application while reducing downtime, Nomad
   148            provides a built-in mechanism for rolling upgrades. Operators specify
   149            the rate at which they would like to upgrade their service in the
   150            declarative job file, plan the changes, and submit the new job. Nomad
   151            then updates the service to the newest version using task health and
   152            Consul health check information to ensure replacement allocations are
   153            healthy. With full control over the update strategy, rolling upgrades
   154            make application deployments simple and safe.
   155          </p>
   156        </div>
   157      </div>
   158  
   159      <div class="row">
   160        <div class="col-sm-12">
   161          <h3>Blue/Green Deployments</h3>
   162        </div>
   163      </div>
   164      <div class="row">
   165        <div class="col-sm-7">
   166          <p>
   167            Nomad supports native blue/green and canary deployments through the
   168            declarative job file syntax. Instead of doing a rolling upgrade of the
   169            existing allocations, the new version of the group is deployed along
   170            side the existing set. While this duplicates the resources required
   171            during the upgrade process, it allows very safe deployments as the
   172            original version of the group is untouched till the operator promotes
   173            the new version.
   174          </p>
   175        </div>
   176        <div class="col-sm-5">
   177          <%= inline_svg "feature-blue-green.svg" %>
   178        </div>
   179      </div>
   180  
   181      <div class="row">
   182        <div class="col-sm-offset-5 col-sm-6">
   183          <h3>Automatic Machine Failures</h3>
   184        </div>
   185      </div>
   186      <div class="row">
   187        <div class="col-sm-5">
   188          <%= inline_svg "feature-machine-failure.svg" %>
   189        </div>
   190        <div class="col-sm-7">
   191          <p>
   192            Because it knows the state of all nodes and applications, if a
   193            node becomes unhealthy, Nomad will automatically reschedule the
   194            applications that were previously running on the unhealthy host
   195            onto a new, healthy host if capacity exists. As new clients are
   196            added to the cluster, they can share the responsibility of
   197            running applications and services.
   198          </p>
   199        </div>
   200      </div>
   201    </div>
   202  </section>
   203  
   204  <section id="flexible-workloads" class="marketing">
   205    <div class="container">
   206      <div class="row">
   207        <div class="col-sm-12">
   208          <span class="callout">Support</span>
   209          <h2>Flexible Workloads</h2>
   210          <p class="lead">
   211            In addition to supporting Linux, Windows, and Mac, Nomad has
   212            extensible support for containerized, virtualized, and standalone
   213            applications. Easily start Docker containers, VMs, or application
   214            runtimes like Java.
   215          </p>
   216        </div>
   217      </div>
   218  
   219      <div class="row">
   220        <div class="col-sm-12">
   221          <%= inline_svg "feature-flexible-workloads.svg" %>
   222        </div>
   223      </div>
   224  
   225      <div class="row">
   226        <div class="col-sm-6">
   227          <h3>Diverse Technologies</h3>
   228          <p>
   229            By supporting a wide range of technologies such as Docker, rkt, and
   230            LXC, Nomad does not force you into a single technology. Easily use
   231            multiple container or virtualization runtimes simultaneously.
   232            Applications with their own runtime such as Java or Go can be
   233            scheduled directly without the overhead of a container.
   234          </p>
   235        </div>
   236        <div class="col-sm-6">
   237          <h3>Multi OS</h3>
   238          <p>
   239            The Nomad client runs on Linux, Windows, and Mac OS. This diverse
   240            operating system support enables using the same application scheduler
   241            for all your scheduling and runtime needs.
   242          </p>
   243        </div>
   244      </div>
   245    </div>
   246  </section>
   247  
   248  
   249  <section id="binpacking" class="marketing black">
   250    <div class="container">
   251      <div class="row">
   252        <div class="col-sm-12">
   253          <span class="callout">Maximize</span>
   254          <h2>Increase Utilization &amp; Reduce Costs</h2>
   255          <p class="lead">
   256            Nomad uses bin packing to optimize application placement onto servers
   257            to maximize resource utilization, increase density, and help reduce
   258            costs.
   259          </p>
   260        </div>
   261      </div>
   262  
   263      <div class="row">
   264        <div class="col-sm-12">
   265          <%= inline_svg "feature-binpacking.svg" %>
   266        </div>
   267      </div>
   268  
   269      <div class="row">
   270        <div class="col-sm-6">
   271          <h3>Increase Density</h3>
   272          <p>
   273            Nomad places applications and services based on a bin packing
   274            algorithm, which is used to optimize the resource utilization and
   275            density of applications. Nomad automatically augments the bin-packing
   276            algorithm with anti-affinity rules to avoid colocating instances of
   277            the same service to reduce the probability of correlated failures.
   278          </p>
   279        </div>
   280        <div class="col-sm-6">
   281          <h3>Reduce Costs</h3>
   282          <p>
   283            By maximizing resource utilization, Nomad can help remove unused or
   284            under-utilized machines in the cluster, reducing overall costs.
   285            Additionally, Nomad enables organizations to utilize larger, more
   286            cost-effective compute devices which can be less expensive at scale.
   287          </p>
   288        </div>
   289      </div>
   290    </div>
   291  </section>
   292  
   293  <section id="examples" class="marketing gray">
   294    <div class="container">
   295      <div class="row">
   296        <div class="col-sm-12">
   297          <h2>Examples</h2>
   298          <h3>Create and Submit Jobs</h3>
   299          <p>
   300            Easily create, validate, submit, and check the status of jobs using
   301            the Nomad CLI.
   302          </p>
   303        </div>
   304      </div>
   305  
   306      <div class="row">
   307        <div class="col-sm-12">
   308          <div class="terminal">
   309            <span class="circle"><%= inline_svg "terminal-circle.svg" %></span>
   310            <span class="circle"><%= inline_svg "terminal-circle.svg" %></span>
   311            <span class="circle"><%= inline_svg "terminal-circle.svg" %></span>
   312            <div class="terminal-content">
   313              <span>
   314                <span class="text-green">admin@hashicorp.com:</span>
   315                <span>nomad init</span>
   316              </span>
   317              <span>Example job file written to example.nomad</span>
   318              <span>&nbsp;</span>
   319              <span>
   320                <span class="text-green">admin@hashicorp.com:</span>
   321                <span>nomad job validate example.nomad</span>
   322              </span>
   323              <span>Job validation successful</span>
   324              <span>&nbsp;</span>
   325              <span>
   326                <span class="text-green">admin@hashicorp.com:</span>
   327                <span>nomad job run example.nomad</span>
   328              </span>
   329              <span>==> Monitoring evaluation "feb23392"</span>
   330              <span class="pre">    Evaluation triggered by job "example"</span>
   331              <span class="pre">    Evaluation within deployment: "7ffa7ed1"</span>
   332              <span class="pre">    Allocation "a2f24fcf" created: node "3714a84a", group "cache"</span>
   333              <span class="pre">    Evaluation status changed: "pending" -> "complete"</span>
   334              <span>==> Evaluation "feb23392" finished with status "complete"</span>
   335              <span>&nbsp;</span>
   336              <span>
   337                <span class="text-green">admin@hashicorp.com:</span>
   338                <span>nomad status</span>
   339              </span>
   340              <span class="pre">ID       Type     Priority  Status   Submit Date</span>
   341              <span class="pre">example  service  50        running  <%= Time.now.strftime("%m/%d/%y %H:%M:%S %Z") %></span>
   342            </div>
   343          </div>
   344        </div>
   345      </div>
   346  
   347      <div class="row">
   348        <div class="col-sm-12">
   349          <h3>Plan Changes</h3>
   350          <p>
   351            Perform a dry-run to check application placement, scheduling
   352            decisions, and visualize failures before they happen.
   353          </p>
   354        </div>
   355      </div>
   356  
   357      <div class="row">
   358        <div class="col-sm-12">
   359          <div class="terminal">
   360            <span class="circle"><%= inline_svg "terminal-circle.svg" %></span>
   361            <span class="circle"><%= inline_svg "terminal-circle.svg" %></span>
   362            <span class="circle"><%= inline_svg "terminal-circle.svg" %></span>
   363            <div class="terminal-content">
   364              <span>
   365                <span class="text-green">admin@hashicorp.com:</span>
   366                <span>nomad job plan example.nomad</span>
   367              </span>
   368              <span class="pre"><span class="text-orange">+/-</span> <span class="text-bold">Job: "example"</span></span>
   369              <span class="pre"><span class="text-bold text-orange">+/-</span> <span class="text-bold">Task Group: "cache"</span> (<span class="text-green">2 create</span>, <span class="text-blue">1 in-place update</span>)</span>
   370              <span class="pre">  <span class="text-orange">+/-</span> Count: "1" => "3" (<span class="text-green">forces create</span>)</span>
   371              <span class="pre">      <span class="text-bold">Task: "redis"</span></span>
   372              <span>&nbsp;</span>
   373              <span class="pre"><span class="text-bold">Scheduler dry-run:</span></span>
   374              <span class="pre"><span class="text-bold text-green">- All tasks successfully allocated.</span></span>
   375              <span>&nbsp;</span>
   376              <span class="pre"><span class="text-bold">Job Modify Index: 7</span></span>
   377              <span>&nbsp;</span>
   378              <span>
   379                <span class="text-green">admin@hashicorp.com:</span>
   380                <span>nomad job run -check-index 7 example.nomad</span>
   381              </span>
   382              <span>==> Monitoring evaluation "e338a6ae"</span>
   383              <span class="pre">    Evaluation triggered by job "example"</span>
   384              <span class="pre">    Evaluation within deployment: "43310206"</span>
   385              <span class="pre">    Allocation "991a0d89" created: node "c5916a99", group "cache"</span>
   386              <span class="pre">    Allocation "daee8be1" created: node "c5916a99", group "cache"</span>
   387              <span class="pre">    Allocation "83f29312" modified: node "c5916a99", group "cache"</span>
   388              <span class="pre">    Evaluation status changed: "pending" -> "complete"</span>
   389              <span>==> Evaluation "e338a6ae" finished with status "complete"</span>
   390            </div>
   391          </div>
   392        </div>
   393      </div>
   394  
   395      <div class="row">
   396        <div class="col-sm-12">
   397          <h3>View Application Logs</h3>
   398          <p>
   399            Stream application logs directly in the terminal to help analyze and
   400            debug applications.
   401          </p>
   402        </div>
   403      </div>
   404  
   405      <div class="row">
   406        <div class="col-sm-12">
   407          <div class="terminal">
   408            <span class="circle"><%= inline_svg "terminal-circle.svg" %></span>
   409            <span class="circle"><%= inline_svg "terminal-circle.svg" %></span>
   410            <span class="circle"><%= inline_svg "terminal-circle.svg" %></span>
   411            <div class="terminal-content">
   412              <span>
   413                <span class="text-green">admin@hashicorp.com:</span>
   414                <span>nomad alloc logs -tail -job example</span>
   415              </span>
   416              <span><%= Time.now.strftime("%d %b %H:%M:%S") %> # Server started, Redis version 3.2.9</span>
   417              <span><%= Time.now.strftime("%d %b %H:%M:%S") %> * The server is now ready to accept connections on port 6379</span>
   418            </div>
   419          </div>
   420        </div>
   421      </div>
   422  
   423      <div class="row">
   424        <div class="col-sm-12 col-lg-8 col-lg-offset-2">
   425          <p class="lead" align="center">
   426            The introduction contains a walkthrough guide, glossary, and a range
   427            of examples for learning and experimenting with Nomad.
   428          </p>
   429          <p align="center">
   430            <a href="/intro/index.html" class="button primary">Get Started</a>
   431          </p>
   432        </div>
   433      </div>
   434    </div>
   435  </section>