Apologies in advance for horrible formatting/coherence. These are notes I took as I was going through your article.
Thanks for sharing. This is insightful.
We also have a similar setup with some differences.
e.g:
Instead of TF user_data for provisioning, we use ansible
I've used user data before but I found it challenging to modify since it only runs once during server creation.
Ansible allows you to run the same playbook multiple times.
You can also have generic reusable ansible roles for common tasks (e.g installing docker, reverse proxy, certificates etc)
For the blocking prefect server start, we also tried using '&' and also nohup but it was not reliable.
We had a difficult time debugging and tracing the terminal session it was opened on.
We opted for a systemd service file instead.
This way, we can also monitor the service status and logs.
It also makes it indempotent and self start on reboot.
We can also redirect std output and error to specific files
For the workpool we went with the default. Maybe next time we can test the docker workpool
For our ETL processes we use airbyte. It's a great tool for data integration.
I'm inspired to try out direct ETL like y'all though.
would also love to test out multiprocessing
We also haven't used prefect.yaml for deployment.
We instead had the deployment function from prefect in the python file and run python flow_file.py on the server to create the deployment.
We'll also test out prefect.yaml