经验分享:资深架构师教你什么是 *** 应用架构?

访客3年前黑客文章622

导读:本文作者基于其公司 (StoryBlock) 的实际业务架构向我们分享了一节活跃具体的 *** 架构入门课,固然作者的预期阅读工具是前端开拓人员,可是也很是适合产物司理阅读和进修,尤其是已经有必然事情履历的产物司理,但愿对各人有用。

履历分享:资深架构师教你什么是网络应用架构?

01 从一个场景开始

履历分享:资深架构师教你什么是网络应用架构?

以上的架构图是对 Storyblocks 业务架构的一个很好的归纳综合。对付那些相对缺乏履历的 web 开拓者,或者你会以为这个架构有些巨大。不要紧,在讲授相关组件的详细业务细节之前,我们先举个例子,帮你更容易地领略 Storyblocks 的业务架构。

先从一个场景开始:用户用谷歌搜索 「瑰丽的浓雾和林间的阳光」 。首个功效正好出自 Storyblocks:一个知名的图片和矢量图资源网站,用户点击该条功效,欣赏器重定向到该图片的地址的详情页面。

这个场景背后,用户欣赏器向 DNS 处事器发送请求,查询 Storyblocks 的域名信息,然后发送会见请求。会见请求首先颠末负载平衡器,负载平衡器会从十多台运行网站处事的 *** 处事器选择任意一台,将请求发送到这台处事器举办处理惩罚, *** 处事器先从缓存处事器查询图片的详情信息,然后从数据库获取图片的其他相关信息。

我们留意到这张图片的色彩设置信息还没被计较出来,于是处事器将一个新的色彩设置任务推送到任务行列,我们的任务行列处事器将异步地处理惩罚图片的色彩设置信息计较,一旦计较完成,便将设置信息更新到数据库中。

下一步,处事器将图片标题作为要害词,向全文检索处事发送查询请求以寻找相似图片。此时用户登入他的 Storyblocks 账户,相应地,处事器从账户处事中获取用户账户信息。

接下来,我们将这个页面欣赏事件加载到 data firehose(AWS 推出的流数据装载处事) 以记录到云存储系统,并最终存储到数据客栈,便于阐明师阐明利用并辅佐解答业务问题。

处事端将视图泛起为为 HTML 页面并经过负载平衡器,返回用户的欣赏器客户端。这个页面同时包括存储在云存储系统的 Javascript 和 CSS 代码文件,云处事器直接毗连到 CDN 集群,内容也经过 CDN 分发,用户欣赏器会见 CDN 集群并获取内容。

最终,欣赏器渲染页面利用户可以欣赏阅读。

接下来,我将带你遍历每个组件,并做扼要说明和先容,辅佐你形成一个相瞄精确的观念模子,以便于领略 *** 架构和组件间的交互。我仍将遵循已经分享的文章中给出的一些实践发起,这些发起基于我在 Stroyblocks 的业务履历,具有必然参考代价。

02 *** 架构诸组件 1. DNS 处事

履历分享:资深架构师教你什么是网络应用架构?

DNS (Domain Name System)代表 「域名系统」,这是实现互联网彼此毗连的焦点技能。DNS提供从域名 (譬喻 google.com) 到 IP 地点 (85.129.83.120) 的更底层的键值对查询处事,事实上,计较机基于网站的 IP 地点路由到符合的处事器。用 *** 号码比喻的话:域名和 IP 地点的干系,雷同于接洽人姓名和号码的干系。

正如你需要通过 *** 簿来查询特定接洽人的 *** 号码,你同样需要通过 DNS 来查询指定域名的 IP 地点,所以你完全可以把 DNS 领略为互联网的 *** 号码簿。

我们今后会深入先容关于 DNS 的具体道理,此刻进入下一个话题。

2. 负载平衡

履历分享:资深架构师教你什么是网络应用架构?

在深入先容负载平衡之前,我们需要先行表明应用架构的程度拓展和垂直拓展。

你必定会好奇这两个观念的寄义和区别:简朴来说,程度拓展是指你向资源池增加更多呆板设备,而垂直拓展则意味着增加更多算力资源(CPU,内存)到现有呆板设备。对付 Web 开拓,程度拓展经常是更好的选择。

究竟,所有事物都大概间断,处事器有时瓦解, *** 会降速,甚至整个数据中心也会偶然断线。假如要防备堕落,除了保持简朴,我们别无选择。利用处事器集群可以帮你有效应对突发环境,加强业务的结实性和容错性,确保应用一连不变地运行。

其次,程度拓展答允你将后端处事 ( *** 处事器,数据库,应用处事) 的差异组件分派在差异处事器,借此你可以高效地挪用后端处事的差异组件。

最后,垂直拓展很容易碰着局限瓶颈,谷歌的搜索处事平台是一个相当典范的案例,这个场景也同时合用于 Storyblocks 这样的中小型公司,举例来说,我们在任意时刻都运行着 150 到 400 个 AWS EC2 实例,假如要通过垂直拓展模式提供同等算力,很难想象我们需要利用何种级别和局限的计较机设备(预计得利用超算了)。

相关文章

数字化时代的B2B销售(1):大客户管理

数字化时代的B2B销售(1):大客户管理

在B2B销售中,大客户打点是看似容易,但其实是最恍惚和难落地的一块。本文作者依据事情中项目实践的详细思考,先容了大客户打点的五要素并依次举办了梳理阐明,供各人一同参考和进修。 今朝,数字化转型在各行...

指导设计师与开发人员合作的5项原则

指导设计师与开发人员合作的5项原则

类型性的指南在指导设计与开拓的交代时很容易遵循与修改,可是这些详细的操纵指南是否能跟得上将来新东西的更迭? 人们都喜欢步调型的解说内容。我作为设计刊物的编辑,常常接见到很多雷同于“10步完美与开拓人...

A站硬核了,那UP主呢?

A站硬核了,那UP主呢?

编辑导读:A站最近大手笔地买入番剧,赢得了浩瀚ACG喜好者的好评。在8月2号A站举行的2020年UP主晤面会上,A站公布了将站内签约UP的80%的直播打赏分给UP主,代表着对内容创作者的重视。本文将从...

第三方支付企业实现高速成长 | 2021行业发展去向何方?

第三方支付企业实现高速成长 | 2021行业发展去向何方?

导语:陈诉主要分成第三方付出行业成长变迁盘货、第三方付出行业成长趋势展望以及典范企业乐成转型案例三个章节。 跟着财富互联网的成熟,我国的第三方付出行业也开始逐渐进入4.0时代,付出机构在整个贸易社会运...

以数据为引导,构建业务模型

以数据为引导,构建业务模型

编辑导读:对付一款互联网产物,它的根本就是其业务模子。如何构建业务模子、如何向着正确的偏向构建业务模子是产物司理在产物迭代进程中最具挑战性的事情。本文作者从自身事情实践出发,团结相关理论分享了构建业务...

如何正确构建和使用产品知识库?

如何正确构建和使用产品知识库?

产物常识库的代价不在于文章数量的几多,所以不要决心追求更新频率和更新数量。可以或许运用常识库去办理实际事情中碰着的问题,这才是其真正的代价。 1. 什么是产物常识库 产物常识库是将本身平时看到或用到...