容器化部署与云服务中的传统部署相比,在我的用例中到底有什么优势?

容器化部署与云服务中的传统部署相比,在我的用例中到底有什么优势?

目前我有一个传统的部署流程,其工作方式如下:

  1. 有许多不同的“功能”。每个功能在不同的环境上运行,但存在跨功能通信。
  2. 有一个“部署器”主机,它将 git 存储库拉到上面,并将代码/资产部署到不同的 ECS 机器上
  3. “部署者”将通过自动 Bash 脚本将不同的功能部署到不同的机器上
  4. “部署者” bash 脚本可以指定机器数量以及要为每个功能部署哪些机器
  5. 每个功能都有一个环境配置文件,实际机器上的功能代码将引用它。“Deployer”bash 脚本将相同的配置文件部署到相同功能(相同环境)的服务器中
  6. 对于每个功能,负载均衡器将根据平衡规则将请求分发到同一环境的各个机器上
  7. 每台机器都运行相同的操作系统 CentOS7,并且有一份手册文档用于为每个环境设置所需的实用程序(如 httpd、PHP、NodeJs、MySQL 及其配置文件等)。设置只需进行一次,几个小时即可完成

现在容器化部署的炒作越来越流行,我正在考虑是否应该将我的流程切换到 Kubernetes(或其他替代方案)。

根据我的理解,容器化部署的主要优势和我目前的考虑是

Ability to deploy codes on cross-vendor clouds.

我目前的想法是:既然每个云都支持 CentOS7,那么安装文档和配置文件应该适用于每个云,对吗?(我处于开发阶段,还没有在真正的云供应商中进行过测试,这可能是我误解的重点,但理论上我看不出它怎么不起作用)

Easy to scale the number of machines

我目前的想法是:“Deployer” bash 脚本可以为每个功能指定要自动部署和激活的机器数量。我想不出在使用容器时如何更轻松地进行扩展/缩小

Faster deployment

我目前的想法:我的“Deployer”脚本的主要开销是通过网络复制大型资产文件。我看不出使用容器时如何能大幅减少这一开销。

More integrated local development

我目前的想法:目前的本地开发是使用 vagrant 虚拟机(全部使用 CentOS7)而不是容器完成的,我发现这并没有什么不方便。

另一方面,我了解到,在使用容器时,错误可能很难解决,日志文件也很难管理,这些都是严重的问题。

我对容器还很陌生,我承认我是那些关注炒作并考虑从我熟悉的开发/部署流程转换的人之一。然而,我目前的考虑似乎表明我不应该听信炒作,也许是因为我缺乏知识。我是否错过了什么,如果我转而使用容器,这真的有好处吗?

相关内容