0% found this document useful (0 votes)
7 views

DevOps Assignment2

This assignment for CSC483 at COMSATS University focuses on containerization and automation in cloud computing using Docker and Jenkins. Students are required to deploy a web application on AWS using Docker and create an automation pipeline with Jenkins for continuous integration and delivery. The submission includes a report detailing the process, Dockerfiles, and Jenkins scripts, with specific evaluation criteria outlined for grading.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

DevOps Assignment2

This assignment for CSC483 at COMSATS University focuses on containerization and automation in cloud computing using Docker and Jenkins. Students are required to deploy a web application on AWS using Docker and create an automation pipeline with Jenkins for continuous integration and delivery. The submission includes a report detailing the process, Dockerfiles, and Jenkins scripts, with specific evaluation criteria outlined for grading.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

COMSATS UNIVERSITY, ISLAMABAD

Department of Computer Science


Assignment - 2, Spring 2025

[CLO2]: Enumerate virtualization and containerization techniques used in cloud computing


[CLO3]: Compare centralized and distributed types of source control management techniques
[CLO4]: Apply DevOps pipeline automation techniques for code deployment
Course: CSC483 – Topics in Computer Science II (DevOps) Class: BCS-VII
Instructor: Qasim Malik Total Marks: 10

Part-I: [CLO2] Containerized deployment of a web application [4+1]

Docker is a software framework for building, running, and managing containers. In this part of the assignment,
you are required to build or reuse any previously built web application and deploy it over the Public Cloud
AWS in a containerized way using Docker. Since building a web application is out of the scope of this course,
it can be any simple web application with the only requirement being that it uses some Database Server for
storing application’s data. You are required to deploy the containerized web application using IaaS based
service, Amazon Elastic Compute Cloud (Amazon EC2), offered by AWS. Specifically, you are required to
write a dockerfile to build a docker image containing the image of your web server and the code and push it
to Docker Hub. Afterwards, you are required to write a docker-compose file running of which will launch the
containerized web application. In your docker-compose file, you must attach a volume to the database
container for data to remain persistent.

Upon completion of this part, you will be able to:


▪ Write dockerfile and docker-compose file
▪ Configure and deploy containerized applications over the cloud

Part-II: [CLO3, CLO4] Creation of an automation pipeline [4+1]

Jenkins is an open-source automation server which helps automate the parts of software development related
to building, testing, and deploying, thus facilitating continuous integration and continuous delivery (CI/CD). In
this assignment, you are going to use Jenkins, running over AWS EC2 instance, to automate build phase of
the software development. You are required to put the code, of the same web application you used in Part-I,
in a GitHub repository. Afterwards, you are required to write a Jenkin pipeline script using Git, Pipeline, and
Docker Pipeline plugins that will fetch code from GitHub and build your web application in a containerized
environment using Docker. You can re-use the docker-compose file from Part-I after making the following
changes:
- Attach a volume for the code
- Use different port numbers and container names
- Choose different project name
The following command will run docker-compose file under different project name:
docker-compose -p <project_name> -f <compose_file.yml> up -d

Upon completion of this part, you will be able to:


▪ Configure and install Jenkins over the cloud
▪ Integrate Git and Docker with Jenkins
▪ Create an automation pipeline in Jenkins for build phase
1
What to submit

This is an individual assignment. Please fill out the following Google form to provide URLs for both the Parts:

https://forms.gle/Hiu4zWPbgFXAP1rp9

Here’s the link of the response sheet for the above google form to view your responses:

https://docs.google.com/spreadsheets/d/1ZaaDzGwcaTW5aom_UdUgFHVNOUxOM01MwTi9wzytHKU/edit?
usp=sharing

You are also required to submit a well-formatted report describing your application and documenting all the
micro steps you followed for both parts, along with relevant screenshots.

▪ For Part I, include your Dockerfile, docker-compose.yml, and the URL of your containerized web
application running on an AWS EC2 instance.

▪ For Part II, provide the docker-compose.yml and the Jenkins pipeline script.

Additionally, you must add me as a collaborator to your GitHub repository so I can trigger your Jenkins
pipeline and verify its functionality.

Evaluation Criteria

Criteria Marks
Containerized application is up and running 4

Pipeline is triggered by the GitHub push 4

Report with screenshots and steps 2

You might also like