5 ms·
Discuss HN: How do you deploy?
I was actually pretty surprised after running a search that this topic hasn't really been discussed in detail.
So let's go over the different methods that many of us use. Please explain the method you use to deploy your latest code releases. Do you use continuous deployment, or do you run out weekly/major cycles only.
It would be useful to provide the following...
--------------
[] Your deployment cycles. (ie Continuous or only major releases)
[] Means that you deploy your code
[] Approximate number of servers you deploy to
[] Version control used (if at all applicable to how you deploy)
[] Web technologies used (if applicable to how you manage your deploy)
- deleted 14y ago[deleted]
- zacharyvoase 14y agoI use Chef or Puppet for provisioning, and Capistrano or Fabric for deployment. The process varies based on the application, but IMHO the process should be entirely automated (i.e. I shouldn't have to SSH onto a production machine).
- pestaa 14y agoI think a lot about this. If you automate the process, you still SSH in to production machines, but implicitly. If done properly, it should be sufficient to make a package known to your environment and use a remote execution manager like Salt[0] to initiate the update process. [0]: http://saltstack.org/ http://saltstack.org/
- callmeed 14y agoWhy chef or puppet? Do you have a preference? I'd like to learn one so I'm curious.
- goshakkk 14y agoI type `git push staging development:master` to deploy to staging, `git push production master` to deploy to production. Apps are deployed to Heroku. Code is hosted on Github.
- kvad 14y agoI like to git push to my CI server and from there build packages for the env I'm working in. Nice and quick roll back, delete package reinstall. Git pull does not scale well and with Fabric in the wrong hands is really slow.
- kvad 14y agoI like to git push to my CI server and from there build packages for the env I'm working in. Nice and quick roll back, delete package reinstall. Git pull does not scale well and with Fabric in the wrong hands is really slow.
- syst3ml00t 14y agoI use http://www.deployhq.com/ http://www.deployhq.com/.
- xackpot 14y agoI use Dotcloud (and their hosting) to push my latest code to the servers. Once you have got hang of using dotcloud cli, it's pretty easy to use and saves a lot of time in pushing the code to the servers.
- mitchtwo 14y agoI use GitHub and http://www.digitalocean.com http://www.digitalocean.com (cloud hosting) to deploy my RAILs applications. Super fast and simple. :)
- deleted 14y ago[deleted]
- dieselz 14y agoTo deploy without granting your development environment ssh access to the staging or production environments, I suggest you setup port knocking which triggers a script on the server to checkout the latest code. The command can be as simple as git pull or something more complex like capistrano does with symbolic links. Check out http://www.zeroflux.org/projects/knock http://www.zeroflux.org/projects/knock - it is very simple to configure. I find this method to be very secure because if a hacker somehow figures out that a) you're using port knocking and b) the exact ports that you are using, in the right order, then the worst they can do is trigger a code deployment.
- jethrokuan 14y agoContinuous releases for now, probably make it major releases soon ActiveRecord, Postgresql Database Git for version control Deployed to heroku (easy web deployment with just "git push heroku master")