Manual deployment sucks, plain and simple. Humans are prone to error and make mistakes all the time, but get it right once and do it the same way consistently? That’s the attraction of a CI/CD system like Jenkins. There are plenty of great CI/CD software out there, Travis and GItlabs CI/CD come to mind. Both are great systems, and the integration of your CI/CD pipeline with your repos is pretty nice. I chose Jenkins to start with because it seemed to be the most popular and thusly had a bigger community. Before I get into why Jenkins is so great, let’s get into some gripes I had with learning how to use it.
Documentation. The documentation is great, but is confusing for different languages. The basic gist of pipelines is to just use the docker feature of Jenkins. It ensures that you’re testing environment will be the same as the one you deploy too.
Besides that, I had a lot of fun setting up several projects to build and then deploy after validation in testing. CI/CD is a productivity increase of over 9000. I certainly don’t enjoy writing tests, but knowing that my software won’t get to production with known bugs is a Godsend.
Another great feature about Jenkins is it’s built in extendability. The software has over a thousand plugins to help your pipeline fit right into your dev process. And it supports just about every type of application deployment you can think of.
So if you haven’t checked it out. Do yourself a favor and learn the pipeline syntax. Then stop deploying manually and save yourself some headache.