锤科为什么要捐助 OpenResty?

Posted MacTalk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了锤科为什么要捐助 OpenResty?相关的知识,希望对你有一定的参考价值。

每次发布会把门票捐助给谁都是一次痛苦的选择!谁能想到捐钱也是一件艰难的事呢?我想一定是有钱人。

我们不是有钱人!

锤子科技创业维艰,步履艰险,一步一个脚印,一步一个门槛。我们常常寻思,咱这种规模的公司是不是非要把这些门票收入捐出去?有时候我们也会在相关的讨论会上提出,这笔银子是不是可以作为优秀员工的特殊贡献奖什么的,这样优秀的员工还可以获得一笔额外的奖励。还有程序员怯怯的说,咳,捐助对象也可以考虑一下我……

遇到这种情况,老罗总是大胖手一挥说,咱们不靠这个。于是我们就继续寻找捐助对象。

Smartisan T2 发布会的捐助对象主要限定在互联网领域的开源项目。期间我们推荐过很多优秀的开源项目,要么是使用范围不够广泛,要么不是以开源方式组织(只是开放代码而已)的,要么就是「人家比咱还有钱」,最后都不了了之。

维基百科也在推荐之列。于情于理,这都是非常值得捐助的项目。普及一下,维基百科(Wikipedia)是一个基于 Wiki 技术的多语言百科全书协作计划,也是一部用不同语言写成的,全球最大的网络百科全书。维基百科收录超过1400万篇由志愿者用超过250种语言撰写的文章,每月世界各地有超过3.3亿读者浏览,成为全球第五大受欢迎网站。维基百科是人类有史以来最大型的知识结晶。

嗯,这是一部没有审查制度的百科全书,所以内容真的很全!很遗憾这个想法也没有通过,大家还是想尽可能的捐助技术类的项目。

在继续冒出新的想法之前,我们确定了以下规则:

1、锤子科技正在使用的开源技术。

刚看到这条规则的时候,ROM 团队的同事推荐了 androidios/Mac 团队的同事推荐了 Swift,于是这两个同事被拖出去了……行走江湖,出言一定要谨慎!

2、以开源方式运作的开源项目。很多大公司在 Github 上共享了大量的开源项目,但那些项目并不是真正的开源协作。再说了,Google,阿里,Twitter,Airbnb 这种公司的开源也轮不到我们捐助吧?

看吧,读全了需求再说就不会犯上两位同事的错误

3、在互联网世界里被普遍使用的开源技术。

没人用再牛也不捐

确定了这三条规则后,大家松了口气,思路变得清晰起来,后来又有同事加了一条:多考虑国内好的开源项目。这下讨论更为聚焦,于是两位调研员美眉挺身而出,开始对国内的开源进行大量的调研和沟通,最终确认的结果就是:OpenResty,一个不算艰难的决定。

OpenResty 是个什么样的项目呢?InfoQ 中国是这么说的:

OpenResty 是中国人章亦春发起的一个开源项目,它的核心是基于 nginx 的一个 C 模块,该模块将 Lua 语言嵌入到 NGINX 服务器中,并对外提供一套完整 Lua Web 应用开发 API,透明地支持非阻塞 I/O,提供了“轻量级线程”、定时器等等高级抽象,同时围绕这个模块构建了一套完备的测试框架、调试技术以及由 Lua 实现的周边功能库;这个项目的意义在于极大的降低了高性能服务端的开发难度和开发周期,在快节奏的互联网时代这一点极为重要。

OpenResty 的起步和发展经历了一个漫长的时期,从 09 年基于 NGINX 用 C 语言重新改写的版本,到 11 年开始有很多公司开始小范围内尝试使用,再到今天,OpenResty 知名的 CDN 行业,各大电商,手游领域都有应用,我们对 OpenResty 源码发布包和 Windows 二进制发布包的下载做了一个统计,这些流量分别来自 135 个国家的 3072 个城市,特别是今年下半年以来,每个月都有 5 万次以上的对发布包的下载请求。其中有近一半的用户来自中国。

章亦春江湖人称春哥,经查,和李宇春没什么关系。据和春哥工作过的小伙伴说,春哥是一个高尚的人,一个纯粹的人,一个有道德的人,一个脱离了低级趣味的人,一个有益于人民的人。对于程序员来说,这个评价已经到了前无古人的境地。他先就职于雅虎,后加入淘宝「量子统计」数据平台部门。在淘宝期间为了解决业务问题重写了雅虎期间的开源项目 OpenResty,融合了 Nginx 和 Lua 两个优秀的技术,成就了现在的 OpenResty,并构建了相关的开源生态。

OpenResty 初具规模之后,章亦春离开淘宝去福州全职维护 OpenResty 项目,现在旧金山工作。春哥是 OpenResty 的创始人,可以这么说,OpenResty 项目初期,章亦春贡献了大部分的程序代码,他像一个孤独的航海者在一望无际的海面上航行,他开发出的高性能 Web 服务器被各大互联网公司使用并获益,他的收入「在过去的一年中只有来自用户公司和个人的一些捐赠,微薄的捐赠」。现在,随着社区的发展壮大,越来越多的国内外开发者开始为 OpenResty 提交代码了。


OpenResty 的架构以及应用场景大致是这样的:

OpenResty 与其他常规开发语言或框架截然不通,可以说是另辟蹊径的把两个极其优秀的组件 NGINX 和 Lua 进行糅合,充分利用各自的优势相互弥补。不仅保留了 NGINX 的高性能 web 服务特征,Lua 更是在近乎不损失性能的前提下可以快速、简单的进行业务功能开发,同时享有代码动态装载和卸载的特性。在运行速度、可伸缩性、灵活度以及开发效率之间寻找一个平衡点。

目前 OpenResty 的主要应用场景有:HTTP Proxy、API Server、Web Application。
1、HTTP Proxy:这个在 CDN 行业用的比较多的,请求改写与路由调度、缓存控制、Web 应用防火墙(WAF) 等。
2、API Server:各种智能设备 APP、广告拉取等请求比较密集,并发、QPS 比较高的环境。
3、Web Application: OpenResty  创建初衷就是为了做这个,新浪移动已经在所有产品线使用OpenResty,核心业务也在不断从 php 迁移到 Lua,京东已经开始使用这套方案解决高并发环境下的页面应用。

以上三个场景我们在构建锤子科技云平台和电商平台的过程中都不同程度的使用过,可以说我们不仅是 OpenResty 的用户,同时也是受益者。OpenResty 使得开发人员处理 C100K,C1000K 场景的挑战变得更加容易,你可以基于 OpenResty 构建自己的大容量高并发服务器,也可以非常容易的提供 API 服务,限流,负载均衡等策略……

有什么理由不去捐助这样的开源项目呢?

相信未来国内会出现更多更好的开源项目和开源基金。中国向来不缺少有创意的开发者,缺乏的只是好的开源土壤罢了。为什么 OpenResty 能脱颖而出?并不是我们的环境突然变好了。我看过春哥的一个访谈,那个问题和回复是这样的:

我觉得这个项目是我见到国人发起的生态环境非常好的一个项目,向你们致敬!
谢谢。相比其他开源作者,我自以为我做得比较好的一个地方是,我总是尝试及时回复用户的各种邮件,即使我还有全职工作的时候。

我们希望能为这样的项目输送更好的空气、水分和肥料,也希望未来能够一起做一些更有意思的产品。

如果你支持中国开源事业,就让更多人看到这篇文章!


最后推荐一篇文章,由 OpenResty 开源团队撰写,InfoQ 策划,点击原文阅读。


以上是关于锤科为什么要捐助 OpenResty?的主要内容,如果未能解决你的问题,请参考以下文章

浅谈openresty

❲携手共进❳OpenResty社区月度MeetUp / 五月

使用openresty打造接口校验服务

实战Nginx+lua 实现请求劫持

聊一聊基于openresty实现的推送服务的演进过程

锤子手机发布会提到的OpenResty是什么?