By Greg Keller Posted July 7, 2014
We often get asked the following two questions: How do you compare to Capistrano? When I push to production, I use Capistrano, so when would I use JumpCloud®? These are great questions. Fundamentally, Capistrano and JumpCloud are two completely different types of tools, but they can at times be used for similar tasks. Let’s dive into how the two solutions are different.
Capistrano started its life as SwitchTower and really gained popularity as a method to easily deploy Ruby apps. As with many other open source solutions, they end up being used in ways that weren’t immediately intended and as a result, Capistrano can also be used to execute remote tasks via SSH. And, that’s where folks end up wondering whether there is overlap with JumpCloud’s Directory-as-a-Service® command execution capabilities.
For some background on JumpCloud’s capabilities, you can run commands or a set of commands via a schedule or ad hoc across Windows, Linux, and Mac. It is like a cross-platform GPO replacement. You can write tasks in any language. JumpCloud tracks and displays full results from stdout, stderr, and the process exit code. Further, we log who executed the task and when it was executed. The core of JumpCloud is its cloud-based directory services where IT admins can centralize user management, leverage hosted LDAP, have a True Single Sign-On™, use RADIUS-as-a-Service, manage devices, and more.
Capistrano Scripting vs. JumpCloud Server Orchestration
With that as the background, let’s go through the differences and when you should use Capistrano or JumpCloud:
- Deploying to production – for relatively simple deployments to production, Capistrano is a tool that can get the job done. You’ll need to write some code, but it works. When your application or production infrastructure is more complex, JumpCloud is an excellent choice. If you have multiple steps to your deployment process, JumpCloud makes easy work of those tasks without writing heavy code.
- Executing tasks across servers in your infrastructure – Capistrano can execute a task or sequence of tasks, but it’s not really setup to be a distributed job scheduling system. It doesn’t inherently have the ability to react to results and be a dynamic command execution system. Anything you want Capistrano to do, you need to code it.
- Write code versus a UI / scripting – Capistrano – similar to various open source config automation tools – requires the operator to code what they want to be done. With JumpCloud, you have the ability to leverage the UI and use whatever scripting language you want to execute the tasks.
- Server software versus SaaS-based solution – Capistrano needs to be installed on a server. JumpCloud is a SaaS-based service.
- Managing user execution of tasks – Capistrano is an SSH key-based service, meaning that you have to manually ensure that the proper SSH keys exist on all servers that you want to control. JumpCloud is agent-based, so not only do you not have to worry about key management (something JumpCloud handles for your users, anyway), but you also don’t have to open any new inbound ports on your servers.
Capistrano is a great tool for executing simple deploys to production. We have heard a number of folks using it productively and as part of their tool chain. In fact, some folks have connected Jenkins and Capistrano together to create their continuous integration and continuous delivery pipeline. As you try to deploy more complicated applications or to more complex infrastructures, then JumpCloud is a great option for you.
Also, as you think about managing your server infrastructure, the command execution functionality of JumpCloud’s Identity-as-a-Service platform could come in handy. And, of course, we are SaaS-based, so if you want to lighten your load and just have something that you can use and not “manage” give it a try.