20万粉丝的技术大V是怎样练成的--胡忠想访谈

导读:11 月 23 ~ 24 日,GIAC 全球互联网架构大会将于上海举行。GIAC 是高可用架构技术社区推出的面向架构师、技术负责人及高端技术从业人员的技术架构大会。今年的 GIAC 已经有微软,腾讯、阿里巴巴、蚂蚁金服,华为,科大讯飞、新浪微博、京东、七牛、美团点评、饿了么,才云,格灵深瞳,Databricks,等公司专家出席。本周购买可享门票88折优惠,高可用架构会员低至6折。

在大会前夕,高可用架构采访了本届 GIAC微服务讲师胡忠想,就目大家关注的微服务落地等问题进行了访谈。

胡忠想,微博技术专家,极客时间专栏《从0开始学习微服务》作者。2012年加入微博工作至今,先后承担过微博计数器架构升级、春晚和奥运服务保 障,以及首页信息流架构升级等工作。在分布式服务高可用性保障领域积累了丰 富的线上实践经验。

高可用架构:很高兴采访到您。大家都知道您不仅是技术专家,还是微博网红。相信很多人都想知道,作为微博网红技术专家,是一种什么的体验?

胡忠想:大家好,我是微博的胡忠想。大家都想知道我是怎么成为微博网红的,都是因为微博能扛八个明星出轨的flag,也被戏称微博flag帝。虽然我没有立过这个flag,但众口铄金,有口难辨,捂脸表情。不过大家这么关注我,说明大家对微博这个平台应对热点事件的能力还是很感兴趣的,毕竟微博是大家了解热点事件的最重要的渠道。所以我的压力还是很大的,毕竟每一次微博服务宕机,都要被挂出来,表情包满天飞,捂脸表情。

高可用架构:大家都知道微博落地了微服务。从技术角度来说,针对突发热点事件的场景,微服务架构有哪些优势?

胡忠想:说到微博,大家第一时间想到的就是微博的首页关注流,我就是主要负责微博首页关注流稳定性保障的。在过去几年为了应对突发热点事件,对我们的业务进行了服务化改造,为了能够快速扩缩容,研发了一套动态决策系统,能够根据服务池的冗余度自动扩缩容,无须人为值守。然而这两年随着微博业务的快速发展,涌现了多条新的业务线,比如热门微博和热搜,也同样面临着突发热点事件保障的需求,但由于这些业务线主要采用的是PHP语言,而我们的平台主要采用的是Java语言,所以这套自动扩缩容系统不能直接拿来使用。不过通过改造成微服务,通过我们最新研发的Weibo Mesh的解决方案,能够无缝接入这套自动扩缩容系统,一套系统能够为多个业务线服务的。

高可用架构:落地微服务,有什么样的难点?您觉得的最大难点是什么?

胡忠想:落地微服务的难点有很多,比如服务框架、注册和配置中心、监控系统、分布式追踪系统、服务治理中心等等,如果每一个部分都自研的话难度是相当大的。但我觉得最大的难点其实是如何做技术选型,针对自己的当前业务情况,到底是自研比较好,还是选用开源技术方案比较好,如果选择开源技术方案的话,又该选择哪种,比如选择服务框架时,是选择跟语言绑定的比如Dubbo、Spring Cloud,还是选择能够支持多种语言的比如gRPC、thirft。选择了哪种技术路线,就决定了之后整个微服务体系的可扩展性以及在多个业务线落地的难易程度。

高可用架构:有人把微服务理解为微小的服务,甚至还有人一个接口一个服务。能否结合您的实战经验,谈一谈微服务应该如何进行服务拆分?

胡忠想:我认为在进行服务拆分不是越细越好,要结合业务的发展和人员的配备情况综合考量。拆分的太细,一个接口一个服务的话,会出现需要管理的服务太多,人力不足以应对的情况,而是要循序渐进。比如微博在进行服务化拆分的时候,一开始是把一个大的Web单体应用,拆分成两个大的Web单体应用,之后再从每个大的Web单体应用,拆分出七八个独立的RPC服务,整个过程持续了两三年,伴随着业务开发人员的规模越来越大,职责划分越来越明确,才会把服务拆分的越来越细。

如果想从其他架构方式转成微服务,需要做一些什么样的转变?您有什么样的建议? 微服务架构本身相比于其它架构本身并不是说有多么先进,而是微服务、容器化、DevOps这三者相结合,在业务规模很大时,通过拆分出多个独立的服务进行开发、测试和运维,能够快速迭代,加快业务研发的速度,这才是传统架构向微服务架构转变的最大价值。

高可用架构:最近两年 Cloud Native 逐步流行起来,能否简单介绍一下微服务跟 Cloud Native 两者之间的关系?

胡忠想:微服务强调的是业务的组织架构,而Cloud Native也就是云原生,强调的是业务部署的模式。微服务跟Cloud Native看似是两个不同领域的概念,如果业务既采用微服务架构,又以云原生应用的方式部署,就能实现服务治理体系与服务运维体系的融合,能到达1+1>2的效果,最近大红大紫的Service Mesh的代表作——Istio就是微服务与Cloud Native结合成功的典范。

高可用架构:如果想快速学习微服务的知识,能否给大家总结一下快速上手的学习路线?

胡忠想:我建议先了解下微服务的基本原理,并以一个具体的开源服务化框架来动手实践,比如Dubbo、Motan、Spring Cloud都可以,这样理论与实践相结合的话是最好的方式。当然如果你在公司里有实际微服务架构的项目,那更好不过了,可以在具体项目中活学活用。

高可用架构:作为 GIAC 微服务专题的讲师,能否简单透露一下您将要给听众带来哪些值得期待的内容?

胡忠想:这一次分享,我给大家带来的主要是微博在微服务化治理方面的一线实践经验,有服务治理方面的一些关键技术,比如针对微博业务场景自研的静态注册中心、backup request模式、以及best-fit负载均衡算法,有微博在跨语言服务治理方面的具体实践,还有微博如何研发统一微服务治理平台等。

高可用架构:最后,您对 GIAC 有什么寄语或者期望?

胡忠想:第一次参加GIAC,希望我的分享能给大家带来收获,也希望能借此机会与同行做更深入的交流,感谢GIAC给了我这次机会。

本期 GIAC 大会上,微服务 部分精彩的议题如下: 参加 GIAC,盘点2018最新技术。点击“阅读原文”了解大会更多详情。