You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: README.md
+22-3
Original file line number
Diff line number
Diff line change
@@ -23,21 +23,40 @@ I have found a few resources covering deploying Airflow on Azure, none of which
23
23
- DAGs should contain a number of related steps (e.g., extract-transform-load)
24
24
- DAGs can be linked to one another via datasets to enable triggering and dependency graph
25
25
26
-
## Airflow Setup
26
+
## Python Setup (Attempt #2)
27
+
28
+
As an alternative to Docker I tried a standard Python configuration for easier deployment to App Service.
29
+
30
+
### Airflow Setup
31
+
32
+
### Azure Setup
33
+
34
+
1. Create Web App + PostgreSQL with Python
35
+
2. Turn on Application Insights, Logging
36
+
37
+
### Automated Deployment
38
+
39
+
1. Referenced [this workflow](https://learn.microsoft.com/en-us/azure/app-service/deploy-github-actions?tabs=applevel%2Cpython%2Cpythonn) to deploy Python app to App Service
40
+
41
+
## Docker Setup (Attempt #1)
42
+
43
+
This was working fine locally but deployment to App Service did not go as well. Goal to use a custom extended airflow Docker container
44
+
45
+
### Airflow Setup
27
46
28
47
1. Started with official [docker compose](https://airflow.apache.org/docs/apache-airflow/stable/howto/docker-compose/index.html)
29
48
2. Decided to [extend the image](https://airflow.apache.org/docs/docker-stack/build.html#extending-the-image) starting with the slim version due to limited packaged requirements
30
49
3. Switched to `LocalExecutor`
31
50
4. Stripped down the Docker Compose to a single container to run webserver + scheduler and use for dev container
32
51
33
-
## Azure Setup
52
+
###Azure Setup
34
53
35
54
From the resources above I determined I can run the webserver and scheduler together in a single container with `LocalExecutor`. `CeleryExecutor` shouldn't be necessary unless scale increases and multiple workers are required.
36
55
37
56
1. Create PostgreSQL flexible server for database
38
57
2. Create App Service app with container (NOTE: I followed [this tutorial](https://learn.microsoft.com/en-us/azure/app-service/configure-custom-container?tabs=debian&pivots=container-linux#enable-ssh) to configure SSH access in app service)
39
58
40
-
# Automated Deployment
59
+
###Automated Docker Deployment
41
60
42
61
1. Referenced [this workflow](https://docs.github.com/en/actions/use-cases-and-examples/publishing-packages/publishing-docker-images#publishing-images-to-github-packages) to build and publish to GitHub Container Registry
43
62
2. Referenced [this workflow](https://learn.microsoft.com/en-us/azure/app-service/deploy-best-practices#use-github-actions) to deploy updated image to Azure Web App
0 commit comments