关于Docker的几大误区

作为一名系统管理员,Matt Jaynes结合自身经验对Docker进行了评价。它在网站DevOps University上发表了博文《关于Docker的几大误区》,对那些在小范围内采用Docker而又没有坚实的基础设施作基础的情况提出了警告,并提供了改进部署过程的可选方案。

Benjamin Wootton是Contino的CTO。在博文《微服务——不是免费的午餐》中,他早已对基于微服务的架构的巨大运维开销提出了警告。Matt的经验主要来自设置Web应用程序服务器,他同样提出了警告,并且指出,要想在生产环境中安全的使用它,就要成为系统管理专家:

当前,为了使用Docker,用户需要更多系统方面的专业知识和技能,而不是更少。我们读到的关于Docker的几乎每一篇文章,给出的都是极其简单的应用场景,忽略了在多主机生产系统上使用Docker的复杂性。这让人对在生产环境中使用Docker实际上要做些什么产生了错误的印象。

如果不想学习如何管理服务器,那应该选择使用像Heroku那样的平台即服务(PaaS)。Docker不是这样的解决方案。

Matt建议从基于角色的容器(应用程序、数据库、缓存、……)入手,并且只用于有意义的角色,但前提是,项目有一个坚实的基础设施作基础:

如果基础设施存在严重的漏洞,那就不应该考虑Docker。那就像将一辆法拉利停在不牢固悬崖边上

在部署过程中,用户还可以做一些其它优化来提升性能和一致性,而不是采用Docker:

  • 使用配置管理工具(Ansible、Puppet、……)来简化服务器创建和管理,尤其是在云环境中。
  • 创建云镜像,而不是从头开始配置,以便更快地创建新服务器。基础镜像和已启动的服务器仍然可以使用配置管理工具进行配置。
  • 固定版本,明确包的版本以及它们之间的依赖关系,确保软件不会随着环境或时间的变化而变化。
  • 使用git或rsync部署应用程序,那样服务器可以以最小的下载量更新,类似于Docker的镜像层缓存。
  • 如果应用程序构建或准备过程耗时很长,则使用包部署应用程序。使用预先构建的包,如zip、rpm或deb,会加速跨服务器的部署过程。

对于多主机生产环境,Matt建议,如果不需要Docker提供的额外的好处,就尽可能多地使用这些优化方法。目前,大规模的使用Docker要等到它所带来的好处大过它额外增加的复杂性。但是,按照该项目的进展速度,情况很快就会有所不同。

误区 关于 docker
您的回应...

相关话题

查看全部

也许你感兴趣

换一批

热门标签

更多