Skip to content

Latest commit

 

History

History
113 lines (85 loc) · 4.05 KB

README.md

File metadata and controls

113 lines (85 loc) · 4.05 KB

Azure Demo Project

Application Architecture

Architecture

Azure Services

  • Azure Resource Group:

      Azure Resource Group is a container that holds related Azure resources, such as virtual machines, storage accounts, and databases, for easier management and organization.
    
  • Azure Blob Storage

      Azure Blob Storage is a service provided by Microsoft Azure that allows you to store and manage large amounts of unstructured data, such as text and binary data
    
  • Azure Container Registry:

      Azure Container Registry (ACR) is a managed Docker container registry service provided by Microsoft Azure.
    
  • Azure Database for PostgreSQL:

      Azure Database for PostgreSQL is a fully managed relational database service provided by Microsoft Azure that offers high availability, automated backups, scaling, and security features for PostgreSQL databases.
    
  • Azure Function App:

      Azure Functions is a serverless computing service provided by Microsoft Azure that allows developers to build and deploy event-driven applications without the need to manage infrastructure
    
  • Azure Virtual Machine:

      Azure Virtual Machines (VMs) is a scalable and flexible cloud computing service provided by Microsoft Azure that allows users to deploy and manage virtualized computing resources in the cloud.
    
  • Azure Virtual Network:

      Azure Virtual Network (VNet) is a logically isolated network in the Azure cloud that allows resources to securely communicate with each other and with on-premises networks
    
  • Azure Security Group:

      Azure Security Group is a set of firewall rules that controls inbound and outbound traffic to resources in a Azure Virtual Network.
    
  • Azure Network Interface:

      Network Interface settings configure the network interface of a virtual machine, including IP addresses, network security groups, and connection properties.
    
  • Azure Public IP:

      Azure Public IP address is an IP address that is accessible from the internet and is used to expose resources, such as virtual machines, to external networks
    

AzureServices

Services Documentation

Running the Application

On Azure VM

  1. SSH into the VM from your Local System (Enabling Port Forwarding on the Application Port)
ssh -L 15085:localhost:15080 umar-admin@20.174.10.146
# You will be prompted to give your password
umar-admin@20.174.10.146's password:
  1. Pull the Docker Image from the ACR
sudo docker pull aiappliedsciences.azurecr.io/team_app:latest     
  1. Run the docker-compose to start the application
docker compose -f docker/docker-compose-azure.yaml up -d
  1. Close the application
docker compose -f docker/docker-compose-azure.yaml down

On Local System

  1. Git Clone the Repo
git clone https://github.com/umar1997/azure-demo-project.git
  1. Create a virtual environment and install python libraries
python3 -m venv demoEnv
source demoEnv/bin/activate
pip install -r requirements.txt
  1. Create a .env_azure file (Path: ~/azure-demo-project/demoApp/.env)
POSTGRES_CONNECTION_STRING=postgresql://umar:umar_password@db:5432/demo_postgres_db
BLOB_STORAGE_CONTAINER_NAME=team-data
BLOB_STORAGE_ACCOUNT_NAME=readinggroupstorage
BLOB_STORAGE_ACCOUNT_KEY=LWl*************AStrR5/DQ==
  1. Build the docker image
docker build -f docker/Dockerfile.app -t umar/demo_app:base .
  1. Run the docker-compose to start the application
docker compose -f docker/docker-compose-local.yaml up -d
  1. Close the application
docker compose -f docker/docker-compose-local.yaml down