1. Explain the key challenges faced by traditional IT systems and how DevOps addresses them.
Focus: Highlights the pain points DevOps solves, comparing legacy systems vs. DevOps.
2. Discuss the history and evolution of DevOps. How did Agile influence the emergence of
DevOps?
Focus: Covers origins, timeline, and the Agile-DevOps relationship.
3. Define DevOps. What are their core principles and how do they support modern software
delivery?
Focus: Testing understanding of the foundational philosophy and principles.
4. What is Application Release Automation (ARA)? Explain its components and its role in the
DevOps pipeline.
Focus: Emphasizes automation in deployment and release cycles.
5. Differentiate between Continuous Integration (CI) and Continuous Delivery (CD). What are
their best practices and benefits?
Focus: Critical understanding of two central DevOps concepts and their implementation
6. Explain the CI/CD pipeline with its key steps. How does it support modern software delivery?
Focus: Tests conceptual understanding and practical sequence of Continuous Integration,
Delivery, and Deployment.
7. Differentiate between Continuous Integration, Continuous Delivery, and Continuous
Deployment. Provide real-world examples.
Focus: Helps assess clarity on the DevOps lifecycle stages and their implementation.
8. Describe the role and benefits of Blue-Green Deployments and Canary Releasing in achieving
zero-downtime deployments.
Focus: Evaluates understanding of modern deployment strategies for high availability.
9. What are the key engineering practices involved in Continuous Delivery? How do they
improve software reliability and speed?
Focus: Encourages insight into the technical side of CD and its quality benefits.
10. What are the business drivers and benefits of Continuous Deployment? How does it impact
time-to-market and customer satisfaction?
Focus: Links technical practices to business value, which is critical in DevOps thinking
11. Compare Centralized Version Control Systems (CVCS) and Distributed Version Control
Systems (DVCS). What are the key advantages of DVCS?
Focus: Tests understanding of architecture differences and why DVCS (like Git) is preferred.
12. Describe the history and evolution of Git. How did Linus Torvalds contribute to its
development?
Focus: Evaluates conceptual knowledge of Git’s origins and significance in open-source.
13. Explain the basic operations in a Version Control System (VCS) with examples.
Focus: Assesses understanding of practical VCS tasks like commit, update, revert, merge, etc.
14. What are the main features and limitations of Subversion (SVN)? How does it compare to
modern tools like Git?
Focus: Encourages critical comparison between traditional and modern VCS tools.
15. What is a private workspace in the context of version control? How does it support individual
developer productivity in DVCS?
Focus: Looks at DVCS concepts related to local repositories and individual workflows.
16. Do practice sheet questions for the lab and commands for GIT and GITHUB.
17. Compare Containers and Virtual Machines. What are the key differences in terms of
architecture, performance, and resource usage?
Focus: Assesses depth of understanding between two major virtualization technologies.
18. What are container runtimes and images? How do they work together in a containerized
application environment?
Focus: Tests practical knowledge of how containers are built, run, and managed.
19. What role does Docker play in the container ecosystem? Highlight its key features and
advantages.
Focus: Focuses on Docker as a standard tool in modern DevOps and container workflows.
20. Explain the architecture of Docker. What are the roles of Docker Daemon, Docker CLI, and
Docker REST API in container management?
Focus: Tests understanding of Docker’s internal components and how they interact.
21. What is the Docker Daemon, and how does it function as the core of the Docker platform?
Focus: Drills down into the heart of Docker's container engine.
22. How does the Docker REST API facilitate communication within Docker architecture? Give
examples of its usage.
Focus: Emphasizes the importance of automation and remote Docker management.
23. Differentiate between Docker CLI and Docker REST API. In what scenarios would each be
preferred?
Focus: Encourages practical understanding of tools and interfaces available to developers and
DevOps engineers.
24. How does Docker help in maintaining consistency across different environments like
Development, QA, and Production?
Focus: Connects Docker's real-world application to environment standardization and issue
resolution.
25. Why is tool selection critical in a DevOps pipeline? Discuss the impact of choosing the right
tools on automation, collaboration, and overall software delivery performance.
Focus: Evaluates understanding of how appropriate tools influence efficiency, integration, and
success in a DevOps workflow.
26. Dockerfile 1: Node.js Application
Dockerfile
FROM node:16-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "index.js"]
❓ Questions:
1. Which base image is used in this Dockerfile?
2. What command is used to start the Node.js application?
27. Dockerfile 2: Python Flask Application
FROM python:3.9-slim
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
WORKDIR /code
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 5000
CMD ["python", "app.py"]
❓ Questions:
1. Which programming language is used in this Dockerfile?
2. Which file contains the list of Python packages to install?
28. How can you reduce the size of a Docker image during the build process? Mention two best
practices and explain how they help
29. Practice ALL DOCKER COMMANDS
30. You need to automate the deployment and monitoring of a Node.js Express web app. Your
work will cover containerization, setting up continuous integration and deployment (CI/CD),
monitoring logs, and managing issues—all using GitHub Actions. You have the app code and the
package.json file for reference.
• What steps would you follow to put this Node.js app into a Docker container?
• Can you write a basic Dockerfile for this app?
• How would you create a GitHub Actions workflow to automatically build, test, and
deploy the Docker container?
• What are the main parts of the workflow file (for example, when it runs, building the
image, running tests)?
• Explain what each part of the workflow does.
• How can you set up GitHub Actions to watch the app’s logs and create a GitHub issue
automatically if an error (like a 500 error) shows up?
• What steps are involved in creating and managing these issues automatically?
• How does GitHub Actions help you keep track of and handle these issues?
• How would you automatically delete logs that are older than 7 days using GitHub
Actions?
• How can you automate labeling or closing GitHub issues based on the errors found in the
logs?
30. You are assigned to automate the deployment and monitoring of a Python Flask web
application. Your tasks include containerizing the app, setting up continuous integration and
deployment (CI/CD), monitoring logs, and managing issues using GitHub Actions workflows.
You have the application code and requirements.txt file available.
• Explain the steps to containerize this Python Flask application using Docker.
• Write a simple Dockerfile suitable for this app.
• How would you create a GitHub Actions workflow to automatically build, test, and
deploy the Docker container?
• What key parts should the workflow YAML file include (for example, triggers, build,
test, deploy)?
• Describe the purpose of each step in the workflow.
• How can GitHub Actions be configured to monitor the Flask app’s logs and open a
GitHub issue if errors (such as HTTP 500) are found?
• What steps would you follow to automate issue creation and management based on
detected errors?
• How does GitHub Actions help in tracking and handling these issues effectively?
• Suggest how to manage log retention by automatically deleting logs older than 7 days
using GitHub Actions.
• Explain how to automate GitHub issue management, including adding labels or closing
issues based on log error patterns.