Search code examples
automationansibletaskschedulingenterprise

What is the most practical automation and task scheduling tool and why?


I'm doing research that involves automation and task scheduling. After going around google i found a lot of automation and task scheduling tools for companies,alternatives for Task Scheduler that provide more functionality;

for example:

  1. Ansible Tower
  2. ActiveBatch
  3. Automate schedule(previously SkyBot)
  4. VisualCron
  5. more...

Apart from advertising information and such, i didn't manage to find a lot of feedback on experiences that people had with any of these(except for task scheduler ofcourse), and which one people tend to find more practical.

After research i'm guessing Ansible Tower would be the preferred choice since it works with playbooks and gives a nice overview of the workflow and status of any task that's running.

Any experiences/opinions are welcome!


Solution

  • It really depends on what you are looking for. I think you would first need to answer a few questions for yourself before you can make a decision:

    • Do you want a code-free automation tool that allows you to define automations in a drag-and-drop GUI or do you want to scripts you automations?
    • Do you want an on-premise tool that you install and host yourself or a managed cloud service?
    • Do you want to automate tasks on a local Windows machine or do you want to orchestrate workflows across systems with different operating systems?
    • How much complexity do you need to be able to handle? Complexity has many aspects, number and variety of software tools you want to integrate in your automations is one aspect, another one is the complexity of dependencies you want to be able to manage, the frequency with which your automations should run, the “intelligence” you need to build into your automations, the variety and type of triggers you want to use for your automations etc.

    Most of the tools you list (Task Scheduler, ActiveBatch, Automate Schedule, VisualCron) are GUI-based task schedulers with a clear Windows focus. With them, you schedule tasks in a Graphical User Interface and don’t need to code anything. They are fairly easy to use, but also fairly limited in what you can do with them. Also none of them has a specific use-case focus, meaning that you can automate all kinds of processes with them. And they are all commercial products.

    Ansible / Ansible Tower has a very different approach to automation. It is code-based, meaning that you need to write your playbooks yourself. It’s not Windows-specific. Ansible also open source, so you can host it yourself if you have the know-how, or go for the commercial Ansible Tower option if you want it as-a-service. Ansible is also not really built for task scheduling – you can schedule tasks with Ansible, but it seems like overkill. It is really made for more complex use cases in infrastructure configuration.

    From my perspective, comparing Task Scheduler with Ansible / Ansible Tower is a bit like comparing hiking boots with a car – both are made for transportation, but with vastly different approaches and levels of complexity.

    Now if you want an airplane (to stick with the metaphor), I could recommend one more tool to you: Cloudomation. Full disclosure: I work for them. It’s a general-purpose automation tool that goes even further than Ansible in terms of the levels of complexity you can manage with it. So if you’re looking to set up a powerful automation platform that can integrate with almost anything, go for Cloudomation.

    If you are looking for a powerful automation tool for infrastructure configuration, go for Ansible or Ansible Tower.

    If task scheduling is your main concern, you work with Windows and Windows software, and you just want something with a bit more functionality in terms of monitoring / central management / maintainability, ActiveBatch, Automate Schedule or VisualCron seem like sensible options, though admittedly I haven’t worked with any of them.

    If you’re just looking for a tool with which you can schedule simple task, I would recommend Cron for Unix systems, or to stick with Windows Task Scheduler.

    If you can describe a little bit what kind of tasks you are looking to automate and what features you are looking for in an automation tool, it might be easier to help you find the right tool.

    Hope this helps!