DevOps — Internship Tasks

Objective, Features, Technologies and tasks to learn DevOps fundamentals and practical skills.

Objective

Train interns in modern DevOps practices: Linux fundamentals, containerization, Infrastructure as Code, CI/CD pipelines, basic orchestration, monitoring, and automation using industry tools. Tasks are hands-on and aligned with Alfido Tech workflows.


Features


Tools

Linux (Ubuntu) Docker Git / GitHub GitHub Actions (CI/CD) Terraform Kubernetes (optional) Prometheus / Grafana

Beginner Level Tasks


Note: Out of the 4 main tasks below, you are required to complete any 3 tasks.

Tasks (4)

Goal

Containerize a simple web application (Node/Python/Java) and run it using Docker.

Requirements
  • Create a Dockerfile with multi-stage build if applicable
  • Provide docker-compose.yml to run app + DB (if any)
  • Document build & run commands
Deliverables
  1. GitHub repo with Dockerfile, docker-compose.yml, and README
  2. Screenshot of running container and exposed endpoint

Goal

Create an automated CI/CD pipeline that builds, tests, and optionally deploys the containerized app.

Requirements
  • Write GitHub Actions workflow(s) for build and test
  • Deploy to a simple environment (Docker Hub + remote host or GitHub Pages for static sites)
  • Include status badges in README
Deliverables
  1. GitHub repo with .github/workflows/*.yml
  2. Workflow run screenshots and explanation

Goal

Use Terraform to provision basic infrastructure (e.g., a VM, network resources, or a managed service) in a cloud or local provider (use localstack or provider of choice).

Requirements
  • Write Terraform configuration for simple resources
  • Show plan & apply steps (ideally in a disposable test account)
  • Explain state handling and variables
Deliverables
  1. Terraform code in GitHub repo and README with commands
  2. Screenshot of resources provisioned (or plan output)

Goal

Implement basic monitoring and logging for your app and create a small incident response / runbook.

Requirements
  • Use Prometheus + Grafana, or a lightweight alternative (or mock screenshots)
  • Collect logs (ELK stack optional) or show how logs are aggregated
  • Prepare a short runbook for a common incident (e.g., service down, high CPU)
Deliverables
  1. Monitoring screenshots/dashboards, sample alert rule
  2. Incident runbook (DOC/PDF) with steps for detection, mitigation, and post-mortem

How to Submit Your Tasks

  1. For each task:
    • Create a separate document (DOC, DOCX or PDF) describing the task, commands used, configs, and screenshots.
    • Include links to the GitHub repository and any deployed endpoints.
  2. Upload artifacts:
    • Push code to GitHub (public or shared repo) and share links.
    • Upload large artifacts (screenshots, dashboards) to Google Drive if needed.
  3. Submit links:
    • Go to the Task Submission page.
    • Paste your GitHub and document links clearly mentioning task numbers.

Tip: Use clear READMEs, include exact commands, and provide reproducible steps — reviewers will run your commands.