HTTP应用的版本和部署配置更改(测试版)

image7-9.png

我们今天隆重宣布有关一个HTTP应用程序的封测。这是对HTTP流量进行安全测试和部署更改的新方式。HTTP应用程序引入了配置版本控制,以及控制何时在Cloudflare的全球边缘网络上对HTTP流量进行更改的能力。寻求更大控制权的企业客户应联系他们的客户成功经理以获得访问权。

管理配置时遇到的问题

自Cloudflare成立之初,网站和网络应用的管理一直通过我们所说的"区域"来完成,这源自于DNS区域的概念。虽然这种模式多年来为客户提供了很好的服务,但也确实在管理边缘配置方面造成了困难,即:

1.客户需手动设置暂存环境。

2.生产和暂存之间的配置存在偏移风险。

在软件开发过程中,您想在一个安全的环境中测试变化,以便在进入生产或影响实时流量之前对其进行验证。在很多常见的软件开发生命周期中,这意味着将更改部署到暂存或预生产环境中进行测试和验证。现在,客户在Cloudflare上执行此操作的最常见方式是使用由这些区域的主机名表示的两个区域,例如:一个用于暂存,名为staging.example.com,一个用于生产,名为example.com。这样通过更改隔离解决了核心问题。在暂存区的错误不会影响生产流量。

然而,为了将已在暂存区成功验证的变更应用到生产中,客户必须手动复制这些变更—或通过使用Cloudflare的Terraform Provider创建自动化处理程序。对很多客户来说,需要执行一个手动的“变更请求”过程。在此过程中,需要将所做的变更记录在工单上。然后,会有人(通常是不同的人)收集工单,并必须根据人工提供的指示准确地复制相同变更。这个过程很容易出错:其中的每处错误都可能会导致中断,具体取决于所涉及的变更。此外,暂存配置和生产配置之间的配置偏差可能会导致更大的复杂性。

我们希望客户能够在Cloudflare上安全可靠地管理其服务。为了解决上述问题,我们发布了相关HTTP应用程序和路由规则。

HTTP应用程序

HTTP应用程序是一种根据使用情况(而不是按主机名)管理边缘配置的方式。无论是处理营销网站配置,还是处理内部应用程序,每个HTTP应用程序都有目的。所有HTTP应用程序均由各个版本的配置组成,每个版本代表着管理流量的设置快照—页面规则、防火墙规则、缓存设置等。HTTP应用程序内部的每个版本的配置都与其他版本相独立,但当创建新版本时,其将作为之前版本的副本进行初始化。

路由规则

与区域不同,HTTP应用程序的每个版本都与任何特定的主机名相独立。那么,如果版本不像区域那样与主机名绑定,那么您如何确定哪个版本的HTTP应用程序会影响一组特定的流量呢?答案是路由规则。通过路由规则,您可确定适用于流量的HTTP应用程序的版本,也就是主机名。路由规则由Cloudflare的规则集引擎提供支持,依靠使用条件性的“if then”规则,将Cloudflare账户中控制的主机名映射到配置版本中。例如,如果请求的主机名与“www.example.com”相匹配,那么就应用第2版的营销HTTP应用程序。当此规则在边缘执行时,边缘将不应用www.example.com的常规区域配置,而是使用第2版HTTP应用程序中定义的配置。

路由规则支持两种规则—暂存规则和生产规则。如上所述,两者均采用主机名列表,但在创建暂存规则时,我们会额外使用一个过滤器,以便仅在流量发送到我们边缘的特定IP时执行该规则。这意味着您可在客户不受影响的情况下,将流量发送到暂存IP处的www.example.com,以便安全地测试更改。更好的是,一旦您通过创建生产路由规则验证了您的更改,完全相同的配置将应用于您所有客户的生产。

说的够多了—让我们来看看实际效果吧!

使用HTTP应用程序安全地测试和部署更改

在这次演示中,我将扮演一位现有客户的角色。我有一个为客户提供服务的现有区域,想做出一些转换规则的更改,以便重写我的资产位置。然而,我并不擅长使用regex,如果犯错,很可能会破坏我所有客户的网站!我们将使用HTTP应用程序和路由规则来制定、测试和推出更改,而不是直接在区域中做出更改。

首先,我将登录到Cloudflare仪表板。在选择账户后,侧栏中将出现可用的HTTP应用程序。做出选择后,便可以创建第一个HTTP应用程序。

image9-2.png

显示HTTP应用程序的空白状态页面的Cloudflare仪表板

要创建我的第一个HTTP应用程序,我需为其起一个名字,并选择一个预先存在的区域,在本例中为example.com。Cloudflare将使用该区域对HTTP应用程序第一个版本的配置进行初始化。通过在该区域中复制现有设置,我便有了一个可使用的安全副本,且无需手动重建配置。

image4-26.png

显示将创建名为“Example Application”的HTTP应用程序并从example.com进行初始化的“创建应用程序”屏幕。

选择创建后,我便有了第一个HTTP应用程序!现在,第一个版本正在创建之中。在幕后,Cloudflare将采用example.com的现有配置,并将其复制到该HTTP应用程序的第1版。一旦成功复制,我就可开始对配置进行编辑。

image6-15.png

Example Application的版本列表,显示正在创建版本1。

我可对该版本进行编辑,就像对任何区域进行编辑一样。然而,还是有两个重要区别。第一:我现在所做的任何更改都不会影响在Cloudflare边缘的任何实时流量,因为我们还没有创建任何路由规则将流量发送到这个版本的配置。第二:我们不允许通过HTTP应用程序控制与一个区域相关的所有内容,即:DNS记录、SSL证书、Spectrum或负载平衡。

image8-8.png

版本1的转换规则,显示尚未创建任何规则。

在“规则”部分的转换规则下,我创建了一个新规则,将资产的路径重写到正确位置。对于任何指向example.com/assets/*的请求,我们将路径重写为example.com/internal/files/assets/*。

image13.png

为第1版创建一个名为“重写资产”的转换规则。该规则将以“/assets/*”开始的请求的路径替换为“internal/files/assets/*”。

image8-10.png

第1版的转换规则显示已创建了一个名为“重写资产”的新规则。

就这点,我已做出了修改,但现在想测试一下。为此,我可以离开版本编辑部分,前往该HTTP应用程序的路由规则。在这里,我可以创建规则,使现有流量通过这个版本的配置进行路由。

image12-3.png

Example Application的路由规则的空列表。

我将创建一个暂存规则,因为我想成为唯一一个测试这些变化而不影响任何客户的人。请注意,当创建暂存规则时,可用于测试该版本的IP将在规则创建屏幕中显示。

image5-15.png

创建暂存路由规则,该规则将在请求匹配example.com并且边缘IP为192.168.1.1或192.168.2.2时匹配,并将应用版本1的配置

创建规则后,我可对计算机进行配置,将请求发送至example.com的IP。Rackspace有一个全面的指南,介绍如何更改本地机器的主机文件来做到这一点。现在,当我访问example.com时,系统将执行新的转换规则,但对于访问该网站的其他所有人来说,没有任何变化。

image10-3.png

Example Application的路由规则,显示已创建一个暂存规则。

一旦我确信更改有效,就可以创建一个生产路由规则,将这些修改应用于发往example.com的所有流量—这样工作就完成了!

image3-30.png

路由规则创建屏幕,显示生产规则的创建,该规则将在请求匹配example.com时应用版本1

更新后,我的网站的资产路径将被重写,用于所有对example.com的请求。

image1-61.png

Example Application的路由规则,显示版本1的暂存和生产规则。

下一步是什么?当我准备做另一组修改时,可转至HTTP应用程序,复制第1版来创建第2版。最初,第2版将与第1版的配置完全匹配,但因其没有匹配的路由规则,而不会应用于任何流量。

image11-3.png

Example Application的版本列表,显示版本1应用于暂存和生产,版本2准备好进行编辑,但尚未在任何地方使用。

我现在可安全地编辑第2版,如同之前编辑第1版一样。这次我想对防火墙规则做一些更改,这样就可防止一些潜在的恶意流量访问我的网站。在第2版中做出的更改不会修改边缘处的任何流量,直到我更新暂存路由规则,才能使用第2版。这使我能够放心地进行修改,然后安全地进行测试。

image2-46.png

Example Application的路由规则列表,显示版本2用于暂存,而版本1仍用于生产。

在验证这组新的更改之后,我可以通过更新生产的路由规则来使用第2版,将第2版推送给所有的流量。对于每一个后续的更改可应用同一过程。

HTTP应用程序现已进入封闭测试阶段

借助HTTP应用程序和路由规则的力量,客户现在可更好地控制配置更改的方式和时间。这消除了您做出错误更改可能破坏网站的顾虑。为企业客户提供的封闭测试版可使用这一功能,但如果您感兴趣,请联系您的Cloudflare账户团队,了解如何获得访问权限!

我们是设计师、工程师、梦想者,是您扬帆出海的私人顾问专家


相关内容:
[亚马逊开店深圳办事处地址在哪里]
[亚马逊开店深圳办事处地址在哪里]
亚马逊开店深圳办事处地址揭秘:一站式开店服务,轻松拥抱财富!各位亲爱的创业者们,你们好!今天要给大家带来一个好消息——亚马逊开店深圳办事处地址终于揭开了神秘面纱!在这里,
亚马逊开店卖翡翠怎么样?
亚马逊开店卖翡翠怎么样?
亚马逊开店卖翡翠:珠宝行业的巨大商机等你来挖掘!在炎热的夏季,一杯清凉的饮料、一本好书和一个精美的翡翠饰品,想必是很多人的首选。翡翠作为中国传统文化中的瑰宝之一,以其晶莹

TG客服:@SSjiejie — 官方频道:@SSwangluo

三生网络 © 2009-2023 超15年出海经验,跨境项目专家