As most folks in the IT industry know, cron is a staple, but incredibly painful to work with. Setting up and configuring cron jobs is literally fighting with an arcane language. Then there鈥檚 the whole issue of knowing if your cron jobs ran, what their output was, and auditing them. People all across your organization end up putting cron jobs on your servers and some of them might conflict, overlap, or cause errors. Cron jobs are also relatively simplistic 鈥 you can鈥檛 trigger off of results or create event-based jobs without writing a lot of code. Cron was first written in the 1970s, so it鈥檚 not a surprise that it鈥檚 painful to work with. As surprising as it is, though, cron is a core part of most organization鈥檚 operations.
As a company focused on server management, we鈥檝e been talking a lot about how we can help DevOps and IT pros automate tasks and generally make their lives easier. Many a customer have asked us to include scheduling of tasks into our product. So, this past week we just did that! Kudos to our dev team for cranking out some amazing functionality that we hope will help save IT folks a tremendous amount of time.
Here鈥檚 how our centralized task scheduling and job execution capabilities work. Decide on the task or group of tasks that you would like to execute. These can include a process or workflow 鈥 which is something that is much harder to do with cron! Write the job in whatever language that works for you 鈥 could be bash, perl, python, Ruby, Go, node.js, or any other language that your server supports. The task can be written in our task editor or you can upload a script. From there you schedule the task through our scheduler 鈥 which is a whole lot simpler than dealing with the arcane cron date and time scheduling apparatus! The task can now be run against a single server, a group or even groups of servers, or all of your servers. You decide through selecting a 鈥渢ag鈥 鈥 which is our mechanism for creating a group of servers. As part of deciding where you will run these tasks, you get to also decide who these tasks are run as 鈥 this is critical for auditing purposes. Then you are all set. Simply save the task and it will execute for you!
Now, here鈥檚 where it gets exciting. After your job is complete, you鈥檒l have full logging of the execution 鈥 i.e. what worked and didn鈥檛 work, reporting of the results, and auditing to confirm who ran the task, when it executed, and on which servers. This is all available in the 探花大神 UI. Far easier than grepping through log files to see if everything ran correctly and worse: doing that on a lot of machines. We鈥檝e all had cron jobs fail and as a result our disk space filled up or our database wasn鈥檛 backed up, or n number of other things. One of the best things about this functionality is that you don鈥檛 need to worry anymore about that 鈥 if something fails you鈥檒l know about it. If it ran properly you鈥檒l have all of the history.
Another key benefit of our centralized server management approach is that as an admin, you鈥檒l get to see all of the tasks or jobs across all of your servers. Your fellow admins can set up jobs themselves, but the nice part is that all of you can see what tasks and jobs are scheduled across your servers. This is far more usable and auditable than manually checking each server for what jobs it has scheduled, and whether they conflict.
Thanks to so many of you for requesting this functionality. We are excited to help save people time, give them better control over their environment, and increase predictability and reliability of their infrastructure. If this sounds better and easier to you, ! It only takes a few minutes to get 探花大神 up and running.
This is the way cron should be in 2014.