By: Mike Fleming
Chief Technology Officer
Using BeanStalk for Code Deployments
E-dreamz has been in business for 17 years (as of this writing). In Internet years we are old! The industry has changed many times over during this time span, especially in the technical space. They way you did things 15 years ago, while great at that time, really don’t work the best today. One of the areas that has constantly changed for us is how we deploy code to our various server environments. For the past year, we have been using BeanStalk and have never looked back.
We start from the beginning by using BeanStalk for all of our source code control. So it’s integrated into our process right from the beginning. I won’t cover all the benefits of using some sort of source control, as those are plentiful. Just understand if you aren’t using source control, you should be. It’s essential for team-based work environments.
Once we have code that is ready to push to an environment we utilize BeanStalk Deployments to accomplish this. No more FTP, or diffing/comparing programs to determine what actually needs to be moved. Since the code is held in source control it deploys exactly what you tell it to. So for example, you can move just single commits to an environment, or multiple at a time. You can also do the reverse. So if you jump the gun on moving something before it should be, you can revert back by deploying an older commit. So in the end, it takes a ton of the guesswork out of moving code up.
If you have the need to deploy to multiple servers at the same time (clustered environments, etc…) BeanStalk can do this as well. So you could instantly push code to multiple servers at the same time. You can also set up user permissions to restrict only certain users to have the ability to push code. In most cases, you should want to limit who can perform these functions.
One of the other great features is the ability to run post-deployment commands. A great example of this is needing to clear various caches or things similar after running a deployment. BeanStalk can do this for you as instructed. Just another slick feature.
We have become power users of BeanStalk and have been very impressed. If you are looking for a nice piece of software to do some of these things I would highly recommend giving BeanStalk a look.