So here's your situation. You want to get your apps into production and manage your infrastructure as code. There are three good options for this. But which one should you pick? There are cloud vendor specific options, but I'm only going to address vendor-neutral options here.
Basically, you have three main options. They are Docker Swarm, Kubernetes, and Hashicorp Nomad.
If you need to manage VMs as well as containers, then use Hashicorp Nomad. It's designed for hybrid environments.
If you have a small environment or set of environments that is purely containerized, use Docker Swarm. It's simple to use and reliable.
If you have a large container environment that requires complex orchestration rules, use Kubernetes. It's powerful and handles edge cases well.