I am in need of deploying mission critical private project. I need your opinions or experiences in using Continuous Deployment strategies.
If its going to be a self-hosted, checkout - GoCD by ThoughtWorks, it's simple, easy to use, super flexible in terms of setting up pipelines, I personally loved using GoCD (also it's free & open-sourced!), I would say GoCD is a solid and better alternative to Jenkins.
There are tons of PaaS kind of services for CI/CD, my personal favorite has to be Werkcer for personal projects, again super easy to use, else TravisCI is sufficient for me.
Also a side-note, if you have your repo hosted on GitLab, they have their own CI, which is similar to TravisCI
I've been using TeamCity for a few years now and highly recommend it. You can do things like hook it into your unit tests and configure it to only build if those tests pass. You can also set it up to automatically build when you push commits to your source control (I recommend doing that for your staging environment and then setting up a more explicit deployment process for your production).
So, I can segregate this into two broad choices which you might want to follow.
You might want to use this when you just want to get CI done. No questions asked. And you're not in the need of very fine control. For this, I'll recommend CodeShip.
I have been using it for the past couple of years now, and I just love it. Their pricing model is just terrific. You don't need a credit card if you have <100 builds/month. I am speechless about their support (semantics, ugh). Just drop them a line, and they make sure you get the help. You can automatically deploy a build branch with their deployment pipelines.
What I am particularly fond of, is their SSH access. You can get a snapshot of the build server, and the diagnose why it isn't working correctly. Really awesome!
However, that's not always the case. Sometimes you need finer control; control over everything. Right from the build environment, to the deployment artifact. For this, I'd recommend a custom CI solution.
For me, it's TeamCity by JetBrains. Another remarkable product from their suite of tools for developers. I mean, it's really very easy to use for beginners, but as your experience grows, you can do advanced things with it.
My favorite part here is that, with the free tier, you get 3 workers. Now, these workers are the things which actually execute and test your product. So, you get 3 parallel builds; something which wasn't free in CodeShip.
--
The deployment scheme I follow is rather simple:
That's my strategy. If you need help in setting this up, or with anything, feel free to contact me!
I hope this helps! :)
Last year we had a poll on this. Things might have changed though. Eager to see what others suggest.
Jan Vladimir Mostert
Idea Incubator
We use custom-built tools. Spinnaker which I haven't used in production yet seems like it covers most if not all the bases.