We have VMs and deploy using Ansible, devops doesn't have to mean running everything in containers using Kubernetes.
Our applications are mostly monoliths and the number of servers they use is quite constant.
But it does mean our Python version really only changes when we switch to the next Ubuntu LTR, and isn't always the same between different projects.