写点什么

如何在生产中成功运用 Docker

  • 2015-12-03
  • 本文字数:1096 字

    阅读完需:约 4 分钟

SalesforceIQ(原名 RelateIQ)的工程总监 John Fiedler 结合自己过去两年的开发经验,在 DockerCon 欧洲大会上发表了关于“如何成功地在生产中运用 Docker”的演讲。Fiedler 建议不要一开始就全面使用 Docker 相关的所有工具,而应该循序渐进地将服务转移到相应容器中。

Fiedler 解释说,目前他们全部的网络基础服务都是在 Docker 中运行的,并且从来没有出现过停机的情况。同时,他坦言道,他们从两年前开始向 Docker 容器迁移,做过很多尝试,也失败过很多次。

最后,我们开始运用 Mesos,但当时它还没有认证……我们还尝试在 Docker 中运行 Kafka,如果 Kafka 失败了,那么我们的全部服务都将停机……其实在 Docker 中运行 Docker 并不是一个好的决定。

SalesforceIQ 超过 70% 的基础服务是在 Docker 中运行的。在决定哪些服务应该放在容器中,哪些不应该时,Fiedler 认为应该注意以下两个要点:变化率和依赖关系。相对而言,Web 服务器或 API 服务器的寿命都是短暂的(转化率)、无国界的(依赖关系),数据库或 CI/CD 服务器则寿命较长,并且是有国界的。因此,Web 服务器和 API 服务器都适合迁移到容器中。

重要通知:接下来 InfoQ 将会选择性地将部分优秀内容首发在微信公众号中,欢迎关注 InfoQ 微信公众号第一时间阅读精品内容。

图片来源:John Fiedler

图片来源:John Fiedler

现在,在某种程度上,SalesforceIQ 的 PaaS 服务中除永久存储外,几乎所有的服务都是运行在容器中的。

图片来源:John Fiedler

演讲刚开始,Fiedler 就根据自己的理解分析了“生产”与“成功”的内涵:

“生产环境与开发 / 测试环境并不相同。生产环境中的一些特性在测试环境与开发环境中并不重要。隔离性、安全性、高效性、可监测性和可记录性是在迁移生产环境时考虑的重要因素;同时,可扩展、有模板借鉴和自动化水平也是需要考虑的重要方面……我认为,任何事情超过 99.9% 就是成功的。”

总结这次演讲,Fiedler 建议“保持简洁,从小做起,不要急于跃进 PaaS。”谈到对工具的部署,他认为“Chef,Ansible 和 SaltStack 仍然是重要的工具,并且可用于连接 Docker。”当 Docker 做好生产准备时,Fiedler 强调 “要使用其他未就绪的解决方案(alpha 和 beta)。”最后,他补充道,“使用 Docker,最大的回报就是 CI/CD。”

查看英文原文: How to be Successful Running Docker in Production


感谢张龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群(已满),InfoQ 读者交流群(#2))。

2015-12-03 18:003889

评论

发布
暂无评论
发现更多内容

线性排序

wzh

Java 排序算法 计数排序 基数排序 桶排序

在线HTML标签清除工具

入门小站

工具

react源码解析18事件系统

全栈潇晨

React

简单好用一键恢复丢失办公文档

淋雨

EasyRecovery 文件恢复 免费恢复软件 硬盘数据恢复

做好项目管理,项目经理需要具备哪些优秀品质?

万事ONES

项目管理 研发管理 研发管理工具 ONES

迷惘的六月份

卢卡多多

生活状态 6月日更

微信小程序开发(七)—— 版本管理的使用

空城机

微信小程序 大前端 6月日更

ARTS - 日常打卡 6

pjw

Linux之rmdir命令

入门小站

Linux

领域驱动设计101 - 领域服务

luojiahu

领域驱动设计 DDD

Reactive Spring实战 -- 响应式Kafka交互

binecy

kafka spring

业务架构训练营第 0 期模块五作业

菠萝吹雪—Code

架构实战营

微服务架构下的静态数据通用缓存机制

xcbeyond

缓存 微服务 6月日更

数组与链表

wzh

Java 数组 链表 ArrayList 数据结构与算法

Elastic Job简单使用

赵镇

Elastic-job

JAVA 面向对象 (十)--接口和抽象类

加百利

Java 后端 笔记 6月日更

什么是OneData?阿里数据中台实施方法论解读

云祁

数据中台 数据仓库 OneData 维度建模

软件开发项目中,产品经理和程序员谁更累?

万事ONES

产品经理 研发管理 ONES 项目经理

Redis入门四:数据持久化

打工人!

redis redis持久化 6月日更

Redis:我是如何与客户端进行通信的

码农参上

redis Redis 协议

常见Java容器对比

wzh

Java collection hashmap set map

HashMap源码总结

wzh

Java map 数据结构与算法 HashMap底层原理 散列表

LinkedHashMap

wzh

Java 集合 LRU 数据结构与算法 LinkedHashMap

【21-15】PowerShell条件判断

耳东@Erdong

PowerShell 6月日更

十年一剑智能眼镜的中场战事

脑极体

OpenCV-Python+Moviepy结合进行视频特效处理

老猿Python

Python 音视频 Video PPT 引航计划

软件复杂度

海拉鲁

读书笔记 软件工程 软件设计

Kubernetes手记(19)- 容器资源限制

雪雷

k8s 6月日更

在线PS(PhotoShop),打开PSD文件,图像处理

入门小站

PhotoShop ps

网络抓包实战01——互联⽹:客户端请求是如何到达服务器的

青春不可负,生活不可欺

Wireshark TCP/IP tcpdump 网络抓包 tcpcopy

推荐算法概述(十五)

Databri_AI

算法 倒排索引 推荐系统

如何在生产中成功运用Docker_DevOps & 平台工程_Guillermo Beltri_InfoQ精选文章