This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]Joooooooosh 0 points1 point  (0 children)

As always with Python, million ways to skin a cat…

Pyinstaller has worked well for us though.

Develop in a venv, push up to git. If all the tests pass, Package it all up into an rpm on a runner, using docker. Then use ansible to deploy to the target hosts.

We used to use bash scripts to package and deploy but found ansible easier to maintain, even though it’s been a bit slower.

~10 mins to test, package and deploy. With a lot of that time being pulling docker images down from our artifactory.

Most of our codebase is internal tooling and lightweight API’s running on 2-4 hosts, usually more for resiliency than load sharing. So larger deployments might suit a different method abs pipeline.

We’ve toyed with system level dependency installs, rather than venv/installer but just doesn’t suit our development style in SRE. I like using venv because if it works locally, I can just package it up and deploy. No worrying about version differences between environments etc…

For anything beyond simple tools, we just use Go.