Docker创建和发展的环境与原因

【编者按】时至今日,Docker的谈论已随处可见,这个极具人气的开源项目让人们可以使用软件容器自动化应用程序的部署过程,受众多IT巨头喜爱。近日,Luke Lefler在The New Stack上总结了Docker之父Solomon Hykes的主题演讲,描述了Docker创建的原因和环境。

以下为译文

在New Relic的FutureStack14 Conference会议上,Docker之父兼Docker公司CTO Solomon Hykes的主题演讲总结了Docker创建和发展的环境与原因。

Solomon指出,当下的分布式应用程序已与互联网密不可分,机构们期望不管有多少用户,无论在任何设备上,这些程序都随时随地的可用和运行。而着眼应用程序,它们必须具备足够的弹性、互操作性,并可以被大规模扩展。越来越多的开发者不仅需要满足眼前需求,还需要建立复杂且通常被广泛采用的下一代应用程序。

这个工作并不简单,特别在那些不能应对这些挑战的老平台上。当开发者碰到难题时,简单的给Andriod或iOS朋友打电话这个途径已经行不通了。

工具解决方案必须解决开发者面对的最大挑战——应用程序不再只运行在一台计算机上。这个解决方案需要将逻辑软件组件和底层基础设施拆分,因此当主机发生故障、升级或者在其他环境重部署时,服务总是随处可用,独立于之前的基础设施环境。

大的技术公司,比如亚马逊、苹果、谷歌和微软,往往会长期给自己内部堆栈投入大量时间和资源,而余下的机构只能东平西凑一些开源工具,并苦苦支撑。Solomon感慨道:

这给人的感觉是一盘散沙。开发者无法义正言辞指着某个东西说,‘这就是我构建的基础,这就是我的平台’。正是这种情况启发了我们,共同着手定义和建立一个满足需求的平台,并且可以长期从中取乐……

“不只运行在一台计算机”可以拆分成一系列问题,每个都需要被单独处理。在Docker发布之前,Solomon和他的团队罗列了这些问题,并致力解决。

它们首要解决的问题就是封装(packaging)和分发(distribution),没有一致性的封装方法,给打上了标签的软件更换操作系统、设备或者数据中心必然会导致不稳定因素产生。为此,他们不得不通过现存技术打造一个标准格式:一个始终如一的容器,一个可以移动,payload-ready的Docker容器。第二个问题就是沙箱运行时,如何在不同的机器上执行这些payload,并产生一致的、可预期的结果?这两个问题定义了大部分的Docker发布前的工作,也让这个项目坚如磐石。

其他问题的解决则承诺了一个令人激动(及繁忙)的未来。Docker聚焦网络上的困境,在简单的工具上让开发者可以完成应用程序多个组件与依赖服务之间的连接。

“你有多台主机,但是你想用一个通用的方式进行交互”,Solomon通过这个思想解决了集群问题,“你抛出了各种各样的技术,而我们试图将它们连接到一起,并且提供一系列的接口让用户可以简单的利用”。同样的问题出现在组合中,这里需要将多个逻辑组件合理、版本化的连接到一起,并进行整体的测试。

“当你跨多个复杂的基础设施部署复杂的分布式应用程序时,问题很快就会产生,特别是在安全、稳定及控制程度要求比较高的生产环境中。在这里,开发者需要确切的控制运行进度,确切的知道建立者及清楚谁提供了某个部分……,追溯到你熟知并信任的源代码、组织及开发者。”Solomon解释在部署过程中进行每个部分cryptographically-enforced 身份校验的关键挑战:“这与授权问题相辅相成,使用一个连接到基础设施的层来实现应用程序每个组件的访问控制。”而在IT部门中,授权一直是一个比较热门的话题。

Docker的IRC频道一直很活跃,汇聚了数十个来自不同公司的工程师,其中有些人是首次贡献到一个开源项目,而有些则是期望为岌岌可危的项目寻找一线生机。

为了建立这个雪球效应,将越来越多的人才和资源吸引到这个项目,建立这样一个印象非常必要——“it’s going to happen, with or without you”。

然而,如果所有出现的规格和变化都被接受,那么项目就没有任何可提升的余地。Solomon强调,大家都期望松耦合工具,因此需要将许多个体工具(往往使用最简单的途径解决一个问题)整合成一个新的工具,这个过程中整合的解决方案被称为“scale by composition”。这个组合必须使用标准接口,因此未来的贡献者可以非常便捷的参与到这个工具集的扩展,这种标准为所有人所接受。

“我们一直贯彻着Unix设计原则,这个原则曾帮助了Unix系统的实现,30年后,我们将这个原则应用到了21世纪出现的问题。”非常受大家欢迎,Solomon说。

“建立一个为所有生产软件共有的系统,使用一种被广泛接受的方式,让它可以很好的运行和扩展,让它可以被所有人依赖,然后将它视为理所当然的存在,并使用它创造自己的奇迹,这是个挑战。”

原文链接: The New Stack Makers: Docker Creator Solomon Hykes(翻译/童阳 责编/仲浩)

如需要了解更多Docker相关的资讯或是技术文档可访问Docker技术社区;如有更多的疑问请在Dcoker技术论坛提出,我们会邀请专家回答。购票等问题可咨询QQ群:303806405。

Container技术日报公众账号已开启,欢迎关注!

时间: 2024-10-02 14:16:33

Docker创建和发展的环境与原因的相关文章

用Docker创建开发环境

本文讲的是用Docker创建开发环境,[编者的话]鉴于还没有用Docker创建本地开发环境的先例,Jeff Nickoloff开创了一个先例,相信大家也可以. 译者解释用Docker创建开发环境:作者在此处使用了Frankenstein一词.Frankenstein,<弗兰肯斯坦>原是英国诗人雪莱的妻子玛丽·雪莱在1818年创作的小说,被认为是世界第一部真正意义上的科幻小说.弗兰肯斯坦来自于此小说,可以理解为怪人;毁灭创造者自己之物 知道一个事物和实现这个事物是完全不同的事情.从Docker诞

Docker 在 PHP 项目开发环境中的应用

环境部署是所有团队都必须面对的问题,随着系统越来越大,依赖的服务也越来越多,比如我们目前的一个项目就会用到: Web服务器:Nginx Web程序:PHP + Node 数据库:MySQL 搜索引擎:ElasticSearch 队列服务:Gearman 缓存服务:Redis + Memcache 前端构建工具:npm + bower + gulp PHP CLI工具:Composer + PHPUnit 因此团队的开发环境部署随之暴露出若干问题: 依赖服务很多,本地搭建一套环境成本越来越高,初级

用 Docker 快速配置前端开发环境

本文讲的是用 Docker 快速配置前端开发环境[编者的话]最近在公司实践了一下 Docker,记录成了一篇文章,发出来和大家交流下.我基本上是个 Docker 新手,如果有什么地方说得不对请大家指出~目前的方案还比较粗糙,大家有什么改进建议也请告诉我,我多和大家学习 今天是你入职第一天. 你起了个大早,洗漱干净带着材料去入职. 签了合同,领了机器,坐到工位,泡一杯袋装红茶,按下开机键,输入密码, 然后,下载 Chrome.Postman.Sublime.盗版 PS.NodeJS.配置 NODE

Docker 切出 Moby 背后的真实原因分析

事件起因 上周 Docker 公司在其技术会议 DockerCon 会议上宣布了新的项目:LinuxKit 和 Moby,一时之间在开发技术圈引起轩然大波,而在本土则是一篇知乎上的回复,刷爆了4月24日早上(周一)的朋友圈,知乎的地址是:对于 Docker 改名 Moby ,大家怎么看? ,其中一个做全球云的匿名用户的回答,一下子拥泵无数,认同.赞许声不绝于耳.大意是 Docker 认怂了,放弃情怀路线,向世俗低头,在赚足了粉丝之后要走欺骗大家的路线,下一个 VMware 就要诞生了等等之类的.

使用Docker创建Elasticsearch服务

最近需要做的几个功能都是基于Elasticsearch,但又不想污染系统环境,所以就花了些时间研究下如何使用Docker创建Elastcisearch服务. 首先先分别了解下Docker和Elasticssearch. Docker是什么? Docker是一个开源工具,能将一个WEB应用封装在一个轻量级,便携且独立的容器里,然后可以运行在几乎任何服务环境下. Docker的容器能使应用跑在任何服务器上并且表现一致.一个开发者在笔记本上建立的一个容器,能跑在很多环境下,如:测试环境,生产环境,虚拟

Riddler助力Docker容器为runC运行环境做准备

本文讲的是Riddler助力Docker容器为runC运行环境做准备[编者的话]本文主要是介绍Riddler工具,讲解Riddler为开发者带来的便利,并对基本使用进行了介绍和解释. 这是一个关于标准化带来的优势的故事,同时介绍如何利用Riddler转换一个Docker容器为runC镜像.Riddler由容器开发者Jess Frazelle研发. Phil Estes 是IBM开放云技术的高级技术经理,他将在本周多伦多的LinuxCon会议上介绍Riddler的性能. 运行,运行,运行! 回顾开

如何为大型企业创建OpenPages集群环境

本文将着重介绍如何为大型企业创建 OpenPages 集群环境,帮助他们扩展应用规模,实现负载均衡,提高风险管理,增强安全控制. 2001 年:OpenPages 公司开始开发帮助企业管理复杂风险和合规管理措施的平台. 2002 年:依据萨班斯 - 奥克斯利法案,着重开发财务控制管理功能. 2006 年:拓展风险和合规管理的其它新领域,包括操作风险管理.政策和合规管理.资讯科技管治.内部审计管理. 2010 年:IBM 完成对 OpenPages 公司的收购.IBM 与 OpenPages 的结

Docker创建镜像两种方法详解_docker

 Docker创建镜像             最近学习Docker 的知识,偶然在网上看到关于Docker 创建对象的两种方法很好,这里记录下,也许可以帮助到你.  我们都知道Docker中我们是基于镜像来运行的容器,那如何创建镜像呢?创建镜像有两种方法,一是使用docker commit命令,二是使用docker build命令和Dockerfile文件.这里我们说的创建镜像是指基于一个已有的基础镜像比如ubuntu等,而不是从零创建一个全新的镜像.         下面分别简单介绍一下两种

oracle Streams如何创建tables级复制环境

你应该还有印象,我们在第一部分第二节的时候就已经演示了创建表级复制环境,对比全库/表空间级或schema级的复制,现在回过头来看,你可能会觉着怎么表级的复制环境这么复杂呢?其实不是这样,并非表级复制环境复杂,我们在第一部分第二章演示的正是streams实际配置时执行的过程(大部分步骤吧),如果你直接使用DBMS_STREAMS_ADM.MAINTAIN_TABLES过程创建的话,类似于schemas的复制,也就是执行一个过程的事情. 这里一方面为了给大家演示,另外一方面也是加深大家的理解,在本部