<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Michiel's Blog - #pythonleiden</title><link href="https://tildeweb.nl/~michiel/tags/pythonleiden.html" rel="alternate"/><link href="https://tildeweb.nl/~michiel/tags/pythonleiden/atom.xml" rel="self"/><id>https://tildeweb.nl/~michiel/tags/pythonleiden.html</id><updated>2026-01-22T21:00:00+01:00</updated><subtitle>Blog - #pythonleiden</subtitle><entry><title>Reinout van Rees on prefect.io</title><link href="https://tildeweb.nl/~michiel/reinout-python-leiden-20260122.html" rel="alternate"/><published>2026-01-22T21:00:00+01:00</published><updated>2026-01-22T21:00:00+01:00</updated><author><name>Michiel W. Beijen</name></author><id>tag:tildeweb.nl,2026-01-22:/~michiel/reinout-python-leiden-20260122.html</id><summary type="html">Summary of Python Leiden talk</summary><content type="html">&lt;p&gt;Reinout is a long-time visitor of the Python Leiden meetup. In fact, he is a
regular on most nearby Python meetups and conferences. The nice thing is that
he also writes summaries of the talks he attends and he publishes those on his
&lt;a href="https://reinout.vanrees.org/weblog/"&gt;blog&lt;/a&gt;. I really appreciate this! Today he
gave a talk at our meetup, and I decided to &amp;lsquo;return the favour&amp;rsquo; so here is my
summary of his talk!&lt;/p&gt;
&lt;p&gt;Reinout discusses &lt;a href="https://prefect.io"&gt;prefect.io&lt;/a&gt;: it is a server that
provides a dashboard, has an API, shows workflows, and allows you to
start/restart jobs, examine logs, and such.&lt;/p&gt;
&lt;p&gt;In his company much IT-related work involves loading data from web APIs,
transforming it in some form, loading it in databases and so on.&lt;/p&gt;
&lt;p&gt;Previously this was all done on the command line and people had to log in over
SSH and there were constraints about rotating ssh keys which all made it very
cumbersome. Now they have a nice web UI and not so much IT restraints and it&amp;rsquo;s
much easier for people because they can just log in to a web UI and click
around.&lt;/p&gt;
&lt;p&gt;In Prefect, workflows are defined. Workflows consists of one or more tasks.
Those tasks are written in python. Prefect comes with some niceties to
configure retries on your tasks, it provides a custom logging framework and a
lot more. In the UI you can manually start jobs, configure workers, and monitor
progress.&lt;/p&gt;
&lt;p&gt;Prefect does not provide its own authentication mechanism at the moment. So if
you want to &amp;lsquo;protect&amp;rsquo; it people are using HTTP Basic auth.&lt;/p&gt;
&lt;p&gt;It comes with a docker setup, which is what Reinout is using. Also a hosted
version is available.&lt;/p&gt;
&lt;p&gt;Reinout created a cookiecutter template that allows non-programmers to create
simple python tasks. This has built in workflow that creates a github
repository, and configures github actions that creates docker containers on
every commit on main, and pushes those to a docker registry.&lt;/p&gt;
&lt;p&gt;He uses &amp;lsquo;watchtower&amp;rsquo; in the docker compose setup, which allows him to simply
deploy the stack once, and the stack will poll for updated containers and keep
itself up to date.&lt;/p&gt;
&lt;p&gt;I think it&amp;rsquo;s nice to see that they are able to provide a frictionless way to
set up, deploy and monitor data jobs for people who are more data-minded and
not hardcore sofware developers!&lt;/p&gt;</content></entry></feed>