|
所在平台: Coursera |
课程主页: https://www.coursera.org/learn/devops-capstone-project
课程评论:没有评论
课程名称:DevOps最终项目 课程概述:在本课程中,您将运用在之前课程中获得的技能和知识,通过开发、测试、部署、监控和增强一个安全的基于微服务的云应用,来展示您在DevOps实践中的熟练程度。整个过程将分为多个迭代周期,使用各种敏捷、云原生及CI/CD技术和工具。 课程大纲: 1. **创建和执行迭代计划**:在本模块中,您将制定一个敏捷计划,以创建一个RESTful微服务。使用敏捷、云原生和CI/CD工具,该项目将跨多个迭代完成。 2. **使用测试驱动开发(TDD)开发RESTful服务**:您将在GitHub上配置环境,并使用TDD方法开发客户账户微服务。您将创建RESTful Flask服务的测试,并确保代码覆盖率达到95%以上。 3. **为代码库添加持续集成(CI)和安全性**:本模块将教您使用GitHub Actions添加持续集成工作流,以自动化构建和测试代码。同时,您将为微服务添加安全代码实践,包括安全头和CORS政策。 4. **将应用程序部署到Kubernetes**:您将创建微服务的Docker镜像并手动部署到Kubernetes/OpenShift集群。您将完成相关故事任务,并在GitHub上提交和合并代码。 5. **构建自动化CD DevOps管道**:使用Tekton管道来自动化Kubernetes的部署,从而实现无需手动干预的持续交付。 6. **最终提交和同行评审**:在课程的最后阶段,您将提交动手实验的截图和代码链接,并对同伴的提交进行审查和评分。 7. **期末考试**:最后将进行一场考试以评估您的学习成果。 通过本课程,您将获得在实际项目中应用DevOps技能的经验,提升您的职业能力。
Name:Create and Execute Sprint Plans
Description:Before starting this module, ensure that you have a basic understanding of Agile planning and Scrum, as well as 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 over several sprints using various 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 your Kanban board. Next, you will build a user story template in GitHub, which you will later use to write well-structured user stories. Then, you will build your product backlog on the Kanban board. After finishing your product backlog, you will build your sprint plan.
Name:Develop a RESTful Service Using Test Driven Development (TDD)
Description: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.
Name:Add Continuous Integration (CI) and Security to a Repository
Description: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.
Name:Deploy Your Application to Kubernetes
Description: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."
Name:Build an Automated CD DevOps Pipeline
Description: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."
Name:Final Submission and Peer Review
Description: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.
Name:Final Exam
Description:
In this course you will apply your skills and knowledge acquired during previous courses in the PC to demonstrate your proficiency in DevOps practices by developing, testing, deploying, monitoring, and enhancing a secure microservices-based application on Cloud, over the course of several sprints, using a variety of Agile, Cloud Native, and CI/CD technologies and tools.