持续交付+springboot+k8s


容器化部署持续交付

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仓库结构
开发者 ---&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星月IWJ

曾梦想杖键走天涯,如今加班又挨

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值