超哥是来自Amazon的顶级的架构师,经历了Amazon整个向微服务架构迁移的过程,以及向serverless的演化过程,有着极其丰富的经验,年过40,一直站在技术的最前沿,始终保持对技术的执着追求和热情,是名副其实的技术大牛,能与之一起工作,荣幸之至!今天超哥给我们分享的主题《microservice & serverless》,是超哥实际工作经验的一些分享,也为公司架构的演化提供了新的思路和指导。

microservice(微服务)这个可能是这些年最火的一种架构设计了,频繁地出现在各种技术大会上,各大互联网巨头纷纷向这种架构演化,很多小的互联网公司也往这些概念上去靠,大有一种不做微服务就要落伍的趋势。事实上,很多对于微服务的理解比较粗浅,盲目的微服务化甚至会带来更多的负面影响。

目前Amazon内部运行着超过2w过微服务,但是这些微服务并不是凭空产生的,在这之前,运行的服务都是超大的单体服务,但是随着业务的发展,这种服务在整个研发的pipeline(设计→研发→编译→测试→发布→部署→运维)中都出现了一些问题。设计阶段,老的单体服务会给我们带来一些技术限制,比如有些技术只有python语言的实现,但是我们的服务使用java开发,这样我们不得不拿出一个更复杂的设计去解决类似的问题;研发阶段,随着开发人数越来越多,代码冲突的问题越来越多,我们不得不花更多的时间去做这种无趣又没有什么意义的事情;编译阶段,越来越多的依赖很容易造成版本冲突,不同的版本也会引发兼容性的问题,而这种问题如果在运行时才暴露出来可能会造成严重业务影响;部署阶段,很多的特性打包在一起发布,特性越多,出问题的概率也就越大;而最致命的是运维阶段没有回滚方案,一次上线中可能包含很多的特性,而其中任何一条特性的bug就需要回滚,然后可能有些特性需要变更数据格式,新特性能向前兼容老的数据格式,但是回滚后却无法处理新的数据格式,因此无法回滚……就是在这样的背景下,Amazon开始朝微服务的架构演化。

微服务摆脱了单体服务技术的束缚,可以自由地根据业务的特点,选择最适合的技术去实现自己的服务;将一个大的开发流程拆成了很多个小的独立的开发流程,彼此之间不在相互依赖,大大缩短了项目周期;代码冲突的问题也得到了很好的改善;每次发布的特性很少,每天都能发布,而且能做到快速回滚。真正做到,持续集成,持续交付,敏捷开发。

微服务架构同时也带来了一些新的问题。相比与单体服务,微服务的架构数据的传输依赖于rpc的调用,这个调用会带来一些额外的网络耗时,这种耗时往往需要业务上面去考虑是否能容忍,这种rpc的调用收到网络环境的影响,失败是很正常事情,因此需要失败重试机制,于是代码里面到处都充斥着失败重试的冗余代码,影响代码的可读性,更糟糕的是会有雪崩效应,当某个底层服务出现问题时,比如响应时间过长,或者无法访问,这种影响会层层传递到上层,最终导致整个业务系统挂掉;在测试上面也会变得更加困难,之前都在一个实例里面,现在一个服务依赖很多其他的微服务,测试的时候都需要去mock,日志也会分布在不同的服务下面,问题排查比较困难;此外,数据分布在不同的微服务上,在数据一致性上也会有些问题。所以在进行微服务设计的时候也要特别注意这些额外的负面影响,封装重试逻辑,引入熔断和限流机制,统一的日志收集方式。

serverless(无服务器)架构可能是为了让devOps从繁复的运维工作中解放出来的全新架构,最大的特点是整个系统基于AWS提供的各种服务,能够做到自动的拓展以及按流量计费,不再需要人力去维护,大大提高了效率,同时按真实流量的计费对成本也有可能会有优化。而Fass架构,把业务需求封装在一个函数内部,开发人员只需要关注自己的业务逻辑,然后通过网页提交就能完成上线。我在想,当这些技术真正成熟和普及的时候,可能每个普通人,随便花点时间学点python,也能做出一个的服务,而那个时候,我的价值又是什么!?

转载请注明出处 
本文链接:http://hatlonely.github.io/2018/01/12/《microservice & serverless》by蔡超的一点感想/

转载于:https://www.cnblogs.com/hatlonely/p/8335603.html

《microservice serverless》by蔡超的一点感想相关推荐

  1. 《microservice serverless》by 蔡超的一点感想(文末有资料)

    超哥是来自 Amazon 的顶级的架构师,经历了 Amazon 整个向微服务架构迁移的过程,以及向 serverless 的演化过程,有着极其丰富的经验,年过 40,一直站在技术的最前沿,始终保持对技 ...

  2. Mobvista首席架构师蔡超:工作感悟之失败与成功,我的8点总结

    蔡超 读完需要 9 分钟 速读仅需 3 分钟 蔡超,Mobvista 技术 VP 兼首席架构师,SpotMax 云服务创始人.拥有超过 15 年的软件开发经验,其中 9 年任世界级 IT 公司软件架构 ...

  3. 汇量科技蔡超:提高云使用率是云计算市场的下一个增长点

    来源|网易科技 大数据时代,随着公司广告业务对数据需求量的增大,对云计算资源的要求的快速提升,成本上的压力使我们思考如何更高效地去使用云.近日,汇量科技成立了云计算及基础架构业务中心(简称:云事业部) ...

  4. 学习javascript 的一点感想

    原文:学习javascript 的一点感想 //动态性是指,在一个Javascript对象中,要为一个属性赋值,我们不必事先创建一个字段,只需要在使用的时候做赋值操作即可,如下例: var obj=n ...

  5. 蔡超:入门 Go 语言必须跨越的五个思维误区

    你好,我是蔡超,现在是Mobvista 技术副总裁,前亚马逊(中国)首席软件架构师,极客时间<Go语言从入门到实战>视频课程的作者. 在2018年的QCon北京全球软件开发大会上,我做了题 ...

  6. 一点感想——还没学会跑,怎么能够想着飞

    一点感想--还没学会跑,怎么能够想着飞 在公司用了pyside两个月左右,连pyside与pyqt的区别都没有弄清楚,就想着去学c#了,太过三心二意了.... 这个文章写了pyside与pyqt的区别 ...

  7. 自制舵机(伺服电机)控制系统的一点感想

    自制舵机(伺服电机)控制系统的一点感想 前言 舵机简介 舵机系统设计 前言 大一到大二的暑假里,刚学了51单片机一些比较基础的操作,而自己又一直很不满市面上出售舵机的造型一类的问题,从那时萌生了想自己 ...

  8. 关于社区团购和菜场买菜的一点感想

    公众号后台回复"图书",了解更多号主新书内容 作者:年素请 来源:码农故事汇 最近,橙心优选.多多买菜.美团优选等一大波社区团购纷纷上线,一时间,许多人对此持怀疑态度,连人民日报也 ...

  9. 看电视剧《天道》一点感想 + 法兰克福美景Opencv聚类分析

    看电视剧<天道>一点感想 + 法兰克福美景图像处理 1. 一点点坐井观天的感想 2. Opencv剧情图像处理测试效果 1. 一点点坐井观天的感想 其实,本来是想找一部类似于<青瓷& ...

最新文章

  1. Metadata Service 架构详解 - 每天5分钟玩转 OpenStack(165)
  2. python 遍历xml所有节点
  3. 【概率论系列学习】泊松分布和指数分布的关系
  4. 绕过web认证学习总结
  5. SH1B LMR62014XMFE/NOPB
  6. 在浏览器端调试代码并直接修改原文件、移动端虚拟键盘中实现搜索按钮
  7. 第 4 章(表达式和运算符)(4.1~ 4.7)
  8. Linux 服务器感染kerberods 病毒
  9. 团队作业9——展示博客(Beta版本)
  10. iOS build faad
  11. MapReduce的分区
  12. X2Paddle实践之——Tensorflow版本VGG模型转化为paddle版本模型
  13. python 有道翻译,python 实现有道翻译功能
  14. Java中修饰变量和方法的关键字总结分析
  15. python绘制复杂表格_Matplotlib绘制表格
  16. 那些优美的英文句子一
  17. 14.3.6 创建组合索引
  18. Java Script 秒表计时器 ( 源码 + 分析 )
  19. Iscrool下拉刷新
  20. 深度优先搜索(Depth First Search)、广度优先搜索(Breadth First Search)

热门文章

  1. 快速开发架构Spring Boot 从入门到精通 附源码
  2. ruoyi框架中使用swagger调用不需要认证接口需要认证401 认证失败,无法访问系统资源问题
  3. SSM毕设项目农产品交易平台9o9p3(java+VUE+Mybatis+Maven+Mysql)
  4. 解析淘宝二合一连接php,如何从淘口令或二合一链接中提取淘客PID?
  5. Spark DAGScheduler源码分析系列之一: 基础
  6. 改进版GCN 学习Simplifying Graph Convolutional Networks
  7. ラクスのfield of hope
  8. 【听书笔记-0611】-《一本书读懂股权架构》
  9. 酒店卫生问题频起 MobData公布酒店行业最新用户画像 携程用户最有钱
  10. 迟到 的2018年终总结