DEV Community

Discussion on: How do you deploy stuff? And what is the tool you use for?

Collapse
 
johnmunsch profile image
John Munsch • Edited

I use Ansible for my deployments and I really love that I don't have to specially prep the servers I'm manipulating, nor do I have to have some server stood up to work with. It's a handful of scripts and a tool installed locally.

But, I really want to call out how important I think it is to have tooling not just for the deployment of your apps but also for provisioning servers. In my experience, being able to stand up a server and just point a script at it to have it fully configured for your deployments should not be dismissed. Trash even one server by accident and you will be so happy you have that functionality. It's also wonderful how well it pairs with a tool like Vagrant because you can "vagrant up" a server locally and have it provisioned exactly like a remote server in just a few minutes. It makes it trivial to test out ideas locally before you do anything to a server you have to pay for.

If your curious, here are my devops scripts in this repo here: gitlab.com/JohnMunsch/devops
The package.json file has all of the commands I run with "npm start [name of thing to do]" in it.

However, the one part of Ansible I'm not super fond of is how inscrutable some errors can be and how inconsistent the various modules you interact with can be. Also, sometimes you want the real language structures and power of a programming language like JavaScript (or whatever) and all you have is YAML files. Bleh.