DEV Community

Discussion on: Applying the Well-Architected Framework, Small Edition

softprops profile image
Doug Tangren

Nice post! I've been thinking alot recently about the Well-Architected framework and realized it can often be accomplished without needing aws services.

For your goal

Run a python script on-demand and a set schedule

You mentioned a few points about GitHub actions

doesn’t support running on a schedule.

I wanted to share for other readers that it actually is possible to run a python script in GitHub actions on a schedule, for free even!

Have a look. I've used this to replace main cloudwatch scheduled event lambdas for free

Besides, trying to run that code in the action is going to require another event to hook into or it’ll get stuck in an update loop as the new feed items are committed to the repo.

I wanted to clarify for other readers that you can associate a separate action for pushes. A scheduled action to run your script and a push trigger for what ever else you need, filtering on paths or branches of needed.

If this is just static content you could also just host on gh pages for free

To tie these back to the AWS Well-Architected Framework am alternative might be

  • it’s highly performent

Assuming this is a static website, check. A python script will run as fast as a python script can run where ever it runs ;)

  • Low cost

Both GitHub actions and GitHub pages are free.

  • has minimal operational burden

There's no infra to maintain. No lambda lambdas to write, no IAM credentialing to manage. You check a workflow file into your repo and GitHub manages the operations of executing it.

There's also many moving parts which can sometimes remove operational burden.

  • a strong security posture

A secret store is built into GitHub actions if you need it

  • Is very reliable

Same story here. GitHub scheduling system is pretty reliable. If a script fails it gets rerun on the next pass.

marknca profile image
Mark Nunnikhoven Author

Sweet! Excellent tips. I'll check it out and see if how I can make that work as well.

As expected (and loved) there are always a bunch of ways to solve the problem.

This one might even come in less expensive than what I've laid out. Not because it's actually cheaper computationally but thanks to GitHub absorbing the cost!

softprops profile image
Doug Tangren

Agreed. Love the detail and spirit in this post