• 孙振超
    2018-09-18
    文章中一共列了11个部分,但只有10个人,很明显是不可能是同时开工的,即使能够同时开工也是需要经过几轮迭代才能达到一个比较完善的状态。

    依据简单原则和演化原则以及“三个火枪手”的人员分配原则,首先可以做API 网关、配置中心、服务发现、服务路由这4部分,经过一个月的开发+半个月的联调的先让基础框架搭建起来,业务能够运行起来。
    业务上线后,为了保证用户体验和问题跟踪,在保留一两个留守同学的情况下,开始服务容错、服务监控、服务跟踪这几部分的开发,因为这个阶段中可能还要回头修改已完成的部分让这几个部分配合的更好,联调的工作量也多了不少,这个过程大概要2.5月。
    而后随着业务逐渐增多,流量逐渐增加,为避免被黑产“薅羊毛”需要把服务安全部分给完成,同时为了快速响应新的业务需要把接口框架给完成,但此时有些同学会被已完成部分的日常维护、修bug等,这些初步需要两个月时间。
    在这里都完成后,可以开始自动化测试、自动化部署这部分,也按照两个月的时间,这样一轮下来总体需要8个月时间。

    经过第一轮后微服务的基础实施是有了,但要真正的运作起来还需要经过几轮的迭代才可以,但此时面对老系统的维护新系统的开发整体的进度会变慢不少,这样一个合格的比较完善的微服务基础设施差不多要两年时间了。
    展开

    作者回复: 你是第一个认真分析且抓住重点的同学👍👍

     1
     76
  • Coder4
    2018-07-19
    看怎么定义自研了,今年花了1个月,每天半小时代码。半开源,半代码,已经实现了 服务发现,追踪,自动部署,以及后端服务数据库,消息队列,缓存,内存数据库的对接,
    真正熟悉了,花不了太多时间,另外得合理利用轮子。

    作者回复: 你这个太牛了,惊为天人啊😄

    
     16
  • 无痕
    2018-07-20
    老师,很多人把oauth2的鉴权放到了网关,这个你怎么看

    作者回复: 不符合网关的定位,因为有的业务要鉴权有的不要,放在网关就相当于网关要和业务耦合了

    
     5
  • 成功
    2018-07-27
    30天左右

    作者回复: 太乐观,30天就算用spring全家桶,都不可能上线的

    
     3
  • 空档滑行
    2018-07-19
    工作量需要看这一套框架要应对的服务规模和流量。以100个微服务,接口平均qps100以下做了简单测算,不考虑同城和异地多活,达到基本可用的话
    配置中心,包括配置项管理和推送,和微服务一起打包的客户端
    接口框架,使用http和Json的话,只需要一种语言的解析包
    Api网关,后端服务对接和接入层实现
    服务发现,使用自理式,注册中心服务端加客户端,加注册中心高可用
    服务路由,相对简单
    服务容错,包括熔断和流控等
    服务监控,包括采集和分析
    跟踪,各端trace注入,数据上传,数据查询和计算
    安全,权限控制,配置支持
    按10个高级开发,3人一组的话,大概半年左右
    展开

    作者回复: 半年只能出最简单的版本,不完善

    
     3
  • 唔多志
    2019-04-11
    老师讲到很好,不过由于自己还是在校生,没经历过,只能得到感性的认识,谢谢老师
    
     2
  • 易燃易爆炸
    2018-11-29
    自己写的话肯定坑太多,也没有经过太多实践上的检验。感觉真正稳定下来需要躺过很多坑才行,当然成长也是成倍的,最终苦了公司,系统天天挂。
    
     2
  • 程启
    2018-08-12
    华仔老师,

    之前看您留言提到过service mesh不成熟,中小公司不建议使用。请问看起来最近gcp云平台,主推的k8s加上Istio/envoy实现服务治理,您认为未来方向如何,这个是试用中小型团队的方案吗?感谢解答!

    作者回复: 我没有service mesh具体实践经验,主要信息来源于网上资料,意见供参考。

    1. Istio刚发布1.0版本,spring cloud成熟很多
    2. service mesh中文为服务网格,很形象,说明了更加适合非常多的服务节点,简单来说,如果你只有一两个服务没必要用微服务架构,你只有几十个微服务节点可能也不需要service mesh
    3. service mesh对程序无侵入,这点非常好,但随着spring cloud之类的方案成熟,侵入问题其实不是主要问题

    因此,我认为大部分中小公司目前不需要service mesh,能把微服务做好已经很不错了。

    
     2
  • mayer
    2018-07-19
    这10个人分别有相关经验的话,不考虑复杂的业务逻辑实现调试,整个框架搭起来可应用,应该在3个月左右可以完成,条件是高级工程师真的高级,哈哈😄

    作者回复: 太乐观了😄

    
     2
  • Kyle
    2018-07-19
    Dubbo弄了这么久,配套的基础设施都还没有。高级的水平也有高有低。总觉得怎么也要个一年半载吧。

    作者回复: 一年可以,半载不行😄

    
     2
  • kyll
    2018-07-19
    按照我们公司的情况来说,1.5个人,spring全家桶,花费6个月,才让系统上线。
    要是完全自研,10个高程在,也信心不大。
    
     2
  • 每天学英语的小沈
    2019-01-09
    微服务这两章讲的非常好,解决了长久以来的困惑

    作者回复: 都是实战经验总结

    
     1
  • 文竹
    2018-08-25
    自动化测试:主要支持接口测试,可以使用robot framework,无需额外人天。

    自动化部署:使用开源jenkins进行构建,无需人天。

    配置中心:需要支持的功能有服务节点管理,节点配置管理,配置版本管理,配置变更通知。
    实现这些功能估计需要30人天。

    接口框架:采用HTTP Rest Json形式,需要指定规范的json格式,目前Json解析能很好地支持于各语言,所以无需提供客户端库。由于主要工作在于规范化,估计需7人天。

    API网关:可以使用开源的API网关,比如Kong。Kong也支持插件化扩展功能。这里估计需7人天。

    服务发现、路由、容错:要实现这三个功能,还要实现服务注册中心。估计60人天。

    服务监控:收集信息并分析,由于数据量比较多,估计需要30人天。

    服务跟踪:是服务监控的升级版,特点也是数据量大,估计需要30人天。

    服务安全:这里需要做一个通用的认证授权方案。估计需要30人天。

    综合以上,似乎一个人半年左右就能完成初版。10个人同时进行的话,估计一个月左右。总觉得估计的时间比较紧,如果根据更细腻度的功能划分的话,可能在2个月左右。
    展开

    作者回复: 你还是太乐观了😂

    
     1
  • 凡凡
    2018-07-19
    按照以往了解的基础架构部的开发速度来看,而且文中涉及的基础设施都有开源实现可以借鉴,一个基础设施从调研(开源系统代码review),到设计,再到开发,再到小流量接入,全公司推广,一个基础设施3个人大概5到6个月时间,如果去掉小流量和推广阶段,估计也需要3到4个月。

    文中说到的前10个微服务,按照单个3*3人月算下来的话,理想情况下,需要9个月。

    当然,这里没有考虑严格的测试和压力测试,否则每个系统,需要增加至少一个人月的周期。
    展开

    作者回复: 这类微服务做出基本功能9个月可以,做完善需要耗时更长

    
     1
  • Geek_steven_wang
    2020-01-25
    老师,请问一下json数据格式规范,主要是约定公共字段名吗?还有其它要定义的内容吗?
    
    
  • Geek_steven_wang
    2020-01-25
    老师,你好。请教一个问题,微服务本身要实现请求鉴权,这个功能和网关相同,如果一个外部请求通过网关访问,它将要进行两次验证,有点重复呀,是这样吗?
    
    
  • Geek_steven_wang
    2020-01-05
    华哥,你好!请问:服务间的安全策略通过配置中心下发给各节点,一般采用那些安全策略?我了解到的有黑白名单(根据服务名、IP),这个方案比较容易伪造(服务名和IP),还有其它策略吗?

    作者回复: 内部网络需要与外部隔离,因此内部反而一般黑白名单用的少,因为机器会经常变,黑白名单管理比较麻烦;通常是给每个服务分配服务名称+服务访问密码之类的做法

    
    
  • Geek_steven_wang
    2020-01-05
    华哥,你在文章中提到的“即使同样都是 JSON,JSON 数据格式也不一样。”想请教 json数据格式规范具体指什么?此规范要约定那些内容?

    作者回复: json里面的字段不一样

     1
    
  • 古月三石
    2019-12-06
    老师你好,kubernetes中也有服务发现的功能,和Springcloud的服务发现两者如何选择?请指教

    作者回复: 这个你可以上网先查查,问个这么泛的问题,我也不太可能回复里面讲清楚呢。。。

    
    
  • Sam.张朝
    2019-09-29
    按照第一个人的回答,10个高级工程师,要8个月时间。
    如果没有经验,没有高级,感觉基本就没戏了。

    作者回复: 8个月还算厉害的了

    
    
我们在线,来聊聊吧