We may earn an affiliate commission when you visit our partners.
Course image
John Rofrano and Upkar Lidder

Showcase your DevOps and Software Engineering skills with this hands-on Capstone project! In this course you will apply the skills and techniques you have learned as part of the previous courses in the Professional Certificate. During the project you will develop, test, deploy, monitor, and enhance a secure microservices-based application on Cloud, over the course of several sprints.

Read more

Showcase your DevOps and Software Engineering skills with this hands-on Capstone project! In this course you will apply the skills and techniques you have learned as part of the previous courses in the Professional Certificate. During the project you will develop, test, deploy, monitor, and enhance a secure microservices-based application on Cloud, over the course of several sprints.

You’ll develop an Agile plan by developing user stories and a Kanban board using ZenHub and GitHub. This plan will be implemented to create a RESTful microservice-based Flask application. You will employ Test Driven Development (TDD) to create and execute tests for the app.

You will complete many other tasks like adding functionality using Continuous Integration, ensuring the app is secure, and deploy the app on Cloud using Kubernetes. You will also build an automated CI/CD pipeline.

This course is the final course in the IBM DevOps Engineering Professional Certificates. It is recommended that you complete all the previous courses in this Professional Certificate before starting this course.

Enroll now

What's inside

Syllabus

Create and Execute Sprint Plans
Before starting this module, ensure that you have a basic understanding of Agile planning and Scrum, a GitHub account, and a Zenhub account. This module focuses on developing an Agile plan to create a RESTful microservice. You will complete this project throughout several sprints using a variety of Agile, cloud-native, and CI/CD tools and technologies. You will begin by creating a GitHub repository for the project and adding this repository to a Zenhub kanban board. Next, you will build a user story template in GitHub that you will later use to write well-structured user stories. Then you will build your product backlog in Zenhub. After finishing your product backlog, you will build your sprint plan.
Read more
Develop a RESTful Service Using Test Driven Development (TDD)
In this module, you will complete Sprint 1 by configuring the capstone project environment and developing the Customer Account microservice using test driven development (TDD). Start development of the microservice on a new branch on your GitHub repo. You will create tests for the RESTful Flask service and write test cases for the read, update, delete, and list functions. to pass these tests. As you develop, you will run nosetests to ensure at least 95% coverage. As your work progresses, you will move the user stories through your kanban board.
Add Continuous Integration (CI) and Security to a Repository
Before starting this module, ensure that you have completed all the steps described in the Hands-on Lab: Develop Your RESTful Service Using Test Driven Development. In addition, you should have a GitHub account and a GitHub repository, a basic understanding of YAML, familiarity with the syntax for GitHub Actions, and a basic knowledge of Python, Pip, and nosetests. In Lesson 1, you will add a continuous integration workflow using GitHub Actions, which will help you automate the building and testing of your code. You will start by building a plan for Sprint 2 in the guided instructional lab, Sprint 2 Planning. Next, in the Add Continuous Integration hands-on lab, you will configure a GitHub Actions workflow that will be triggered when an event occurs in your repository. As part of Sprint 2, you will create a workflow that will build and test every push or pull request to your repository. You will be moving the corresponding user stories through your kanban board as your work progresses. Before starting Lesson 2, ensure that you have completed all the steps described in the Hands-on Lab: Add Continuous Integration. In addition, you should have a basic understanding of security headers, cross-origin resource sharing (CORS) policies, Flask-Talisman, and Flask-Cors. You should also have a good understanding of test driven development (TDD) techniques, GitHub Actions, and GitHub operations (branching, merging, committing code, pushing code updates, and creating pull requests). In Lesson 2, you will add secure code practices for the microservice you built by adding Flask-Talisman for security headers and Flask-Cors to establish CORS policies. To begin, you will assign the relevant story created for this task to yourself and start working on a new branch created for this specific task. To align with TDD practices, you will first write the test case for the security feature you are trying to implement. Once you have added Flask-Talisman for security headers and Flask-Cors to establish CORS policies, commit and push your changes to the repository and make a pull request that will kick off the GitHub Action. You will move the corresponding user stories through your kanban board as your work progresses.
Deploy Your Application to Kubernetes
Before starting this module, ensure that you have completed all the steps described in the Hands-on Lab: Add Security to Your RESTful Service. In addition, you should have a basic understanding of Docker and containerization, Docker commands, Kubernetes and OpenShift, YAML, kubectl, and oc commands. You should have a GitHub account and a GitHub repository, and you should be familiar with the syntax for GitHub Actions. As part of Sprint 3, you will create a Docker image of your microservice and deploy the same to Kubernetes/OpenShift cluster manually. You will first find the “Containerize your microservice using Docker” story in the kanban board, move it to "In Progress," and assign it to yourself. Next, you will create the Docker file and then use it to build a Docker image called accounts. You will deploy this image to Kubernetes/OpenShift as part of the next user story, “Deploy your Docker image to Kubernetes.” You will create new branches for both stories and begin working on them. Once the tasks are completed, you will commit and push your changes from your local environment to your GitHub repository. Finally, you will create pull requests and merge your code to the main or master branch. You will move the corresponding user stories through your kanban board as your work progresses. When you complete a story, you will move it to "Done" and from there to "Closed."
Build an Automated CD DevOps Pipeline
Before starting this module, ensure that you have completed all the steps described in the Hands-on Lab: Deploy Your Application to Kubernetes. In addition, you should have a basic understanding of Kubernetes and continuous delivery, Tekton pipeline, YAML, kubectl, and oc commands. You should have a GitHub account and a GitHub repository, and you should be familiar with the syntax for GitHub Actions. For the lab in this module, you will automate the deployment to Kubernetes using the Tekton pipeline so that when the pipeline is triggered, the accounts service will be deployed to Kubernetes without requiring any manual intervention. To start, you will find the user story "Create a CD pipeline to automate deployment to Kubernetes" in the kanban board, move it from the "Sprint Backlog" to "In Progress," and assign it to yourself. Next, you will create the CD pipeline, involving tasks for cloning, linting, unit testing, building, and deploying the service to an OpenShift/Kubernetes cluster. You will also create a Tekton trigger using the Tekton Catalog, such as a commit to your GitHub repository, which will initiate the pipeline run. You will create a new branch for this story and start working on it. Once the task is completed, you will commit and push your changes from your local environment to your GitHub repository. Finally, you will create pull requests and merge your code to the main or master branch. You will move the corresponding user stories through your kanban board as your work progresses. When you complete a story, you will move it to "Done" and from there to "Closed."
Final Submission and Peer Review
In this final module, you will complete your submission of screenshots from the hands-on labs for your peers to review and provide URLs for your REST endpoints and GitHub repo links so your peers can review your code. Once you have completed your submission, you will review and grade one of your peers' submissions.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Develops knowledge and skills in Agile planning, coding, cloud-native approaches, and DevOps tools and technologies
Emphasizes hands-on experience through practical labs and sprints, providing a realistic and immersive learning environment
Provides a comprehensive understanding of DevOps engineering concepts and practical experience in applying them
Taught by experienced industry professionals, offering insights and best practices from the field
Aimed at learners with a background in software engineering and DevOps practices
Requires completion of previous courses in the Professional Certificate before starting

Save this course

Save DevOps Capstone Project to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in DevOps Capstone Project with these activities:
Review of Agile planning concepts
Review Agile planning concepts like Scrum and user story templates to prepare for working in an Agile environment.
Browse courses on Agile Planning
Show steps
  • Read through online materials on Agile planning and Scrum.
  • Create a sample user story template in a text editor.
Create a sample Flask app
Reinforce your understanding of Python and Flask by building a simple web application
Browse courses on Python
Show steps
  • Create a new Python project
  • Install Flask
  • Create a simple Flask app
  • Run the app
Configure your IDE
Set up your development environment so that you may code along with the course
Browse courses on Development Tools
Show steps
  • Install the required software for your operating system
  • Install the development plugins
Nine other activities
Expand to see all activities and additional details
Show all 12 activities
Tutorial on TDD with Python
Enhance your understanding of TDD principles by following a tutorial that guides you through developing a microservice using TDD in Python.
Browse courses on TDD
Show steps
  • Find a tutorial on TDD with Python.
  • Follow the tutorial to create a simple microservice using TDD.
  • Run tests to ensure the microservice functions as expected.
Practice exercises on GitHub Actions
Solidify your knowledge of GitHub Actions by completing practice exercises that involve configuring workflows and automating tasks in a real-world scenario.
Browse courses on Github Actions
Show steps
  • Find practice exercises on GitHub Actions.
  • Complete the exercises to create and configure GitHub Actions workflows.
  • Test the workflows to ensure they are working correctly.
Collaborate on a project
Work with a partner to build a small-scale project, utilizing Agile and Scrum methodologies
Browse courses on Collaboration
Show steps
  • Find a partner
  • Discuss the project idea
  • Develop and prioritize user stories
  • Set up a sprint backlog
  • Work on the project in sprints
Develop a sample RESTful API using Flask
Apply your knowledge by creating a simple RESTful API using Flask, which will serve as a foundation for the project in this course.
Browse courses on RESTful API
Show steps
  • Design the API endpoints and data models.
  • Implement the API using Flask.
  • Test the API to ensure it functions as expected.
Attend a workshop on Kubernetes
Expand your knowledge of Kubernetes by attending a workshop that provides hands-on experience with deploying and managing containerized applications.
Browse courses on Kubernetes
Show steps
  • Find a workshop on Kubernetes.
  • Register for the workshop.
  • Attend the workshop and actively participate in the exercises.
Contribute to an open-source project
Immerse yourself in a real-world project and contribute to the open-source community
Browse courses on Open Source
Show steps
  • Find an open-source project that interests you
  • Read the project documentation
  • Make a few small contributions to the project
  • Get involved in the project's community
Review the book 'Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation'
Enhance your understanding of continuous delivery principles and practices by reviewing this comprehensive book.
Show steps
  • Read the book thoroughly.
  • Take notes and highlight important concepts.
  • Discuss key takeaways with peers or a mentor.
Contribute to a Kubernetes-based open-source project
Gain practical experience with Kubernetes and contribute to the open-source community by participating in a Kubernetes-based project.
Browse courses on Kubernetes
Show steps
  • Find a Kubernetes-based open-source project.
  • Identify an area where you can contribute.
  • Submit a pull request with your contribution.
Mentor junior developers in DevOps
Reinforce your understanding and develop your leadership skills by mentoring junior developers in the field of DevOps.
Browse courses on DevOps
Show steps
  • Identify a junior developer who is interested in mentorship.
  • Establish a regular meeting schedule.
  • Provide guidance and support on DevOps concepts and best practices.

Career center

Learners who complete DevOps Capstone Project will develop knowledge and skills that may be useful to these careers:
Software Developer
A Software Developer designs, builds, and maintains software applications. This course may be useful as it will help you build a foundation in DevOps and teach you how to use various Agile, cloud-native, and CI/CD tools and technologies.
DevOps Engineer
A DevOps Engineer helps an organization get better at software delivery. This course may be useful as it will help you build a foundation in DevOps and teach you how to use various Agile, cloud-native, and CI/CD tools and technologies.
Software Architect
A Software Architect designs and develops software systems. This course may be useful for this role as it will teach you how to build an automated CD DevOps Pipeline, which will deploy your accounts service to Kubernetes without requiring any manual intervention.
Security Engineer
A Security Engineer designs, builds, and maintains security systems. This course may be useful for this role as it will teach you how to add secure code practices for the microservice you build, which includes adding Flask-Talisman for security headers.
Full-Stack Developer
A Full-Stack Developer works on both the front-end and back-end of a website or application. This course may be useful for this role because it will teach you how to develop, test, deploy, monitor, and enhance a secure microservices-based application on Cloud.
Quality Assurance Analyst
A Quality Assurance Analyst tests software to ensure that it meets requirements and is free of defects. This course may be useful for this role as it will help you build a foundation in Test Driven Development.
Release Manager
A Release Manager plans and executes the release of software products. This course may be useful as it will teach you how to develop a RESTful service using Test Driven Development.
Information Security Analyst
An Information Security Analyst protects an organization's computer systems and networks from attack. This course may be useful as it will teach you how to add secure code practices for microservices.
IT Project Manager
An IT Project Manager plans, executes, and closes IT projects. This course may be useful for this role as it will provide an Agile plan that you will implement to create a RESTful microservice-based Flask application.
Systems Administrator
A Systems Administrator manages and maintains computer systems. This course may be useful as it will teach you how to deploy your application to Kubernetes/OpenShift cluster manually.
Front-End Developer
A Front-End Developer designs, builds, and maintains the user interface of a website or application. This course may be useful for this role as it will teach you how to develop, test, deploy, monitor, and enhance a secure microservices-based application on Cloud.
Network Engineer
A Network Engineer designs, builds, and maintains computer networks. This course may be useful for this role as it will teach you how to add secure code practices for a microservice you build, which includes adding Flask-Cors to establish CORS policies.
Cloud Engineer
A Cloud Engineer designs, constructs, manages, and maintains cloud computing systems. This course may be useful for this role as over the course of several sprints you will develop, test, deploy, monitor, and enhance a secure microservices-based application on Cloud.
Application Developer
An Application Developer works on various applications within an IT environment. This course may be useful as it allows you to showcase your DevOps and Software Engineering skills since you will develop and enhance a secure microservices-based application on Cloud over several sprints.
Data Scientist
A Data Scientist gathers and analyzes data to extract meaningful insights. This course may be useful as it will help you develop an Agile plan by developing user stories and a Kanban board using ZenHub and GitHub.

Reading list

We've selected ten books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in DevOps Capstone Project.
A comprehensive guide to DevOps principles and practices, with case studies and best practices from industry leaders.
Provides an overview of site reliability engineering (SRE) practices and methodologies, which are closely aligned with DevOps principles.
Offers a practical guide to implementing continuous delivery pipelines, with a focus on cultural and organizational challenges.
A fictionalized account of a DevOps transformation, providing insights into the challenges and benefits of adopting DevOps practices.
Provides a high-level overview of DevOps concepts and practices. Offers a simple introduction to key ideas and industry terminology.
Provides an overview of agile software development methodologies, which are often used in conjunction with DevOps practices.
Covers the principles and practices of test-driven development (TDD), a technique commonly used in DevOps pipelines.
Covers the principles and practices of software architecture, providing a foundation for understanding the design and implementation of DevOps systems.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to DevOps Capstone Project.
DevOps and Software Engineering Capstone Project
Most relevant
Build Wireframes and Low-Fidelity Prototypes
Data Engineering Capstone Project
Securing the Application Lifecycle in Microsoft Azure
Finalize a Data Science Project
Soft Skills: People and Power Skills Assessment
Create High-Fidelity Designs and Prototypes in Figma
Secure Software Development: Implementation
Start the UX Design Process: Empathize, Define, and Ideate
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser