2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

基于微服务,打造共享开发平台

  • 2018-12-17
  • 本文字数:4029 字

    阅读完需:约 13 分钟

基于微服务,打造共享开发平台
00:00 / 00:00
    1.0x
    • 3.0x
    • 2.5x
    • 2.0x
    • 1.5x
    • 1.25x
    • 1.0x
    • 0.75x
    • 0.5x
    网页全屏
    全屏
    00:00

    采访嘉宾简介

    于人,随行付 CTO & 研发中心总经理,黑少·微服务商店创始人,TGO 鲲鹏会成员,中国人民大学 EMBA,全栈工程师,拥有 14 年开发经验,11 年技术管理经验。


    InfoQ:请您解释一下微服务现在为什么这么受欢迎?它的优点有哪些?


    于人:首先是社会发展趋势,眼下我们整处于不确定性时代,外界环境变化非常快,因此企业需要在系统上快速响应这些变化。微服务最大的特点,就是能够快速地响应业务变化。


    第二,微服务的特点是功能和业务的有机结合,功能是载体,业务是灵魂,两者叠加构成了一个具备价值很高的产品。


    第三,其他方式,比如 SaaS 方式或者 PaaS 都无法解决 To B 的定制需求,很多 SaaS 平台被定制化需求搞得很头疼,这也是很多 To B 的 SaaS 企业的困境。但是,微服务正好能解决企业的定制化痛点。随行付本身就是 B 端企业,黑少团队有着多年的 B 端应用经验,我们在实践中就会发现其他模式的短板,当然也有长处。


    InfoQ:您认为企业在什么情况下适合做微服务?如果做微服务的话有哪些难点?


    于人:企业快速发展期最需要微服务,一个快速发展、快速成长的企业,业务变化一定非常快,并且时间成本非常高,而微服务模式可以快速地响应各种变化。


    InfoQ:企业应该怎么做微服务?应该如何分配资源、尤其是人力资源,来有效提升开发的效率?


    于人:微服务的理念源自 1967 年诞生的康威定律,它认为系统要与企业组织结构相匹配。反过来说,企业如果想做微服务,那么它的组织结构也要尽量适用于微服务,比方说敏捷。实施微服务,其实是一整套管理体系的升级,切换成微服务以后,企业的整体开发效率会有一个质的变化。随行付核心架构切换为微服务模式以后,人均开发效能提升了一倍。


    InfoQ:当初是什么原因促成了黑少微服务商店的创建?为什么要创建这个微服务商店?这个商店的定位是怎么样的?


    于人:这还真是个 I can I up 的事(笑)。黑少微服务商店是一个微服务 &源码的交易平台,创建它其实是从我们的实际需求出发。我们有很多业务在快速发生变化,变化产生需求,可这些需求极大概率在市面有其他团队已经做过了,如果一个公开透明的交易渠道,就意味着每个团队产生需求的时候,都要自己再做一遍,开发行业就只能处于重复造轮子的低效状态。需求积压只会越来越大、越来越多,开发者个体就必须把时间精力投入在低效的重复劳作之中。如果有一个地方,能让我快速购买这些业务模块,根据我自己的需求稍微调整一下,立刻就能匹配到业务上,那我们企业地增长一定会更快。


    我们常年服务于 B 端企业,我们确信这类需求客观存在,我们也试图求助于 PaaS 模式或者 SaaS 平台,但是购买之后发现,它们提供的服务跟我们的业务匹配度差强人意。最终,经过这几年微服务技术的积累,我们发现微服务是一种非常适合共享交易的开发模式,它既包含功能又包含业务,对于企业而言,业务是具有实际使用价值的元素,因此我们判断,微服务具有足够的交易价值。


    站在我们自己的角度,我们就是 B 端企业用户,我们有这个需要,而市场上又没有太合适的解决方案,那就自己下场试一试,尝试推出一套解决方案。


    InfoQ:和其他同品类的一些平台,比如说 Spring 和阿里提供的类似服务相比,黑少微服务商店提供的产品和服务有什么优势和特点?开发者如果选择黑少的话,他们可以获得什么样的好处?


    于人:如前所述,我们一直聚焦于业务,业务既是微服务商店的起点,也是终点。您提到的那几家平台基本上是底层的技术解决方案,还是以技术为主。刚才提到过,微服务妙就妙在业务和技术的结合,而随行付更擅长业务,我们服务了几百万家中小微企业,我们知道 To B 应用的企业诉求是什么,知道真正的业务需要什么。在 To B 的实用性这个维度上讲,我们是有一定差异化的。


    InfoQ:黑少微服务商店,这个名字挺有特色的,您说微服务商店里面用到了一些黑科技,这些黑科技都有哪些?


    于人:随行付使用微服务架构将近 3 年,积累了一些实用的技术工具,比如已经贡献出去的一些开源组件,比如基于适用性的微服务开发平台升级等等,还包括我们为了开发人员量身订作的一些自动化开发功能,自动化运维、自动化开发、自动化容器等等。


    另外,我们的人工智能测试明年也会上线,现在已经着手在做,方案已经落地,论证环节已经通过,明年就会跟大家见面。


    下一步可能有点远,我们还要在人工智能开发这个领域去发力。总之就是通过一些人工智能的手段、科技的手段,帮助开发者更高效地完成自己开发创新,帮助企业更迅速地解决发展过程中遇到的问题。


    InfoQ:您在创建黑少微服务商店的过程中,有没有什么让您非常印象深刻困难或困境?黑少又是如何克服这些困难的?


    于人:业务和技术上都遇到过困难。首先说业务,黑少微服务商店的核心模式,其实是争取尽可能多的减少软件开发行业内的重复劳动,去重是商店模式的核心,通过去重降低应用开发成本,提升开发效率,释放生产力价值,让开发者们有更多的精力投入到创新型工作之中。去重是整个软件开发行业的共同目标,大家都在试探各种手段,像 PaaS 平台,或者是众包模式等等,可到底应该选哪条路?最初我也非常迷茫,于是跟大量的技术管理者沟通,也见了很多投资人。大家都给了我很多有效建议,尤其是一位红杉资本非常著名的 To B 投资人,帮助清理了许多不太靠谱的杂念。前一阵刘润老师有一篇文章刷屏了,To C 和 To B 之间区别的文章,那就是我咨询完刘润老师以后,他总结出来的。大家一起帮助我把这个想法收束到微服务商店这个点上。


    InfoQ:有高人指点,事情就变得容易很多。


    于人:高人帮我做减法。收束到微服务商店模式之后反推,发现一切逻辑都能推通。这是业务方面遇到的困惑。


    在技术上,肯定也有难点,微服务、微服务商店都是新兴事物。微服务我们还算用得早,三年使用经验,团队内有微服务领域的专家,积累了很多东西。最开始,我们并不想自己做一套开发平台,我们一直聚焦做商店,但是商店一定要配套一套开发平台,帮助大家快速开发、在商店上完成组装。


    最初我们是想采购一套平台,在市面上找了很多家,发现确实没有能完全满足我们需求的。没办法,就自己做了,但是这套开发平台完全是不以盈利为目的,给大家免费使用。之前随行付的发展也得到过开源社区的大量帮助,所以现在想回馈社会、回馈开源社区。


    InfoQ:关于微服务,黑少有很多这方面的经验,也正是这些经验奠定了黑少打造微服务平台的基础。以黑少的经验来看,在微服务开发的过程中开发者应该如何进行架构的选型,黑少有哪些经验可以分享?


    于人:我们是由以前以 Dubbo 作为通信方案的一套架构转到 SpringCloud,主要的原因是 SpringCloud 现在整体的生态比较完整,Dubbo 某一部分做得已经挺好的了,但是它在广度方面还是略微差一些。所以我们转向了 SpringCloud。在后者的基础上,我们做了 6 个模块的升级改造,因为 Spring 的思路是把东西做到“能用”,而我们追求的是“好用”,这也是偏向技术的开发者和偏向于业务的开发者,思维习惯的差别,对于业务而言,不断优化是应有之义。。


    InfoQ:以黑少的经验来看,团队应该如何分配人力等各方面的资源,以提升开发的效率?


    于人:还是回到康威定律,资源配置取决于公司业务的发力方向,兼顾考虑人员规模导致的协同性问题。微服务有个妙处,它将一个复杂的业务分解成一个个简单业务,那么一个个简单的业务就可以按需匹配,在一个最高效的人数上去完成这件事、聚焦这件事。根据亚马逊贝佐斯“两个披萨”的管理思想,5 ~ 10 个人的团队规模效率最高。微服务有高内聚的特点,由 5-10 个人完成这个服务,与其他团队之间的沟通就不需要那么多,尤其我们平台又解决了团队间沟通协调的问题,可以进行服务组装。每一个小团队就聚焦将自己的模块搞到极致、搞到完美,大家就能“我为人人、人人为我”。


    InfoQ:目前,微服务开发经常会面临依赖滞后的问题,开发者应该遵循哪些原则,可以提升开发交付的效率?


    于人:其实整个微服务,我们在落地微服务的思想是说约定大于配置,在最开始之前,大家应该遵照的是一套相对更现实的解决方案,我们现在选的是 SpringCloud 的一套整体的底层框架标准和逻辑,在这个底层协议与基础上做了一些让开发人员用起来更简单、更易用、更人性化的功能,但是底层还是遵循 SpringCloud 的这一套整体的标准。


    InfoQ:您是否在微服务配置方面有一些经验可以分享?在 Docker 上部署 SpringCloud 的微服务,如何才能实现配置的自动化更新?


    于人:这个理论上讲,实现自动化更新并不难,外面也有一些开源的配置中心都实现了,本身 Spring 是支持接口调用的。难在哪儿?这就不得不说,为什么随行付推出的 ConfigKeeper 配置中心被大家欢迎,难点就在于什么时候去触发这个配置中心,如果你部署上去立刻触发,有可能造成灾难性的结果:一旦这个配置配错了,整个服务就停了。这就是我说的“能用”和“好用”的区别,我们为了做到“好用”,做了多重防范措施,首先在配置修改上具有版本之间的比对,改了哪儿一目了然,改了一行就显示一行高亮。


    第二,在更新的时候,我们支持手动触发个别的先更新,相当于灰度测试,你更新完了之后看看效果怎么样。


    第三,当这个更新发生问题了要快速回轨,这些都是日常工作中会遇到的一些可能出现的问题。我们为了让它“好用”,确实做了大量的工作。


    InfoQ:黑少在未来的长期计划有哪些?


    于人:聚焦于商店,商店的本质功能是基于互换的信息透明化,具体而言就是匹配需求与供给。为了让尽可能多的模块流通起来、进行共享,我们必须聚焦于微服务的万物互联,无论用谁家的云平台、无论用什么语言开发、无论用什么微服务协议来通信,最后都能在黑少这个平台上完成它们之间的互相调用,这样就能真正实现大共享,实现软件开发行业去重这个理想。


    实现这个理想也许需要时间,但是推进这个理想过程,就能为开发者节省大量精力用于技术创新,或者去做自己想做的事情。降低开发成本之后,也会有更多企业、创业者能够受惠于科技,让科技服务下沉到更小、更轻的企业层面——这样才能做大 To B 蛋糕,如果只是零和竞争, 那么 To B 革命就无从谈起。


    2018-12-17 00:002353
    用户头像

    发布了 1506 篇内容, 共 678.6 次阅读, 收获喜欢 2503 次。

    关注

    评论 1 条评论

    发布
    暂无评论
    发现更多内容

    区块链数字货币交易所开发的简介

    这道面试题,出错率90%

    田维常

    面试

    敏捷团队的质量保障赋能

    BY林子

    质量保障 质量赋能 敏捷测试

    获奖名单|七日更挑战成功!

    InfoQ写作社区官方

    奖品 七日更 热门活动

    数字货币交易所开发的功能与特点

    程序员修炼之路:你该知道的 7 个必经阶段

    阿里巴巴云原生

    阿里云 程序员 云原生 自我思考 成长笔记

    国外低代码平台趟过那些坑,对国内低代码企业有哪些启示?

    DT极客

    LINUX SHELL脚本攻略

    田维常

    如何防止短信验证码接口被恶意调用攻击?

    香芋味的猫丶

    短信 短信防刷 接口安全 验证码

    区块链app开发要多少钱?如何根据项目需求了解价格?

    智慧公安防控管理平台搭建,重点人员管控系统解决方案

    t13823115967

    智慧公安

    云原生2.0时代,华为云DevOps立体运维实践

    华为云开发者联盟

    DevOps 运维 云原生 华为云

    软件测试--中间件介绍

    测试人生路

    软件测试 中间件

    OpenKruise 2021 规划曝光:More than workloads

    阿里巴巴云原生

    阿里云 开源 容器 云原生 调度器

    区块链钱包开发的功能与特点

    智慧社区管理平台建设,智慧平安小区整体解决方案

    t13823115967

    智慧社区安防系统平台开发

    Python的GIL

    yunson

    Python GIL

    纵观 ActiveX 平台的兴衰史,看开发控件的技术演变

    葡萄城技术团队

    SpreadJS activex

    深度解析!滴滴内部开源Spring IoC和AOP源码小册

    Java架构追梦

    Java spring 架构 aop ioc

    Flink SQL 实战:双流 join 场景应用

    Apache Flink

    flink 流计算

    我参与阿里巴巴 ASoC-Seata 的一些感悟

    阿里巴巴云原生

    阿里云 开发者 云原生 感悟 seata

    7 天开发后台系统技术小结

    老魚

    程序员 全栈 建站

    四年三次获奖,PostgreSQL再度荣获“年度数据库”桂冠!

    PostgreSQLChina

    数据库 postgresql 开源

    区块链钱包开发的核心优势

    对冲基金的子基金模式vs集中管理

    9527

    电商平台如何激发内容生态

    马踏飞机747

    内容 内容分发网络 电商

    千里公路建设尽收眼底,3D可视化监测管养运,领导都惊呆了

    一只数据鲸鱼

    物联网 数据可视化 3D可视化 公路建设 智慧交通

    Linux进程知识干货|收藏

    赖猫

    c++ Linux 后台开发 运维

    2020年11期券商App行情刷新及交易体验评测报告

    博睿数据

    APM 数据 AIOPS 证券

    漫画 | 带你领略前端发展史的江湖恩怨情仇

    苏南

    程序员 大前端 漫画 时代发展

    有没有听说过通达快递?

    escray

    极客时间 极客大学 课程作业 大作业 架构师训练营第 1 期

    基于微服务,打造共享开发平台_架构_InfoQ 中文站_InfoQ精选文章