又拍云Open Talk:OpenResty最佳实践

  • 时间:
  • 浏览:0

8 月 31 日,由又拍云、OpenResty 社区主办的 OpenResty × Open Talk 全国巡回沙龙·成都站在言几又·成都凯德店顺利落幕,这是系列活动的第五站。OpenResty × Open Talk 全国巡回沙龙旨在

       8 月 31 日,由又拍云、OpenResty 社区主办的 OpenResty × Open Talk 全国巡回沙龙·成都站在言几又·成都凯德店顺利落幕,这是系列活动的第五站。OpenResty × Open Talk 全国巡回沙龙旨在促进 OpenResty 在技术圈的发展,增进 OpenResty 使用者的交流与学习。在成都站活动现场,五位嘉宾分享了买车人专业的观点和经验,让到场的开发者受益匪浅。

  成都站活动现场合影

  OpenResty × Open Talk 全国巡回沙龙成都站邀请了 OpenResty 软件基金会发起人温铭、王院生、又拍云系统开发高级工程师黄励博、原贝壳找房基础架构部工程师尹吉峰、奇安信工程师艾菲,分享了包括高性能 API 网关、云存储网关、高性能 Web 应用等 OpenResty 相关技术应用,为近百位现场观众和数千线上观众提供了一场技术盛宴。

  言几又·成都凯德店

  说起成都亲们 的第一反应肯定是天府之国、美食之都、火锅二巨头之一,总而言之吃就完事了!然而本次活动的一大亮点所以我在千丈口水中硬生生开出一片书香墨意,这名独具特色的活动场地——言几又·成都凯德店,为技术分享增添了一丝艺术气息,此处书成墙壁,纸建空间,字画风情,讲师们分享的内容化为有血有肉的实体,让每另另一一俩个 人到场者都被知识所包围。

  何如做 API 网关的选型、测试和持续集成

  OpenResty 软件基金会发起人温铭做了开场分享,他是开源微服务 API 网关 APISIX 作者,《OpenResty 从入门到实战》专栏作者,他以开源微服务 API 网关 APISIX 为例,完整篇 介绍了 API 网关的选型和持续集成实践。

  OpenResty 软件基金会发起人温铭

  APISIX 是另另一一俩个 云原生、高性能、可扩展的微服务 API 网关,基于 OpenResty 和 etcd 实现,和传统 API 网关相比,APISIX 增加了包括支持多云和混合云、无状况、随意扩容和缩容等在内的诸多功能,才能更为妥帖的满足企业个性需求的开发。

  温铭介绍了 API 网关的核心组件包括路由、插件、schema 和存储等,他通过对着俩个组件的合理取舍,使 APISIX 具有了所以独有的功能;测试方面,APISIX 遵循着测试驱动开发的原则,通过单元测试、代码风格测试和代码覆盖率的检测,使 APISIX 达到了超高性能;持续集成方面,APISIX 强依赖 GitHub 和 travis CI,以及 coveralls.io。

  温铭总结到, APISIX 项目在设计与实现过程中,面临着资源少的问题报告 ,有些 通过对现有组件的合理使用,APISIX 的选型、测试和 CI 都找到了“取巧”和自动化的方式,大大提升了项目完成的时延和项目的性能,GitHub 和 SaaS 能提供的,绝对从不买车人造轮子。

  又拍云基于 OpenResty 实现的云存储网关

  又拍云系统开发高级工程师黄励博,在又拍云主要负责私有容器平台、云存储、云外理相关的分发和开发工作,熟悉 Python/Lua/Go 等语言,在 Docker 容器方面拥有丰富的实践经验,在 ngx_lua 和 OpenResty 方面有着丰富的模块开发和维护经验。他在现场介绍了又拍云基于 OpenResty 实现的云存储网关,设计索引、存储、分块、负载均衡、流量控制等功能的实现与使用方式。

  又拍云系统开发高级工程师黄励博

  黄励博从数据拆分、路由配置、存储常用的增删查改和扩容俩个方面,完整篇 介绍了 OpenResty 在又拍云存储中的实际应用。

  黄励博讲到,又拍云存储是分布式存储,而分布式存储的优势为高可用、易扩展和易维护。而又拍数据的拆分是由 OpenResty 来进行的三次拆分,拆分后又将 OpenResty 作为路由层并详述了路由的配置规则。有些 介绍了又拍云存储系统中,以 OpenResty 的限制模块为基础开发的 token bucket 的方式,向亲们 完整篇 的分享又拍云存储体系。

  有点硬地,又拍云作为时延应用 OpenResty 的企业,正在不断为 OpenResty 社区输出开源能力,目前有些 开源了以下项目:

  [1] upyun/slardar (https://github.com/upyun/slardar)

  [2] upyun/lua-resty-checkups (https://github.com/upyun/lua-resty-checkups)

  [3] upyun/lua-resty-limit-rate (https://github.com/upyun/lua-resty-limit-rate)

  何如使用 OpenResty 搭建高性能 Web 应用

  原贝壳找房基础架构部工程师尹吉峰,多语言爱好者,偏向异步和函数式编程,酷爱原型搭建,先后在贝壳使用 OpenResty 搭建了 WebBeacon、图片外理、短连接服务等。他在现场介绍了何如使用 OpenResty 做内部框架写服务,与非 一种生活比较小众的用法。

  原贝壳找房基础架构部工程师尹吉峰

  尹吉峰认为过早优化是万恶之源,另另一一俩个 好的服务绝对全是优化出来的,架构决定了另另一一俩个 服务的基准。有所以 Web 服务实际上是不适合做水平伸缩的,有些 也要高性能。他介绍 Web 应用绝大多数全是 IO 密集型,通过异步编程、事件驱动的方式还可不都可不能否提高性能。

  尹吉峰提到,OpenResty 是 Nginx 和 Lua 的有机完美结合,Nginx 是一流的反向代理服务器,在一线的互联网公司有些 是另另一一俩个 标配,有些 在引入 OpenResty 风险很低;而 Lua 是小巧灵活的编程语言,支持 Coroutine,LuaJIT 性能强大,支持 FFI。完后 ,他完整篇 介绍了过去使用 OpenResty 构建高性能 Web 应用服务的实践。

  哪些你有些 我不知道的 OpenResty 特征

  奇安信服务端开发艾菲,网名河马大侠,《 OpenResty 最佳实践 》贡献者,前 OpenResty 软件基金会成员。2013 年加入奇虎 3500,擅长使用 OpenResty 完成各种网关和缓存行为。他在现场介绍了 OpenResty 中具有重要意义的有些模块、命令、API 和框架等。

  奇安信工程师艾菲

  艾菲首先介绍了 OpenResty 作为 Web 服务器,提供了丰富的 Lua API,包括 ngx.say、ngx.resp.get_header、body_filter_by_*、ngx.exit() 等,让亲们 还可不都可不能否去操纵 HTTP 的 request和 response 等基本元素,从而灵活控制整个 HTTP 的请求和响应体。有些 遇到业务代码,还可不都可不能否用 Lua 的方式编辑,开发时延是无可移觉的。

  艾菲介绍了定时器 ngx.timer.at 用法,还可不都可不能否实现延迟运行的任务逻辑,甚至于通过有些特殊的调用方式实现定时任务的功能,这名 API 还另另一一俩个 多“非凡”意义,还可不都可不能否实现跨作用域。他在分享最后介绍了有些 HTTPS 的性能问题报告 以及外理的方式。

  高性能 API 网关实践

  OpenResty 软件基金会发起人王院生,《OpenResty 最佳实践》作者,开源微服务 API 网关 APISIX 作者,在 OpenResty x Open Talk 上海站的活动上,他完整篇 介绍了 APISIX 何如做到高性能及实现的技巧,本次分享,他介绍即将发布的APISIX 0.7 版本路由有些 支持插件化,一齐有些 超 500% 的代码覆盖率。

  OpenResty 软件基金会发起人王院生

  王院生在现场分享了有些通用的 OpenResty 编程技巧,他将 radixtree 和 r3 做了对比解释了 APISIX 取舍 radixtree 的原应,匹配模式简单、高效,支持遍历、回调等;ngx.var 能使项目性能提速,最简单的方式是用 iresty/lua-var-nginx-module 的仓库,还可不都可不能与非 5% 的性能提升;当遇到 fail to json encode 的状况时,他的做法是强制对 cdata、userdata 等进⾏编码,在有循环嵌套时依然还可不都可不能否打印。

  除此之外,王院生还向在场的开发者推荐了他买车人写的静态代码检查工具,能帮助外理所以代码风格的问题报告 。apisix/core 也是另另一一俩个 非常值得学习的基础库,帮助亲们 了解有些非常实用的库的实现。

(本内容属于网络转载,文中涉及图片等内容如有侵权,请联系编辑删除)