导读:所有的服务都开始了容器化升级,在一切皆容器的主流思想下,无状态的服务采用容器化已经是大势所趋,常常困扰架构师的一个问题是,数据库是否需要容器化,本文作者 Mikhail Chinkov 提出了自己否定观点,由高可用架构翻译。 如果我们观察 2017 年技术行业,容器和 Docker 依然将是最热门的流行语。我们开始在每个领域的 Docker 容器中打包开发的软件。从小型初创公司到巨大的微服务平台都在使用容器技术。从 CI 平台到 Raspberry Pi 。从数据库到…… 数据库不适合容器化的7大原因1. 数据不安全即使你要把 Docker 数据放在主机来存储 ,它依然不能保证不丢数据。 Docker volumes 的设计围绕 Union FS 镜像层提供持久存储,但它仍然缺乏保证。 2. 运行数据库的环境需求常看到 DBMS 容器和其他服务运行在同一主机上。 然而这些服务对硬件要求是非常不同的。 3. 网络问题要理解 Docker 网络,您必须对网络虚拟化有深入的了解。也必须准备应付好意外情况。你可能需要在没有支持或没有额外工具的情况下,进行 bug 修复。 4. 状态在 Docker 中打包无状态服务是很酷的,可以实现编排容器并解决单点故障问题。 但是数据库呢? 将数据库放在同一个环境中,它将会是有状态的,并使系统故障的范围更大。下次您的应用程序实例或应用程序崩溃,可能会影响数据库。 5. 数据库不适合使用主要的 Docker 功能考虑容器中的数据库,我们来思考它的价值。 我们先看看 Docker 官方对其的定义: Docker 是为开发人员和系统管理员构建,分发和运行分布式应用程序的开放平台。 Docker 包括 Docker Engine(便携式,轻量级运行时和打包工具)以及 Docker Hub(用于共享应用程序和自动化工作流的云服务),Docker 使应用程序能够以组件快速组装,并消除开发,QA 和生产环境之间的不同。 因此,IT 可以更快地分发程序,并在笔记本电脑,数据中心虚拟机和任何云上运行相同的应用程序。
让我们开始思考这些功能如何适应数据库世界。 docker run -d mongod:3.4 对比: sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|