容器化部署持续交付
1,课程导学
snapshot 是开发版本
release 是发布版本
devOps(敏捷开发)
2,如何持续集成
计划--->代码--->构建(敏捷开发)--->测试(持续集成)--->发布(持续交付)--->部署(持续部署)--->运维(devOps)
jenkins--->ansible--->Vault--->不同环境
发布
灰度(蓝绿发布)
先一小部分用户体验新版本
金丝雀发布
部署25%的机器,根据监控数据决策是否进一步部署
开关功能
前后端功能没对接功能可用开关控制后先部署
3,需求任务管理
使用Jira创建Sprint,用户故事和任务
敏捷项目管理和Jira
release(月)
sprint(周)
issue(问题)
epic(史诗)
story(用户故事)
task(任务)
bug(故障)
创建Sprint(冲刺)
sprint需要关联带开发的任务
sprint需要被关联到某一个release
创建用户故事
定义用户故事的类型
定义用户故事的内容描述
分配给某个开发者
创建任务,并分配给工程师
将任务与用户故事关联
将任务放入sprint中
任务的排期和追踪
查看release版本信息
查看release任务
为任务预估story point
工作量
复杂度
风险和不确定性
查看sprint
查看sprint各个任务的进度
创建任务燃尽图
每日站会如何开
昨天做了什么,今天要做什么,有什么阻塞问题,需要什么帮助
docker 安装jira
#!/bin/bash
docker build -t mysql .
# docker run --name mysql8.0 --privileged=true -v /home/project/mysql/conf:/etc/mysql -v /home/project/mysql/logs:/logs -v /home/project/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=swj5201314 -p 3306:3306 -d mysql:8.0
docker run -p 3306:3306 --name mysql -v /home/project/mysql/conf:/etc/mysql -v /home/project/mysql/logs:/var/log/mysql -v /home/project/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=swj5201314 -d mysql:5.7 --default-storage-engine=INNODB --character_set_server=utf8mb4 --innodb_default_row_format=DYNAMIC --innodb_large_prefix=ON --innodb_file_format=Barracuda --innodb_log_file_size=2G
# mysql8.0
# mysql -u root -p #登录
# use mysql; #选择数据库
# 远程连接请将'localhost'换成'%'
# ALTER USER 'root'@'%' IDENTIFIED BY 'Swj5201314' PASSWORD EXPIRE NEVER; #更改加密方式
# ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Swj5201314'; #更新用户密码
# FLUSH PRIVILEGES; #刷新权限
# my.cnf
# [mysqld]
# pid-file = /var/run/mysqld/mysqld.pid
# socket = /var/run/mysqld/mysqld.sock
# datadir = /var/lib/mysql
# secure-file-priv= NULL
## Custom config should go here
# secure_file_priv=/var/lib/mysql
# default-storage-engine=INNODB
# character_set_server=utf8mb4
# innodb_default_row_format=DYNAMIC
# innodb_log_file_size=2G
## remove this if it exists
## sql_mode = NO_AUTO_VALUE_ON_ZERO
# mysql5.7
# CREATE DATABASE jiradb CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
# GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX on jiradb.* TO 'root'@'%' IDENTIFIED BY 'swj5201314';
# flush privileges;
#!/bin/bash
docker build -t jira .
docker run -v /home/project/jira/jiraData:/var/atlassian/application-data/jira --name=jira -d --restart always -p 8080:8080 atlassian/jira-software
docker exec --user root jira mv /opt/atlassian/jira/atlassian-jira/WEB-INF/lib/atlassian-extras-3.4.6.jar /opt/atlassian/jira/atlassian-jira/WEB-INF/lib/atlassian-extras-3.4.6.jar_bak
# docker cp atlassian-extras-3.2.jar jira:/opt/atlassian/jira/atlassian-jira/WEB-INF/lib/
docker cp atlassian-agent.jar jira:/opt/atlassian/jira/
docker cp mysql-connector-java-8.0.27.jar jira:/opt/atlassian/jira/atlassian-jira/WEB-INF/lib/
docker restart jira
# jdbc:mysql://120.78.81.53:3306/jiradb?autoReconnect=true&useUnicode=true&characterEncoding=UTF8
# com.mysql.jdbc.Driver
# 破解
# java -jar atlassian-agent.jar -d -m ywb10.8@qq.com -n XINGYUE -p jira -o http://120.78.81.53 -s BQ3E-7TIT-ZETL-TCKE
# AAAB4g0ODAoPeNp9kl9zmkAUxd/5FMz0pZ0OBIiicYaZJrhWWkALWuKMLytedRNZyC6o5NOXfxmtGh8X7j33d8+5XwJYim68E7WWqCi9druntkTTn4iaoqnCK+R/gXESU0PVFaWjdO/vVWHNAOgmThJgsk1CoBzQkqRlFXInyBt7lo8EN4sWwEarKS8UDEkVzJimOExdHIGR7xeqInd/vL3JYRwJL4Rh+aJhnLFwgzn0cQpGySOpqqS1hGbmJE+gEjNHjoM803q0P36hQ0JYftKnlX0NAHIw2Z4T+MB2wKy+8eTpHUmfBbYUDNpTadRFQY2XsHiZhalcPiQer9I9ZiAXemQHRsoyuFVWoGATaAqsLt3WnEPMN4Zj7s3B0J1G6Pf7bPB6uLMdZ/hzrAeHRRTRFn/ceG3Tj/Ds6XvwjPJnmpprxXvZWlaqt/7Mjbkh+NmCh4wkVQZHls/DuRLhNTsLpwpmimn4iaU3Vr6Is5lTeGxbfR+5kq12Og+a3lZrmXOPihLjStn1aX6KWdm5wlsOwoitMSUcV2sfCF3nGbxvSJ5RwWRQfT4/qiaRj3PX/rOookoY4U3SfTja/avgEP2GQ/xabiHWa3yb90S0w9usGljTX9zLDfdPCU77jpr1+x8vdEosMCwCFBqrnaeoM9DYMePkober+TAWltNuAhQ6GqlBXAvFdth4kUKnjz7vsWuZqg==X02mu
# xingyue
# xingyue@5201314
在开发工具里集成jira插件
在idea里集成jira插件
jira integration
Tasks
Servers
在idea里快速获取自己的开发任务
通过插件创建分支,开发代码
提交代码并更改jira任务状态
gitflow vs Trunk base 分支模型哪个更适合团队
gitflow 是一种分支开发模型
master 线上分支
develop 开发主分支
所有分支最后都需要合并到develop分支
feature 功能分支
分支名称 feature-*
release 发布分支
分支名称 release-*
hotfix 功能修复分支
分支名称 hotfix-*
适用场景
软件本身对稳定性要求高
团队少量资深研发,多数初,中级研发
开源项目
功能开关
主干开发分支模型
适用场景
软件本身迭代较快
团队中级,资深研发较多,初级研发较少
互联网产品
开发一个springboot 项目
创建springcloud服务注册中心
依赖/注解/配置
在服务应用前端加上网关
springcloud zuul 网关用法
zuul:
routes:
guestbook:
path: /**
serviceId: guestbook-service
zuul:
routes:
guestbook:
path: /**
uri: http://service:8080/guestbook/
服务链路追踪zipkin
docker run --name zipkin -d -p 9411:9411 openzipkin/zipkin
应用添加配置
spring:
zipkin:
base-url: http://localhost:9411
搭建maven私服
搭建JFrog Artifactory OSS 开源
创建Maven仓库
配置Maven连接到Arifactory
搭建JFrog Artifactory OSS 开源版
使用docker
export JFROG_HOME=/Users/xingyue/.jfrog/JFROG_HOME
# export JFROG_HOME=/home/docker-jfrog/.jfrog/JFROG_HOME
docker run -d --name artifactory-oss-6.18.1 -v /Users/xingyue/Home/xingyue/学习/工程化/artifactory:/var/opt/jfrog/artifactory -p 8081:8081 docker.bintray.io/jfrog/artifactory-oss:6.18.1
注意使用ip访问
默认用户名/密码 admin/password
maven仓库结构
开发者 ---&