京东云新浪微博等专家畅谈docker未来格局:开放与竞争(上)

jzssuanfa jzssuanfa     2022-09-04     607

关键词:

田琪(@摇摆巴赫)是京东资深架构师,10年互联网行业从业经验,之前曾分别就职于搜狐、新浪、腾讯等公司,眼下负责京东云主机及云数据库的架构及研发工作。对云计算基础技术有深刻理解。

DockerCon 2015于6月22-23号在美国旧金山落下帷幕,这个由Docker公司发起的Docker领域峰会,包含Docker公司CEO在内的多位领域专家发表了精彩演讲。峰会展示着Docker领域的成就,也预示着Docker领域的未来方向。

田琪作为国内容器化方向的先行者,受邀參加了此次峰会,峰会上到底有哪些见闻。Docker未来又将走向何方。田琪在“QCon高可用架构群”中做了分享。本文由群编辑依据分享记录整理而成。

大会第一天


上午

大会第一天上午的内容最多,先是放了一些小动画介绍Docker的发展历程等。开场是Docker公司CEO Ben Golub介绍自己及docker,重点介绍了Docker近期发展的一些数字,以及过去一年的增长量:

  • 贡献者增长了183%
  • GitHub上关于Docker的项目增长了515%
  • Docker提供的工作机会增长了1720%
  • 使用Docker构建的应用程序增长了934%
  • 容器的下载量添加了18082%

随后。他介绍了Docker的下一步主要工作:在多容器执行及管理上将做很多其他工作。

之后CTO Solomon Hykes登场,主要技术内容都在这里。

他首先介绍了他们的雄伟目标:“For the next 5 years, we’re going to build a software layer to make the internet programable”;然后介绍了兴许详细的目标:“Reinvent the developer toolbox”

当中提到,开发人员构建分布式系统非常困难,原因在于工具不够充分,我们要为分布式系统专门建立对应的工具集。详细而言。包含:
1. runtime (How do I run my code repeatably on different
    解决在不同机器执行同样代码的问题:即Docker Runtime。
2.packaging & distribution (How do I ship my code across many different machines)
    解决代码分发部署问题,介绍docker distribution tools项目,地址:https://github.com/docker/distribution
3. service compostion (How do I organize my application in scalable services)
    解决应用的分布与扩展性方面的问题:介绍Docker Compose项目。
4. machine management (How do I deploy many machine to run my code)
    解决机器管理等问题:介绍Docker Machine项目。


5. clustering (How do I stop worrying about individual machines)
    介绍Docker Swarm项目。
6. networking
    介绍Docker网络方面的解决方式,介绍了非常多厂商的网络解决方式,这里提到的比較重要的观点是。Docker网络解决方式的目标是不动你原有的infrastructure,容器网络问题应该在应用层解决。
7. extensibility (How do I add my own tools to the tool box)
    介绍Docker Plugin项目。下列功能会以plugin形式存在:

  • network plugin
  • volume plugin
  • scheduler plugin
  • service discovery plugin
  • more to come…

8.Build better plumbing
    想要构建一个好的开发人员平台须要非常多小的构件支持,这里介绍Docker用到的这些构件,比方namespace、cgroup、device mapper等,而且介绍Docker自己创造的构件。包含:storage、oscontainers、networking等。重点介绍项目:Notary,项目地址:https://github.com/docker/notary 一个内容管理和安全验证的项目;OS Container。介绍了RunC项目,项目地址:https://runc.io
9. promote open standards
    介绍Docker的真正价值不是技术。而是标准。Docker作为事实标准应该提供一个开放公开的标准给大家。然后重点介绍了OCF,Docker开放的标准规范,并介绍了RunC作为这个标准的一个开源实现。

这个标准的大体内容主要在这几个方面:

  • A formal specification
  • Independent governance
  • A neutral reference implementation
  • Support from a broad coalition
  • An open door to fresh ideas

后面開始演示环节,可惜演示都失败了。然后放提前录好的视频。结果也失败了。

个人觉得Docker眼下的重点工作主要是网络和插件体系的建立。

上午基本的技术方面的内容也就是这些。后面我主要在会场外和厂商及Docker的技术团队聊了下。

厂商方面大多数环绕Docker做云服务,即底层IaaS资源平台独立,上层提供基于Docker的代码分发、部署、CI等工作,大概有不少于10家这种厂商在会场宣传,竞争看似比国内更激烈。另一小部分环绕Docker提供product或者solution的公司,这点国内也是这样。

重点跟flocker这家公司聊了下,了解下他们做的Docker存储产品,用于解决Docker volume的问题。開始和我聊的小妹明显不是搞技术的,问到存储是否支持快照,是否须要停止容器及live migration等问题就答不太上来了,后来和技术聊还能够。整体他们做的事情是让stateful的容器能够live migration。

后来找到Docker registry的团队技术人员。跟他们介绍了我们近期开源的Docker镜像存储项目speedy(项目地址:https://github.com/jcloudpub/speedy)。他们表示非常感兴趣。欢迎我们提交driver的驱动给他们。

另外问到Docker registry v1什么时候会被废弃,他们表示肯定会被废弃,但仅仅是还没有决定时间。

下午

兴许參加了一些小场的分享。印象比較深的有这几个:

Docker Plugins

这场的主题之前是保密的,參加了才知道是讲docker plugin的。主要介绍Docker插件体系是Docker眼下重点工作之中的一个。主要内容:

docker的插件体系结构是眼下的重点工作,眼下支持的插件主要有网络和存储,网络的插件实现支持weave。存储的插件眼下支持flocker。兴许会支持日志插件。

插件会以进程方式存在,使用domain socket通信。协议是json或者http。这样插件能够使用不论什么语言编写。插件能够通过容器方式部署,演示了一个在线容器迁移的demo。利用flocker及weave插件。

Docker networking
主要介绍了Docker libnetwork项目,将Docker的网络抽象成了endpoint、network、sandbox等实体。

  • endpoint指服务之间的链接
  • network是一堆可通信的endpoint的集合
  • sandbox是一组可连通容器的集合

另外提到服务发现会是libnetwork的基本功能,眼下通过DNS实现。将来能够提供其他实现,这里还强调了Docker网络解决方式应该在应用层,不动原有的基础设施层,这样对底层网络没有依赖和改造的成本。

大会第二天


上午

general session议题比較商业,不像第一天比較技术一些。主要内容:

  • 宣传Docker是怎样减少企业项目公布迭代周期的,怎样使用docker整合dev及ops团队。

  • 介绍docker hub在过去的业绩及增长。介绍docker hub的商业版docker trusted registry,商业版支持安全认证,訪问权限控制及审计功能。
  • 介绍微软公司在容器方面进行的工作,宣传微软已经将容器技术整合进入自己的开发工具。平台。操作系统及云等平台上。这里国外开发人员跟国内开发人员相似,对微软也都是比較调侃的态度。从现场观众的反映比較easy看得出来。

  • 最后现场演示了一个Docker的UI项目,集成了Docker的machine、compose、swarm等项目。管理和部署整个Docker集群。

下午

Shopify公司的人介绍自己公司的服务架构。

议题是:routing and discovery at shopify。这个议题非常有新浪微博范。里面非常多内容都非常熟悉,基本也都是大型互联网系统架构的一些基本常识,印象比較深的点有这些:

shopify自己开发了一个Toxiproxy的项目来模拟tcp各种延迟及问题来试他们的系统,这个项目的地址是http://github.com/shopify/toxiproxy

他们整个服务体系后端的基础目标:

  • No single point of failure
  • Stale reads > no reads
  • Reads order of magnitude larger than it writes
  • Fast convergence

介绍Shopify使用DNS来完毕服务发现。

最后他们还表达了内部对ZooKeeper的使用及观点,也是觉得zk的client实现过于复杂。运维和操作成本比較高。

另外一个印象较深的topic是关于Docker security的主题:least-privilege microservices。


首先亮出他们的核心观点:
“every process must be able to access only the information and resources that are necessary for its legitimate purpose”

首先介绍profile概念。分别介绍不同类型服务所依赖的资源,比方:

  • 前端服务。比方php 依赖后端的众多暴露的API
  • 后端服务,比方MySQL依赖网络
  • 计算服务,比方Hadoop依赖cpu资源,会产生大量的workload

然后引入进程监控概念。通过strace -c -t -p <进程ID>来统计进程所用到的全部syscall,然后提到通过一些手段来限制对应进程用到的syscall。

兴许介绍Docker已经存在的一些security方面的限制手段。比方:cgroup、namespace、Linux Security Modules、Linux Capabilities、ulimit、User namespace等。

另外提出在默认发行版中去除一些不须要的包。用户以及命令工具等来提高默认安全性,随后提出通过一个security profile的配置来统一规范容器的安全性,并配套对应的工具。

整体上这个主题内容主要是一些想法而且希望大家一起来指定这个安全的规范以及开发对应的工具。

后面简介下个人參会感受,仅仅代表个人观点。

參加这个会议我个人主要两个目的:

  1. 了解Docker正在做什么
  2. 了解Docker周边厂商正在做什么

厂商这边和国内也差点儿相同,都是一些云服务相关的。可是竞争更激烈一些。有大约10家做相似服务的公司。

Docker本身眼下最重要的两个工作。一个是libnetwork的开发。另一个是插件体系的支持。

最大的新闻是Docker推出OCP开放容器项目:
这里面有非常多故事的。不是表面那样Docker的人和CoreOS的人握个手,搁置争议。共同开发。

实际上Docker一直非常aggressive,视其他生态厂商为竞争对手,从它公布项目的布局不难看出,基本上全部的事情都是打算自己做的。

这个OCP项目的产生我个人觉得仅仅是Docker一个妥协无奈的选择而已。Docker本身的核心技术门槛并不高。所以CoreOS搞Rocket,假设Docker继续封闭,其他厂商有可能去拥抱CoreOS的runtime。

所以Docker仅仅能被逼开发标准,可是它们同一时候将libcontainer作为事实标准放入了OCP中,也能够看出动机,也就是Docker仅仅是表面上和CoreOS和解。我觉得Docker项目如今的情况和当初的OpenStack有些相像,终于何去何从我们拭目以待。

号外


在田琪老师分享之后,闫国旗、王渊命和陈飞三位专家也參与了讨论,最后还有Q&A环节,相关内容稍后公布,敬请期待。

感谢刘世杰@猎聘网的记录与整理,臧秀涛@infoq的校对与公布。其他多位编辑组志愿者对本文亦有贡献。读者能够通过搜索“ArchNotes”或长按以下图片。关注“高可用架构”公众号。查看很多其他架构方面内容,获取通往架构师之路的宝贵经验。

转载请注明来自“高可用架构(ArchNotes)”公众号。


技术分享

下篇

传送门























如何在自己的代码中实现分享视频文件或者是图片文件到微信qq微博新浪微博等!!!

...我的这个code中你们会学到what,  first:分享到微信,新浪.etc无需你注册appkey,哇,这么吊,是的就是这么屌,等你们看完代码就知道咯,略屌。。。  好吧!!!来看 查看详情

未来的区块链格局,开放联盟链占主流

...是公链30%、开放联盟链50%、标准联盟链20%的状态,且未来的开放联盟链是包含无币公链的。本文节选自此次演讲。BSN全球性公共基础设施网络2018年9月份开始,由国家信息中心、中国移动、中国银联、红枣科技共同发起了... 查看详情

app分享之微信微博等各个社交平台的分享授权规则和常见问题

一、新浪微博分享规则新浪微博支持分享类型:应用内分享也就是网页分享支持: 文字,文字+图片,要分享链接需要链接添加在text里分享客户端分享支持:文字,图片,文字+图片,图片+文字+链接参数说明:text:不能超过... 查看详情

5款让微博等社交网站更加清爽好用chrome扩展

...款让微博等社交网站更加清爽好用Chrome扩展》不论你是在新浪微博上了解朋友近况还是浏览各种段子,或者是去Facebook和Twitter上看一看外面的世界follow一下自己喜欢的明星,社交网站几乎占据了我们大部分的上网时间。虽然网站... 查看详情

5款让微博等社交网站更加清爽好用chrome扩展

...款让微博等社交网站更加清爽好用Chrome扩展》不论你是在新浪微博上了解朋友近况还是浏览各种段子,或者是去Facebook和Twitter上看一看外面的世界follow一下自己喜欢的明星,社交网站几乎占据了我们大部分的上网时间。虽然网站... 查看详情

scrapy爬取新浪微博

1 本节目标本次爬取的日标是新浪微博用户的公开基本信息,如用户昵称、头像、用户的关注、粉丝列表以及发布的微博等,这些信息抓取之后保存至 MongoDB。2.如何实现:以微博的几个大 V为起始点,爬取他们各内的... 查看详情

oauth2.0学习(5-1)新浪开放平台-微博oauth2.0认证

http://open.weibo.com/wiki/%E9%A6%96%E9%A1%B5  查看详情

「云+未来」上海峰会,报名开启

...”为主题,邀请政企精英、行业领军企业、业界权威专家齐聚一堂,共探云计算、人工智能、大数据等前沿 查看详情

登陆新浪微博

登录新浪微薄时我忘了密码怎么办啊?请问我在登录新浪微薄时忘了用户名和密码怎么办呢?我在重复一篇:我在登录新浪微薄时不知道如何找回用户名和密码了。我有几个新浪邮箱,在登陆新浪微博时,还是提供不正确。请问... 查看详情

哪些腾讯微博api接口可以用来请求生成一个随机用户列表?

...平台提供了哪些API”以及“这些API又能实现什么功能”。新浪目前开放了近100个API接口,和腾讯相比,开放的方式更接近twitter。如果我们仔细的对比一下新浪和twitter的API,我们就会发现,双方不仅在数量上相当,在功能上新浪... 查看详情

一文解读中国未来大城市格局

通过改革开放中国真正的富强了,逐步走在了世界前列,这其中也发展起来一批具有国际影响力的大城市 我国城市发展的1.0时代 成长起来北上广深这样的大都市,但是这些城市大多数还是单打独斗亦或互相竞争,比如北... 查看详情

微博开放平台api使用

...布微博查询微博,更重要的是,可以在自己的网站上获得新浪微博api的授权,调用微博的某些内容,就好像我们再网站中看到好文章要分享到微博或者其他社交网站中一样,非常方便。下面就来探秘一番。1.注册开发者并获取appk... 查看详情

博客导航

...三方支付     --第三方登录:       qq登录新浪微博微信     --开放平台:       google开放平台腾讯开放平台百度开放平台     --微 查看详情

新浪微博登录重定向地址错误解决方案

业务需求接入新浪微博登录在新浪开放平台的高级设置里设置了回调域名是http://xxx.xxx.com/http://xxx.com/都不行都是报如上图所示的错误于是试了一下http://xxx.xxx.com/callback/weibo/xxxx/到具体的回调uri可以了  查看详情

集成第三方开放平台

...国内常见的第三方开放平台有:QQ开放平台微信开放平台新浪微博开放平台 我们可以通过集成这些第三方平台来实现:第三方登录内容分享到第三方平台获取第三方平台用户资源......  下面以新浪微博开放平台为例看... 查看详情

互联网巨头发起的开放计算,已成云计算的新浪潮

(上图为OCPFoundation首席技术官BillCarter)2011年的时候,互联网巨头Facebook宣布公开共享自己的数据中心设计架构,同时推出了OpenComputeProject(OCP)开放硬件项目。该项目的推出,意味着数据中心所需要的服务器、网络和存储硬件... 查看详情

前和讯新浪微博高级工程师姚飞:合作,共赢

拥有十多年的开发经验,先后在华夏大地、和讯网、新浪微博担任高级前端工程师,作为一名程序界的“老炮儿”,看看他是如何理解共享经济大环境下程序员的解放生态,怎样合作共赢让未来的职业规划不再迷茫,这就... 查看详情

畅谈docker底层技术-lxc与cgroup

#DockerLXC及Cgroup  docker最为为LXC+AUFS组合,其中LXC负责资源管理,AUFS负责镜像管理;而LXC包括cgroup,namespace,chroot等组件并通过cgroup资源管理  那么,从资源管理的角度来看,Docker,Lxc,Cgroup三者的关系是怎样的呢?c... 查看详情