从亚马逊前员工的吐槽中看看什么是微服务

最近在搜索k8s相关资料时,无意间读到了一篇文章,怕自己以后忘记,特次记下。

原文链接

STEVEY对AMAZON和GOOGLE平台的吐槽

这是一篇由陈皓翻译的文章,记录了一名分别在亚马逊和Google工作了六年多的员工对两家公司平台化的吐槽(实际上是在表扬亚马逊)。

这是一篇11年的文章,从文章里可以看到,亚马逊02年就在探索微服务,汗颜。

就像文中所说

如果是你,你会想到要把一个在线卖书的网站设计成为一个有扩展性,可程序化的平台?你真的会这样想吗?

感悟

对技术真应当有一颗敬畏之心,不是搭了个 k8s 或是 spring cloud 就叫会了,这里面的水深着了。

下面是一些摘抄:

有一天,Jeff Bezos下了一份命令。当然,他总是这么干,这些命令对人们的影响来说就像用橡皮槌敲击蚂蚁一样。这个命令大概是2002年,我想误差应该是在正负1年内 —— 这个命令发布的范围非常地广,设想很大,让人眼珠子鼓出来的那种,这种惊讶程度和其他的命令相比,就好像你突然收到公司给你的奖金一样让人惊讶。

  1. 所有团队的程序模块都要以通过Service Interface 方式将其数据与功能开放出来。(陈皓注:Service Interface也就是Web Service)
  2. 团队间的程序模块的信息通信,都要通过这些接口。
  3. 除此之外没有其它的通信方式。其他形式一概不允许:不能使用直接链结程> 序、不能直接读取其他团队的数据库、不能使用共享内存模式、不能使用别人模块的后门、等等,等等,唯一允许的通信方式只能是能过调用 Service Interface。
  4. 任何技术都可以使用。比如:HTTP、Corba、Pubsub、自定义的网络协议、等等,都可以,Bezos不管这些。(陈皓注:Bezos不是微控经理吗?呵呵。)
  5. 所有的Service Interface,毫无例外,都必须从骨子里到表面上设计成能对外界开放的。也就是说,团队必须做好规划与设计,以便未来把接口开放给全世界的程序员,没有任何例外。
  6. 不这样的做的人会被炒鱿鱼。
  7. 谢谢,祝你有个愉快的一天!

在接下来的几年,Amazon内部转变成面向服务架构SOA(Service-Oriented Architecture),在这华丽转身的过程中,他们学到了相当巨多巨多的东西。我在的那个时候,世界上就有很多很多的关于SOA的学术文档,但在Amazon的那种超大规模的面前,世间的这些文档就好像告诉印第安纳琼斯(陈皓注:电影夺宝奇兵男主角)过马路前要先看看两边有没有来车一样没用,Amazon的研发工程师们在这个过程中发现了很多很多的问题,并从中学到了很多。下面只是他们这些问题中的沧海一粟:

  • pager escalation(陈皓注:生产线上问题的寻呼系统)变得比较困难,因为ticket可能会转过来转过去(陈皓注:ticket就是处理问题的工单),只到转了20次,都找到真正能解决问题的团队和人。如果每一个呼叫都花去团队的15分钟的响应时间,那在找到真正的团队之前,几小时就已经过去了,除非,你能建造出很多很多的脚手架,测量标准和报告。
  • 每一个和你的相关团队突然间都可能成为一个潜在性的DOS攻击者。没人可以让事情有进展,直到在每一个Service里放上配额(quota)与节流阀(throttling)的机制。
  • 监控与QA是被统一了。如果你不进行一个大规模的SOA,你就不会这么去想。但是,等到你的Service说,“是的,我还好!”,但实际情况可能是,服务器里唯一能正常运作的功能就是一个快乐的机器声音在呼叫你:“我很好,收到,收到”。为了要确认整个服务能正常运作,你需要对Service的每一个部分都去Call一下。这个问题会以递归的形式地出现,直到你的监控系统能够全面性地系统地检查所有的Services和数据,此时,监控系统就跟自动化测试QA没什么两样了,所以两者完美的统一了。
  • 如果你有上百个Services,而且你的程序只能通过由这些Services来跟其他团队的程序做沟通,那么,没有一套Service发现机制的话,你就不能找到这些Service。所以,你得先有一套Service的注册机制,这也是一个Service。所以,Amazon有一套全体适用的Service注册机制,以例可以通过反射机制来找到Service,并知道Service的API,以及是否可用,在哪儿。
  • 调试其他人的代码以调查问题变得非常的难,几乎都不可能,除非有一套全面性的标准的方式,他可以在可被调试的沙盒里运行所有的Services。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值