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-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..83f406e4f --- /dev/null +++ b/website/source/assets/images/feature-flexible-workloads.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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-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..68e4ece54 --- /dev/null +++ b/website/source/assets/images/feature-public-private-clouds.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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/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/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/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 cff901247..efc05491a 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,236 @@ $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; - transform: rotate(90deg) skewX(-30deg) scaleY(0.864); - } - &.right{ - background-color: $nomad-green-dark; - 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: 100px; + 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; + margin: 60px 30px 0 0; + padding: 0; + } + } + + &#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-color: $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 { + margin-top: 5px; + overflow-x: scroll; + 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); - } - } - - &#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); - } - } - - &#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; - } - } - } - - .feature-header{ - h3,p{ - text-align: center !important; - max-width: none !important; - float: none !important; + &.text-green { + color: lighten($nomad-green, 20%); } } } - .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 { + &:before { + content: '\25CF'; + color: $white; + font-family: $font-family-monospace; + font-size: 30px; + line-height: 1; + margin: 0 0 0 -4px; + padding: 0; + height: 100%; } } } diff --git a/website/source/index.html.erb b/website/source/index.html.erb index 9179e4f2c..7705ecd1e 100644 --- a/website/source/index.html.erb +++ b/website/source/index.html.erb @@ -1,144 +1,396 @@ -
+--- +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, deploying, 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 the 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, or parameterized jobs. +

+
+
+

4. Monitor Progress

+

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

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

Hybrid & Multi Cloud

+

+ As more organizations migrate to 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 can bridge the gap between the public and private cloud, + creating a unified interface for developers to deploy and run any + application on any platform. Easily run services across your internal + private cloud and external public cloud transparently to application + developers. +

+
+
+

Multi Cloud

+

+ As more organizations migrate to 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 blue/green deployments, + automatically handling machine failures, and providing a single + workflow to deploy applications. +

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

Blue/Green Deployments

+

+ Nomad supports blue/green and canary deployments through the + declarative job file syntax. By specifying multiple task groups, + Nomad allows for easily changing the quantity and parameters of + each group to perform automatic or manual rolling deploys. +

+ +

Automatic Machine Failures

+

+ 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 Golang 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, but is also augmented by affinity and + anti-affinity rules. This algorithm ensures maximum utilization of + resources such as CPU, memory, and disk. +

+
+
+

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. +

+
+
+ +
+
+
+ + + +
+ + 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") %>
-
-
-