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

2017-07-07 18:09:53 +08:00
 Jarrekk

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 即可。

2873 次点击
所在节点    程序员
2 条回复
Jarrekk
2017-07-07 18:17:01 +08:00
为什么我发布帖子不能输入中文,为什么我发布的帖子是一天前的时间?
Jarrekk
2017-07-07 18:50:31 +08:00
这个网站是我感觉体验比较差的网站了,手机上发文章不能输入中文,评论倒是可以写中文,发表时间晚一天,写一些稍微 sensitive 的语言把 IP 直接拉到 black list,有必要吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/373795

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX