Cron is hard. Not in the sense that its challenging to set up but its a challenge to maintain and have visibility into. It seems like you need a whole set of infrastructure just to feel confident that things are running as intended.
This has always lead me down the path of building a task manager type of micro-service running on an independent server to manage everything. But by the time im done, it feels like over kill. I just don't know what to do differently. Am I missing something?
However, it's to me way more than simply auditing & auth. The main advantage I found with Jenkins are:
- you get a central place for all the cron jobs. That comes with all the advantages the most important one being nobody has to remember on which server is this freaking script
- making an update can easily be done
- running the task can even be done by non technical people.
- easy backup
- when a script become deprecated you can easily remove it and you're not very likely to let it there running for nothing forever
- easy documentation for you tasks
There's probably more but Jenkins is definitely awesome for cron jobs
This approach works on a small scale, but it seems like the logic should be at the application layer. Secrets, API keys, ACL, etc all need to be duplicated on Lambda. Developers can't easily run it locally. Testing (eg integration testing on database migrations) is separate from the core app. Build promotion / rollbacks are different than the core application. Error tracking / logging may be different. Monitoring will be separate.
Seems like a cool demo, but I think that running the code will have more overhead than writing it.