date: 2019-05-22 20:37:57
title: php| php 微服务之旅: devops
本篇属于 PHP 微服务之旅 系列, 此系列会持续更新, 敬请期待.
如果说 微服务应用 对比 传统巨石应用 最大的难点在于 基础设施 的复杂度上, 那么本篇就是要抛砖引玉, 提供一个完整的 devops 实例, 证明一个简单的事实:
使用 devops 后, 微服务的开发也能有 传统巨石应用 的简单高效.
先提前预告一下效果, 对于一个参与到项目的开发而言:
本地只需要安装 git/docker, 容器启动后, 项目所需的开发环境全都有
开发者除了正常编写代码, 项目的 CI/CD 会在代码提交后自动触发, 开发者完全不用分心
devops 流程一览
github 私有库 / gitlab 私有部署
绑定 Travis CI 持续集成
绑定 aliyun 容器镜像服务(cr), 设置自动构建规则
绑定 aliyun 容器服务swarm(cs), 设置镜像构建后自动部署
绑定 aliyun 日志服务(sls), 设置容器日志自动投递到日志服务
下面详细讲解下各部分
git
类似对比 git 与 svn 这种事, 不会再出现在我的 blog 中, 有种去翻历史尘埃的感觉, 大概比较适合 技术史 一类的文章.
记一些 git 常用的功能吧:
git add/commit/stash/push 这些基础命令不熟悉的话, 估计对应的 工作去/暂存区/提交区/远程分支 这些基础概念也不熟, 这是基础, 自行百度补
git branch/checkout/merge 这些分支相关命令, 也要很熟悉
git tag 只是在 commit 上做了一个标记, 建议使用统一的格式
git clone 有 2 种方式, ssh 需要配置公钥, https 需要账号密码认证, 可以使用 git config --global credential.helper "store" 记住账号密码
git 是分布式的, 本地就是一个完整的仓库(repository), 通常会添加一个远程仓库来完成大家的协作
通常这个远程地址命名为 origin, 可以通过 git remote add origin url-xxx 来添加
当然远程分支是可以修改的 git remote set-url origin url-xxx
当然远程分支可以有多个
比如 github 提 PR, 需要 fork 原项目, fork 的出来的项目除了有远程分支 origin 外, 还会多一个名为 upstream 的远程分支对应原项目
当然也可以添加更多, 比如 git remote set-url gitee url-xxx, 添加一个国内的 git 库, 速度更快
推荐使用的 git 客户端: github desktop
命令行才是最好用的, 但是有一个场景除外, git diff, 强调一点, 自己写的代码, 自己一定要 review
github 自家的, 所以提 PR 使用快捷键 cmd-r 就可以了, 贼爽, 推荐给坚持开源的小伙伴
开发过程中通常使用 MR(merge request), 尽量做好 自测/code-review/CI, 从而尽量不发生 revert, 避免不了也不要慌, gitlab revert MR 体验贼好
添加 alias, 为 git 命令行操作加速
git alias 推荐:
alias gc='git checkout'
alias gb='git branch'
alias gt='git tag'
alias gs='git status'
alias gd='git diff'
alias gl="git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)%Creset' --abbrev-commit"
alias ga='git add -A'
alias gm='git merge'
alias gp='git pull'
alias gcl='git clone --progress'
# alias gp='git pull --rebase'
alias gpp='git pull;git push'
alias gco='git commit -am'
alias gca='git commit -am "upda