open-nomad/website/pages/use-cases/simple-container-orchestration.jsx
Brandon Romano b49dac2364 Fix bug with new lines in code samples
Previously we were adding in an invisible space to force a newline here.
That is no longer needed.
2020-03-15 22:20:12 -07:00

252 lines
7.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import UseCasesLayout from '../../layouts/use-cases'
import TextSplitWithCode from '@hashicorp/react-text-split-with-code'
import TextSplitWithImage from '@hashicorp/react-text-split-with-image'
import FeaturedSliderSection from '../../components/featured-slider-section'
export default function SimpleContainerOrchestrationPage() {
return (
<UseCasesLayout
title="Simple Container Orchestration"
description="Nomad runs as a single binary with a small resource footprint. Developers use a declarative job specification to define how an application should be deployed. Nomad handles deployment and automatically recovers applications from failures."
>
<TextSplitWithCode
textSplit={{
heading: 'Container Orchestration',
textSide: 'right',
content:
'Deploy, manage, and scale your containers with the Docker, Podman, or Singularity task driver.',
links: [
{
text: 'Read More',
url: '/guides/operating-a-job',
type: 'inbound'
}
]
}}
codeBlock={{
code: `task "webservice" {
driver = "docker"
config {
image = "redis:3.2"
labels {
group = "webservice-cache"
}
}
}`,
language: 'hcl'
}}
/>
<TextSplitWithImage
textSplit={{
heading: 'Run on-premise with ease',
textSide: 'left',
content:
'Install and run Nomad easily on bare metal as a single binary and with the same ease as on cloud.'
}}
image={{
url: require('./img/on-prem-with-ease.svg'),
alt: ''
}}
/>
<TextSplitWithCode
textSplit={{
heading: 'Windows Support',
textSide: 'right',
content:
'Deploy Windows containers and processes or run Nomad as a native Windows service with Service Control Manager and NSSM.',
links: [
{
text: 'Watch Jet.com use case',
url:
'https://www.hashicorp.com/resources/running-windows-microservices-on-nomad-at-jet-com',
type: 'outbound'
}
]
}}
codeBlock={{
code: `sc.exe start "Nomad"
SERVICE_NAME: Nomad
TYPE : 10 WIN32_OWN_PROCESS
STATE : 4 RUNNING
(STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
PID : 8008
FLAGS :`
}}
/>
<TextSplitWithCode
textSplit={{
heading: 'Multi-Region Federation',
content:
'Federate Nomad clusters across regions with a single CLI command to deploy applications globally.',
textSide: 'left',
links: [
{
text: 'Read more',
url: '/guides/operations/federation',
type: 'inbound'
}
]
}}
codeBlock={{
code: 'nomad server join 1.2.3.4:4648',
prefix: 'dollar'
}}
/>
<div className="with-border">
<TextSplitWithImage
textSplit={{
heading: 'Edge Deployment with Simple Topology',
content:
'Deploy Nomad with a simple cluster topology on hybrid infrastructure to place workloads to the cloud or at the edge.',
textSide: 'right'
}}
image={{
url: require('./img/edge-deployment.svg'),
alt: ''
}}
/>
</div>
<TextSplitWithImage
textSplit={{
heading: 'Zero Downtime Deployments',
content:
'Achieve zero downtime deployments for applications through rolling updates, blue/green, or canary deployment strategies.',
textSide: 'left',
links: [
{
text: 'Read more',
url: '/guides/operating-a-job/update-strategies',
type: 'inbound'
}
]
}}
image={{
url: require('./img/zero-downtime-deployments.png'),
alt: 'Zero Downtime Deployments'
}}
/>
<div className="with-border">
<TextSplitWithImage
textSplit={{
heading: 'High Performance Batch Workloads',
content:
'Run batch jobs with proven scalability of thousands of deployments per second via the batch scheduler.',
textSide: 'right',
links: [
{
text: 'Watch tech presentation from Citadel',
url:
'https://www.hashicorp.com/resources/end-to-end-production-nomad-citadel',
type: 'outbound'
}
]
}}
image={{
url: require('./img/high-performance-batch-workloads.png'),
alt: ''
}}
/>
</div>
<TextSplitWithImage
textSplit={{
heading: 'Run Specialized Hardware with Device Plugins',
content:
'Run GPU and other specialized workloads using Nomads device plugins.',
textSide: 'left',
links: [
{
text: 'Read more',
url: '/docs/devices',
type: 'inbound'
}
]
}}
image={{
url: require('./img/specialized-hardware.png'),
alt: 'Specialized Hardware'
}}
/>
<FeaturedSliderSection
heading="Case Studies"
features={[
{
logo: {
url:
'https://www.datocms-assets.com/2885/1582097215-roblox-white.svg',
alt: 'Roblox'
},
image: {
url:
'https://www.datocms-assets.com/2885/1582096961-roblox-case-study.jpg',
alt: 'Roblox Nomad Case Study'
},
heading: 'Roblox',
content:
'Scale a global gaming platform easily and reliably with Nomad to serve 100 million monthly active users',
link: {
text: 'Read Case Study',
url: 'https://www.hashicorp.com/case-studies/roblox',
type: 'outbound'
}
},
{
logo: {
url:
'https://www.datocms-assets.com/2885/1529339316-logocitadelwhite-knockout.svg',
alt: 'Citadel'
},
image: {
url:
'https://www.datocms-assets.com/2885/1509052483-hashiconf2017-end-to-end-production-nomad-at-citadel.jpg',
alt: 'Citadel Presentation'
},
heading: 'Citadel',
content:
'Optimize the cost efficiency of batch processing at scale with a hybrid, multi-cloud deployment with Nomad',
link: {
text: 'Learn More',
url:
'https://www.hashicorp.com/resources/end-to-end-production-nomad-citadel',
type: 'outbound'
}
},
{
logo: {
url:
'https://www.datocms-assets.com/2885/1522341147-jet-white.svg',
alt: 'Jet'
},
image: {
url:
'https://www.datocms-assets.com/2885/1523635589-mohitarora.jpg',
alt: 'Jet Presentation'
},
heading: 'Jet.com',
content: 'Running Windows Microservices on Nomad',
link: {
text: 'Learn More',
url:
'https://www.hashicorp.com/resources/running-windows-microservices-on-nomad-at-jet-com',
type: 'outbound'
}
}
]}
/>
</UseCasesLayout>
)
}