Rolling updates (continuous delivery) with Waypoint and systemd (or supervisord)

Hi, I am trying to setup continuous delivery of my application (just executable file + dynamic libraries, not containers!) on Linux servers with systemd process manager (supervisord can be also installed). Can you give me any examples of configuration settings for waypoint pipeline I can use to implement such application rolling version upgrades solution? Or at lease advise plugins to use, considering:

  1. my application should be configured to use certain numa or cpu cores and memory share (there are a few applications that can cocnurrently run on each server)
  2. as a source / entry point I can have either my git with cmake build files or nexus raw repository with exe file.
  3. the possibility of the update’s rollback is also needed

I’ll appreciate any ideas or advise on this matter. Thank you!

Hi @nilyin,

Waypoint presently doesn’t fit into this model very well natively, but you could use the nomad plugin to provide a raw nomad job spec. Then waypoint can help you manage rolling out the job spec.

You could also write your own you plugin to support this pattern, then waypoint could do pretty much what you want. But at present, there are not plugins that provide things along this line other than utilizing nomad.

Hi, thank you for your reply. As I understand, with Nomad I’ll have to run Nomad agent on my physical servers and Nomad server and Waypoint can both use container deployment. is that correct? If you can share a link to the similar configuration example to study, it will be great.

For plugin way, I’ll have to develop it in golang, i guess. Can you please give me approx. estimate how many man-hours it can take before I’ll further dive into the documentation’s details.

Thank you again.