新手问题 Docker 发版本 跟传统的 Capistrano mina 发版本 有啥 优缺点么 谢谢大家 不吝赐教!!!!

sdfsd · 2020年07月23日 · 最后由 huobazi 回复于 2020年08月04日 · 1259 次阅读

docker 发版本 跟传统的 Capistrano mina 发版本 有啥 优缺点么 谢谢大家 不吝赐教!!!! 我感觉 Capistrano 就很够我折腾了

docker 部署可以部署到任何容器管理器里,如 aws 的 ecs 容器服务,可以灵活缩放实例数量. 还能够接入 k8s 这种云原生基础设施. 而 mina 传统部署只能对一台或多台服务器主机,不如 docker 灵活. 像 rails java 这种解释性语言的镜像一般比较大,docker 部署因为要打包传输,部署速度会慢些. 使用一些部署方法可以解决镜像版本不一致的问题.

zhangzitao 回复

谢谢 提供 很重要的参考

容器部署方便很多。

  1. 环境统一
  2. 免去繁琐又重复的环境配置工作
  3. 方便无中断的部署,rolling update

基本学习路径:

  1. Docker 是什么,如何操作单个容器,如何 build 和 run。
  2. 学习 docker-compose.yml,本地操作多个容器
  3. 学习 docker swarm / kubernetes
1c7 回复

谢谢您 提供的很重要的参考

根据我个人的经验,docker 发版本的话除了懂 Docker 还需要有一定的系统配置知识,镜像定制化的过程有点像给操作系统安装软件,你要先选系统,软件,最后还要想办法让这个镜像不要过于庞大。 好处就是一切都在镜像里面配置好了,不需要太管服务器那边操作系统的环境。 后期对于项目扩容那些做起来都比较方便,数据库,nginx 这些都可以做到与服务器上的其他项目隔离,不会相互干扰。但有时候这些东西配置起来也是比较麻烦,特别是对容器中的服务进行操作还得通过命令进入到容器中去。个人觉得比较麻烦。

Capistrano 的话就是流程配置比较简单,有很多第三方的包能够辅助你部署好一个 Rails 应用,基本上不需要太多的配置,我个人比较喜欢。但是你需要事先在服务器上面准备好相应的系统环境,eg, 对应版本的 Ruby,MySQL/PostesSQL, Nginx 等等。而如果你服务器上还有其他项目用到这些服务的话,那个项目被攻击了,相应的服务 down 了,可能就会就会影响到你当前项目的状态。

个人觉得如果是简单的对扩容要求不高的项目,而且也没那么多时间去熟悉容器化技术的,还是选择后者比较好。起码先把项目上去先。以后有空再优化。😆

好处是有很多别人已经做好了的基础镜像,拿来就能用, 比如 https://github.com/ledermann/docker-rails-base 真香! 😁

我现在还在用 capistrano 部署,Docker 的优点很多,但是,capistrano 可以让我改好代码递交后,30 秒内部署生产服务器完毕。

10楼 已删除
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册