docker - 用于关键任务金融应用的 Docker 解决方案
问题描述
最近,我们的高层管理人员开始认为这Docker
可以成为降低应用程序部署成本的灵丹妙药,尤其是对于我们的 QA 测试周期。
我刚开始研究Docker
解决方案,我怀疑这Docker
是否适合我们的系统。我们在 Linux 上为主要交易应用程序运行匹配引擎。所以部署过程非常复杂和精确。
显然,我们为可以在这里和那里节省的每一微秒而战。向内核添加额外的“Docker”访问层会增加这些微秒的执行时间吗?
但困扰我的主要一点是,他们认为可以在Docker
容器中建立我们的 QA 测试实验室,而生产部署仍然可以继续旧的方式,而不使用Docker
......他们称之为“测试只是系统的功能”。在我看来,好像应用程序是在 QA 中设置并Docker
在 QA 中测试的,所以它们必须以相同的形状部署到生产环境中,进入Docker
容器中。
在这种情况下,我应该在哪里寻找适当解决方案的建议?论坛/讨论板?
提前感谢您的任何建议。
解决方案
一些想法:
- 使用 Dockerfiles 可以让您对运行应用程序的处理环境的配置进行细粒度控制。您可以放心,您的应用程序运行时环境将在您的部署目标机器上保持一致。
- 在其他镜像之上依次构建 Docker 镜像的分层方法为您在部署过程中提供了灵活性和效率。只重建/重新部署需要的东西。
- 多个容器可以使用相同的图像在同一台机器上运行。这击败了多个 VM 的处理器密集型使用。
- Docker 容器非常适合 QA、系统测试等,因为您的应用程序运行环境的可预测性。您现在如何知道您所做的 QA 在部署时与运行时环境完全匹配?
- 启动运行不同风格 Linux 的容器非常容易。这有助于您在不同的操作系统上进行测试
- 测试执行时间!这些不是虚拟机,容器的好处可能超过几微秒的损失。或者可能不是。只有一种方法可以真正知道。
我们对使用 Docker 容器感到非常满意——我们向客户交付容器,我们使用它们进行持续集成测试等。这比直接处理我们的 Linux 机器配置的其他人要好,然后想知道为什么会这样或现在这样现在不工作。
推荐阅读
- c++ - zeromq 代理对每个请求只发送一个回复
- php - 如何将变量保存在数据库中以供以后使用
- typescript - 重试 Observable 直到满足条件
- javascript - 从“类”更改为“React Hooks”
- c - 如何正确编解码由宏扩展的代码
- rust - 有没有办法让我使用标准结果
在 Substrate 模块中输入? - typescript - Vue 和 TypeScript 所需的道具
- swift - Swift 版本获取错误的像素数据,但 Object-c 版本使用方法“CGBitmapContextCreate”从同一图像中获取正确的像素数据
- java - 是否可以将“GostR3410”标准证书文件导入 JKS 并使用 keytool 或 bouncycastle 包与 java 获取私钥?
- ajax - 如何解决 ajax 问题:laravel 中的 500 内部服务器错误?