新编asp.net 2.0网站开发从入门到精通 代码,简单的wordpress模板下载,免费国外ip地址,品牌建设和品牌推广在上个月刚刚结束的Ignite大会上#xff0c;Teams产品的架构师Bill Bliss给大家奉上了最新的Teams的架构设计#xff0c;之前2017年和2018年微软的技术大会上都Teams架构的分享#xff0c;但是今年大神把Teams架构讲得很深入#xff0c;覆盖面很广。我这里就挑一些#xf…在上个月刚刚结束的Ignite大会上Teams产品的架构师Bill Bliss给大家奉上了最新的Teams的架构设计之前2017年和2018年微软的技术大会上都Teams架构的分享但是今年大神把Teams架构讲得很深入覆盖面很广。我这里就挑一些根据我的理解和各位分享一下。
先来看一下Teams客户端的架构。
三大桌面端WebWindowsMac。技术栈基本统一使用TypeScript大牛Anders Hejlsberg的力作啊此语言也是我的最爱在web开发上快要一统江湖了目前正在从Angular慢慢的转成React原因也很简单一旦全部转成React就可以和手机客户端的React Native重用大量代码进一步降低研发成本。Windows和Mac桌面端使用Electron作为外壳提供原生系统的调用能力。并且使用C和ObjectiveC来处理音频视频编码和桌面共享等功能。手机平台使用原生语言Swift和Java开发的期待明年可以看到Kotlin的身影
再来看一下云端的架构设计
首先客户端是和服务器端的不同service直接打交道。这点Bill Bliss也在视频里特别提到了这点和一般大家想象中的不太一样一般的架构是有一个api gateway来聚集后台的api。我觉得teams这么做可能希望负责不同feature的每个研发团队可以尽量独立完成端到端的开发。云端的服务拆分的比较合理以Teams Services作为核心Publish/Subscribe是和底层服务和第三方服务松耦合的一种做法对于一个大型平台来说pub/sub设计用的非常多
下面两张图很好的介绍了消息系统对于想做消息平台的同学来说非常值得学习。特别是后面一张非常精炼的说明了消息同步的高层设计。可以看到前面说的pub/sub架构在这里的运用
这里使用了long poll这种方式是我没有想到的虽然我觉得long poll能适用各种复杂的网络情况但是不太高效我觉得以后应该会引入类似SignalR等机制作为补充。
下面这页说明了Teams中的附件消息等数据是如何存储在Office365和Azure上的。左边一列storage是第一层存储后边是第二层长期的存储。
可以看到对于数据的合规性很多是交由Exchange来处理的毕竟Exchange老大哥混了这么多年已经积累的大量的compliance规则。Teams真的是Office365服务的集大成者Teams底层实际上还是大量的依赖于其他服务比如SharePoint, Exchange, OneDrive for Business, Stream等等
Bill Bliss的整个分享视频可以在这里观看: https://myignite.techcommunity.microsoft.com/sessions/83471?sourcesessions。PPT下载在这里
另外中国微软的牛人Ares陈老师最近出了一套的Teams开发系列视频讲座Microsoft Teams开发入门和实践 https://aka.ms/teamsdev163study 从入门到精通Teams开发对于准备从事或者正在从事Teams app开发的同学来说绝对值得观看