本教程将演示如何在 OpenResty Edge 中管理配置版本和发布。我们的网络控制台所使用的关系数据库对版本控制有内置支持。

为应用程序创建页面规则

嵌入图片

像往常一样,让我们进入 OpenResty Edge 的管理网络控制台。这是我们控制台的一个示例部署。每个用户都可以有自己的部署。

我们仍然继续使用样本应用 test-edge.com 。

屏幕截图

进入应用程序。

屏幕截图

首先我们添加一个简单的页面规则来输出一个自定义的响应体。

屏幕截图

创建一个新的页面规则。

屏幕截图

我们没有为这个规则指定一个条件。所以它将无条件地触发。

屏幕截图

添加一个新的动作,用于直接返回一个响应体。

屏幕截图

我们也可以搜索“输出响应体”的动作。

屏幕截图

屏幕截图

选择它。

屏幕截图

这里我们指定了 “text/plain” 的 Content-Type 头。

屏幕截图

并指定 “Hello world” 作为响应体。

屏幕截图

我们需要确保这个规则总是在其他规则之前运行。所以我们把它标记为“永远在前”的规则。

屏幕截图

如果这个规则被匹配,我们就跳过任何后续规则。

屏幕截图

现在创建它。

屏幕截图

可以看到我们的页面规则已经在这里列出。

发布页面规则

屏幕截图

这个新页面规则还没有上线,它仍然是一个待定的更改。

我们将发布一个新的配置版本来将它推送出去。

屏幕截图

我们可以使用这个清除按钮来清除所有待定的更改。但现在我们不想清除它。

屏幕截图

在进行配置发布之前,我们可以检查一下待变更的细节。

只需点击这个按钮,就可以看到变更的差异。

屏幕截图

我们为这些变更提供了一个可读的文本描述。

屏幕截图

或者可以直接查看 JSON 格式的变更。

屏幕截图

现在可以进行新的发布了。

屏幕截图

你可以选择只向自己的 staging 网关节点发布。

屏幕截图

在这种情况下,这个配置版本将具有 Staging 类型。我们将在未来的视频教程中演示这一点。否则它将是 Normal 类型。

嵌入图片

在这里还可以添加一些说明或评论来描述该版本。当然这是可选的。

屏幕截图

点击发布按钮进行发布。

屏幕截图

现在已经完全同步了。

屏幕截图

现在,新的页面规则已经被推送到所有的网关集群和服务器。

我们的配置变化不需要服务器重载、重启或二进制升级。所以它是非常有效和可扩展的。

嵌入图片

测试

在终端上,我们可以向应用程序发送一个测试请求。

curl http://test-edge.com/

test-edge.com 域名已经解析到 OpenResty Edge 管理的网关节点服务器。

屏幕截图 1

运行。

屏幕截图 3

我们确实得到了 Hello world 的响应体。

回到发布页面,我们可以在这个表格中浏览所有的发布历史。

屏幕截图

在这里我们可以看到每个版本的作者是谁。

屏幕截图

还有什么时间发布的。

屏幕截图

还可以查看操作类型,它可以是“发布”或“回滚”。

屏幕截图

发布类型可以是 Normal,也可以是 Staging 。

屏幕截图

我们还可以在这里展开每个历史版本的变更细节。

屏幕截图

它仍然有文字说明。

屏幕截图

编辑页面规则

让我们稍微编辑一下页面规则。回到页面规则页面。

屏幕截图

编辑这个规则。

屏幕截图

让我们把响应的主体改为 “Happy hacking!”

屏幕截图

保存。

现在又有了一个新的变更。

发布改动

屏幕截图

再来一次新的配置发布。

屏幕截图

再检查一下变更的细节。

屏幕截图

它显示我们用 “Happy hacking!” 替换了 “Hello world” 的信息。

屏幕截图

让我们来发布。

屏幕截图

这次我们添加一个评论 “Say happy hacking”。

屏幕截图

发布。

屏幕截图

一个新的版本已推送。

屏幕截图

发布历史也更新了。

屏幕截图

测试改动

让我们再次在终端上发送一个测试请求。

curl http://test-edge.com/

屏幕截图 1

运行。

屏幕截图 2

响应体确实被改成 “Happy hacking” 了。

还原配置版本

接下来,比如说,我们想还原最新的配置版本。

屏幕截图

只需点击这个“还原此版本”的按钮。

屏幕截图

确认还原。

屏幕截图

发布还原现在已经推送到所有的网关服务器。

屏幕截图

现在你看到最新的操作日志的类型是“回滚”。

屏幕截图

测试版本还原

我们在终端上再测试一下。

curl http://test-edge.com/

屏幕截图 1

运行。

屏幕截图 2

确实变回了“Hello world”。

我们也可以选择回滚到一个更老的版本。

比如,我们这次想要回滚到第二个版本。

屏幕截图

我们可以直接点击这个“回滚到这个版本”的按钮。欢迎你自己尝试一下。

屏幕截图

这就是我今天想讲的内容。

屏幕截图

如果你喜欢这个教程,请订阅这个博客网站和我们的 YouTube 频道B 站频道。谢谢!

关于本文和关联视频

本文和相关联的视频都是完全由我们的 OpenResty Showman 产品从一个简单的剧本文件自动生成的。

关于作者

章亦春是开源 OpenResty® 项目创始人兼 OpenResty Inc. 公司 CEO 和创始人。

章亦春(Github ID: agentzh),生于中国江苏,现定居美国湾区。他是中国早期开源技术和文化的倡导者和领军人物,曾供职于多家国际知名的高科技企业,如 Cloudflare、雅虎、阿里巴巴, 是 “边缘计算“、”动态追踪 “和 “机器编程 “的先驱,拥有超过 22 年的编程及 16 年的开源经验。作为拥有超过 4000 万全球域名用户的开源项目的领导者。他基于其 OpenResty® 开源项目打造的高科技企业 OpenResty Inc. 位于美国硅谷中心。其主打的两个产品 OpenResty XRay(利用动态追踪技术的非侵入式的故障剖析和排除工具)和 OpenResty Edge(最适合微服务和分布式流量的全能型网关软件),广受全球众多上市及大型企业青睐。在 OpenResty 以外,章亦春为多个开源项目贡献了累计超过百万行代码,其中包括,Linux 内核、Nginx、LuaJITGDBSystemTapLLVM、Perl 等,并编写过 60 多个开源软件库。

关注我们

如果您喜欢本文,欢迎关注我们 OpenResty Inc. 公司的博客网站 。也欢迎扫码关注我们的微信公众号:

我们的微信公众号

翻译

我们提供了英文版原文和中译版(本文) 。我们也欢迎读者提供其他语言的翻译版本,只要是全文翻译不带省略,我们都将会考虑采用,非常感谢!