-
GitHub Workflows: Automates the deployment process through CI/CD pipelines using GitHub Actions. It handles tasks such as building, testing, and deploying the application.
-
Container Registry: A storage system for Docker images. After the application is built, the image is pushed here.
-
Container App: A service that manages and scales the containerized application, pulling the Docker image from the Container Registry.
-
Function App: A serverless compute service that runs event-triggered code, which does not require managing infrastructure.
-
Web App: The interface for users, potentially a front-end service like WordPress, interacting with the Container App and Function App.
-
Key Vault: Secures sensitive information such as secrets, tokens, and certificates required by the Container App, Function App, and Web App.
-
Storage Queue: Manages communication between services asynchronously, mainly used for processing tasks queued by the Function App.
-
Resource Group: In Azure, it's a collection that holds related resources for an Azure solution, including the Web App, Function App and Container app.
-
Users: The end-users accessing the Web App.
-
Code Push & CI/CD Trigger: Developers push code to GitHub, triggering the GitHub Workflows for CI/CD.
-
Build & Image Push: Builds a Docker image and pushes it to the Container Registry.
-
Deployment: Deploys the Docker image to the Container App and configures the Function App and Key Vault.
-
Service Interaction:
- The Web App communicates with the Container App to serve content.
- The Function App may place tasks in the Storage Queue.
- The Container App may process tasks or messages from the Storage Queue.
-
Resource Management: All services are managed within an Azure Resource Group for centralized governance.
- "N/S" indicates Network/Security, marking where network traffic and security are crucial.
To work with this application architecture:
-
Permissions: Verify access to the GitHub repository, Container Registry, Key Vault, Storage Queue, and Azure Resource Group.
-
Local Development: Clone the repository and set up your local environment following the project's guidelines.
-
Deployment: Use the GitHub Workflows documentation for CI/CD guidance. Securely manage your environment variables and secrets in Key Vault.
-
Monitoring & Maintenance: After deployment, monitor application health with Azure's services. Storage Queue insights will inform on job statuses and potential issues.
For a detailed breakdown of each component, refer to the Azure's service documentation.