V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Jarrekk
V2EX  ›  程序员

关于全自动环境部署、开发、测试、代码发布流程的实践

  •  1
     
  •   Jarrekk · 2017-07-07 18:09:53 +08:00 via iPhone · 2898 次点击
    这是一个创建于 2689 天前的主题,其中的信息可能已经有所发展或是发生改变。

    wei shenme shouji buneng shuru zhongwen 服务器选用 Vultr VPS,配置 1C1G,安装 Ubuntu16.04 后将 MacBook 的 ssh key copy 后使用 ansible 脚本即可完成环境部署,VPS 的网速非常快,100mb.test 下载测速只需一秒,不到 5 分钟搞定环境搭建:ansible 脚本地址 https://github.com/jarrekk/Ansible-VPS

    部署任务有:

    1. 安装 oh my zsh
    2. 创建 swap 空间并加入开机启动,重启
    3. 安装 ss (你懂得)
    4. 安装 docker
    5. 从 Dropbox download 数据库数据( mongodb 和 redis )和 HTTPS 证书,方便后面部署 docker 应用使用,Dropbox 脚本使用 https://github.com/jarrekk/Dropbox-Uploader
    6. 一些 cron job

    开发项目在 GitHub 上,前端使用 vuejs 和 element-ui 做了一些简单的功能,后端是 flask+redis+mongodb,代码分别放在:

    https://github.com/Z-Tool/ztool-backhend-mongo

    https://github.com/Z-Tool/ztool-frontend

    项目没写多少内容,主要使用 Travis-ci 实现自动化测试和部署,目前有 develop 和 master 分支,在 feature 分支上开发后 merge 到 develop 分支,每次 push 都会自动 build 并 test,code coverage 使用 codecov 集成在 Travis-ci 里面,merge 到 master 分支后会自动部署到 vps。部署方法:前端 rsync 即可,后端使用 fabric+docker-compose 实现部署。整套 CI 在项目的 .travis.yml.travis目录里。

    还有一个 Python library 的项目 https://github.com/jarrekk/imgkit,使用 Travis-ci 实现测试和发布版本到 pypi,并有完整的测试。

    对于服务器更换或者迁移 VPS 到其他厂商,只需要申请新的 VPS 主机跑一下 ansible playbook,然后在 Travis-ci 上 rebuild master 分支上最新的 job 即可。

    Jarrekk
        1
    Jarrekk  
    OP
       2017-07-07 18:17:01 +08:00 via iPhone
    为什么我发布帖子不能输入中文,为什么我发布的帖子是一天前的时间?
    Jarrekk
        2
    Jarrekk  
    OP
       2017-07-07 18:50:31 +08:00 via iPhone
    这个网站是我感觉体验比较差的网站了,手机上发文章不能输入中文,评论倒是可以写中文,发表时间晚一天,写一些稍微 sensitive 的语言把 IP 直接拉到 black list,有必要吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1111 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:54 · PVG 02:54 · LAX 10:54 · JFK 13:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.