徐立:Docker是标准化IT结构的新方式

0 (42)


Docker的英文本意是“搬运工”,在程序员的世界里,Docker搬运的是集装箱(Container),集装箱里装的是任意类型的App,开发者通过Docker可以将App变成一种标准化的、可移植的、自管理的组件,可以在任何主流系统中开发、调试和运行。最重要的是,它不依赖于任何语言、框架或系统。



7月3日的在线培训“Docker之道”,七牛首席架构师徐立将带来Docker的来龙去脉与基本知识,以及七牛云存储对Docker的实践。



在培训开始前,CSDN对徐立进行了简单的采访。Docker 是用 Go 语言开发实现的,而七牛云存储可以说是全球第一个用 Go 吃螃蟹还吃得很开心的玩家,所以Docker在GitHub上一经开源就引起了七牛的注意。徐立认为Docker不是一门新技术,而是一种适应时代需要、标准化IT结构的新方式,一种冲击虚拟化的新玩法,并且符合当下分布式协作自成平台的理念,这一理念已经在Github上得到验证,在Docker上会有更广阔的验证空间,未来必然大有可为,大有作为,事在人为。



CSDN:首先请简单介绍下您自己?您从什么时候开始接触Docker的?



徐立:大家好!我叫徐立,悄无声息默默无闻当了十年码农,如今多半是一个屌丝互联网创业者,在给广大高帅富互联网淘金者做送水服务。我在中学开始接触编程,少年时代偶尔挣点游戏点卡和零花钱,从以前比较偏向业务层的应用开发做到后来比较系统底层的技术,一直保持对互联网技术日新月异的关注与同步。在中国互联网快速演进的这十多年间,快速经历了桌面软件,PC互联网,移动互联网,互联网硬件这样一个快速变革的时代,算是在这个最具中国特色的互联网时代背景下土生土长众多外表粉嫩内心沧桑程序员中的一员。由于当前工作性质的原因,目前大多数时间在做前沿技术的学习与分享交流,人称布道师,主要是分享交流和 Git/Go/Docker 相关的话题。



接触 Docker 还是要和接触 Go 说起,Docker 和 Go 本身有着密不可分的关系,Docker 是用 Go 语言开发实现的。而我和我们的团队早在 2011 年就开始大规模实践使用 Go 开发分布式存储系统,这比 Google 官方发布 Go 1.0 还要早 1 年,也比 Google 官方将 Google 整个下载服务(和我们做过的分布式存储系统殊途同归)由以前的 C++ 换成 Go 来替代还要早 2 年多。由此可见,七牛云存储可以说是全球第一个用 Go 吃螃蟹还吃得很开心的玩家,这比创造出 Go 语言的 Google 公司还要早得多。基于 Go 的语言特性,我们更看重 Go 在多核和分布式系统级领域的造诣,所以很早就有留意基于 Go 做的系统级项目,Docker 就是基于这样一个缘由走进我们观察视角的开源产物。正如我们看好 Go 必然如日中天必将引爆流行成为最主流的编程语言一样,我们很早就注意到在 Github 上开源不久的 Docker,并见证 Docker 后续一发不可收拾迅速成长为 Go 社区乃至整个 IT 业界引发革命的明星产物。



CSDN:七牛从什么时候开始使用Docker?主要应用在哪些方面?



徐立:作为一名布道师,深知天赋使命,Docker 在第一次公开面世时,就曾引进到我们公司交流学习,探讨其用武之地。同时,作为一家技术气质特征明显技术追求欲望强烈的这么一家技术驱动型公司,一直在积极探索和前瞻技术结合产生的创新体验。Docker 的典型玩法包括 构建持续集成(CI)/ 持续部署环境(CD)、打包和批量发布程序,以及搭建独立的 PaaS(Platform as an Service)平台等。大多数人选择的应用场景是用于构建 CI/CD ,而我们选择了一条少有人走的路。



众所周知,七牛云存储是一个面向开发者的公有云服务。大部分开发者对公有云存储服务的认知就是 Amazon S3;但现在,七牛云存储比 Amazon S3 有着更为丰富的功能特性。如果说 Amazon S3 开创了云存储的 1.0 时代,那么七牛云存储则开创云存储的 2.0 时代以及 3.0 时代的大门。开发者都知道 Amazone S3 最主要的作用就是提供静态文件的存储和获取,也就是 PUT(上传) 和 GET(下载),而七牛云存储在这个基础之上扩展了更多对开发者尤为便利的支持,按照业务形态,七牛云存储可以这样划分:云存储(Input) -> 云处理(Process) -> 云分发(Output)。云存储就是我们开发者理解的 PUT,包括分布式多节点加速上传;云处理主要指静态文件存放上来之后在云端进行的个性化处理,这些处理包括常见的在线图片压缩裁剪转换水印等处理、Office系列的文档转换处理、语音处理、视频转码流媒体处理、自定义的数据处理等等;云分发就是 CDN 功能,目前七牛全国的CDN节点超过 1000 家,而且平滑扩展到海外。Web或App等应用的开发者,只需要针对服务端做到动静分离,将静态文件放到七牛后,即可大大节省带宽成本和开发精力同时将用户体验做到足够极致。传统开发方式要用至多 18 个月才能上线一款互联网产品的节奏,现今只需至多 1.8 个月即可上线运营,且无任何扩容和是否高可用的心智负担,可谓真的多快好省。



在理解七牛的业务形态后,其次就很容易联想到七牛会在哪方面应用 Docker。首先,七牛的分布式存储系统和磁盘关系紧密,不太可能用 Docker 去部署存储系统(这和 Docker 的运行机理有关,具体原因在线直播时我会展开讲解)。其次,关于持续集成测试方面,我们有用到的 drone.io 和travis-ci 或多或少有用到 Docker 或 LXC 技术。但这些都还是属于很外围的应用场景,更好玩的真正用武之地,在于我们现在可以用 Docker 实现各式各样的数据处理,也就是说,我们现在完全可以用 Docker 把七牛的云处理玩得千变万化,对于开发者来讲,真的实现让天下没有难写的服务端代码。比如说,开发者想要的一般图片处理功能七牛云存储已经提供接口了,但是需要一个图像识别程序怎么办呢?这个时候如果开发者自己有写过这样的程序完全就可以部署到七牛的云处理引擎里边来,这样子数据在七牛上,数据处理程序在七牛云处理模块的容器里,都在同局域网,就可以轻而易举地实现数据的就近处理输出开发者预期想要的结果。



CSDN:目前企业应用Docker最大的困难是什么?



徐立:Docker 的学习成本并不高,我认为最大的困难在于企业观念和思维的转化,是否接受并习惯这一新的理念,最典型的包括传统开发方式和运维方式习惯的迁移。



CSDN:据您了解,Docker目前在国内的发展状况如何?未来会如何发展?



徐立:我自己受邀参加过几次公开活动,去各个地方布道宣讲 Docker,现在能够看到的状况是星星之火呈燎原之势。Docker 不是一门新科技,而是适应时代需要,一种标准化 IT 结构的新方式,一种冲击虚拟化的新玩法,以及符合当下分布式协作自成平台的相似理念,这一理念在 Github 上验证成功过,在 Docker 上会有更广阔的验证空间,未来必然大有可为,大有作为,事在人为。



CSDN:你在简介中说自己是布道师,这是个什么样的职业?



徐立:在外界听演讲的观众看来,这人看起来是一个大牛,说起来也像个大牛,晃起来还像个大牛,一定就是一个大牛。在客户看来,这真是一个超级实用的万能顾问。在老板看来,这是一个不错的技术出生懂产品的业务员。在同事看来,这是一个好打配合超给力的魔法师。在另一半看来,这是一个携程在手说走就走的漂泊流浪汉。在布道师自己来看,这是一个行者。



CSDN:在线培训中会带来哪些内容?



徐立:前面讲了这么多,都没有具体讲解 Docker 是什么为什么做什么,且当铺垫,分享会中想和参与的朋友们更系统更全面的介绍 Docker 的方方面面。



CSDN:哪些人群应该来参加本次培训?会对他们有哪些帮助?



徐立:互联网技术从业人员,看完以上访谈对本次交流分享会有兴趣的任何互联网人士。帮助不一定有,至少没坏处,更多的是一种思考,额外可能会从忙乱的键盘工作中释放双手。