Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Automated CI/CD Deployment Lab

DevOps internship project completed at Orange Egypt, demonstrating an automated build and deployment workflow with Jenkins, Docker, Ansible, Vagrant, and VirtualBox.

Orange logo

Project objective

The project automates the path from a source-code update to a containerized application running on two provisioned virtual machines.

It was developed as an internship lab to demonstrate repeatable deployment practices rather than as a continuously operated production service.

Shawky Elsayed's work

  • Containerized the sample Python web application with Docker.
  • Configured a Jenkins pipeline to retrieve source code, build the image, and publish it to Docker Hub.
  • Provisioned two low-resource virtual machines through Vagrant and VirtualBox.
  • Wrote Ansible automation to install Docker, retrieve the image, and run the application containers.
  • Documented the architecture and captured pipeline evidence.

Architecture

flowchart LR
    A[GitHub repository] --> B[Jenkins pipeline]
    B --> C[Docker build]
    C --> D[Docker Hub]
    B --> E[Ansible playbook]
    E --> F[Vagrant VM 1]
    E --> G[Vagrant VM 2]
    D --> F
    D --> G
Loading

Delivery workflow

  1. Jenkins retrieves the application source.
  2. Jenkins builds a Docker image from the repository Dockerfile.
  3. The image is published to Docker Hub.
  4. Vagrant provisions two VirtualBox machines.
  5. Ansible installs Docker and deploys the published image to both machines.
  6. The same container image runs in both target environments.

Technology stack

Technology Responsibility
Jenkins Pipeline orchestration
Docker Application packaging and runtime consistency
Docker Hub Image registry
Ansible Configuration and deployment automation
Vagrant Repeatable virtual-machine provisioning
VirtualBox Local VM runtime
Python Sample web application

Evidence

Architecture diagram

CI/CD Architecture Diagram

Jenkins pipeline

Jenkins Pipeline

Docker Hub repository

Docker Hub

Application recording

Weather.App.and.10.more.pages.-.Personal.-.Microsoft_.Edge.2024-12-22.22-41-15.mp4

Demo status

This repository documents a local infrastructure and deployment lab. It is not expected to provide a continuously hosted public application.

Running it requires local virtualization resources and configured access to services such as Docker Hub and Jenkins. No paid cloud infrastructure is maintained for this training project.

Recruiters can evaluate it through the repository configuration, architecture, screenshots, and recorded application evidence.

Scope clarification

This project demonstrates a complete CI and deployment pipeline in a controlled internship environment. It does not claim production-scale availability, managed cloud infrastructure, zero-downtime deployment, or automatic rollback.

Lessons demonstrated

  • Reproducible environments reduce machine-specific deployment differences.
  • Registry-based delivery separates image creation from target deployment.
  • Configuration management avoids manual setup across multiple hosts.
  • Pipeline visibility makes build and deployment failures easier to diagnose.

Completed during Shawky Elsayed's DevOps internship at Orange Egypt.

About

✨A Python-based web application containerized using Docker and deployed on Vagrant virtual machines via a CI pipeline. The pipeline automates code integration, Docker image creation, and deployment using Jenkins and Ansible

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages