分(fēn)布式體(tǐ)系架构设计工作坊

分(fēn)布式體(tǐ)系架构设计工作坊
    马上咨询

    讲师介绍

    张逸 高质量编码实践者,领域驱动设计布道师,微服務(wù)系统架构师,大数据平台架构师,敏捷转型咨询师。

    热衷于编程语言學(xué)习与技艺提升,致力于将企业架构、精益需求管理(lǐ)、领域驱动设计与微服務(wù)架构完美结合,打造面向企业的业務(wù)中台;致力于将数据仓库、实时流处理(lǐ)、机器學(xué)习与高性能(néng)存储完美结合,打造面向行业的智能(néng)数据中台。
     著译作包括《解构领域驱动设计》、《软件设计精要与模式》、《架构宝典》、《高可(kě)用(yòng)可(kě)伸缩微服務(wù)架构》、《Java设计模式》、《恰如其分(fēn)的软件架构》、《WCF服務(wù)编程》、《人件》、《重构——改善既有(yǒu)代码设计》评注版、《架构之美》评注版。
     作為(wèi)主持人或讲师多(duō)次被应邀参加如中國(guó)软件大会、QCon、Agile China、Scrum Gathering、DDD中國(guó)峰会、中國(guó)台湾DDD大会、中台战略大会、阿里研发效能(néng)峰会等大型会议。

    课程简介

    分(fēn)布式體(tǐ)系架构设计工作坊通过架构设计实战贯穿整个培训

    目标收益

    通过一个完整案例演练贯穿整个架构设计过程,内容涉及:
     需求与架构目标的识别 RAIDs架构驱动方法 技术选型与决策 CQRS模式 系统一致性 领域驱动的战略设计 六边形架构 微服務(wù)架构的服務(wù)分(fēn)解 架构演进
     Clean Architecture思想 技术雷达

    授课时间

    2天

    需求

    搭建一个技术部落,将与IT、互联网、数字领域相关的人、部落(业務(wù)、社區(qū)、 兴趣组等)和内容联系起来,提供一个分(fēn)享与交流的途径。在最基本的层面上, 它是一个本地的博客、微博、微信文(wén)章、开源代码、活动、讲座、工作以及更多(duō) 内容的聚合器。

    业務(wù)需求

    普通用(yòng)户可(kě)以通过微信、微博等社交账号登录 VIP企业用(yòng)户需提供注册信息,并交纳规定的服務(wù)费用(yòng) 若用(yòng)户设置了相关账户信息,则个人信息上可(kě)以显示微博动态、Github提 交记录等
     注册用(yòng)户可(kě)以创建新(xīn)的技术部落 注册用(yòng)户可(kě)以申请成為(wèi)技术部落会员 技术部落会员可(kě)以在技术部落中分(fēn)享内容 技术部落会员可(kě)以关注/收藏自己感兴趣的内容
     技术部落会员可(kě)以组织線(xiàn)上讲座,进行网络直播。网络直播分(fēn)為(wèi)公益直播
     与收费直播 网络直播视频存储在系统服務(wù)器上,提供回看功能(néng) 注册用(yòng)户可(kě)以发布活动事件 注册用(yòng)户可(kě)以发布求职信息 VIP企业用(yòng)户可(kě)以发布招聘信息
     注册用(yòng)户可(kě)以关注自己感兴趣的活动,关注后,系统会及时通知活动情况
     注册用(yòng)户可(kě)以对技术部落中的文(wén)章、活动、直播视频、工作以及用(yòng)户进行
     
     
     全文(wén)本搜索 為(wèi)部落与用(yòng)户制定积分(fēn)政策,并根据最近七天的分(fēn)数滚动计算出最活跃排 行榜
     对整个系统中关注度高、相关度的文(wén)章进行智能(néng)推荐 為(wèi)VIP企业用(yòng)户提供人才推荐功能(néng) 除收费服務(wù)外,其余功能(néng)皆提供广告点击服務(wù)

    质量属性需求

    系统分(fēn)為(wèi)移动APP与Web应用(yòng) 满足10万PV的并发请求 用(yòng)户阅读分(fēn)享内容的响应时间不超过2s 阅读的内容经过系统的格式化 文(wén)章推荐服務(wù)的准确度达到60%的准确度 人才推荐服務(wù)的准确度达到80%的准确度
     网络直播的并发访问量能(néng)够支持10万级别,并保证直播的播放质量 全文(wén)本搜索的响应时间不超过5s

    第一次演练:架构目标与范围

    分(fēn)析需求,明确整个系统的用(yòng)户角色,定义系统的宏观边界,并找出与之相关的 第三方系统。
     
     知识点:
     
     架构与分(fēn)布式架构的概念
     System Context

    第二次演练:RAIDs分(fēn)析

    RAIDs分(fēn)析即识别整个系统的风险(Risk)、假设(Assumption)、问题
     (Issue)与依赖(Dependency)。分(fēn)析出来这些内容将成為(wèi)架构设计的驱动
     
     
     力,作為(wèi)技术选型与决策的输入。
     
     在进行RAIDs分(fēn)析之后,团队应就识别出来的风险(问题)优先级达成一致意 见,并给出相对具體(tǐ)的架构原则;而假设与依赖则可(kě)以视為(wèi)架构设计的约束。
     
     知识点:
     
     RAIDs分(fēn)析

    第三次演练:技术选型

    结合着系统需求与RAIDs分(fēn)析出来的结果,我们需要针对分(fēn)布式架构的同步消息 调用(yòng)、异步消息调用(yòng)等诸多(duō)方面进行技术选型。
     
     在进行技术选型时,应根据具體(tǐ)的需求场景、质量属性、团队人员能(néng)力等诸多(duō)方 面进行考量,并利用(yòng)Technical Matric的方法进行评估,帮助决策。
     
     实战:
     
     针对RPC框架进行技术Spike 针对数据库进行技术Spike

    第四次演练:关键因素分(fēn)析

    分(fēn)离的原则
     REST架构风格
     CQRS架构模式
     系统的高性能(néng)
     分(fēn)布式系统的一致性

    第五次演练:领域驱动与微服務(wù)

    领域逻辑的分(fēn)离应遵循“高内聚松耦合”原则,这一分(fēn)离原则尤其针对于微服務(wù)设 计。在进行服務(wù)设计时,引入领域驱动设计(Domain Driven Design)的知 识,通过识别Bounded Context进行微服務(wù)设计。
     
     知识点:
     
     Bounded Context Context Map
     六边形架构
     微服務(wù)设计原则

    第六次演练:架构演进

    技术部落的需求发生了变化,要求增加如下功能(néng):
     
     通过网络爬虫挖掘技术网站文(wén)章,根据部落主题进行文(wén)章推荐; 為(wèi)注册会员提供博客系统,用(yòng)户只需要在本地编写Markdown文(wén)件,并进 行同步,即可(kě)自动更新(xīn)博客; 提供对主要招聘网站包括LinkedIn、100Offer等网站的集成,实时更新(xīn) 招聘信息;
     
     如何在现有(yǒu)架构下应对需求变化,并对架构进行演进式设计。

    工作坊总结

    Clean Architecture思想
     Clean Architecture提出的模型是一个可(kě)测试的模型,无需依赖于任何基础
     
     
     设施就可(kě)以对它进行测试,只需通过边界对象发送和接收对应的数据结构即可(kě)。 它们都遵循稳定依赖原则 ,不对变化或易于变化的事物(wù)形成依赖。

    技术雷达

    针对整个分(fēn)布式系统架构设计,从原则、模式、框架、工具四个角度设计技术雷 达。