写点什么

Baruch Sadogursky 谈 Docker 容器生命周期管理面临的挑战

  • 2016-07-03
  • 本文字数:1745 字

    阅读完需:约 6 分钟

JFrog 开发大使 Baruch Sadogursky 在多个会议上做过演讲,包括去年 5 月举行的 DevOps Days Kiel
内容涉及控制和跟踪 Docker 镜像从开发环境到生产环境的流程所面临的挑战,以及 JFrog 提出的解决方案。

为了更好地了解 Docker 容器生命周期管理所面临的部分挑战,InfoQ 采访了 Sadogursky。

InfoQ:如今,您看到有许多工程团队使用 Docker 镜像作为构件,并通过部署管道推送它们吗?

Baruch Sadogursky: 我们看到,人们如今对 Docker 非常感兴趣。人们试图像使用先前的技术栈那样,借助 Docker 实现推送管道,但那并不总是有效。有些 Docker 的架构决策让做正确的事变得困难,而部分 Docker 的最大优势却让人容易做错。

InfoQ:那些使用 Docker 的人,他们是真正地将镜像部署到生产环境,还是只是使用它们作为复制实际的 VM 生产实例的一种快速而简单的方式?

Sadogursky: 真正在生产环境中使用 Docker 的团队,比“摆弄”Docker、做概念验证或者在开发环境中使用 Docker 的团队要少得多。我们认为,其中的一个原因是,增加一个更不透明的抽象层会增加生产级工件不能有的不确定性。

InfoQ:您能简要地说明下,为什么您主张使用 Docker 镜像作为工件而不是 Dockerfiles(有依赖管理)+ 应用程序二进制文件(比如 WAR 文件)?

Sadogursky:这篇博文对整个理论进行了解释,但简单来说——如果你从 Dockerfiles 多次构建(每个环境的)镜像,那么并没有什么方法可以确保你最终获得的工件相同。那是由 Dockerfile 的性质决定的——它的大多数命令都会引入不同的依赖项,而且经常会使用一个不稳定的版本。

InfoQ:在您看来,Dockerfile 应该包含什么类型的信息,而又不应该包含什么信息?

Sadogursky: 设法锁定所有依赖项的版本,越多越好。对于有些依赖项,这可以做到,例如使用一个版本号运行 apt-get,但对于其他依赖项,这无法做到(例如基于 Ubuntu 的镜像会累积相同版本下的安全补丁),但要试一下。

InfoQ:通过部署管道推送 Docker 镜像面临什么挑战?

Sadogursky: 当前,大多数 Docker 注册中心使用的推送模式是获取镜像、重打标签并添加到新的注册中心(或库),用于管道的下一个步骤,并把它重新放回。相当愚蠢,不是吗?

InfoQ:您如何看待(Docker 及其竞争者的)Docker 注册中心的现状?它们之间主要有什么不同?

Sadogursky: 这是一个相当宽泛的问题。有一大堆指标可以用于比较注册中心。其中一个最有趣的是,管道的其他部分是否需要额外的工具。Docker 是一种容器技术,容器会包含某些东西。如果你可以在和容器镜像一样的工件库里管理这些“东西”,你就可以在创建镜像的构建和创建容器所含内容的构建之间建立可追溯的元数据。

InfoQ:如果你需要确保源代码、应用程序二进制版本和 Docker 镜像版本之间的可追溯性,那么如何才能避免依赖管理地狱?

Sadogursky:“一次构建,推送不可变二进制版本”实际上同样解决了这个问题。你运行一次依赖管理系统,这样,一旦二进制版本创建了出来,到源代码的追溯就是不变的,一直到生产环境都是如此。

InfoQ:从安全的角度讲,在确保推送到生产环境的 Docker 镜像不易受到攻击方面,您有什么建议吗?

Sadogursky: 这没有什么特别之处。你应该使用安全扫描器。务必要确保,使用的工具既能扫描 Docker 容器,又能扫描镜像内容及镜像内的工件内容,等等。它们都可以在运行时暴露出容器的安全漏洞。

InfoQ:基于 Docker 镜像的推送管道可以帮助团队实现不可变基础设施吗?为了支持那种“构建 & 清除(build & forget)”的基础设施建设方法,还需要考虑什么其他的因素吗?

Sadogursky: 基于 Docker 镜像的方法就是指不可变基础设施。尽快创建不可变镜像的思想恰恰就是不可变基础设施的方法论。一旦你有了一个很好的持续集成(CI)管道,每次源代码修改就会触发一系列的 CI 构建和推送,最终进入一组新的 Docker 容器——那就是最好的不可变基础设施。

InfoQ:像 Chef 或 Puppet 这样的配置管理工具如何纳入那种场景?

Sadogursky: 那是个价值 10 亿美元的问题。我不知道有谁现在能够回答这个问题。看可变基础设施软件在不可变基础设施领域如何自我改造是非常意思的。也许 Chef Habitat 是向那个方向迈出的第一步?等着瞧吧。

查看英文原文 Q&A with Baruch Sadogursky on the Challenges of Managing Docker Containers Lifecycle

2016-07-03 19:001309
用户头像

发布了 1008 篇内容, 共 407.9 次阅读, 收获喜欢 346 次。

关注

评论

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

云行| “智”绘首都发展新篇章,天翼云携手伙伴共创“京”彩未来!

天翼云开发者社区

人工智能 云计算 天翼云

国家大力推进车联网信息安全体系建设

芯盾时代

车联网 物联网 电动汽车

AI技术在英语学习中的应用

北京木奇移动技术有限公司

英语学习 AI技术 软件外包公司

kookeey功能上新 | 动态线路美国新增51个二级地区

kookeey代理严选

亚马逊 海外直播专线 tiktok直播 跨境电商运营 海外网络连接

人工智能伦理困境:技术发展的界限在哪里?

天津汇柏科技有限公司

AI 人工智能

区块链音乐NFT的开发框架

北京木奇移动技术有限公司

区块链技术 软件外包公司 音乐NFT

本地(或自下载)浏览器插件 安装指南

京东科技开发者

一位海外开发者的 OpenSPG KAG 实践分享

可信AI进展

知识图谱 大模型 rag RAG搭建

商机信息平台(源码+文档+部署+讲解)

深圳亥时科技

AI技术在英语发音纠正中的应用

北京木奇移动技术有限公司

英语学习 AI技术 软件外包公司

25年你还不知道什么是云管平台吗?来这里看看!

行云管家

云计算 云服务 云管平台

镜舟科技2024年度回顾,坚持长期价值,进一步实现商业突破

镜舟科技

开源 数据分析 StarRocks 镜舟科技

京东JD商品详情原数据API接口的开发、运用与收益

科普小能手

数据挖掘 数据分析 电商 京东 API 接口

使用火语言RPA批量创建指纹浏览器

火语言RPA

谷云科技iPaaS V7.0+企业级AI Agent产品全新发布

RestCloud

API 数据集成 ipaas AIAgent

数造科技荣获2024年“年度数据资源创新开发企业”

数造万象

数据 数据治理 数据开发 政府积极推进 科技

供应链计划性能优化解决方案-Clickhouse本地Join

京东科技开发者

鸿蒙NEXT使用request模块实现本地文件上传

威哥爱编程

鸿蒙 HarmonyOS ArkTS HarmonyOS NEXT HarmonyOS5.0

AI技术在评估英语学习的应用

北京木奇移动技术有限公司

AI技术 AI教育 软件外包公司

京东商品视频数据接口(JD.item_video)丨京东API接口指南

tbapi

京东API接口 京东商品视频接口

面试必问!项目高频面试题解析

王中阳Go

面试 后端

警务协同办公系统(源码+文档+部署+讲解)

深圳亥时科技

镜舟科技荣登《2024 中国大数据产业年度「国产化」优秀代表厂商》榜单!

镜舟科技

开源 数据分析 分析型数据库 StarRocks 湖仓

显卡危机的解决方案,全面解析ToDesk云电脑:服务配置与应用场景探索

小喵子

云电脑 云游戏 云电竞

NodeLocalDNS:优化集群DNS性能与可靠性的利器

代码忍者

架构提效的矛盾和矛盾的主要方面

京东科技开发者

CATO:黄油猫 CATO: Buttered Cat for Mac(趣味解谜游戏)

Rose

Premiere Pro 2024 新功能 pr2024破解版安装包-Mac&win

Rose

智慧党建系统(源码+文档+部署+讲解)

深圳亥时科技

Baruch Sadogursky谈Docker容器生命周期管理面临的挑战_DevOps & 平台工程_Manuel Pais_InfoQ精选文章