过去20年软件架构

本周我们很开心邀请到了俊之给我们带来《过去20年软件架构》的演讲,相关总结如下:

Slides

  1. 俊之使用的Slides

Q&A

感谢张程做的相关笔记。

SOA和Microservice的异同?

  1. 【From 讨论】SOA关注业务数据,没有行为数据。SOA使用一个数据库,但是SOA的模块化思想和micro service相似。SOA有一套完整的规范,microservice 是满足 soa 系统之间的调用的标准之一。microservice复杂主要是因为数据库use case比较复杂。Micro-service是解决人的问题,互联网公司工程师动则上千上万,你不分拆功能、不用microservice 是不行的,总的来说,还是organizational problem。跟team structure 也有关系,分拆microservice 时候team也分开。这就更多是政治,而不仅仅是技术了
  2. 【扩展】Microservices vs SOA : What’s the Difference。也有一个中文的版本方便阅读。
  3. 【扩展】SOA vs Microservices: Key Differences explained with Examples:非常详细的介绍。
  4. 【扩展】微服务之与SOA和API的区别:这篇中文的比较大家也可以参考。

Microservices vs. Serverless的成本差异

  1. 【From讨论】Microservices可以包括serverless架构。区别就是Serverless一般是run by a cloud vendor that performs all server management, capacity planning, etc. Microservice一般是inhouse的。价格区别可以参考AWS Kinesis data streams定价?
  2. 【扩展】Microservices, Serverless, Monolith, SOA: What to Choose for an App Development?:详细介绍了四种的差别,当然也包括了Microservice和serverless之间的差别。
  3. 【扩展】架构思考:Microservice与Serverless的优劣势比较:对各自的特点和使用场景有所介绍。
  4. 【扩展】世界是 container 的,也是 microservice 的,但最终还是 serverless 的:一篇不错的文章,从历史和发展趋势进行了分析。
  5. 【扩展】Microservices and Serverless: Winning Strategies and Challenges
  6. 【扩展】Serverless and Microservices: a match made in heaven?:很不错的介绍文章。

SpringBoot 分布式session的几种实现方式

  1. 【From讨论】1) Session固定,将用户锁定到某一个服务器上, 2) session复制,任何一个服务器上的session发生改变(增删改),该节点会把这个 session的所有内容序列化,然后广播给所有其它节点,不管其他服务器需不需要session,以此来保证Session同步。3) session共享,使用分布式缓存方案比如memcached、Redis,但是要求Memcached或Redis必须是集群。4)session持久化到数据库。
  2. 【扩展】分布式Session的几种实现方式:简单介绍了分布式session的几种实现方式,也包含了我们讨论中所说的几种方式。
  3. 【扩展】分布式session的几种实现方式: 这篇文章对优缺点,原理的介绍比较详细。

数据库隔离级别有哪些

  1. 【From讨论】1.序列化,系统中所有的事务以串行地方式逐个执行,所以能避免所有数据不一致情况。2.可重复读,就是一个事务一旦开始,事务过程中所读取的所有数据不允许被其他事务修改。3. 已提交读. 一个事务在处理过程中如果重复读取某一个数据,而且这个数据恰好被其他事务修改并提交了,那么当前重复读取数据的事务就会出现同一个数据前后不同的情况。4. 未提交读, 数据被其他事务修改过,但还没有提交,就存在着回滚的可能性,这时候读取这些“未提交”数据的情况就是“脏读”。
  2. 【扩展】我们在之前的分布式事务中有详细介绍这个问题。

一些扩展问题和思考

  1. server的stateless design设计也是后端设计演化里面很重要的分水岭。参考文献:架构设计之“无状态”和“有状态”浅析
  2. 能不能讲一讲domain driven design?参考文献:美团技术:领域驱动设计在互联网业务开发中的实践
  3. Nvidia做的Next Gen datacenter:参考文献:Why NVIDIA Will Dominate the Data Center by 2030
  4. 对数据库设计感兴趣的可以看CMU 15-445/645 DATABASE SYSTEMS

再次感谢大家的参与,也希望大家有好的资源能联系我更新这篇文章。谢谢大家。

下周话题安排和往期话题回顾敬请参见《系统设计开荒小分队话题讨论简介

You may also like...

Leave a Reply

Your email address will not be published.