Skip to Content
Lab 1

CI/CD Pipelines Analysis

Workplace Context

Your development team has been successfully building features, but the release process is slow and prone to human error. Every deployment requires a developer to manually pull the latest code onto the server, run build commands, and restart the application. This process is time-consuming and recently led to a production outage because a step was forgotten.

Your tech lead has asked you to research CI/CD pipelines as a way to automate this process and improve reliability. Your first task is to understand the fundamental value of CI/CD and compare the major tools to see which might be a good fit for your team.


Your Task

Your task is to review the provided article and video, which discuss the value of CI/CD and compare different implementation tools. After reviewing the materials, you will answer a series of reflection questions in a new document.

Assignment Resources

  1. Article: GitHub Actions vs. GitLab CI vs. Jenkins: Which CI/CD Tool Fits Your Stack?
  2. Video: DevOps CI/CD Explained in 100 Seconds
  3. Video: CI/CD Tutorial using GitHub Actions

Reflection Questions

Please answer the following questions in a written reflection. Your answers should be thoughtful and demonstrate a clear understanding of the concepts presented in the resources.

  1. The “Why”: In your own words, what is the single most important business reason for a software team to adopt a CI/CD pipeline? Move beyond technical jargon and focus on the impact on the team and the product.
  2. The “How”: Describe the difference between Continuous Integration and Continuous Deployment. At what point in the process does one end and the other begin?
  3. Tool Comparison: Based on the article, which CI/CD tool (GitHub Actions, GitLab CI, or Jenkins) would you recommend for a small, budget-conscious startup that already uses GitHub for its code? Justify your choice with at least two specific reasons from the article.
  4. Flexibility vs. Simplicity: The article describes Jenkins as highly flexible and customizable, while GitHub Actions is praised for its simplicity and integration. Describe a scenario where the flexibility of Jenkins would be a significant advantage over GitHub Actions, even with the higher maintenance cost.
  5. Personal Connection: Think about a project you have worked on (personal, academic, or professional). Describe one specific, manual step in your development or deployment process that could have been automated and improved by a CI/CD pipeline.

Submission

  • Submit your written reflection as a Markdown file, PDF, or Google Doc.
  • Ensure your answers are well-written, clear, and directly address each question.

Grading Rubric

Criteria5-6 Points (Proficient)3-4 Points (Developing)0-2 Points (Needs Improvement)
1. Value of CI/CDClearly and concisely articulates a compelling business reason for CI/CD, connecting it to team productivity or product quality.Explains the value but the reasoning is generic or lacks depth.Fails to explain the business value or provides an inaccurate description.
2. CI vs. CD DistinctionAccurately defines both CI and CD and clearly explains the transition point between the two concepts in a typical workflow.Defines CI and CD but the distinction is unclear or partially incorrect.Incorrectly defines CI or CD, or does not distinguish between them.
3. Tool RecommendationRecommends the appropriate tool and provides at least two strong, specific reasons drawn directly from the provided article.Recommends the correct tool but provides weak or incomplete justification.Recommends a tool without justification or with reasons not supported by the article.
4. Flexibility ScenarioDescribes a clear and convincing scenario where the advanced customization and control of Jenkins would be a critical advantage.Provides a plausible scenario, but the connection to Jenkins’ flexibility is weak or not well-explained.Fails to provide a relevant scenario or the scenario does not justify the need for flexibility.
5. Personal ConnectionIdentifies a specific, relevant manual process from a past project and clearly explains how a CI/CD pipeline would automate and improve it.Describes a personal example, but the connection to CI/CD automation is vague or not well-articulated.Does not describe a personal example or the example is irrelevant.
Total Points30