Projects
Here are some of my projects:
-
Azure Resource Manager (ARM) Template for Virtual Machine Deployment
Project Overview: This project involves creating an ARM template to automate the deployment of an Azure Virtual Machine (VM) along with essential networking components. The template defines resources such as a public IP address, a virtual network, a network interface, and the VM itself.
Purpose: The ARM template is designed to streamline the deployment process, ensuring consistency and efficiency when setting up a VM environment in Azure. This approach highlights the benefits of Infrastructure as Code (IaC), including repeatability, version control, and reduced manual configuration errors.
Components Created:
- Public IP Address
Type: `Microsoft.Network/publicIPAddresses`
Purpose: Provides a dynamic public IP address for the VM. - Virtual Network
Type: `Microsoft.Network/virtualNetworks`
Purpose: Creates a virtual network with a specified address space and subnet. - Network Interface
Type: `Microsoft.Network/networkInterfaces`
Purpose: Connects the VM to the virtual network and associates it with the public IP address. - Virtual Machine
Type: `Microsoft.Compute/virtualMachines`
Purpose: Deploys an Ubuntu VM with specified hardware and software configurations.
Technical Skills Demonstrated:
- Infrastructure as Code (IaC): Utilized ARM templates to define and automate infrastructure deployment.
- Azure Resource Management: Managed Azure resources, including networking and compute, through declarative templates.
- Networking Configuration: Set up virtual networks, subnets, and network interfaces to ensure proper VM connectivity.
- Security: Configured secure admin access using parameterized credentials.
Template Parameters:
- location: The Azure region where resources will be deployed.
- publicIpName: The name of the public IP address resource.
- virtualNetworkName: The name of the virtual network resource.
- addressPrefix: The address prefix for the virtual network.
- subnetName: The name of the subnet within the virtual network.
- subnetPrefix: The address prefix for the subnet.
- networkInterfaceName: The name of the network interface resource.
- vmName: The name of the virtual machine.
- adminUsername: The admin username for the VM.
- adminPassword: The secure admin password for the VM.
Outcome: By defining and deploying the infrastructure with an ARM template, the project ensures a reliable, repeatable, and efficient setup process. It demonstrates proficiency in cloud infrastructure management and the practical application of DevOps practices.
- Public IP Address
-
Flask Web App with Azure Blob Storage Integration
Project Overview: I deployed a Flask web application to Azure that integrates with Azure Blob Storage. This solution transitioned a locally developed app into a fully hosted cloud service, utilizing continuous deployment with GitHub Actions.
Purpose: The main goal was to build a web app that enables users to upload files, with those files then securely stored in Azure Blob Storage, demonstrating an end-to-end cloud upload solution.
Components Created:
- A Flask web application with an intuitive upload interface.
- A GitHub repository configured with GitHub Actions for continuous integration and deployment.
- An Azure App Service set up with a custom startup command to launch the Flask app.
- Integration with Azure Blob Storage to manage and store uploaded files securely.
Technical Skills Demonstrated:
- Development with Flask and Python.
- Deployment and configuration on Azure App Service.
- CI/CD pipeline setup using GitHub Actions.
- Integration of cloud storage solutions using Azure Blob Storage.
- Troubleshooting and debugging for cloud-based applications.
Parameters:
Startup Command (Sample):
gunicorn --bind 0.0.0.0:8000 Storage_project.uploaderUI:app
This command directs Azure to use Gunicorn to serve the Flask application from the Storage_project/uploaderUI.py module, binding it to port
0.0.0.0:8000.Environment Variable: Configured
AZURE_STORAGE_CONNECTION_STRINGin Azure Application Settings to securely connect to Azure Blob Storage.Deployment Source: Automated deployments from the
mainbranch via GitHub Actions.Outcome: The project resulted in a fully functional cloud application that allows users to upload files directly to Azure Blob Storage. The deployment is live, demonstrating a secure and scalable solution for file uploads.