https://github.com/bpavan16/cloud-computing-lab
This repository contains a collection of hands-on lab exercises
https://github.com/bpavan16/cloud-computing-lab
cloud-computing exercises labs
Last synced: 5 months ago
JSON representation
This repository contains a collection of hands-on lab exercises
- Host: GitHub
- URL: https://github.com/bpavan16/cloud-computing-lab
- Owner: bPavan16
- Created: 2025-03-21T03:06:06.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-06-01T20:51:24.000Z (7 months ago)
- Last Synced: 2025-06-02T06:23:37.692Z (7 months ago)
- Topics: cloud-computing, exercises, labs
- Language: HTML
- Homepage:
- Size: 122 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Cloud Computing - Hands-on Lab Exercises





## ๐ Overview
This repository contains a collection of hands-on lab exercises assigned for the Cloud Computing course at KLE Technological University. These exercises provide practical experience with container technologies, orchestration, infrastructure as code, and microservices architecture.
## ๐งช Lab Exercises
### 1. Microservices with Docker (microservices-app-docker)
A simple microservices application built with Docker, featuring:
- **Frontend Service:** NGINX serving HTML/CSS/JS
- **Auth Service:** Node.js service handling authentication
- **User Service:** Node.js service for user data management
- **Docker Compose:** Service orchestration without Kubernetes
**Key Learning Outcomes:**
- Containerization of Node.js applications
- Docker Compose for multi-container applications
- Microservices communication patterns
- Frontend-backend integration in containerized environments
**Technologies Used:** Docker, Node.js, Express, NGINX
### 2. Kubernetes Microservices Deployment (k8s-microservices-deploy)
Basic Kubernetes deployment of a three-tier microservices application:
- Separate deployments for frontend, auth, and user services
- Kubernetes service objects for internal communication
- NodePort service for external access
**Key Learning Outcomes:**
- Basic Kubernetes objects (Deployments, Services, Pods)
- Kubernetes manifest files (YAML)
- Application deployment on Kubernetes
- Service discovery in Kubernetes
**Technologies Used:** Kubernetes, Docker, Node.js, NGINX
### 3. Kubernetes Autoscaling (k8s-microservices-scale)
Advanced Kubernetes deployment featuring both horizontal and vertical pod autoscaling:
- Horizontal Pod Autoscaler (HPA) configurations
- Vertical Pod Autoscaler (VPA) configurations
- Load testing scripts to demonstrate autoscaling
- Monitoring and observability tools
**Key Learning Outcomes:**
- Kubernetes autoscaling concepts
- Resource management in Kubernetes
- Performance testing and load generation
- Monitoring Kubernetes cluster behavior
**Technologies Used:** Kubernetes, HPA, VPA, Shell Scripting
### 4. Infrastructure as Code with Ansible (ansible-web-app)
Automated deployment of a web application using Ansible:
- Role-based Ansible structure
- MongoDB database configuration
- NGINX web server setup
- Node.js application deployment
**Key Learning Outcomes:**
- Infrastructure as Code principles
- Ansible playbooks and roles
- Configuration management
- Service orchestration without containers
**Technologies Used:** Ansible, Node.js, MongoDB, NGINX
### 5. Advanced Ansible Deployment (ansible-demo)
Multi-server application deployment using Ansible roles:
- Web application server role
- Database server role
- Common configuration role
- Templating for configuration files
**Key Learning Outcomes:**
- Multi-node orchestration
- Advanced Ansible patterns
- Environment-specific configurations
- Database initialization and schema management
**Technologies Used:** Ansible, MySQL, Node.js, EJS Templates
## ๐ Getting Started
Each lab exercise has its own directory with a specific README and setup instructions. The general approach for all exercises is:
1. Clone this repository
2. Navigate to the exercise directory
3. Follow the README instructions in that directory
Example:
```bash
git clone https://github.com/bPavan16/cloud-computing-labs.git
cd cloud-computing-labs/microservices-app-docker
# Follow the instructions in the README.md
```
## ๐ Prerequisites
Different labs have different prerequisites, but generally you'll need:
- Ubuntu Linux environment (local or VM)
- Docker and Docker Compose
- Kubernetes (Minikube for local development)
- Ansible
- Node.js
- Basic understanding of YAML and JSON
## ๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
## ๐ Acknowledgements
- KLE Technological University for the course structure
- The open-source community for the tools and technologies used
- All contributors to this repository
---
Created with โค๏ธ by [Pavan H Bhakta](https://github.com/bPavan16)