Also surprised they didn’t just use an open source scheduler or product. There are a gazillion of them.
Also surprised they didn’t just use an open source scheduler or product. There are a gazillion of them.
Every place I have worked cron turned into a dumpster fire.
By definition cron does not scale, it is account by account per VM/machine with no rhyme or reason.
Organisations that cobble together cron scripts for critical apps become an "an org of Slack’s size".
Companies that deploy solutions that handle all the problems with discoverability, single points of failure, failure mode options and interplanetary multi species scale when they have 0 coustomers never become "an org of Slack’s size".
The literal evidence proves that this approach is absolutely workable at scale, so “the worst possible way” clearly doesn’t apply.
The interesting question here is “how did they make this work?” The answer to which is immensely valuable to the technical community at large. “What are they building next?”, whilst interesting, is less immediately valuable as they will be building something Slack-scale, and most orgs are not Slack or Slack-scale
The “worst possible” to me implies that it is possible.
Think about trying to solve the same problem by hurling engineers into an erupting vulcano. It is expensive, hurts the morale, causes staff retention issues, but also fundamentally does not solve the task of scheduled task running. I would not describe that as “worst possible” because it lacks the second factor by not being a possible solution.
I've been looking for software in that space, a thing that runs cronjobs, with ability to kick off adhoc runs from some UI, see what is running, and if possible parameterise the custom runs (i.e., run an ad-hoc report for a different client than usual cron does)
For jobs run by data analysts, airflow and python work great. For devops jobs, begrudgingly, Jenkins or GitHub Actions. But there's so many varieties.
I almost suffocated from all the yaml typing this, but unfortunately it’s the baseline.
Plus, Jenkins has a few nice extensions to the crontab, including setting a timezone and using "H" to spread job execution load.
Such as?