proxy with consul 2. Deploy an example Go application, echoapp v1.0.0 3. Periodically access to “/version” API endpoint for checking 4. Deploy 1 echoapp v1.1.0 task as canary 5. Upgrade all echoapp tasks
• https://www.youtube.com/watch?v=Nosa5-xcATw • hashicorp/terraform-google-nomad • https://github.com/hashicorp/terraform-google-nomad • Fabio - Consul Load-Balancing made simple • https://github.com/fabiolb/fabio • Chef cookbook for nomad • https://github.com/tkak/nomad-agent-cookbook • An example application on nomad • https://github.com/tkak/echoapp
Task: "fabio" (forces create) Scheduler dry-run: - All tasks successfully allocated. Job Modify Index: 0 To submit the job with version verification run: nomad run -check-index 0 fabio.nomad When running the job with the check-index flag, the job will only be run if the server side version matches the job modify index returned. If the index has changed, another user has modified the job and the plan's results are potentially invalid. $ nomad plan fabio.nomad
Submit Date = 12/14/17 21:41:38 JST Type = system Priority = 50 Datacenters = dc1 Status = running Periodic = false Parameterized = false Summary Task Group Queued Starting Running Failed Complete Lost fabio 0 0 3 0 0 0 Allocations ID Node ID Task Group Version Desired Status Created At 21235cf3 e783830f fabio 0 run running 12/14/17 21:41:38 JST 2a03fa54 4bc3d8af fabio 0 run running 12/14/17 21:41:38 JST 6eefa6e6 093a8a6a fabio 0 run running 12/14/17 21:41:38 JST