OSCON标志上个月在波特兰举行的OSCON大会上,如果有一场会议显示了人们对Docker和集装箱的浓厚兴趣,那一定是Bridget Kromhout的会议生产中的Docker:现实,不是炒作。会议只有站着的地方,迟到的人被推出门外。它是如此受欢迎,以至于OSCON的组织者要求布丽奇特第二天重复她的会议。

难怪。Docker非常热门,而Bridget在DevOps和容器化方面有着丰富的经验:她是一名操作工程师,博主,主办单位之一明尼阿波利斯Devops日子和共同主人逮捕了Devops播客

布里奇特的公司DramaFever从2013年10月开始就在生产中运行Docker,当时Docker网站明确警告:“不要在生产中使用它!”DramaFever先是播放韩剧,现在又提供其他视频服务,包括docclub.comshudder.com。它有来自70个内容提供商的15,000集,达到2000万观众。在峰值负荷,公司从各种不同的终点处理每秒数万个请求;观众经常在程序中间切换设备。

为了确保其基础设施能够支持所有这些并提供良好的用户体验,DramaFever将其单一、整体的Python应用分解为微服务。该团队在Amazon Web services中运行服务,在主要的DramaFever网站上使用Python,在微服务上使用Go。DramaFever依赖Docker提供一致的开发环境和可重复的部署。

在这个过程中,Bridget和她的团队学到了很多关于在生产中使用Docker的经验。以下是她在OSCON会议上分享的五个关键问题:

1.小心注册过载

当DramaFever开始它的容器冒险时,Docker并没有一个私有注册表,但是他们不会对Docker上的注册表作为“不受我们控制”的单点故障感到舒服。因此DramaFever依赖于其Jenkins实例上的单个注册表服务器,但是当出现超过20个实例时,注册表将失败。现在,DramaFever运行一个私有注册表容器AWS S3存储在每一个亚马逊弹性计算云(EC2)实例(和笔记本电脑!)将使用Docker。此解决方案不需要许多资源,并有助于处理缩放问题。

2.构建你的基地

为了确保Docker的基础图像是最新的,DramaFever的运营团队每周都会运行“基础构建”。这些构建包括不经常更改的依赖项,比如Ubuntu包和Python需求文件,等等。其他构建从这些基本映像开始,因此运行得更快。

3.防止醉酒推动

没有人拥有向生产环境发出“docker push”命令的凭据。这些命令只来自Jenkins服务器。这条规则可以防止任何人在周围没有人的时候做出不明智的推动。

4.清理!

容器和图像可以消耗大量的磁盘空间。如果您的Docker源存储库的根本填满,“非常非常糟糕的事情可能会发生,包括奇怪的磁盘损坏,”Bridget解释说。她建议运行日常脚本来删除停止的容器和图像标记为“无”。

5.看你的时间

S3非常关心您的系统时钟。不幸的是,boot2docker-an应用程序,即在Windows和MacOS上运行Docker - 如果您的笔记本电脑睡觉将停止,这将停止,这使得虚拟机中的时钟偏斜。对AWS API的任何请求都将导致RequestTimetoSkewed错误。要处理此问题,所有包装器脚本的所有DRAMAFEVERUPERS都包括此代码:

boot2docker ssh ssh sudo date -set \“$(env tz = utc日期'+%f%h:%m:%s')\”

这是一个已知问题,Boot2docker正在修复。

Bridget的观点对于任何想要在生产中运行Docker的人来说都是非常有价值的。你可以查看幻灯片OSCON会议和阅读博客文章它是基于的。

但是,最重要的外卖是,虽然码头可能很棒,但这不是魔法。容器提供了一些非常酷炫和引人注目的优势,但与任何新技术一样,Docker要求尽职调查,以确保它将工作并满足您在特定环境中的需求。

容器的形象礼貌Shutterstock.com

Tori Wievet是一个新的遗物开发人员倡导者,这意味着她写博客,在新的遗物用户组和事件中发言,并寻求授权和教育新的遗物开发人员用户。她一直是科技世界,作为一个系统管理员,技术作家和蓬勃发展的人。查看帖子

对新遗物博客的写作有兴趣吗?亚搏体育登入网给我们一个推介!