年轻,所以从不会畏惧—95后黑客马拉松赢家谈Docker化应用发布

卷首语:每一个优秀的程序员都是一个传奇,因为他们编织起了一个庞大的,梦幻的,属于自己的代码世界。DaoCloud正在启动“优秀开发者眼中的Docker容器技术”系列专访,通过采访业内优秀的程序员,探寻他们眼中的Docker容器技术,分享他们与DaoCloud的故事。王鹏翰为第一期参与访问的嘉宾。欢迎优秀的你也来参与采访,与技术爱好者们一同分享你对Docker的心得~

 

本期主打星:WPH95(王鹏翰)

 

嘉宾介绍:95后,现就读于杭州电子科技大学一年。他在2015 Innovation Hackathon中,凭借其现场开发出的编配工具Pirate’ship 获得了黑客马拉松大赛的第一名与个推单项奖。作为“CodeVS” 现任站长,现阶段线上能看到的“CodeVS”后台都是他一人开发完成。立志成为 Full stack & DevOps工程师,他精通Django 和 Golang,对Docker有独到见解。

Q1: 王鹏翰你好,作为一个大一学生,我们知道你已经是一个非常优秀的开发者了。你能否先⽤几个关键词来跟大家介绍⼀下你⾃己。

我觉得年轻执着是我身上最明显的标签。年轻是因为我是一个95后,虽然不太喜欢被人因为年纪小而被重视,但年龄的确是我现在最大的财富,我的年龄可以让我去尝试我的任何idea,输了也没事,没有许多大人们的顾忌。年轻,也足以支撑我去实现自己的梦想。

另一个关键词是执着,是指学习编程这个事情。从小就对计算机有着独特的兴趣,笑称所有的天赋点都被洗掉了,只点到计算机上。

执着可以从两个方面谈:一方面是指顶住了家长和老师的压力,一直没放弃信息学编程,即使文化课受到了影响。

另一方面,“执着”在于自己无私地开发和维护CodeVS,最充满回忆的就是2014年的8月份,整整一个月早上8点到晚上12点,我除了吃饭就是码代码,独自完成了CodeVS的开发。这一切的支撑源于来自高中时候的梦想,打造一个自己的OJ,为大家搭建一个资源共享的平台。

Q2: 我们知道你在2015年度Innovation Hackathon大赛中凭借现场开发出的编配工具 “Pirate’ship” 获得了本场黑客马拉松的第一名与个推单项奖。你能谈一谈你在比赛中的项目,以及比赛中你是如何脱颖而出的吗?

参加这次黑客马拉松比赛,最初只是想完成一个简单的任务:通过监控文件变动,自动备份的功能。当比赛进行到4个多小时的时候,Segmentfault的CEO高阳关于Hackathon和Hack精神的演讲,让我和我准备打酱油的小伙伴临时决定做个东西来make it different。刚好自己对Docker已经研究了一段时间,决定对围绕Facebook开源的Phabricator的工作流做了一些调整。结果,这一调整就是深坑,一个很少有资料的领域 Docker workflow进入了我的世界。

我们深感Docker或者是容器化技术将会颠覆性地改变计算机历史。当时,还很少有中小团队分享使用Docker的心得。所以我们想做第一个吃螃蟹的人,去摸索,去尝试。正如我们所做的项目的名字一样Pirate’ship,意为海盗之船,我们渴望的是自由自在的航程,充满惊奇的冒险。

好了,idea够宏大了,也够完善了。那么问题来了,时间还剩18个小时。然后我们开始了疯狂敲18个小时代码的特殊经历,中间强行被队友逼着睡了半小时,还被冻醒。这段经历太难忘了,让我第一次看到杭州的日出。

这次评比40%来自评委,60%来自选手互评。虽然在场的很多小伙伴没有听说过Docker,但是大家从我们的路演中也深深感受到Docker可以改变世界的力量。当然,起决定性的还是我们的努力大家都看在眼里。

最后,我们实现的demo-Pirate’ship实现了我们的预期:一次设置之后只用ship {commit push land} 就完成了代码的开发指令控制和部署。非常的简单,上手快,流程清晰,高效;有效地减少不必要的bug。

这一切流程基于Docker,才能确保开发,测试,和生产环境的统一。

Q3:我们知道你的获奖项目Pirate’s ship是一个基于Docker & git的workflow。Docker是当前容器技术的代表,很想知道最开始你是怎么结识Docker的?亲身实践后对Docker又是怎么评价的?

14年开始开发CodeVS的时候,OJ的评测机是开发中最具技术难度的。当时我没有意识到Docker的重要性,用了别的技术。随着CodeVS的评测量越来越高,原有的评测架构无法满足日益增长的评测压力, 再加上我们团队缺乏经费,为了省钱,必须要能动态地调整计算能力。我开始慢慢关注起Docker,经过仔细的研究,我发现Docker简直是梦中情人,解决了所有我的需求,同时也能和CodeVS的架构完美地结合起来。

Docker的容器化太神了,将业务打包成容器后,可以根据需求弹性扩展,快速扩展,轻松做到负载均衡。业务打包成容器后作为单独的节点,利于运维,哪里坏了修哪里。妈妈再也不用担心整个业务因为一处bug全部崩盘了。(笑)

容器化结合模块化是我个人认为工程的未来。自己一个人既要开发,又要运维,不弄些自动化的管理,根本忙的停不下来。ELK、Graphite、Grafana已经是很成熟的运维管理了,但是结合了Docker让整个运维更加的便利。自己亲身的体验之后感觉Docker的不可限量,但是身边还是缺乏交流。

参加上海Docker两周年生日会彻底改变了我:一方面结识了各位大神,在为大家安利CodeVS之后得到了大家的认同与鼓励,这极大地激励了我。回到杭州后我就组成了团队来维护CodeVS,终结了一个人开发 & 运维的苦逼生涯。另一方面坚定了我对Docker的信心,对Docker的未来更加看好,也坚定方向研究Docker。

忙到现在,在孙宏亮大哥的帮助下,基本完成了基于Docker的弹性评测集群,本地测试也一切ok,即将正式上线运行。以后也会马上完成CodeVS所有业务的Docker化。

Q4:DaoCloud作为国内Docker容器技术的先锋,始终励志于帮助程序员⾼效实现软件开发的持续交付和快速迭代。那么作为Daocloud的资深用户,你最开始是怎么了解到DaoCloud的?

我经常看v2ex,Daocloud很早就有在v2ex上招人,就对这个基于Docker的创业公司产生了兴趣。我有一个习惯喜欢看v2ex的招聘栏,自认通过这个能看到未来的需求,看到程序员的未来。这时候DaoCloud推出了加速服务,试用了下确实蛮好用,也让我明显感受到了稳定性的提高。从此就开始关注起了DaoCloud,觉得日后它肯定会有什么大招。

Q5:从用户的角度,你能够谈谈使⽤DaoCloud产品的⽤户体验吗?

体验了DaoCloud的服务之后带给我很多惊喜。让我感受到惊喜的是Daocloud云端构建功能,很给力。Daocloud在最后一步部署环节已经做的非常好了,正如宣传中的一样,做到了持续交付和快速迭代,快速开发和高效管理。

我具体谈谈DaoCloud让我感受到惊喜的一些地方:

  1. 云端自动获取Github代码build,拯救了墙里的码农,墙里自己build实在是太慢了;
  2. 单元测试确保代码质量,利于快速迭代;
  3. 还有免费配额来部署,简直业内良心;
  4. 重点是1、2、3前三条都是可以自动化生成的。

也就是说:你把代码放到Github上,后面的事情都是DaoCloud自动帮你做,Pirate’ship的land功能基本DaoCloud都帮助实现了。一次push就不用管了,后面可以自动化的build,持续集成部署。DaoCloud已经完成了最后一步,而且最后一步部署环节完成的很完美。但是还有开发环节和指令控制环节等待改革

DaoCloud已经做的非常优秀了,当然也存在着一些不足:

在国内Github访问龟速,而且DaoCloud只能master分支到自动构建和集成。如果我想把我的这些代码部署在自己的一台服务器上,DaoCloud暂时还是没法做到这一点。

编者注:DaoCloud的产品计划与用户的需求不谋而合。王同学提到的这两个问题已经在最近的更新中得到解决,详细情况请了解:

Q6:在使用DaoCloud的产品后,你与DaoCloud团队也有了很多更深层次的交流。能说说跟Daocloud团队成员打交道有什么样的感受呢?

 

  • 拼:天天996,感觉996都没法形容DaoCloud的人了。
  • 热情的布道师:凭借自己的力量去布道Docker,无私地去分享,共利共赢。
  • 迭代速度高:新功能不停上线。
  • 壕:每次微信红包都好大(色),DaoCloud的T恤质量非常好,已经穿的不离身。
  • 文案佳:DaoCloud的文案是我见过写的最好的文案,Roby写的文章, 通俗易懂,连学医的母亲都通过舌尖上的CTO系列体验到了Docker的重要性。

Q7:对于使用或者准备使用Docker的开发者们,你有什么心得想法或者说经验想要分享给大家的吗?

 

  • 开发中可以将Docker当做一个运行环境。也就是说,开发中代码通过挂载的形式放入到容器中。在容器外开发的代码放容器里跑。
  • 所有的业务可以根据功能拆分成一个个服务放到容器中,便于扩展。
  • 开源ELK+Graphite/Grafana和Docker可以有效的结合起来高效运维。
  • 用Docker可以保存容器,保存时间点,中小规模实现容灾,这个需要更多的实践(从携程事件中的脑洞大开)。

Q8:你现在也是一个非常棒的项目CodeVS的团队队长,CodeVS目前已经有3万青少年用户,评测量累计超过128万次。你能跟我们详细介绍一下这个很有意思的项目和你的团队吗?

CodeVS 是一群充满热情的小伙伴们自发组织起来的团队,目的很单纯,实现竞赛共享,给弱省小伙伴们一个希望。当然,说的大一点就是,推动了中国编程事业发展,减少青少年对于编程学习的阻碍。

团队是在Docker两周年生日会后组建的。这个项目的创始人黄老师,他目前在Facebook工作,是他一手创建了CodeVS的前身Wikioi。我高考结束后接手了Wikioi,感觉代码架构不合理,然后一个人推倒了重写。

参加完生日会回到杭州后,我联系身边的各种小伙伴,组建了CodeVS开发团队。目前团队中有3个前端,1个后端(我)1个设计师,核心开发组全部是大一的,开发组有很多初高中生都在全力无私地推动CodeVS的开发。

Leave a Reply

Your email address will not be published. Required fields are marked *