OpenResty Edge 中 Gateway Config 的版本控制和发布管理
本教程将演示如何在 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 管理的网关节点服务器。
运行。
我们确实得到了 Hello world 的响应体。
回到发布页面,我们可以在这个表格中浏览所有的发布历史。
在这里我们可以看到每个版本的作者是谁。
还有什么时间发布的。
还可以查看操作类型,它可以是“发布”或“回滚”。
发布类型可以是 Normal,也可以是 Staging 。
我们还可以在这里展开每个历史版本的变更细节。
它仍然有文字说明。
编辑页面规则
让我们稍微编辑一下页面规则。回到页面规则页面。
编辑这个规则。
让我们把响应的主体改为 “Happy hacking!”
保存。
现在又有了一个新的变更。
发布改动
再来一次新的配置发布。
再检查一下变更的细节。
它显示我们用 “Happy hacking!” 替换了 “Hello world” 的信息。
让我们来发布。
这次我们添加一个评论 “Say happy hacking”。
发布。
一个新的版本已推送。
发布历史也更新了。
测试改动
让我们再次在终端上发送一个测试请求。
curl http://test-edge.com/
运行。
响应体确实被改成 “Happy hacking” 了。
还原配置版本
接下来,比如说,我们想还原最新的配置版本。
只需点击这个“还原此版本”的按钮。
确认还原。
发布还原现在已经推送到所有的网关服务器。
现在你看到最新的操作日志的类型是“回滚”。
测试版本还原
我们在终端上再测试一下。
curl http://test-edge.com/
运行。
确实变回了“Hello world”。
我们也可以选择回滚到一个更老的版本。
比如,我们这次想要回滚到第二个版本。
我们可以直接点击这个“回滚到这个版本”的按钮。欢迎你自己尝试一下。
这就是我今天想讲的内容。
关于 OpenResty Edge
OpenResty Edge 是一款专为微服务和分布式流量架构设计的全能型网关软件,由我们自主研发。它集流量管理、私有 CDN 构建、API 网关、安全防护等功能于一体,帮助您轻松构建、管理和保护现代应用程序。OpenResty Edge 拥有业界领先的性能和可扩展性,能够满足高并发、高负载场景下的苛刻需求。它支持调度 K8s 等容器应用流量,并可管理海量域名,轻松满足大型网站和复杂应用的需求。
如果你喜欢这个教程,请订阅这个博客网站和我们的 YouTube 频道 或 B 站频道。谢谢!
关于作者
章亦春是开源 OpenResty® 项目创始人兼 OpenResty Inc. 公司 CEO 和创始人。
章亦春(Github ID: agentzh),生于中国江苏,现定居美国湾区。他是中国早期开源技术和文化的倡导者和领军人物,曾供职于多家国际知名的高科技企业,如 Cloudflare、雅虎、阿里巴巴, 是 “边缘计算“、”动态追踪 “和 “机器编程 “的先驱,拥有超过 22 年的编程及 16 年的开源经验。作为拥有超过 4000 万全球域名用户的开源项目的领导者。他基于其 OpenResty® 开源项目打造的高科技企业 OpenResty Inc. 位于美国硅谷中心。其主打的两个产品 OpenResty XRay(利用动态追踪技术的非侵入式的故障剖析和排除工具)和 OpenResty Edge(最适合微服务和分布式流量的全能型网关软件),广受全球众多上市及大型企业青睐。在 OpenResty 以外,章亦春为多个开源项目贡献了累计超过百万行代码,其中包括,Linux 内核、Nginx、LuaJIT、GDB、SystemTap、LLVM、Perl 等,并编写过 60 多个开源软件库。
关注我们
如果您喜欢本文,欢迎关注我们 OpenResty Inc. 公司的博客网站 。也欢迎扫码关注我们的微信公众号:
翻译
我们提供了英文版原文和中译版(本文) 。我们也欢迎读者提供其他语言的翻译版本,只要是全文翻译不带省略,我们都将会考虑采用,非常感谢!