持续集成、持续交付、持续部署

一、术语解释
在软件开发领域,经常提到持续继承(Continuous Integration,CI)、持续交付(Continuous Delivery,CD)和持续部署(Continuous Deployment)等术语。

持续集成
continuous integration (CI) is the practice of merging all developer working copies to a shared mainline several times a day.
即持续集成是指开发阶段,对项目进行持续性自动化编译、测试,以达到控制代码质量的手段。核心是确保新增的代码能够与主干代码正确的集成,持续集成是一种软件开发实践。

持续交付
Continuous delivery (CD or CDE) is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time and, when releasing the software, doing so manually.
持续交付是在部署到生产环境之前,加了一个业务判断,决定是否交付给客户,然后一键部署到生产环境,核心是交付的产物而非代码,是一种使得软件在较短的循环中可靠发布的软件工程方法。

持续部署
Continuous deployment (CD) is a software engineering approach in which software functionalities are delivered frequently through automated deployments.
即通过自动化部署的手段将软件功能频繁的进行交付。

目前项目上线,必然会使用到持续集成工具,如Jenkins,walle等,当然,目前公司使用比较多的是Jenkins(上家公司就是),但现在的公司使用的是walle(瓦力),所以就研究了一下,在此记录一下安装使用。

二、walle安装问题说明

官方安装说明
github地址

1 python编辑安装及其扩展安装
2 pip安装及python版本对应
3 walle环境mysql配置(最好是5.7及以上版本,否则migration文件执行会报错,datetime 默认值问题)
4 搭建过程中核心文件admin.sh (init start),会遇到很多问题(比如flask扩展,python虚拟环境等),都可以google解决
5 nginx server配置,参考官方文档和runtime.log详细信息,基本没问题,我的walle.conf配置如下

upstream webservers {
    server 0.0.0.0:5000 weight=1; # 负载设置
}

server
{
    listen 80;
    server_name  admin.walle-web.io; # 域名设置
    access_log   /usr/local/nginx/logs/walle.log;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ /index.html;
        add_header access-control-allow-origin *;
        root /var/www/walle/fe;
    }

    location ^~ /api/ {
        add_header access-control-allow-origin *;
        proxy_pass http://webservers;
        proxy_set_header  X-Forwarded-Host $host:$server_port;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header    Origin        $host:$server_port;
        proxy_set_header    Referer       $host:$server_port;
    }

    location ^~ /socket.io/ {
        add_header access-control-allow-origin *;
        proxy_pass http://webservers;
        proxy_set_header  X-Forwarded-Host $host:$server_port;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header    Origin        $host:$server_port;
        proxy_set_header    Referer       $host:$server_port;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;

        # WebScoket Support
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

7 用各个账户登录看看,最后用所有者:owner@walle-web.io \ Walle123来登录并创建发布项目
8 远程目标机器免密码登录失败,把walle部署机器的id_rsa.pub拷贝到目标发布机器的authorized_keys文件中
9 创建项目中的“目标集群部署路径” 和 “目标集群部署仓库” 是指定的某个代码发布目录,注意,这个目录不需要提前创建,比如要发布的目录为/opt/projects/www, 则机器上的目录只到/opt/projects/,否则会报mv: cannot overwrite directory ‘/opt/projects/deploy’ with non-directory
10 项目发布模板,可以定制很多(前置,后置)如,停服,启服等
11 代码一旦成功部署完成后,即可配置nginx访问站点

三、walle系统图例
1 环境列表
在这里插入图片描述
2 服务器管理
在这里插入图片描述
3 创建项目
在这里插入图片描述

4 项目列表
在这里插入图片描述
欢迎一起学习交流,如有侵权,请联系删除!

参考文档
1 http://www.walle-web.io/
2 https://jenkins.io/zh/
3 https://github.com/meolu/walle-web

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值