BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

于国庆:DevOps与Docker的相互作用促进各自发展
录制于:

| 受访者 InfoQ 关注 13 他的粉丝 作者 于国庆 关注 0 他的粉丝 发布于 2017年7月8日 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。
14:12

个人简介 于国庆,浙江大学数字媒体技术本科,新加坡国立大学硕士。目前就职于上海秦苍科技,专注于性能测试,曾先后为公司搭建了业务自动化测试平台和半自动化性能测试平台。目前负责研发基于Docker的全自动化性能测试平台XPY。持续交付和DevOps文化的拥趸。狂热的区块链布道师,偏执的坚信区块链技术会像互联网一样再次更新这个世界和所有人的世界观。2014年IBM裁人浪潮中,决然离开无聊的传统行业,杀赴互联网。2015年在比特币中国见证了比特币的疯狂和区块链的迷人。

QCon是由InfoQ主办的全球顶级技术盛会,每年在伦敦、北京、东京、纽约、圣保罗、杭州、旧金山召开。自2007年3月份首次举办以来,已经有包括传统制造、金融、电信、互联网、航空航天等领域的近万名架构师、项目经理、团队领导者和高级开发人员参加过QCon大会。

   

2. 请先向大家介绍下您和您的公司吧?

于国庆:我叫于国庆,来自山东日照,本科毕业于浙江大学,在校期间就读数字媒体技术专业,研究生毕业于新加坡国立大学。毕业之后,曾在IBM工作一年;之后到上海,在比特币中国做区块链技术相关的工作;现如今在上海秦苍科技做消费金融相关的工作。公司成立于2014年,主要涉及包括手机贷在内的消费金融的业务, 我于15年7月份在此公司任职,做性能测试工作。现阶段,公司融资已完成C轮,融资将近九千万美金,估值在几个亿到几十个亿美金之间。公司现有的两个主营产品,第一个,公司起家的产品---买单侠,所谓买单侠就是当蓝领客户买手机时,可能会囊中羞涩,没有足够的钱购买手机,那么我们给他办理简单的小额贷款,比如借两三千块钱,分12期还款。这是手机贷的业务,也是我们现在的主要业务。我们现在大概每个月有20万新增客户,贷出去5亿人民币的资金,已经蛮多了。此外一个新业务叫星计划,应该就是明星计划的意思,面向年轻的都市女性白领,进行医疗整容贷款的分期计划,该业务的客单价较高,将近上万或几万的额度。以上为我公司现主营的两个业务。

   

3. 您对DevOps有较深入的研究,那么接下来我们聊一聊相关的一些问题。DevOps这个概念从2009年提出到现在已有8个年头了,在这些年里,它的理念也在不断的迭代。您现在是如何理解DevOps的呢?

于国庆:DevOps,以个人觉得,DevOps是一种文化。DevOps有一本教科书,讲其有四点东西。

第一个是说合作,从DevOps名字可以看出,它是Dev和Ops合作,以及包括和QA的合作,正如我们所知的,这三个角色的目标不一样,比如开发者的目标是做改变,改变产品,使其做得更好;而做运维却完全相反,需要将它变得更稳定,即Stable;而测试需要进行风险控制。所以在做KPI时,他们会存在相冲突的点,合作就显得尤其重要,怎么把他们拧在一起。

第二个是Affinity,即亲密关系,更关注团队中个人之间的关系,举个例子,团队有些人喜欢早上干活,有些人喜欢晚上干活,那么我需要怎么组织团队?比方说你喜欢做新项目,擅长做开头,做创新,而我喜欢别人做新项目之后,帮助他们完美化,使其更好的完成项目,这又要怎么组织团队?这就可能牵扯到一些心理学的东西。

第三个方面是Tools(工具)。讲到DevOps,其实大部分人都在谈论工具,如何开发、如何运维,如何用工具做自动化。

第四个方面是Scaling(扩展)。 DevOps从一个小团队开始扩展到一个大公司时,公司变大之后易变得官僚化或者制度化,而组织结构变得不够扁平。如何将小团队DevOps文化扩展到大团队,这就是Scaling讲的东西。 综上,便是我个人人为的DevOps文化的内容。

关于最佳实践的两个标准,第一个标准是DevOps做出来,从你的开发周期开始到你的运维上线,周期要短、快;第二个标准是需要保持它的高质量。

   

4. 那您觉得为什么这么多年DevOps一直有点不温不火?

于国庆:实际上我不赞同这个观点,DevOps概念可能一直不温不火,但是它的实际内容却一直非常火,只是说大家没有将它们关联。

比如说现在较火的Agile,敏捷开发,或者说Scrum,持续交付,甚至包括精益工程、精益创业等都是属于DevOps内容。所以仅仅是DevOps概念不火,而它的是实际内容很火,这也是大家共同努力的结果,尤其在技术管理方面,一直在努力做这个事情让大家的生活,工程师的生活变得更好,更轻松。

   

5. 换句话说,在实际的开发过程中,这其实是一种非常热门的东西,但是没有把概念说得火?

于国庆:我个人认为,它们只是因为没有关联起来而已。

   

6. 那您觉得Docker或者容器的出现,是否让它找到了曙光?您怎么看待Docker对DevOps的影响?您是否认同“容器改变DevOps”这种观点?

于国庆:是的,这跟上个问题有些相似。首先Docker对DevOps的影响,因为Docker正好是切到工程师生活当中,大家通过Docker知道了DevOps,换句话说,Docker的出现让DevOps概念火了。当然你也可以赞同也可以不赞同这句话,这是内容与实质之间的一个问题。

   

7. 正好顺应我们刚刚说的。那么相比较历史系统的DevOps,基于容器技术的DevOps具有哪些特点跟优势,适用于哪些情况?

两年的交付周期;而后面慢慢出现的Agile,敏捷开发;到Scrum,实现几周或者一周的交付;直到CD的出现,称之为持续交付,它是分钟级甚至秒级的交付;而现在我们用Docker来实现DevOps。

我认为传统软件开发流程大概包括以上几个部分,它们更多的是方法论,与技术的生活,尤其是与Ops的生活不像Docker这么贴近,导致DevOps没有这么火。 还有一点,大家对DevOps有误解。比如,很多公司会招聘DevOps职位,但结果反而让更多人知道了DevOps。

而实际上Docker的优势展现出来之后,让Dev和Ops之间合作的更加紧密。 具体细节上来讲,开发通过Docker进行开发,运维通过使用Docker打包上线,在使用过程中将整个开发过程和交付过程分开,业务上线和代码上线分开。Docker使上线更加方便,同时也使DevOps概念火了起来。

   

8. 如果对于一个企业来说,让它落地DevOps理念,应该有很多点值得去考虑?如果只让您列出3个最关键的点,您觉得应该是什么呢?

于国庆:在我看来,作为技术Leader,首先他自己需要理解什么是DevOps,他需要知道DevOps是一种文化,在了解DevOps文化之后,将其灌输到每个开发人员的脑子中,让大家了解需要合作的重要性,并关注个人之间的关系,以及所需的tool来进行最佳实践,并扩展到整个公司。作为一个文化,虽然它是务虚的,但实际上还是落地最关键的点。

另外从实际的最佳实践来讲,第二点是最好有一个叫实验性工程,通过该工程实现持续交付来落地DevOps。 实现持续交付是DevOps最直接的一个最佳实践,通过实现某工程的持续交付,就可以培养出较多的DevOps文化。 继而扩展到整个公司。

第三点就是Docker和微服务,使用它们进行持续交付极为方便,公司现阶段也在推广Docker容器化和微服务化。 换句话说,我们的每个环境,从测试环境到生产环境,所用到的所有资源,包括Jar包、源代码、Docker镜像等环境基本上都是一致的。 我个人认为,通过这三种方式可以落地DevOps文化。

   

9. 请您再具体一点,就像我们刚刚谈Docker的问题,就是在测试领域上,有没有Docker之前觉得是怎样的?之后又是怎样的一个对比呢?请您说明一下。

于国庆:测试可被分为性能测试,功能性测试,安全测试。我做性能测试,就简单谈谈性能测试方面的问题, Docker出现对性能测试产生了较大的影响,怎么讲呢?

性能测试的原则是要求被测试的系统环境跟线上要一模一样,就这种情况下,测试出来的数据结果,才具有真正参考性。这个是性能测试尤其关键的一个点,在Docker出现之前,包括我们现在公司目前在用的,因其线上业务并没有完全Docker容器化,只能按照比例进行缩放,这是什么意思呢?

线上我有六台机器,那我线下需要搭两台机器,且线上线下配置一模一样,当我测出实验数据时,对其进行线性对比(3:1)并给出生产环境的建议,但实际上该操作是不准而且不专业的。

现在通过使用Docker,可以一键把线上环境与线下环境配置成几乎一样,而且成本也较为可观。 以前之所以不能搭成一样,其中一个原因是成本问题,另外一个原因是测试数据不一样,有些脏数据在测试环境下会出现,使用Docker后,我们就可以保证两个系统一样,且成本相对而言也不高,因为可以弹性扩容,我们可以部署一个几乎与线上一模一样的环境。

而数据方面,Docker数据可以作为一个Volume挂载到容器上,可以通过保存线上某个镜像的数据,放到测试环境进行测试,保证数据的一致性。

所以我认为,Docker容器化对性能测试几乎是一个革命性的影响。

   

10. 也就是说不管是数据还是说环境都模拟的非常真实?

于国庆:是,这是性能测试的一个关键点。

   

11. 那这么说Docker的优势还是非常明显的?那您觉得它的不足又在哪些地方?

于国庆:我认为这个问题应该问专业的Docker开发团队,我只能讲述一下我们使用过程中遇到的一些问题。

因为Docker现在仍处于一个非常Active的开发阶段,因此经常性会出现版本的更新,可能会导致一些兼容性问题。 还有在Docker容量上存在的问题,如果用到弹性扩容,可能这个问题就可以被解决掉;如果不是弹性扩容,在本机的Docker Image过多的情况下,机器可能就会出现崩溃的情况。 这些都是我们使用过程中遇到的技术细节,但我觉得优势肯定还是大于不足。

   

12. 那你怎么看待Docker跟DevOps将来的一个发展?

于国庆:在我看来,Docker让DevOps火起来。我曾跟多人聊天发现,每个人对DevOps见解都不太一样,北京其实有DevOps Day的活动。

我个人认为,DevOps更讲究的是一种文化,但是很多公司却将其理解为一个职位,一种工具链,或者是一个团队,而实际上它应该是一种文化。

希望Docker让DevOps火起来之后,大家能够更加深入并正确理解DevOps概念,通过更多的实践,除了关注Docker这个工具之外,关注更多其他的文化方面,合作,以及关注个人关系问题,还有如何扩展到整个团队的能力,避免官僚化等。 所以我认为Docker现在已经让DevOps火起来了,以后希望DevOps能够让其他更多的东西火起来。

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT