# Capstone Project (Cloud DevOps Engineer)
Capstone project for Udacity Dev-Ops Nanodegree: develop a CI/CD pipeline for micro services applications with either blue/green deployment or rolling deployment.
## CI CD Pipeline
The CI CD pipeline is as follows for this project. For initial set up:
- Set up jenkins
- Install dependencies for local development
- Create AWS infrastructure
For application development:
- Make development change
- Commit to git
- Update AWS stack using `./awsCoUp.sh` commands listed below if required
- Push to repository
- Jenkins build automatically runs based on triggers
- Files are linted
- Docker image build and uploaded to ECR
- ECS tasks updated to run new Docker image using rolling deployment
## Running the stuff
There is a `Makefile` that contains lots of useful commands.
Running `make` will list them, like the below output.
```text
help: Show this help.
setup: Create the virtial environment to run this project
env: List the environment versions
lint: Check the validity of the project files
test: Run the tests for this prject
install: Install the required imports for this project
docker-build: Build the docker image and list available docker images
docker-upload: Upload the docker image to AWS
start-api: Run the python application locally
```
## Creating the infrastructure
From the base of this repository run the following to create or update the deployment.
```bash
aws configure # set to credentials with appropriate access
cd scripts; ./awsCoUp.sh network ../cloudformation/01-network.yml ../cloudformation/01-network-parameters.json; cd ..
# Wait for the network stack to be complete
cd scripts; ./awsCoUp.sh cluster ../cloudformation/02-cluster.yml ../cloudformation/02-cluster-parameters.json; cd ..
```
## Jenkins set up
Full jenkins set up details can be found in `jenkinsSetup.md`.
## Output
From running the above the following will be created.
The application is currently running [here](http://clust-applb-c1p26laf80l1-69580312.us-east-1.elb.amazonaws.com/) is a link to the load balancer.
AWS Stacks:
![CloudFormation stacks](./img/01-cfStacks.png)
![CloudFormation network stack outputs](./img/02-networkOutputs.png)
![CloudFormation cluster stack info](./img/03-clusterStackInfo.png)
![CloudFormation cluster stack outputs](./img/04-clusterOutputs.png)
Jenkins build when the lint fails:
![Jenkins lint failing](./img/05-jenkinsBuildFail.png)
Jenkins build when the lint passes and deploys to ECR:
![Jenkins lint passing and deploying to AWS](./img/06-jenkinsBuildPass.png)
ECR with new image uploaded:
![ECR docker image uploaded](./img/07-dockerImageUploaded.png)
Hello world application running:
![Application running in AWS](./img/08-applicationRunning.png)
<h3>Author</h3>
<a href = "https://github.com/qasim1020/Capstone-Project-Devops">GitHub</a>
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
本项目为Udacity DevOps纳米学位的Capstone项目,旨在通过构建持续集成(CI)和持续部署(CD)管道,实现对微服务应用的自动化部署与管理。项目采用了独特的云部署策略,每位学生都将构建属于自己的CI/CD管道和微服务应用部署方案。项目内容包括设置Jenkins、创建AWS基础设施、开发应用、运行相关工具和Jenkins配置等。通过本项目的实践,学生将能够将所学知识运用到实践中,并通过解决实际问题提高云开发相关技能水平。项目的输出结果包括详细的Jenkins配置步骤、微服务的CI/CD管道构建过程、AWS堆栈创建和更新过程以及应用部署策略的选择和实施等。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
资源推荐
资源详情
资源评论
收起资源包目录
Capstone-Project-Devops-master.zip (29个子文件)
Capstone-Project-Devops-master
run_kubernetes.sh 452B
.vscode
settings.json 45B
.gitattributes 66B
jenkinsSetup.md 1KB
Makefile 1KB
app
web.py 518B
tests
test_web.py 688B
img
07-dockerImageUploaded.png 937KB
03-clusterStackInfo.png 1.06MB
04-clusterOutputs.png 980KB
01-cfStacks.png 923KB
02-networkOutputs.png 1.23MB
06-jenkinsBuildPass.png 822KB
05-jenkinsBuildFail.png 864KB
08-applicationRunning.png 687KB
steps.md 2KB
Dockerfile 380B
requirements.txt 58B
run_docker.sh 265B
.gitignore 44B
cloudformation
02-cluster-parameters.json 338B
02-cluster.yml 6KB
01-network-parameters.json 462B
01-network.yml 7KB
README.md 3KB
Jenkinsfile 1KB
scripts
awsUpdate.sh 190B
awsCoUp.sh 169B
awsCreate.sh 190B
共 29 条
- 1
资源评论
sec0nd_
- 粉丝: 5941
- 资源: 1598
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Java与前端技术栈的个人计划项目设计源码
- 基于vue3+element-plus的spring boot+mybatis plus摄影分享平台设计源码
- 基于Java实现的智能语音助手ASRDemo设计源码
- 基于Atlas200DK的入门级AI模型推理应用设计源码
- MALTAB Simulink与C#仿真交互与控制的交互平台搭建与源程序设计,可辅助设计相关软件的设计,内容主要包括结合C#编写
- clllc正反相,增益方程推导
- 基于Django2.2框架的餐饮Web项目django_myobject设计源码
- 车辆轨迹规划与运动控制matlab脚本程序设计,基于动态规划算法DP的动态障碍物的轨迹规划,得到可行的行驶轨迹边界范围,然后利用
- 基于Java的easy-rabbitmq设计源码,轻松实现RabbitMQ应用开发
- 基于Python和Shell的文本识别工程管理设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功