For just about as long as I have been in technology, when I spoke to engineers about having a specific task run on schedule I was told that we could "run a cron job" to make it happen. Over the years I realized that sys admins and engineers had a love/hate relationship with cron. It was a simple way of running repetitive tasks over and over again on a schedule, but it was just too simple. Cron didn't give you the insight and GUI to actually manage all of these tasks, follow up to see if they were successful, change them from server to server, etc. It was good and easy, but not good enough. I always wondered when something better would come along. Now all of these years later JumpCloud has delivered a better cron.
To be fair, saying that JumpCloud's new server orchestration capability is a cron replacement or supplement is a gross oversimplification. In fact the new JumpCloud service according to their release enables:
- Ad hoc or scheduled execution of scripts or commands
- Support for bash, Perl, Python, Ruby, Go, Node.js, or any other language for which an interpreter or compiler exists on a target host
- Trigger commands or scripts via Webhooks
- Results available in the UI or via API
- Audit logging of executed scripts and commands
- Tracking of all servers
- Ensuring service accounts are available across all servers
- Centralized, secure access to all servers
- JSON-based REST API
For me though the biggest thing is can we now have more insight and control into the tasks we used to run in a cron job? Do we no longer have to run through screens of logs to see if a script actually ran successfully? Can we look into a GUI and see all of our scripts scheduled to run across my entire server farm (is it still OK to call it a server farm or maybe server cloud?) with status and other information?
To me this is a game changer for the server management space. Similar type of functionality has changed server configuration. Companies such as Puppet Labs, Chef, Ansibile and others have made configuring servers at scale a repeatable, successful IT practice. Managing these servers seems ripe for a similar uplift. JumpCloud's server orchestration could be the catalyst for that.
Besides cron jobs, server orchestration could also be used for patching, access control and tracking. But really that just scratches the surface of server management and how server orchestration can help. JumpCloud's CEO, Rajat Bhargava is an old friend of mine. He has been telling me about some of the potential for server orchestration for a few months now. There is a long list of tasks that can be better automated and managed using this framework.
Of course JumpCloud themselves are not going to write every script or fully flesh out every task that can be managed. The server orchestration release can be used as a platform for others to develop on. At some point you may see an entire ecosystem of companies who have developed scripts to run JumpCloud's server orchestration service. Some of these may be free or open source, others could be premium scripts that are sold. It will be interesting to see how this plays out and where server admins, ops and DevOps people take it.
It is a good lesson for all of the tech entrepreneurs out there. Taking lessons learned from one area (in this case server configuration) and applying them to an adjacent or similar market is a great way to establish a new business. So many successful business is built on evolutionary change like this rather than revolutionary.
For now though, maybe you should get your goodbyes ready for your old cron job and step into the brave new world of server orchestration.