架构之美随笔二------企业级应用架构

摘要:
这部分是本书最经典的部分,为读者全面解释了企业应用程序架构的设计方法和示例。在这一部分中,作者从系统的可扩展性要求、体系结构设计目标和围绕问题质量要求的延迟要求向我们展示了完美体系结构的一些要求。用户会话、身份验证、Web服务以及处理应用程序逻辑的各种方式是Web上所有这些类型平台的主题。

  这一部分算是我个人认为本书中最经典的部分,全面的为读者解读了企业级应用架构的设计方式和实例。在对于架构还不了解的我们来说很是引人入胜。

  第三章 伸缩性架构设计

  作者在这部分围绕问题品质需求从系统的伸缩性需求、架构设计目标、延迟的需求向我们展示了,完美的架构所需要的一些要求。在伸缩性需求方面作者向我们举了大型在线游戏的例子,需要满足大量用户。在线用户数量短时间内可能有很大的变化。这之中隐含的需求就有多用户、并行、分布式系统,系统运行在多台机器上、高可扩展性、高稳定性、可靠性、数据一致性等。由此可见一个简单的项目其实有许多我们所看不到的需求,这在我们进行架构时就需要考虑到。而架构设计目标其实就是另外一个需求,对其他开发者部署出一个简单的编程模型,程序员可以将系统视为一个单机开发环境。隐藏分布式和并发是一件困难的事。需要一种严格限制的编程模型。在延迟的需求方面,其实这一点在我们日常的生活中会有很明显的体会,我们在使用一个开发好的网站或程序时,,过高的延迟会给体验带来极大的折扣。游戏架构要求用户体验好,大的延迟不被接受,甚至牺牲吞吐量换取少的延迟。
而企业环境的架构重在吞吐量,管理业务。有一点延迟可以接受。

  同时,这部分拿Darkstar作为案例来分析整部分的内容。DarkStar是由一组服务组成。每个服务定义为一个小的编程接口。这些接口很像经典操作系统的服务,支持对服务端的访问持久存储、调度并执行任务、与游戏的客户端进行通信。这些服务的程序不会受低层实现变更的影响,因为每个服务由一个接口来描述。当接口不变时,一个服务的变更,不会影响其他服务的实现。这是一个"分治"的过程。另外,将基础设施设计为一组服务,可以将这些服务在不同场景下进行不同的组合,更加灵活,复用性强。一组服务可以组成一个Darkstar栈,Darkstar栈中具体包含哪些服务可以由一个配置文件来设置。

                               架构之美随笔二------企业级应用架构第1张

  第四章 记忆存留

  功能和约束这两点共同影响了系统的架构,它必须做什么?它必须在什么限制条件下工作?这两点也确定了问题空间。通过解决这些重要问题,在要求的行为和限制条件之间进行探索,我们创造并考察解决方案空间。如果对个项限制条件的解决方案形成了一致的整体,我们就可能创造出一个优雅的、美丽的解决方案。

  当我们研究每一个架构关注点时,要记住它们是研究整个系统的不同方式。例如,我们使用模块化的架构来支持不同的部署场景。同时,每个模块又是按分层架构来创建的。它们是正交的、相互穿插的考虑。每个模块都按照相同的方式来分层,每个层都可以在所有模块中找到。

  第五章 面向资源的架构:在web中

  在大家的概念中,web是以文档为中心的。具体来说,当我们想到web时,就会想到在web浏览器中看到一些文档。但正真的神奇之处却在于公开可获得的信息之间的链接、这些链接所代表的意义,以及我们能够方便地通过创建新窗口来访问链接的内容。没有起点,也看不到终点。只要我们知道要找的是什么,我们通常就能找到它。面向资源的架构的标识是向命名的资源发起逻辑请求的过程。这些请求由某种引擎解释,转成该资源的物理表现形式(如HTML页面、XML格式、JSON对象等)。当组织机构摆脱了数据寻址的麻烦后,就可以得到一些好处,除了可以让后台系统缓存结果之外,还可以通过谨慎的方式迁移一些新技术。

  第六章 数据增长:Facebook平台的架构

  本章向读者展示Facebook以一种受控的方式向外界开放数据的过程,跟随数据演进的每一步架构选择,以及调和数据开放与渗透在社会关系系统中独特的隐私需求的过程。它包括:促进这些类型的集成、将数据功能从内部栈调用移到外部可见的Web服务上、授权访问这个Web服务,注意保持这个社会关系系统的隐私性、创建一种数据查询语言,减轻这个web服务的新客户端的负担、创建一种数据驱动的标记语言,将应用的显示集成回Facebook,同时也支持使用其他方式不能访问的数据、创建一些技术弥补Facebook体验与外部应用体验之间的差异。

  用户会话、身份认证、Web服务和各种处理应用逻辑的方式等是Web上所有这些类型平台的主题。Web应用,即使不提供也不使用任何数据平台,基本上仍然是由它们内部的数据来驱动的。虽然我们将关注重点完全放在那些使用facebook的社会关系数据平台的应用的潜力金额约束上,但像这样的新型数据服务不一定局限于社会关系信息。随着客户贡献和使用的信息越来越多,这些信息在许多容器站点上都将变得很有用。

免责声明:文章转载自《架构之美随笔二------企业级应用架构》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇工作问题解决Libgdx Pixmap 的使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

业务中台总体架构介绍与交易业务中台核心设计<转载>

转载:原文来自于https://www.shushangyun.com/article-3752.html 架构总原则: 大中台+小前台的架构思路 业务中台采用领域驱动设计(DDD),在其上构建业务能力SAAS,持续不断进行迭代演进。 平台化定位,进行了业务隔离设计,方便一套系统支撑不同玩法的业务类型和便于定制化扩展。 前后端分离,通过服务接入层进行路由适...

饿了么技术往事

小结: 1、从技术骨干再到技术团队负责人这一转变过程中,很容易被忽略的就是团队的人员结构。 2、领域职责没有收口,带来很多一致性问题。 领域边界的分歧 3、 Leader的个人能力,决定了他(她)是这个团队的地基还是天花板。 4、 业务领域拆分、基础设施和业务系统分别建设后,给业务快速发展解绑了。但是包括稳定性在内的一系列挑战依然需要面对:   基础设施...

asp.net core系列 31 EF管理数据库架构--必备知识 反向工程

一.   反向工程   反向工程是基于数据库架构,生成的实体类和DbContext类代码的过程,对于Visual Studio开发,建议使用PMC。对于其他开发环境,请选择.NET Core CLI工具(跨平台)。     (1) 在程序包管理器控制台(PMC)工具中使用命令Scaffold-DbContext 来进行反向工程。     (2) 在.NET...

基于Locust、Tsung的百万并发秒杀压测案例[转]

编者按:高可用架构分享及传播在架构领域具有典型意义的文章,本文是 3 月 27 日数人云运维负责人庞铮在北京“百万并发”线下活动中的分享记录。   不久前,数人云联合清华大学交叉信息研究院 OCP 实验室通过 10 台 OCP 服务器成功承载了百万并发 HTTP 请求。 此次实验设立的目标是在物理资源最小值的情况下完成 100 万并发处理,通过此次实验,...

云时代架构读后感四

原文地址: https://mp.weixin.qq.com/s?__biz=MzAwNTQ4MTQ4NQ==&mid=2453562294&idx=1&sn=45d3ab6fb0f1f4e14d22606fb562bbda&chksm=8cd136d4bba6bfc28fcaeee41c08e4510a7742471f42...

Lakehouse 架构解析与云上实践

​简介:本文整理自 DataFunCon 2021大会上,阿里云数据湖构建云产品研发陈鑫伟的分享,主要介绍了 Lakehouse 的架构解析与云上实践。 作者简介:陈鑫伟(花名熙康),阿里云开源大数据-数据湖构建云产品研发内容框架 Lakehouse 概念与特性 Lakehouse 架构与实现 云上 Lakehouse 架构与实践 案例分享及未来展望...