ARTICLE / 阮一峰

2024最流行的网站架构----边缘平台架构:概念与产品

2024年03月26日 08:26 · 来自 阮一峰

阅读原文 → 收藏
>p<互联网开发的核心是什么?>/p< >p<答案可能就是网站架构。你要选择一个合适的架构,用来组织代码,然后在服务器跑起来。>/p< >p<今天,我想给大家介绍,眼下最流行的一种网站架构。它非常合理,效果极佳,而且借助云服务商提供的工具,架设非常容易。>/p< >p<它就是本文的主题---->strong<边缘平台架构>/strong<(edge platform)。>/p< >p<大家可能经常听到"edge"(边缘)这个词,但是未必了解它的意思。我尽量用通俗的语言,解释什么是边缘,什么是边缘平台架构,它的优势在哪里,以及怎样利用边缘平台,架设自己的网站。>/p< >p<>img src="https://cdn.beekka.com/blogimg/asset/202403/bg2024031307.webp" alt="" title="" /<>/p< >h2<一、从"服务器-客户端"谈起>/h2< >p<为了理解边缘平台,需要从最基本、最传统的"服务器-客户端"(server-client)架构讲起。>/p< >p<在"服务器-客户端"的架构下,存在一个中心服务器,所有客户端都向它发出请求。>/p< >p<>img src="https://cdn.beekka.com/blogimg/asset/202403/bg2024031214.webp" alt="" title="" /<>/p< >p<这种架构的优点是简单易行,缺点是>strong<中心服务器是一个单点依赖>/strong<。一旦访问量大,可能会有性能问题,还可能中断服务。>/p< >p<而且,中心服务器的物理位置是固定不变的,导致用户的访问速度与地理距离有关。同样条件下,离服务器越近,访问速度越快;离服务器越远,访问速度越慢。>/p< >h2<二、CDN 的出现>/h2< >p<为了减轻中心服务器的负担,更是为了拉近与用户的地理距离,CDN 架构就出现了。>/p< >p<CDN 的想法很简单,就是在各地的机房中设置大量的节点服务器,把每次访问都不变的静态资源文件,复制到这些服务器上面。>/p< >p<>img src="https://cdn.beekka.com/blogimg/asset/202403/bg2024031215.webp" alt="" title="" /<>/p< >p<用户访问时,涉及静态文件的请求就不会发到中心服务器,而是通过 DNS 系统,发到地理位置最靠近的节点服务器,由后者负责响应用户。>/p< >p<这样的设计,既减少了发往中心服务器的请求,也减少了用户与静态文件之间的物理距离,从而加快了访问速度。>/p< >h2<三、边缘的概念>/h2< >p<大家可能注意到了,CDN 架构中存在两种不同作用的服务器。>/p< >p<一种是中心服务器,负责数据计算和存储;另一种是节点服务器,负责发送静态资源文件。>/p< >p<由于节点服务器是在架构的外围,为了跟中心服务器相对应,>strong<人们就把起到外围辅助作用的节点服务器,称为"边缘服务器">/strong<(简称边缘)。>/p< >p<>img src="https://cdn.beekka.com/blogimg/asset/202403/bg2024031308.webp" alt="" title="" /<>/p< >p<就像上图中,中心服务器在云端(cloud),它的外围是边缘服务器(edge),然后才是用户(user)。>/p< >p<边缘服务器有一个重要特征,它是距离用户最近的服务器。人们有时候提到"边缘",就特指最靠近用户的那组节点服务器。>/p< >h2<四、边缘平台架构>/h2< >p<CDN 架构只是把静态文件放到了边缘服务器,数据计算和数据存储还是在中心服务器,对于用户来说,这部分可能还是很慢。>/p< >p<很自然地,大家就想到了,能不能把数据计算、数据存储也放到边缘服务器呢?>/p< >p<答案当然是完全可以。只要把数据计算设计成不涉及状态的云函数,把数据存储限制在没有一致性要求的数据,它们就都可以放到边缘服务器。这就是>strong<边缘计算>/strong<和>strong<边缘存储>/strong<的由来。>/p< >p<这样的话,数据计算、数据存储、文件下载,都由距离用户最近的边缘服务器处理,网站的响应速度就会整体提升。>/p< >p<>strong<由于边缘服务器这时具备多种功能,实际上就升级成了边缘平台>/strong<,CDN 架构就变成了边缘平台架构。>/p< >p<在这种架构下,你的网站有许多个实例,分布在每一组边缘服务器上。用户访问的总是距离最近的那个实例。>/p< >p<注意,中心服务器这时还是存在的,只是它的工作主要变成了协调和同步边缘服务器,而不再是直接与客户端交互了,客户端只与最近距离的边缘服务器直接联系。>/p< >h2<五、国外的边缘平台>/h2< >p<国外很多新兴的云服务商,现在都主推边缘平台架构。>/p< >p<世界最大的 CDN 服务商 Cloudflare,早就不限于 CDN 服务了。它的边缘服务器除了存放静态文件,还可以进行云计算、数据库读写、图像处理等许多功能。>/p< >p<其他的云服务商 Vercel、Netlify、Netflix、Deno Deploy 提供的都是类似的服务。>/p< >p<国外的这些边缘平台,有一个最大的缺点,那就是服务器都在境外,基本没有中国大陆境内节点。>/p< >p<对于境内访问者,没有境内节点,就完全发挥不出边缘服务器响应速度快的优势。所以,如果你有境内的访问者,建议考虑使用国内的边缘平台。>/p< >h2<六、腾讯云边缘平台 EdgeOne>/h2< >p<根据官网,腾讯云的 >a href="https://cloud.tencent.com/act/pro/edgeone_techoday_promotion?from=22009"<EdgeOne>/a< 是"中国云服务商中首家提供安全加速一体化的边缘平台"。我自己也使用这个产品,对它比较熟悉。>/p< >p<下面,我就拿它举例,大家可以看看,真实的边缘平台是什么样的。>/p< >p<>img src="https://cdn.beekka.com/blogimg/asset/202403/bg2024031401.webp" alt="" title="" /<>/p< >p<作为边缘平台,需要满足三个条件。>/p< >p<>strong<首先,必须有全球分布的大量节点>/strong<。EdgeOne 基于腾讯云,目前全球节点有3200+,覆盖了100+的国家与地区。不管用户在哪个地方,都能找到就近的节点。>/p< >p<如果某个节点饱和或发生故障,也可以切换到其他节点,保证站点的可用性。>/p< >p<>strong<其次,必须有海量的带宽>/strong<,否则难以经受大访问量的冲击。EdgeOne 的总带宽达到 160Tbps+,足以抵抗大流量业务的突增。>/p< >p<>strong<再次,必须集成大量功能>/strong<,方便用户使用。EdgeOne 把腾讯云的能力,几乎都搬到了边缘服务器。具体来说,它集成了以下能力,有一些突出的技术亮点。>/p< >p<(1)全球的 CDN 加速。EdgeOne 是腾讯云的下一代 CDN,在底层对境内加速和境外加速分别作了适配,用户不再有感知。>/p< >p<(2)Web 应用防火墙。它不限制用户的 QPS(每秒请求数),提供智能 CC 防护,通过全平台流量分析,统计并识别正常业务和突增流程特征,制定动态适应策略。同时精准有效拦截 Web 漏洞威胁,抵御 SQL 注入、XSS 等多种攻击,保障站点健康可用。>/p< >p<(3)边缘函数。只需编写简单的函数,无需考虑服务器等基础设施,就可以在边缘节点上运行自己的代码。>/p< >p<(4)自定义安全策略。用户可以指定5条自定义拦截规则,实现个性化的管控需要。用户还可以实现基于黑名单及白名单的 IP 管控和区域封禁。>/p< >p<(5)DNS 解析服务。它的每个边缘节点上都预备域名解析能力,1个站点可以设置300个子域名。>/p< >p<(6)用户行为分析和日志记录。它会分析和监控异常流量,发现各种机器人爬虫,并提供详细的日志图表,以及各种访问者指标。>/p< >p<综上所述,>u<边缘平台实际上是一种 All in one 的产品,属于 CDN 的升级版,多种功能集于一身,并提供简单的使用接口,极大地方便了用户>/u<。>/p< >p<这里插一句,EdgeOne 的产品全称是"边缘安全加速平台",在边缘平台的产品基础上,特别突出了安全和加速两大特点,作为主要的功能卖点。>/p< >h2<七、边缘平台的应用案例>/h2< >p<读到这里,大家对边缘平台是什么产品,应该已经有一个大致的了解。>/p< >p<你可能还会有疑问,在真实的生产环境中,它的作用到底有多大?>/p< >p<下面是一些从 EdgeOne 官网摘录的真实案例,大家可以感受一下边缘平台对网站表现的巨大帮助。>/p< >p<>img src="https://cdn.beekka.com/blogimg/asset/202403/bg2024031402.webp" alt="" title="" /<>/p< >p<(1)游戏行业。某大型热门游戏用了边缘平台以后,请求耗时改善60%,同时成功防护了 DDoS 攻击,攻击的峰值流量达到 2.04Tbps。>/p< >p<(2)社交文娱行业。某短视频的头部平台用了边缘平台,降低20%卡顿率和50%播放失败率,在部分东南亚国家性能改善高达100%,同时全面过滤海量攻击流量,保证直播等业务正常运行。>/p< >p<(3)电商零售行业。在边缘平台上,电商平台完成了所有商户域名的便捷接入,还能自动颁发和更新免费 HTTPS 证书。>/p< >p<(4)金融行业。边缘平台大幅提高金融服务的访问性能,保证网银、手机银行,信用卡都获得了安全加速。>/p< >p<(5)全球办公。在全球协同办公场景下,边缘平台优化国内与海外办公系统连接时的访问速度,提高办公效率和访问体验。>/p< >p<总之,>u<只要你的网络服务,对访问速度和安全防护都有较高的要求,就可以考虑使用边缘平台>/u<。>/p< >p<尤其对于那些有出海需求的国内企业,既要全球加速,又要防御各类攻击,像 EdgeOne 这样的边缘平台应该是首选的网站架构。>/p< >h2<八、边缘平台动手试>/h2< >p<大家千万不要觉得,边缘平台是大企业的专用产品,个人和小企业其实也完全可以用上边缘平台。它的功能并不区分访问量的大小,都统一适用。>/p< >p<再说,看了这么长一篇介绍,你难道不想动手试试吗?只有亲自上手,才能真正学会。>/p< >p<EdgeOne 刚刚进行了产品更新,发布了基础版和个人版。下面,我就以它为例,演示一下如何上手边缘平台的两大核心功能----网站加速和安全防护。>/p< >p<>strong<(1)网站加速>/strong<。这跟 CDN 的操作是一样的,只需要一步操作,把域名交给边缘平台接管就可以了。>/p< >p<进入>a href="https://cloud.tencent.com/product/teo?from=22009"<EdgeOne 的主页>/a<,点击"立即使用"。>/p< >p<>img src="https://cdn.beekka.com/blogimg/asset/202403/bg2024031811.webp" alt="" title="" /<>/p< >p<它会提示你"添加站点",输入自己网站的域名即可。注意,该域名必须此时已经可以访问了。>/p< >p<>img src="https://cdn.beekka.com/blogimg/asset/202403/bg2024031812.webp" alt="" title="" /<>/p< >p<然后,系统会问你选择哪一种套餐,初学者选择"个人版"即可。>/p< >p<接着,它会要求你设置加速区域和 DNS 接入模式。>/p< >p<>img src="https://cdn.beekka.com/blogimg/asset/202403/bg2024031813.webp" alt="" title="" /<>/p< >p<加速区域就是哪些区域的边缘服务器将会生效,一共有三种可选----全球,中国大陆,中国大陆以外地区。>/p< >p<DNS 接入模式是最关键的部分,一般情况下,都是选择把域名的 DNS 服务器迁移到边缘平台。对于那些不方便迁移的用户,EdgeOne 还提供了另一种选择,将域名的 CNAME 记录指向 EdgeOne 即可。>/p< >p<然后就是最后一步,设置 DNS(或者 CNAME)的细节。>/p< >p<>img src="https://cdn.beekka.com/blogimg/asset/202403/bg2024031814.webp" alt="" title="" /<>/p< >p<一旦 DNS 设置完成,边缘平台就会接管所有发往该域名的请求,分配给最近的边缘服务器,加速就自动实现了。>/p< >p<>strong<(2)安全防护>/strong<。一旦边缘平台开始生效,就会检查所有请求,EdgeOne 会自动识别和过滤掉 DDoS 攻击和恶意请求。>/p< >p<这部分不需要用户设置,某些情况下,用户可能希望过滤掉具有指定特征的请求,那么就需要自定义拦截规则。>/p< >p<下图是设置某个服务的海外版,只接受海外用户访问,不接受来自中国大陆的请求。>/p< >p<>img src="https://cdn.beekka.com/blogimg/asset/202403/bg2024031914.webp" alt="" title="" /<>/p< >p<下图则是同时设置两个条件,只有来自 IP 地址>code<1.1.1.1>/code<的请求,才能访问指定路径(后台)。>/p< >p<>img src="https://cdn.beekka.com/blogimg/asset/202403/bg2024031915.webp" alt="" title="" /<>/p< >h2<九、总结>/h2< >p<从上一节的操作步骤,大家可以看到,虽然>u<边缘平台本身是一个复杂的产品,但是所有的复杂性都被封装了>/u<,用户的操作是非常简单的。>/p< >p<如果你希望自己的网站,对所有访问者都有良好的速度,能够应付瞬间的大流量,并且还有足够的服务器安全性,同时又不必支付高昂的费用,用多少付多少,那么 EdgeOne 这样的边缘平台架构就是你的最佳选择。>/p< >p<它把加速和防护赋予了每个开发者,让你的产品更安全、更易用、更开放,还节省成本。>/p< >p<EdgeOne 本次产品更新后,推出了力度很大的优惠,>strong<个人版第一年的费用不到4元/月>/strong<,为大家学习和试用创造了良好的条件。>/p< >p<大家可以扫描加入产品交流群了解产品更多动态,或者访问>a href="https://cloud.tencent.com/act/pro/edgeone_techoday_promotion?from=22009"<这个链接>/a<,以优惠的价格用上边缘平台。>/p< >p<>img src="https://cdn.beekka.com/blogimg/asset/202403/bg2024032501.webp" alt="" title="" /<>/p< >p<(完)>/p< >div style="color:#556677;line-height:160%;padding:0.3em 0.5em;border:1px solid #d3d3d3;margin:1em;background-color:#AAD2F0;-moz-border-radius: 10px;-webkit-border-radius:10px;border-radius: 10px;"<>h3<文档信息>/h3< >ul< >li<版权声明:自由转载-非商用-非衍生-保持署名(>a href="http://creativecommons.org/licenses/by-nc-nd/3.0/deed.zh"<创意共享3.0许可证>/a<)>/li< >li<发表日期: >abbr class="published" title="2024-03-26T08:26:51+08:00"<2024年3月26日>/abbr<>/li< >/ul<>/div<>div style="color:#556677;line-height:160%;padding:0.3em 0.5em;margin:1em;-moz-border-radius: 10px;-webkit-border-radius:10px;border-radius: 10px;"<>/div<