云计算模型 - 1. 概述

读了微软 Azure 总结的云计算设计模式系列文章,觉得很受启发,遂将这个系列翻译出来如下。

云计算模型

这些设计模式对于在云上构建高可用性,伸缩性,安全的应用程序很有用。
每个模式都描述了该模式试图解决的问题,在使用该模式时应考虑的问题,以及一个基于微软 Azure 云的例子。大多数的模式中包含了代码实例或代码片段来展示如何在 Azure 上部署使用这种模式。然而,大多数的模式同样适用于 Azure 以外的任何分布式系统。

在云端部署的挑战

指标 描述
可用性 可用性指的是系统正常工作的时间,通常通过测量服务正常工作的时间百分比来得到。它受系统故障,基础设施问题,恶意攻击,系统负载等方面的影响。云端应用通常为用户提供“服务等级协议”(SLA),因此应用必须尽可能高地保证其可用性。
数据管理 数据管理时云端应用的关键,它影响着应用的大多数质量属性。出于性能,伸缩性,可用性等多方面的考虑,数据通常会被存到多个区域的多台服务器上。而这带来一系列的挑战,诸如需要维护数据一致性,以及需要在多个不同区域间同步数据。
设计和实现 好的设计包含诸如组件设计和部署的一致性与内聚性,运维与开发的可维护性,组件与子系统的重用性。在设计和实现阶段的决策对整个应用的质量和云计算服务提供方的总花费有巨大的影响。
消息传递 云端应用的天然的分布属性使之需要一个消息传递设施来连接各个组件和服务。异步消息模式被广泛应用,它提供了很多好处,但也带来了很多挑战:消息到达顺序,缺失消息管理,幂等性等等。
管理与监控 云端应用运行在远程的数据中心,应用拥有者没有管理基础设施和操作系统的全部权限。这使得它比本地部署的应用更难管理和监控。应用必须暴露给管理员和运维人员足够的运行时信息来使其能够管理和监控系统,同时也应该支持在不中断或重新部署服务的情况下,改变商业需求和定制化服务。
性能和伸缩性 性能是在给定的时间范围内执行任何命令的响应能力的指标;伸缩性是指系统在不影响其性能的前提下,能够处理增加的负载,随时增加可用资源。在实际应用中,云端应用经常遇到变化非常大的负载和负载峰值。提前去预测这些,尤其是在多租户的场景下,几乎是不可能的。取而代之,我们应该让我们的应用具备无限按需伸缩的能力。伸缩性不应单单关注于计算实例(虚拟机),也包括数据存储,消息传递等很多方面。
故障恢复能力 故障恢复能力指的是系统优雅地从故障中恢复的能力。在云端部署的应用,通常是以多租户的模式,使用共享平台的服务,与其他租户竞争带宽和资源,通过互联网通信。并且他们运行在联合的多种硬件层之上。这意味着持续性的和偶发性的异常发生的可能性都会增加。检测到故障,并且高效地从故障中恢复,对于提高系统的故障恢复能力来说,是必须的。
安全 安全性指的是系统阻止恶意攻击或将应用使用于产品设计以外的场景,同时阻止信息泄露的能力。云端应用通常会接入互联网,暴露给大众,并且可能会为非受信任的用户提供服务。应用必须以一种可靠的方式来设计和部署,来防止恶意攻击,并对用户进行权限控制,保护隐私数据。

目录

模式 概述
信使 创建辅助服务来发送有关消费者服务或应用信息的网络请求
反堕落层 在现代应用和既存系统之间实现一个适配层。
前端的后端 为特定的前端应用或接口创建单独的后端服务供其消费。
隔离舱 将应用中的所有元素隔离开放到池中,即便其中某个元素失败了,其他的能够继续正常工作。
缓存 按需将数据从数据仓库载入到缓存。
断路器 处理远程服务或资源导致的不能立即修复的故障。
读写分离(CQRS) 通过使读数据的操作和更新数据的操作使用不同的接口达到读写分离。
补偿性事物 撤销一系列任务构成的工作,来实现一个最终一致性的操作。
竞争消费者 激活多个并发的消费者来处理从同一频道接收的消息。
计算资源合并 将多个任务或操作合并到一个计算单元。
事件溯源 使用一个只增的数据仓库来记录某一域中对数据进行的所有操作。
外部配置存储 将配置信息从应用的部署包中抽离出来放到一个统一的中心化管理的存储中心。
联合认证 将认证服务托管给外部认证服务提供方。
看门者模式 通过使用一个专用的主机实例作为客户端和应用间的代理来保护应用和服务。通过该代理来检验,净化请求,并传递请求来达到此目的。
网管合并 使用网管来将多个独立的请求合并成一个请求。
网关压力卸载模式 将一个共享的或专有的服务交给网关执行。
基于网关的路由 通过一个网管将请求路由到多个不同的服务。
健康端点监控 为应用实现功能性检查服务,使外部攻击能够通过这个暴露给外部的服务进行定期检查。
索引表 为数据仓库中被频繁查询的字段建立索引。
指挥者选举 为一系列分布式部署的相互合作的任务实例选举一个指挥者来负责管理其他实例。
物化视图 当数据格式不符合查询所需的格式时,为一个或几个数据仓库中的数据生成预处理的视图。
P管道与过滤器模式 将一个处理复杂流程的任务分解成一系列能够重用的独立的元素。
带优先级的队列 为发给服务的请求标示出优先级,从而使高优先级的请求能够在接受到后比低优先级的任务更快的处理。
基于队列的负载均衡 使用队列来充当任务和它所调用的服务之间的缓冲区,来平滑地处理突发的高负载。
重试 当应用在连接服务或网络资源过程中遇到错误时,通过显式地重试之前失败的操作来使它具备处理预期的,临时性的错误的能力。
调度代理监管模式 在一系列分布的服务和远程资源间调度一些操作。
分片 将数据存储水平分割存到多个分区或分片中。
挎斗模式 将应用的部分组件部署到单独的进程或容器中来进行隔离和封装。
静态内容托管 将静态内容部署到云端的存储服务将内容直接提供给客户端。
扼杀者模式 渐进式地将既存系统中的部分功能一步步用新应用或服务替换。
限流 控制某一应用实例,租户或整个服务对资源的消耗量。
代客密钥 使用一个标识或密钥来为客户端提供指定资源或服务的受限制的直接连接。

原文链接在 这里
翻译好累啊

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,723评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,485评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,998评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,323评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,355评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,079评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,389评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,019评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,519评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,971评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,100评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,738评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,293评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,289评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,517评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,547评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,834评论 2 345

推荐阅读更多精彩内容