github.com/Ilhicas/nomad@v1.0.4-0.20210304152020-e86851182bc3/website/pages/use-cases/simple-container-orchestration.jsx (about) 1 import UseCasesLayout from 'components/use-case-page' 2 import TextSplitWithCode from '@hashicorp/react-text-split-with-code' 3 import TextSplitWithImage from '@hashicorp/react-text-split-with-image' 4 import FeaturedSliderSection from 'components/featured-slider-section' 5 // Imports below are used in getStaticProps only 6 import highlightData from '@hashicorp/nextjs-scripts/prism/highlight-data' 7 8 export async function getStaticProps() { 9 const codeBlocksRaw = { 10 containerOrchestration: { 11 code: 12 'task "webservice" {\n driver = "docker"\n\n config {\n image = "redis:3.2"\n labels {\n group = "webservice-cache"\n }\n }\n}', 13 language: 'hcl', 14 }, 15 windowsSupport: { 16 code: 17 'sc.exe start "Nomad"\n\nSERVICE_NAME: Nomad\n TYPE : 10 WIN32_OWN_PROCESS\n STATE : 4 RUNNING\n (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)\n WIN32_EXIT_CODE : 0 (0x0)\n SERVICE_EXIT_CODE : 0 (0x0)\n CHECKPOINT : 0x0\n WAIT_HINT : 0x0\n PID : 8008\n FLAGS :', 18 }, 19 multiRegionFederation: { 20 code: 'nomad server join 1.2.3.4:4648', 21 }, 22 } 23 const codeBlocks = await highlightData(codeBlocksRaw) 24 return { props: { codeBlocks } } 25 } 26 27 export default function SimpleContainerOrchestrationPage({ codeBlocks }) { 28 return ( 29 <UseCasesLayout 30 title="Simple Container Orchestration" 31 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." 32 > 33 <TextSplitWithCode 34 textSplit={{ 35 heading: 'Container Orchestration', 36 textSide: 'right', 37 content: 38 'Deploy, manage, and scale your containers with the Docker, Podman, or Singularity task driver.', 39 links: [ 40 { 41 text: 'Read More', 42 url: 'https://learn.hashicorp.com/collections/nomad/manage-jobs', 43 type: 'outbound', 44 }, 45 ], 46 }} 47 codeBlock={codeBlocks.containerOrchestration} 48 /> 49 50 <TextSplitWithImage 51 textSplit={{ 52 heading: 'Run On-Premise with Ease', 53 textSide: 'left', 54 content: 55 'Install and run Nomad easily on bare metal as a single binary and with the same ease as on cloud.', 56 }} 57 image={{ 58 url: require('./img/on-prem-with-ease.svg'), 59 alt: '', 60 }} 61 /> 62 63 <TextSplitWithCode 64 textSplit={{ 65 heading: 'Windows Support', 66 textSide: 'right', 67 content: 68 'Deploy Windows containers and processes or run Nomad as a native Windows service with Service Control Manager and NSSM.', 69 links: [ 70 { 71 text: 'Watch Jet.com use case', 72 url: 73 'https://www.hashicorp.com/resources/running-windows-microservices-on-nomad-at-jet-com', 74 type: 'outbound', 75 }, 76 ], 77 }} 78 codeBlock={codeBlocks.windowsSupport} 79 /> 80 81 <TextSplitWithCode 82 textSplit={{ 83 heading: 'Multi-Region Federation', 84 content: 85 'Federate Nomad clusters across regions with a single CLI command to deploy applications globally.', 86 textSide: 'left', 87 links: [ 88 { 89 text: 'Read more', 90 url: 'https://learn.hashicorp.com/tutorials/nomad/federation', 91 type: 'outbound', 92 }, 93 ], 94 }} 95 codeBlock={codeBlocks.multiRegionFederation} 96 /> 97 98 <div className="with-border"> 99 <TextSplitWithImage 100 textSplit={{ 101 heading: 'Edge Deployment with Simple Topology', 102 content: 103 'Deploy Nomad with a simple cluster topology on hybrid infrastructure to place workloads to the cloud or at the edge.', 104 textSide: 'right', 105 }} 106 image={{ 107 url: require('./img/edge-deployment.svg'), 108 alt: '', 109 }} 110 /> 111 </div> 112 113 <TextSplitWithImage 114 textSplit={{ 115 heading: 'Zero Downtime Deployments', 116 content: 117 'Achieve zero downtime deployments for applications through rolling updates, blue/green, or canary deployment strategies.', 118 textSide: 'left', 119 links: [ 120 { 121 text: 'Read more', 122 url: 'https://learn.hashicorp.com/collections/nomad/job-updates', 123 type: 'outbound', 124 }, 125 ], 126 }} 127 image={{ 128 url: require('./img/zero-downtime-deployments.png'), 129 alt: 'Zero Downtime Deployments', 130 }} 131 /> 132 133 <div className="with-border"> 134 <TextSplitWithImage 135 textSplit={{ 136 heading: 'High Performance Batch Workloads', 137 content: 138 'Run batch jobs with proven scalability of thousands of deployments per second via the batch scheduler.', 139 textSide: 'right', 140 links: [ 141 { 142 text: 'Watch tech presentation from Citadel', 143 url: 144 'https://www.hashicorp.com/resources/end-to-end-production-nomad-citadel', 145 type: 'outbound', 146 }, 147 ], 148 }} 149 image={{ 150 url: require('./img/high-performance-batch-workloads.png'), 151 alt: '', 152 }} 153 /> 154 </div> 155 156 <TextSplitWithImage 157 textSplit={{ 158 heading: 'Run Specialized Hardware with Device Plugins', 159 content: 160 'Run GPU and other specialized workloads using Nomad’s device plugins.', 161 textSide: 'left', 162 links: [ 163 { 164 text: 'Read more', 165 url: '/docs/devices', 166 type: 'inbound', 167 }, 168 ], 169 }} 170 image={{ 171 url: require('./img/specialized-hardware.png'), 172 alt: 'Specialized Hardware', 173 }} 174 /> 175 176 <TextSplitWithImage 177 textSplit={{ 178 heading: 'Run Stateful Workloads', 179 content: 180 'Natively connect and run stateful services with storage volumes from third-party providers via the Container Storage Interface plugin system.', 181 textSide: 'right', 182 }} 183 image={{ 184 url: require('./img/csi.svg'), 185 alt: 'Stateful Workloads', 186 }} 187 /> 188 189 <TextSplitWithImage 190 textSplit={{ 191 heading: 'Flexible Networking Capabilities', 192 content: 193 'Deploy containerized applications with customized network configurations from third-party vendors via Container Network Interface plugin system', 194 }} 195 image={{ 196 url: require('./img/cni.svg'), 197 alt: 'Flexible Networking Capabilities', 198 }} 199 /> 200 201 <FeaturedSliderSection 202 heading="Case Studies" 203 features={[ 204 { 205 logo: { 206 url: 207 'https://www.datocms-assets.com/2885/1582097215-roblox-white.svg', 208 alt: 'Roblox', 209 }, 210 image: { 211 url: 212 'https://www.datocms-assets.com/2885/1582096961-roblox-case-study.jpg', 213 alt: 'Roblox Nomad Case Study', 214 }, 215 heading: 'Roblox', 216 content: 217 'Scale a global gaming platform easily and reliably with Nomad to serve 100 million monthly active users', 218 link: { 219 text: 'Read Case Study', 220 url: 'https://www.hashicorp.com/case-studies/roblox', 221 type: 'outbound', 222 }, 223 }, 224 { 225 logo: { 226 url: 227 'https://www.datocms-assets.com/2885/1529339316-logocitadelwhite-knockout.svg', 228 alt: 'Citadel', 229 }, 230 image: { 231 url: 232 'https://www.datocms-assets.com/2885/1509052483-hashiconf2017-end-to-end-production-nomad-at-citadel.jpg', 233 alt: 'Citadel Presentation', 234 }, 235 heading: 'Citadel', 236 content: 237 'Optimize the cost efficiency of batch processing at scale with a hybrid, multi-cloud deployment with Nomad', 238 link: { 239 text: 'Learn More', 240 url: 241 'https://www.hashicorp.com/resources/end-to-end-production-nomad-citadel', 242 type: 'outbound', 243 }, 244 }, 245 { 246 logo: { 247 url: 248 'https://www.datocms-assets.com/2885/1594247944-better-help-white.png', 249 alt: 'BetterHelp', 250 }, 251 image: { 252 url: 253 'https://www.datocms-assets.com/2885/1594247996-betterhelp-case-study-screen.png', 254 alt: 'BetterHelp Presentation', 255 }, 256 heading: 'BetterHelp', 257 content: 258 'From 6 dedicated servers in a colocation facility to a cloud-based deployment workflow with Nomad', 259 link: { 260 text: 'Learn More', 261 url: 262 'https://www.hashicorp.com/resources/betterhelp-s-hashicorp-nomad-use-case/', 263 type: 'outbound', 264 }, 265 }, 266 ]} 267 /> 268 </UseCasesLayout> 269 ) 270 }