113 lines
2.5 KiB
Markdown
113 lines
2.5 KiB
Markdown
# Calculator Web Application on Azure Kubernetes Service (AKS)
|
|
|
|
---
|
|
|
|
|
|
##Application Description
|
|
This project is a simple web-based calculator that performs basic mathematical operations.
|
|
It allows users to calculate expressions and save the results. A "Show History" button displays previously saved calculations.
|
|
|
|
Built with:
|
|
|
|
- Frontend: HTML/CSS/JavaScript served via Nginx
|
|
|
|
- Backend: Flask (Python) application connected to a PostgreSQL database
|
|
|
|
- Database: PostgreSQL 15
|
|
|
|
---
|
|
|
|
##Public Cloud Environment
|
|
- Provider: Microsoft Azure
|
|
|
|
- Service Used: Azure Kubernetes Service (AKS)
|
|
|
|
- Certificate Issuer: cert-manager with Let's Encrypt
|
|
|
|
- Domain: https://aliscloudwork.tech
|
|
|
|
---
|
|
|
|
|
|
##Kubernetes and Cloud Components
|
|
- Deployments:
|
|
- Frontend Deployment (Nginx server)
|
|
- Backend Deployment (Flask server)
|
|
- PostgreSQL Deployment (Database server)
|
|
|
|
- Services:
|
|
- Frontend Service (ClusterIP)
|
|
- Backend Service (ClusterIP)
|
|
- PostgreSQL Service (ClusterIP)
|
|
- Ingress Controller Service (LoadBalancer)
|
|
|
|
- Ingress:
|
|
- Ingress resource used to route traffic and enable HTTPS
|
|
|
|
- Persistent Volume:
|
|
- PostgreSQL database uses a Persistent Volume Claim (PVC) for data persistence
|
|
|
|
- Certificate Management:
|
|
- cert-manager with Let's Encrypt to generate HTTPS certificates automatically
|
|
|
|
---
|
|
|
|
|
|
##Files Included
|
|
|
|
- prepare-app.sh: Script to deploy all Kubernetes objects and services automatically
|
|
|
|
- remove-app.sh: Script to delete all Kubernetes objects and services
|
|
|
|
- kubi/*.yaml: Kubernetes deployment, service, ingress, PVC configuration files
|
|
|
|
- backend/Dockerfile: Dockerfile for the Flask backend application
|
|
|
|
- frontend/Dockerfile: Dockerfile for the Nginx frontend application
|
|
|
|
- frontend/default.conf: Nginx configuration file for routing
|
|
|
|
- README.md: This documentation file
|
|
|
|
---
|
|
|
|
|
|
##How to View and Use the Application
|
|
Open a web browser and visit: https://aliscloudwork.tech
|
|
|
|
Use the calculator to perform operations.
|
|
|
|
Click the "Show History" button to view saved calculations.
|
|
|
|
---
|
|
|
|
##Running Scripts
|
|
|
|
- To deploy the application:
|
|
- ```bash prepare-app.sh```
|
|
- To delete the application:
|
|
- ```bash remove-app.sh```
|
|
|
|
---
|
|
|
|
|
|
##External Sources and Tools Used
|
|
- DockerHub for container images
|
|
|
|
- Let's Encrypt for SSL certificates
|
|
|
|
- cert-manager for Kubernetes certificate automation
|
|
|
|
- Azure CLI for AKS management
|
|
|
|
- Official documentation for Nginx, Flask, Kubernetes YAML syntax
|
|
|
|
---
|
|
|
|
##Final Notes
|
|
- HTTPS is fully functional.
|
|
|
|
- Kubernetes ensures all components are modular and recover automatically.
|
|
|
|
- Database uses persistent storage for calculation history.
|