diff --git a/website/source/android-manifest.json.erb b/website/source/android-manifest.json.erb index e80f7f775..23ed934dd 100644 --- a/website/source/android-manifest.json.erb +++ b/website/source/android-manifest.json.erb @@ -1,5 +1,5 @@ { - "name": "Nomad", + "name": "HashiCorp Nomad", "icons": [ { "src": "<%= image_path('favicons/android-chrome-192x192.png') %>", diff --git a/website/source/assets/images/favicons/android-chrome-192x192.png b/website/source/assets/images/favicons/android-chrome-192x192.png index 189196b7e..675d79c12 100644 Binary files a/website/source/assets/images/favicons/android-chrome-192x192.png and b/website/source/assets/images/favicons/android-chrome-192x192.png differ diff --git a/website/source/assets/images/favicons/android-chrome-512x512.png b/website/source/assets/images/favicons/android-chrome-512x512.png index 43fa61e31..9b6b10999 100644 Binary files a/website/source/assets/images/favicons/android-chrome-512x512.png and b/website/source/assets/images/favicons/android-chrome-512x512.png differ diff --git a/website/source/assets/images/favicons/apple-touch-icon.png b/website/source/assets/images/favicons/apple-touch-icon.png index bfa5f5903..5d0cf78f5 100644 Binary files a/website/source/assets/images/favicons/apple-touch-icon.png and b/website/source/assets/images/favicons/apple-touch-icon.png differ diff --git a/website/source/assets/images/favicons/favicon-16x16.png b/website/source/assets/images/favicons/favicon-16x16.png index 7cfa4eec0..a11c8a439 100644 Binary files a/website/source/assets/images/favicons/favicon-16x16.png and b/website/source/assets/images/favicons/favicon-16x16.png differ diff --git a/website/source/assets/images/favicons/favicon-194x194.png b/website/source/assets/images/favicons/favicon-194x194.png new file mode 100644 index 000000000..aa37776cc Binary files /dev/null and b/website/source/assets/images/favicons/favicon-194x194.png differ diff --git a/website/source/assets/images/favicons/favicon-32x32.png b/website/source/assets/images/favicons/favicon-32x32.png index 606fc37cb..7fd3f9d1d 100644 Binary files a/website/source/assets/images/favicons/favicon-32x32.png and b/website/source/assets/images/favicons/favicon-32x32.png differ diff --git a/website/source/assets/images/favicons/favicon.ico b/website/source/assets/images/favicons/favicon.ico index 5a7b8b44b..733bf0cd6 100644 Binary files a/website/source/assets/images/favicons/favicon.ico and b/website/source/assets/images/favicons/favicon.ico differ diff --git a/website/source/assets/images/favicons/mstile-144x144.png b/website/source/assets/images/favicons/mstile-144x144.png new file mode 100644 index 000000000..b286d27a8 Binary files /dev/null and b/website/source/assets/images/favicons/mstile-144x144.png differ diff --git a/website/source/assets/images/favicons/mstile-150x150.png b/website/source/assets/images/favicons/mstile-150x150.png index 27d575750..9a5145d25 100644 Binary files a/website/source/assets/images/favicons/mstile-150x150.png and b/website/source/assets/images/favicons/mstile-150x150.png differ diff --git a/website/source/assets/images/favicons/mstile-310x150.png b/website/source/assets/images/favicons/mstile-310x150.png new file mode 100644 index 000000000..81b2a3ccf Binary files /dev/null and b/website/source/assets/images/favicons/mstile-310x150.png differ diff --git a/website/source/assets/images/favicons/mstile-310x310.png b/website/source/assets/images/favicons/mstile-310x310.png new file mode 100644 index 000000000..7093e1d30 Binary files /dev/null and b/website/source/assets/images/favicons/mstile-310x310.png differ diff --git a/website/source/assets/images/favicons/mstile-70x70.png b/website/source/assets/images/favicons/mstile-70x70.png new file mode 100644 index 000000000..53a0075f2 Binary files /dev/null and b/website/source/assets/images/favicons/mstile-70x70.png differ diff --git a/website/source/assets/images/favicons/safari-pinned-tab.svg b/website/source/assets/images/favicons/safari-pinned-tab.svg index 3856dde9d..15df7a55e 100644 --- a/website/source/assets/images/favicons/safari-pinned-tab.svg +++ b/website/source/assets/images/favicons/safari-pinned-tab.svg @@ -1,3194 +1,3 @@ - - - - -Created by potrace 1.11, written by Peter Selinger 2001-2013 - - - - + + diff --git a/website/source/assets/images/feature-binpacking.svg b/website/source/assets/images/feature-binpacking.svg new file mode 100644 index 000000000..ba3b8932e --- /dev/null +++ b/website/source/assets/images/feature-binpacking.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website/source/assets/images/feature-blue-green.svg b/website/source/assets/images/feature-blue-green.svg new file mode 100644 index 000000000..279e8dce4 --- /dev/null +++ b/website/source/assets/images/feature-blue-green.svg @@ -0,0 +1,37 @@ + + + + + + + web-app:1.0 + + + group.blue + + + + + + + + web-app:1.1 + + + group.green + + + + + + + 8/10 + + + + + 2/10 + + + + diff --git a/website/source/assets/images/feature-density.png b/website/source/assets/images/feature-density.png deleted file mode 100644 index 55d02124a..000000000 Binary files a/website/source/assets/images/feature-density.png and /dev/null differ diff --git a/website/source/assets/images/feature-density@2x.png b/website/source/assets/images/feature-density@2x.png deleted file mode 100644 index 0644c64f8..000000000 Binary files a/website/source/assets/images/feature-density@2x.png and /dev/null differ diff --git a/website/source/assets/images/feature-deploy.png b/website/source/assets/images/feature-deploy.png deleted file mode 100644 index c4bed4204..000000000 Binary files a/website/source/assets/images/feature-deploy.png and /dev/null differ diff --git a/website/source/assets/images/feature-deploy@2x.png b/website/source/assets/images/feature-deploy@2x.png deleted file mode 100644 index 88531de42..000000000 Binary files a/website/source/assets/images/feature-deploy@2x.png and /dev/null differ diff --git a/website/source/assets/images/feature-flexible-workloads.svg b/website/source/assets/images/feature-flexible-workloads.svg new file mode 100644 index 000000000..12129aa32 --- /dev/null +++ b/website/source/assets/images/feature-flexible-workloads.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website/source/assets/images/feature-healing.png b/website/source/assets/images/feature-healing.png deleted file mode 100644 index 636fda7f7..000000000 Binary files a/website/source/assets/images/feature-healing.png and /dev/null differ diff --git a/website/source/assets/images/feature-healing@2x.png b/website/source/assets/images/feature-healing@2x.png deleted file mode 100644 index 1f652640f..000000000 Binary files a/website/source/assets/images/feature-healing@2x.png and /dev/null differ diff --git a/website/source/assets/images/feature-machine-failure.svg b/website/source/assets/images/feature-machine-failure.svg new file mode 100644 index 000000000..1585aa9bc --- /dev/null +++ b/website/source/assets/images/feature-machine-failure.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/website/source/assets/images/feature-manage.png b/website/source/assets/images/feature-manage.png deleted file mode 100644 index 4f088621a..000000000 Binary files a/website/source/assets/images/feature-manage.png and /dev/null differ diff --git a/website/source/assets/images/feature-manage@2x.png b/website/source/assets/images/feature-manage@2x.png deleted file mode 100644 index 5a2860626..000000000 Binary files a/website/source/assets/images/feature-manage@2x.png and /dev/null differ diff --git a/website/source/assets/images/feature-public-private-clouds.svg b/website/source/assets/images/feature-public-private-clouds.svg new file mode 100644 index 000000000..4d7535c29 --- /dev/null +++ b/website/source/assets/images/feature-public-private-clouds.svg @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website/source/assets/images/feature-rolling-deploys.svg b/website/source/assets/images/feature-rolling-deploys.svg new file mode 100644 index 000000000..643d0ce6e --- /dev/null +++ b/website/source/assets/images/feature-rolling-deploys.svg @@ -0,0 +1,33 @@ + + + + + + + rolling... + + + 9/12 + + + + + + + + + done! + + + 12/12 + + + + + + + + + + + diff --git a/website/source/assets/images/feature-simplify.svg b/website/source/assets/images/feature-simplify.svg new file mode 100644 index 000000000..fb5235e00 --- /dev/null +++ b/website/source/assets/images/feature-simplify.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website/source/assets/images/hero-bg.png b/website/source/assets/images/hero-bg.png deleted file mode 100644 index 36330ca8a..000000000 Binary files a/website/source/assets/images/hero-bg.png and /dev/null differ diff --git a/website/source/assets/images/hero-bg@2x.png b/website/source/assets/images/hero-bg@2x.png deleted file mode 100644 index 3e6649cdb..000000000 Binary files a/website/source/assets/images/hero-bg@2x.png and /dev/null differ diff --git a/website/source/assets/images/hero-image.png b/website/source/assets/images/hero-image.png deleted file mode 100644 index c40b69d6d..000000000 Binary files a/website/source/assets/images/hero-image.png and /dev/null differ diff --git a/website/source/assets/images/hero-image@2x.png b/website/source/assets/images/hero-image@2x.png deleted file mode 100644 index 2cf7fb735..000000000 Binary files a/website/source/assets/images/hero-image@2x.png and /dev/null differ diff --git a/website/source/assets/images/hero-lockup.png b/website/source/assets/images/hero-lockup.png deleted file mode 100644 index 6a3edfef9..000000000 Binary files a/website/source/assets/images/hero-lockup.png and /dev/null differ diff --git a/website/source/assets/images/hero-lockup@2x.png b/website/source/assets/images/hero-lockup@2x.png deleted file mode 100644 index 62b43e00c..000000000 Binary files a/website/source/assets/images/hero-lockup@2x.png and /dev/null differ diff --git a/website/source/assets/images/hero-logotype.png b/website/source/assets/images/hero-logotype.png deleted file mode 100644 index 955d65ce6..000000000 Binary files a/website/source/assets/images/hero-logotype.png and /dev/null differ diff --git a/website/source/assets/images/hero-logotype@2x.png b/website/source/assets/images/hero-logotype@2x.png deleted file mode 100644 index 244e6b661..000000000 Binary files a/website/source/assets/images/hero-logotype@2x.png and /dev/null differ diff --git a/website/source/assets/images/logo-hashicorp.svg b/website/source/assets/images/logo-hashicorp.svg index 5d70cc5a5..5b98d8c2f 100644 --- a/website/source/assets/images/logo-hashicorp.svg +++ b/website/source/assets/images/logo-hashicorp.svg @@ -1,6 +1,8 @@ - - - - - + + + + + + + diff --git a/website/source/assets/images/logo-text.svg b/website/source/assets/images/logo-text.svg index 9fb28671f..fd3e2e200 100644 --- a/website/source/assets/images/logo-text.svg +++ b/website/source/assets/images/logo-text.svg @@ -1,9 +1,8 @@ - - - - - - - + + + + + + diff --git a/website/source/assets/images/nomad-giant.jpg b/website/source/assets/images/nomad-giant.jpg deleted file mode 100644 index 79ead7f1c..000000000 Binary files a/website/source/assets/images/nomad-giant.jpg and /dev/null differ diff --git a/website/source/assets/images/og-image.png b/website/source/assets/images/og-image.png index dddea9d33..d6cb4ac95 100644 Binary files a/website/source/assets/images/og-image.png and b/website/source/assets/images/og-image.png differ diff --git a/website/source/assets/images/partner-amazon.png b/website/source/assets/images/partner-amazon.png deleted file mode 100644 index b0c28f6d1..000000000 Binary files a/website/source/assets/images/partner-amazon.png and /dev/null differ diff --git a/website/source/assets/images/partner-amazon@2x.png b/website/source/assets/images/partner-amazon@2x.png deleted file mode 100644 index 51a266e2a..000000000 Binary files a/website/source/assets/images/partner-amazon@2x.png and /dev/null differ diff --git a/website/source/assets/images/partner-digitalocean.png b/website/source/assets/images/partner-digitalocean.png deleted file mode 100644 index 08b28bd86..000000000 Binary files a/website/source/assets/images/partner-digitalocean.png and /dev/null differ diff --git a/website/source/assets/images/partner-digitalocean@2x.png b/website/source/assets/images/partner-digitalocean@2x.png deleted file mode 100644 index 643030abc..000000000 Binary files a/website/source/assets/images/partner-digitalocean@2x.png and /dev/null differ diff --git a/website/source/assets/images/partner-docker.png b/website/source/assets/images/partner-docker.png deleted file mode 100644 index 18a8badb2..000000000 Binary files a/website/source/assets/images/partner-docker.png and /dev/null differ diff --git a/website/source/assets/images/partner-docker@2x.png b/website/source/assets/images/partner-docker@2x.png deleted file mode 100644 index f3b755072..000000000 Binary files a/website/source/assets/images/partner-docker@2x.png and /dev/null differ diff --git a/website/source/assets/images/partner-engineyard.png b/website/source/assets/images/partner-engineyard.png deleted file mode 100644 index 1300f9fac..000000000 Binary files a/website/source/assets/images/partner-engineyard.png and /dev/null differ diff --git a/website/source/assets/images/partner-engineyard@2x.png b/website/source/assets/images/partner-engineyard@2x.png deleted file mode 100644 index 42be574e0..000000000 Binary files a/website/source/assets/images/partner-engineyard@2x.png and /dev/null differ diff --git a/website/source/assets/images/partner-google.png b/website/source/assets/images/partner-google.png deleted file mode 100644 index 2e4c51d8a..000000000 Binary files a/website/source/assets/images/partner-google.png and /dev/null differ diff --git a/website/source/assets/images/partner-google@2x.png b/website/source/assets/images/partner-google@2x.png deleted file mode 100644 index 5fd3dfcce..000000000 Binary files a/website/source/assets/images/partner-google@2x.png and /dev/null differ diff --git a/website/source/assets/images/partner-microsoft.png b/website/source/assets/images/partner-microsoft.png deleted file mode 100644 index a79768aa7..000000000 Binary files a/website/source/assets/images/partner-microsoft.png and /dev/null differ diff --git a/website/source/assets/images/partner-microsoft@2x.png b/website/source/assets/images/partner-microsoft@2x.png deleted file mode 100644 index 9fe8fc965..000000000 Binary files a/website/source/assets/images/partner-microsoft@2x.png and /dev/null differ diff --git a/website/source/assets/images/terminal-circle.svg b/website/source/assets/images/terminal-circle.svg new file mode 100644 index 000000000..da23c966a --- /dev/null +++ b/website/source/assets/images/terminal-circle.svg @@ -0,0 +1,3 @@ + + + diff --git a/website/source/assets/javascripts/_cubes.js b/website/source/assets/javascripts/_cubes.js deleted file mode 100644 index 69b5454b5..000000000 --- a/website/source/assets/javascripts/_cubes.js +++ /dev/null @@ -1,76 +0,0 @@ -var HashiCubes = function() { - var $cube = $('.cube'); - var $cubes = $('#cubes'); - - var ROWS = 4; - var PADDING = 64; - - function getRadiansForAngle(angle) { - return angle * (Math.PI/180); - } - - function animateCubes() { - $lastCube = $cube; - previousRowLeft = parseInt($lastCube.css('left'), 10) - previousRowTop = parseInt($lastCube.css('top'), 10); - - var angle = getRadiansForAngle(30); - var sin = Math.sin(angle) * PADDING; - var cos = Math.cos(angle) * PADDING; - - // set up our parent columns - for(var i = 0; i < ROWS; i++){ - var cube = $lastCube.clone(); - - cube.css({ - top: previousRowTop - sin, - left: previousRowLeft - cos, - }); - $cubes.prepend(cube); - $lastCube = cube; - previousRowLeft = parseInt($lastCube.css('left'), 10) - previousRowTop = parseInt($lastCube.css('top'), 10) - } - - // use the parent cubes as starting point for rows - var $allParentCubes = $('.cube'); - var angle = getRadiansForAngle(150); - var sin = Math.sin(angle) * PADDING; - var cos = Math.cos(angle) * PADDING; - - for(var j = ROWS; j > -1 ; j--){ - var $baseCube = $($allParentCubes[j]); - - previousRowLeft = parseInt($baseCube.css('left'), 10) - previousRowTop = parseInt($baseCube.css('top'), 10) - - for(var n = 0; n < ROWS; n++){ - var cube = $baseCube.clone(); - cube.css({ - top: previousRowTop - sin, - left: previousRowLeft - cos, - }); - - $cubes.prepend(cube); - - $lastCube = cube; - previousRowLeft = parseInt($lastCube.css('left'), 10) - previousRowTop = parseInt($lastCube.css('top'), 10) - } - } - - var $all = $('.cube'); - for(var c = 0; c < $all.length; c++){ - (function(index){ - setTimeout(function(){ - var $theCube = $($all[index]); - $theCube.addClass('in') - }, 100*c) - })(c) - } - } - - animateCubes(); -} - -$(document).on('turbolinks:load', HashiCubes); diff --git a/website/source/assets/javascripts/application.js b/website/source/assets/javascripts/application.js index a7ae6cc3c..ad181b4cc 100644 --- a/website/source/assets/javascripts/application.js +++ b/website/source/assets/javascripts/application.js @@ -3,5 +3,3 @@ //= require hashicorp/mega-nav //= require hashicorp/sidebar - -//= require _cubes diff --git a/website/source/assets/stylesheets/_global.scss b/website/source/assets/stylesheets/_global.scss index 3b69c05dd..fc46858d6 100755 --- a/website/source/assets/stylesheets/_global.scss +++ b/website/source/assets/stylesheets/_global.scss @@ -33,3 +33,11 @@ h1 { .wf-active, .wf-inactive { visibility: visible; } + +@media (min-width: $screen-sm) and (max-width: $screen-md) { + .container { + padding: 0; + max-width: $screen-md; + min-width: $screen-sm; + } +} diff --git a/website/source/assets/stylesheets/_home.scss b/website/source/assets/stylesheets/_home.scss index d5ea1e71f..0856807ad 100755 --- a/website/source/assets/stylesheets/_home.scss +++ b/website/source/assets/stylesheets/_home.scss @@ -1,12 +1,3 @@ -// -// Home -// -------------------------------------------------- - -$font-size-xl: 44px; -$font-size-l: 36px; -$font-size-m: 28px; -$font-size-reg: 16px; - #page-home { // Override the main header #header { @@ -48,633 +39,251 @@ $font-size-reg: 16px; } } - #hero{ - position: relative; - text-align: center; - background: image-url('nomad-giant.jpg') 0 0 no-repeat; - @include img-retina("nomad-giant.jpg", "nomad-giant.jpg", 624px, 358px); - background-size: cover !important; - overflow: hidden; - - &:before{ - content: ''; - position: absolute; - top: -20px; - left: 50%; - width: 1000px; - height: 1000px; - margin-left: -500px; - border-radius: 500px; - background-color: $white; - z-index: 1; - } - - p { - color: $gray; + header { + .hero { + margin: 140px auto 160px auto; text-align: center; - } - #hero-graphic{ - position: absolute; - display: inline-block; - left: 50%; - top: 0; - width: 499px; - height: 340px; - margin-top: 38px; - margin-left: -250px; - z-index: 2; + .button { + margin: 5px; - #hero-logotype{ - position: absolute; - display: inline-block; - top: 75px; - left: 50%; - width: 115px; - height: 155px; - margin-left: -60px; - background: image-url('hero-logotype.png') 0 0 no-repeat; - @include img-retina("hero-logotype.png", "hero-logotype@2x.png", 115px, 155px); - } - - #cubes{ - .cube{ - position: absolute; - top: 300px; - left: 248px; - opacity: 0.01; - transform: translate(0, 150px); - @include transition( all 1.5s cubic-bezier(0.68, -0.55, 0.265, 1.55) ); - - &.in{ - transform: translate(0, 0); - opacity: 1; - } - - .face { - @include transform-origin(0 0); - position: absolute; - height: 44px; - width: 44px; - - &.top{ - background-color: $nomad-green; - transform: rotate(210deg) skewX(-30deg) scaleY(0.864); - } - &.left{ - background-color: $nomad-green-dark; - transform: rotate(90deg) skewX(-30deg) scaleY(0.864); - } - &.right{ - background-color: $nomad-green-light; - transform: rotate(-30deg) skewX(-30deg) scaleY(0.864); - } - } + @media (max-width: 768px) { + display: block; + margin-top: 10px; + text-align: center; } } - } - #hero-text{ - position: relative; - padding-top: 400px; - - #hero-text-content{ - position: relative; - z-index: 2; - padding-bottom: 40px; - } - - h1{ - margin-top: 0; - color: $body-font-color; - font-size: $font-size-xl; - } - - h4{ - font-family: $font-family-open-sans; - font-weight: 500; - color: $gray; - } - - #hero-btns{ - margin-top: 26px; - - .button { - margin: 10px; - } - } - } - - #tag-line{ - margin: 15px 0 20px 0; - font-size: 24px; - font-weight: 300; - } - - p{ - margin-top: 60px; - text-align: left; - font-size: 18px; - font-weight: 300; - line-height: 2em; - - .strong{ - font-size: 20px; - font-weight: 500; + svg { + max-width: 90%; } } } - .banner{ - margin-top: 120px; - - .col{ - p{ - line-height: 24px; - } - } - - &.gray-banner{ - .col{ - border: 1px solid $gray-light; - } - - p{ - color: $gray; - } - } - - &.green-banner{ - .col{ - border: 1px solid $gray-light; - } - - p{ - color: $body-font-color; - } - } - - &#cta-banner{ - margin-top: 0; - margin-bottom: 80px; - - .col{ - padding: 60px 20px; - } - } - - .col{ - padding: 20px; - text-align: center; - border-radius: 3px; - } - - p{ - margin-bottom: 0px; - margin-right: 30px; - font-size: $font-size-reg; - line-height: $font-size-reg; - } - - p, a{ - display: inline-block; - } + section { + background: $white; + padding: 100px 0; } - #content{ - overflow: hidden; - margin-top: 120px; - - h2{ - margin-bottom: 120px; - text-align: center; - font-size: $font-size-m; - color: $nomad-green; + section.marketing { + h2 { + font-family: $font-family-klavika; + font-size: 36px; + font-weight: $font-weight-bold; + line-height: 1.25; + letter-spacing: -0.02em; + margin: 20px 0 10px 0; + padding: 0; text-transform: uppercase; } - .feature{ - position: relative; - margin-bottom: 60px; - padding-bottom: 60px; - border-bottom: 1px solid $gray-light; + h3 { + color: $black; + font-size: 20px; + font-weight: $font-weight-bold;; + line-height: 1.2; + margin: 50px 0 15px 0; + text-transform: uppercase; + } - &:last-child{ - border-bottom: none; - } + p { + font-family: $font-family-open-sans; + font-size: 16px; + letter-spacing: 0.01em; + line-height: 1.5; + margin: 0 0 10px; - &#deploy{ - .feature-graphic{ - margin-top: -130px; - width: 1161px; - height: 735px; - background: image-url('feature-deploy.png') 0 0 no-repeat; - @include img-retina("feature-deploy.png", "feature-deploy@2x.png", 1161px, 735px); - } - } - - &#maintain{ - .feature-graphic{ - margin-top: -50px; - width: 1113px; - height: 689px; - background: image-url('feature-manage.png') 0 0 no-repeat; - @include img-retina("feature-manage.png", "feature-manage@2x.png", 1113px, 689px); - } - } - - &#healing{ - .feature-graphic{ - margin-top: 80px; - width: 1009px; - height: 309px; - background: image-url('feature-healing.png') 0 0 no-repeat; - @include img-retina("feature-healing.png", "feature-healing@2x.png", 1009px, 309px); - } - } - - &#density{ - .feature-graphic{ - margin-top: 80px; - width: 1040px; - height: 409px; - background: image-url('feature-density.png') 0 0 no-repeat; - @include img-retina("feature-density.png", "feature-density@2x.png", 1040px, 409px); - } - } - - &#partners{ - .partner-logos{ - .docker-wrap{ - border-right: 1px solid $gray-light; - - .partner-logo{ - display: inline-block; - width: 120px; - height: 180px; - - &.docker-logo{ - background: image-url('partner-docker.png') center center no-repeat; - @include img-retina("partner-docker.png", "partner-docker@2x.png", 100px, 84px); - } - } - } - - .cloud-wrap{ - .partner-logo{ - float: left; - width: 25%; - height: 180px; - - &.aws-logo{ - background: image-url('partner-amazon.png') center center no-repeat; - @include img-retina("partner-amazon.png", "partner-amazon@2x.png", 153px, 56px); - } - &.google-logo{ - background: image-url('partner-google.png') center center no-repeat; - @include img-retina("partner-google.png", "partner-google@2x.png", 135px, 87px); - } - &.microsoft-logo{ - background: image-url('partner-microsoft.png') center center no-repeat; - @include img-retina("partner-microsoft.png", "partner-microsoft@2x.png", 188px, 84px); - } - &.engineyard-logo{ - background: image-url('partner-engineyard.png') center center no-repeat; - @include img-retina("partner-engineyard.png", "partner-engineyard@2x.png", 178px, 37px); - } - &.digitalocean-logo{ - background: image-url('partner-digitalocean.png') center center no-repeat; - @include img-retina("partner-digitalocean.png", "partner-digitalocean@2x.png", 134px, 85px); - } - } - } - } - } - - .feature-graphic{ - margin: 0 auto; - } - - .feature-header{ - - &.right{ - h3, p{ - text-align: right; - display: block; - float: right; - } - } - - h3{ - margin: 30px 0 20px 0; - color: $body-font-color; - letter-spacing: 1px; - font-size: $font-size-l; - line-height: 1.25em; - max-width: 640px; - } - - p{ - margin-bottom: 30px; - color: $gray; - font-size: $font-size-reg+2; - line-height: 1.75em; - max-width: 480px; - } - } - - .feature-footer{ - margin-top: -50px; - - p{ - display: inline-block; - color: $body-font-color; - font-size: $font-size-reg; - line-height: 1.75em; - max-width: 320px; - padding-left: 20px; - border-left: 1px solid $gray-light; - } - - .docker-outline-logo{ - display: inline-block; - width: 80px; - height: 67px; - position: relative; - top: 12px; - margin-left: 8px; - background: image-url('partner-docker.png') 0 0 no-repeat; - @include img-retina("partner-docker.png", "partner-docker@2x.png", 80px, 67px); - } - - a{ - margin-bottom: 15px; - margin-left: 15px; - - &:first-child{ - margin-left: 0; - } - } + &.lead { + font-size: 20px; + margin: 30px 0 30px 0; } } - } - @media (min-width: 1200px) { - - } - - - @media (max-width: 1200px) { - - } - - @media (min-width: 992px) and (max-width:1200px) { - #cta a { - margin-top: 15px; + span.callout { + background: $black; + color: $white; + display: inline-block; + font-family: $font-family-klavika; font-size: 18px; + font-weight: $font-weight-bold; + line-height: 1; + margin: 0; + padding: 5px; + letter-spacing: 0.05em; + text-transform: uppercase; } - } - @media (min-width: 768px) and (max-width:992px) { - #cta a { - margin-top: 10px; + &.green { + background: $nomad-green; + + h2, h3 { + color: $white; + } + + p { + color: $white; + font-weight: $font-weight-reg; + } + + a { + border-bottom: 1px solid $white; + color: $white; + + &:hover, + &:active { + border-bottom: none; + text-decoration: none; + } + } + + span.callout { + background: $white; + color: $nomad-green; + } } - } - @media (max-width: 992px) { - #content{ - .feature{ - &#deploy{ - .feature-graphic{ - margin-top: -60px; - width: 768px; - height: 486px; - background: image-url('feature-deploy.png') 0 0 no-repeat; - @include img-retina("feature-deploy.png", "feature-deploy@2x.png", 768px, 486px); - } + &.gray { + background: #EDEDED; - .feature-footer{ - margin-top: 0; - } + h2, h3 { + color: $black; + } + + p { + color: $black; + font-weight: $font-weight-reg; + } + + span.callout { + background: $white; + color: $black; + } + } + + &.black { + background: $black; + + h2, h3 { + color: $white; + } + + p { + color: $white; + font-weight: $font-weight-reg; + } + + a { + border-bottom: 1px solid $white; + color: $white; + + &:hover, + &:active { + border-bottom: none; + text-decoration: none; } + } - &#maintain{ - .feature-graphic{ - margin-top: -50px; - width: 768px; - height: 475px; - background: image-url('feature-manage.png') 0 0 no-repeat; - @include img-retina("feature-manage.png", "feature-manage@2x.png", 768px, 475px); - } - } + span.callout { + background: $white; + color: $black; + } + } - &#density{ - .feature-graphic{ - width: 768px; - height: 302px; - background: image-url('feature-density.png') 0 0 no-repeat; - @include img-retina("feature-density.png", "feature-density@2x.png", 768px, 302px); - } - } + &#hybrid-multi-cloud { + svg { + display: block; + margin: 15px auto; + max-height: 115px; + padding: 0; + } + } - &#partners{ - .partner-logos{ - .docker-wrap{ - //border: none; - .partner-logo{ - @include scale(.8); - margin-left: -18px; - } - } - .cloud-wrap{ - .partner-logo{ - @include scale(.8); - } - } - } + &#flexible-workloads { + svg { + display: block; + margin: 15px auto; + max-height: 100px; + padding: 0; + } + } + + &#simplify { + svg { + display: block; + max-height: 150px; + margin: 0 auto; + padding: 0; + } + + @media(max-width: $screen-sm) { + svg { + margin: 60px auto; } } } + + &#binpacking { + svg { + display: block; + margin: 60px auto; + max-height: 300px; + padding: 0; + } + } } - @media (max-width: 768px) { - #hero{ - #hero-graphic{ - @include scale(.8); - } - } + .terminal { + border: 1px solid $white; + background: $black; + box-sizing: border-box; + color: $white; + font-family: $font-family-monospace; + font-size: 15px; + line-height: 1.8; + margin: 20px auto auto auto; + padding: 10px 20px 20px 20px; - #content{ - .feature{ - &#deploy{ - .feature-graphic{ - margin-top: 0px; - width: 480px; - height: 304px; - background: image-url('feature-deploy.png') 0 0 no-repeat; - @include img-retina("feature-deploy.png", "feature-deploy@2x.png", 480px, 304px); - } + .terminal-content { + background: $black; + margin-top: 5px; + overflow-x: auto; + width: 100%; + white-space: nowrap; - .feature-footer{ - margin-top: 30px; + span { + display: block; - .docker-outline-logo{ - width: 94px; - height: 63px; - background: image-url('partner-docker.png') 0 0 no-repeat; - @include img-retina("partner-docker.png", "partner-docker@2x.png", 94px, 63px); - } - } + span { + display: inline; } - &#maintain{ - .feature-graphic{ - margin-top: 30px; - width: 480px; - height: 297px; - background: image-url('feature-manage.png') 0 0 no-repeat; - @include img-retina("feature-manage.png", "feature-manage@2x.png", 480px, 297px); - } + &.pre { + white-space: pre; } - &#healing{ - .feature-graphic{ - margin-top: 30px; - width: 480px; - height: 147px; - background: image-url('feature-healing.png') 0 0 no-repeat; - @include img-retina("feature-healing.png", "feature-healing@2x.png", 480px, 147px); - } + &.text-bold { + font-weight: bold; } - &#density{ - .feature-graphic{ - margin-top: 30px; - width: 480px; - height: 189px; - background: image-url('feature-density.png') 0 0 no-repeat; - @include img-retina("feature-density.png", "feature-density@2x.png", 480px, 189px); - } + + &.text-green { + color: lighten($nomad-green, 20%); } - &#partners{ - .partner-logo{ - display: block !important; - float: none !important; - width: 100% !important; - margin: 0 auto; - -webkit-transform: scale(1) !important; - -ms-transform: scale(1) !important; - transform: scale(1) !important; - margin-left: 0 !important; - height: 130px !important; - } - - p{ - padding: 0 20px; - } + &.text-blue { + color: #71A4F5; } - } - .feature-header{ - h3,p{ - text-align: center !important; - max-width: none !important; - float: none !important; + &.text-orange { + color: #F5BF49; } } } - .banner{ - padding: 18px; - margin: 0 20px; - - .col{ - text-align: center; - - p{ - display: block; - margin-right: 0; - margin-bottom: 30px; - } - } - } - - #cta{ - .intro{ - text-align: center; - p{ - text-align: center; - margin-bottom: 15px; - } - } - } - } - - - @media (max-width: 480px) { - #hero{ - background: none; - - &:before{ - display: none; - } - - #hero-graphic{ - height: 60px; - margin-top: 0; - @include scale(.54); - } - - #hero-text{ - position: relative; - padding-top: 220px; - } - } - - #content{ - .feature{ - &#deploy{ - .feature-graphic{ - width: 280px; - height: 177px; - background: image-url('feature-deploy.png') 0 0 no-repeat; - @include img-retina("feature-deploy.png", "feature-deploy@2x.png", 280px, 177px); - } - .feature-footer{ - .docker-outline-logo{ - display: block; - } - } - } - - &#maintain{ - .feature-graphic{ - margin-top: 30px; - width: 280px; - height: 173px; - background: image-url('feature-manage.png') 0 0 no-repeat; - @include img-retina("feature-manage.png", "feature-manage@2x.png", 280px, 173px); - } - } - - &#healing{ - .feature-graphic{ - width: 280px; - height: 86px; - background: image-url('feature-healing.png') 0 0 no-repeat; - @include img-retina("feature-healing.png", "feature-healing@2x.png", 280px, 86px); - } - } - - &#density{ - .feature-graphic{ - width: 280px; - height: 110px; - background: image-url('feature-density.png') 0 0 no-repeat; - @include img-retina("feature-density.png", "feature-density@2x.png", 280px, 110px); - } - } + span.circle { + svg { + height: 12px; + width: 12px; } } } diff --git a/website/source/assets/stylesheets/_logos.scss b/website/source/assets/stylesheets/_logos.scss index c1eb8e831..f100dd04a 100644 --- a/website/source/assets/stylesheets/_logos.scss +++ b/website/source/assets/stylesheets/_logos.scss @@ -8,12 +8,12 @@ svg.logo { } path.left { - fill: $nomad-green-dark; + fill: $nomad-green; opacity: 1.0; } path.right { - fill: $nomad-green-light; + fill: $nomad-green-dark; opacity: 1.0; } @@ -36,7 +36,7 @@ svg.logo { path.top { fill: $white; - opacity: 0.8; + opacity: 1.0; } path.left { diff --git a/website/source/assets/stylesheets/_variables.scss b/website/source/assets/stylesheets/_variables.scss index 016c23962..0ae121d83 100755 --- a/website/source/assets/stylesheets/_variables.scss +++ b/website/source/assets/stylesheets/_variables.scss @@ -6,9 +6,8 @@ $gray-light: #CCCCCC; $consul-pink: #D62783; $consul-pink-dark: #961D59; -$nomad-green: #2DAA86; -$nomad-green-dark:#0E7A65; -$nomad-green-light: #27C48D; +$nomad-green: #25BA81; +$nomad-green-dark:#1F9967; $packer-blue: #1DAEFF; $packer-blue-dark: #1D94DD; $terraform-purple: #5C4EE5; diff --git a/website/source/index.html.erb b/website/source/index.html.erb index 9179e4f2c..d01452ad0 100644 --- a/website/source/index.html.erb +++ b/website/source/index.html.erb @@ -1,144 +1,436 @@ -
+--- +description: |- + Nomad is a highly available, distributed, data-center aware cluster and + application scheduler designed to support the modern datacenter with support + for long-running services, batch jobs, and much more. +--- + +
+
+
+
+ <%= inline_svg "logo-hashicorp.svg", height: 120, class: "logo" %> + +

Easily Deploy Applications at Any Scale

+ + Get Started + Download <%= latest_version %> +
+
+
+
+ +
-
-
-
-
- - - -
-
-
-
-
-
-

Easily deploy applications at any scale

-

A Distributed, Highly Available, Datacenter-Aware Scheduler

- +
+

Simple and Lightweight

+

+ Nomad is a single binary that schedules applications and services on + Linux, Windows, and Mac. It is an open source scheduler that uses a + declarative job file for scheduling virtualized, containerized, and + standalone applications. +

+
+
+
+
+

1. Declare Jobs

+

+ Users compose and submit high-level job files. Nomad handles the + scheduling and upgrading of the applications over time. +

+

+ This flexibilty makes it easy to deploy one container, dozens of + containers, or even millions. +

+
+
+

2. Plan Changes

+

+ With built-in dry-run execution, Nomad shows what scheduling decisions + it will take before it takes them. Operators can approve or deny these + changes to create a safe and reproducible workflow. +

+
+
+
+
+

3. Run Applications

+

+ Nomad runs applications and ensures they keep running in failure + scenarios. In addition to long-running services, Nomad can schedule + batch jobs, distributed cron jobs, and parameterized jobs. +

+
+
+

4. Monitor Progress

+

+ Stream logs, send signals, and interact with the file system of + scheduled applications. These operator-friendly commands bring the + familiar debugging tools to a scheduled world. +

+
+
+
+
+ +
+
+
+
+ Combine +

Hybrid & Multi Cloud

+

+ As more organizations adopt cloud technologies, the desire to run in + multiple datacenters and multiple regions becomes critical. Nomad can + span public and private clouds and treat all your infrastructure as a + pool of resources. +

+
+
+ +
+
+ <%= inline_svg "feature-public-private-clouds.svg" %> +
+
+ +
+
+

Hybrid Cloud

+

+ Nomad bridges the gap between the public and private cloud, creating a + unified interface for developers to run any application on any + infrastructure. Easily run services across your internal private cloud + and external public cloud transparently to application developers. +

+
+
+

Multi Cloud

+

+ As more organizations adopt cloud technologies, the desire to run + applications simultaneously across multiple clouds increases. Nomad + combines the power of all cloud providers into a single, unified + interface for deploying applications and running services. +

+
+
+
+
+ +
+
+
+
+ Maintain +

Simplify Operations

+

+ Nomad simplifies operations by supporting several deployment + strategies to safely upgrade jobs, automatically handling machine + failures, and providing a single workflow to deploy applications. +

+
+
+ +
+
+

Rolling Deploys

+
+
+
+
+ <%= inline_svg "feature-rolling-deploys.svg" %> +
+
+

+ In order to update an application while reducing downtime, Nomad + provides a built-in mechanism for rolling upgrades. Operators specify + the rate at which they would like to upgrade their service in the + declarative job file, plan the changes, and submit the new job. Nomad + then updates the service to the newest version using task health and + Consul health check information to ensure replacement allocations are + healthy. With full control over the update strategy, rolling upgrades + make application deployments simple and safe. +

+
+
+ +
+
+

Blue/Green Deployments

+
+
+
+
+

+ Nomad supports native blue/green and canary deployments through the + declarative job file syntax. Instead of doing a rolling upgrade of the + existing allocations, the new version of the group is deployed along + side the existing set. While this duplicates the resources required + during the upgrade process, it allows very safe deployments as the + original version of the group is untouched till the operator promotes + the new version. +

+
+
+ <%= inline_svg "feature-blue-green.svg" %> +
+
+ +
+
+

Automatic Machine Failures

+
+
+
+
+ <%= inline_svg "feature-machine-failure.svg" %> +
+
+

+ Because it knows the state of all nodes and applications, if a + node becomes unhealthy, Nomad will automatically reschedule the + applications that were previously running on the unhealthy host + onto a new, healthy host if capacity exists. As new clients are + added to the cluster, they can share the responsibility of + running applications and services. +

+
+
+
+
+ +
+
+
+
+ Support +

Flexible Workloads

+

+ In addition to supporting Linux, Windows, and Mac, Nomad has + extensible support for containerized, virtualized, and standalone + applications. Easily start Docker containers, VMs, or application + runtimes like Java. +

+
+
+ +
+
+ <%= inline_svg "feature-flexible-workloads.svg" %> +
+
+ +
+
+

Diverse Technologies

+

+ By supporting a wide range of technologies such as Docker, rkt, and + LXC, Nomad does not force you into a single technology. Easily use + multiple container or virtualization runtimes simultaneously. + Applications with their own runtime such as Java or Go can be + scheduled directly without the overhead of a container. +

+
+
+

Multi OS

+

+ The Nomad client runs on Linux, Windows, and Mac OS. This diverse + operating system support enables using the same application scheduler + for all your scheduling and runtime needs. +

+
+
+
+
+ + +
+
+
+
+ Maximize +

Increase Utilization & Reduce Costs

+

+ Nomad uses bin packing to optimize application placement onto servers + to maximize resource utilization, increase density, and help reduce + costs. +

+
+
+ +
+
+ <%= inline_svg "feature-binpacking.svg" %> +
+
+ +
+
+

Increase Density

+

+ Nomad places applications and services based on a bin packing + algorithm, which is used to optimize the resource utilization and + density of applications. Nomad automatically augments the bin-packing + algorithm with anti-affinity rules to avoid colocating instances of + the same service to reduce the probability of correlated failures. +

+
+
+

Reduce Costs

+

+ By maximizing resource utilization, Nomad can help remove unused or + under-utilized machines in the cluster, reducing overall costs. + Additionally, Nomad enables organizations to utilize larger, more + cost-effective compute devices which can be less expensive at scale. +

+
+
+
+
+ +
+
+
+
+

Examples

+

Create and Submit Jobs

+

+ Easily create, validate, submit, and check the status of jobs using + the Nomad CLI. +

+
+
+ +
+
+
+ <%= inline_svg "terminal-circle.svg" %> + <%= inline_svg "terminal-circle.svg" %> + <%= inline_svg "terminal-circle.svg" %> +
+ + admin@hashicorp.com: + nomad init + + Example job file written to example.nomad +   + + admin@hashicorp.com: + nomad validate example.nomad + + Job validation successful +   + + admin@hashicorp.com: + nomad run example.nomad + + ==> Monitoring evaluation "feb23392" + Evaluation triggered by job "example" + Evaluation within deployment: "7ffa7ed1" + Allocation "a2f24fcf" created: node "3714a84a", group "cache" + Evaluation status changed: "pending" -> "complete" + ==> Evaluation "feb23392" finished with status "complete" +   + + admin@hashicorp.com: + nomad status + + ID Type Priority Status Submit Date + example service 50 running <%= Time.now.strftime("%m/%d/%y %H:%M:%S %Z") %>
-
-
-