扫码阅读
手机扫码阅读

做出赋能其他人的产品是技术牛人最好的证明

104 2024-04-10

一个优秀的应用开发平台不仅是一个开发平台,也是一个文化平台!而且是一个技术人很好的能力和贡献证明。

如果你想快速开发一个Web应用,通过一键配置后就可以立即开发业务逻辑,又不用管服务器这些底层的事情,是不是很香?

由我们部门的技术大神“丹花”一手打造的AppRunner内部应用开发平台就是这样的平台,它赋能和激发了我们全球的开发人员在上面开发了近两千个应用,为公司内部的管理、度量、人才盘点等需求提供了大量高效工具,也构造了一种良好的技术文化。而且让“丹花”进一步巩固其技术大神的位置。

让我们一起来探究一下这么牛的平台和它背后的意义吧。

01

平台概貌

很多时候,我们都想开发一些小应用,来帮助我们提升管理、开发和工作效率。但当我们要开始开发一个Web应用时,往往会因为以下障碍而止步不前:

  1. 搭建开发环境——虽然像Java的Maven这样的构建工具已经大大简化了开发流程,但离一键配置、部署和运行还差十万八千里;

  2. 需要开发框架——要高效开发,最好是站在巨人的肩膀上,而不是一直重复造轮子,我们希望在一些成熟的开发框架上进行开发, 从而能更快地聚集在业务逻辑的编程,而不是纠缠于底层的实现。但像Java里Spring、Spring Boot这样的主流框架,离“开箱即用”还有一段距离,对于Web应用来说,也不是一站式的解决方案;

  3. 需要运行服务器——开发出来的应用最终还需要运行在服务器上。在我们公司,即使可以在数小时内通过内部云获得测试服务器,但由于没有root和sudo的权限,还要找服务器运维团队花费数天时间做必要的额外配置,更别说要找钱“供养”服务器。后续针对服务器的各种维护,像打补丁、OS升级等都是烦人的事情。

AppRunner为我们解决了以上烦恼。我们可以

一键配置

通过一键,新应用的专属的Github仓库和基础代码就已经准备好了,我们只需要把AppRunner的公钥放到自己的Github设置中从而允许AppRunner访问,然后通过git clone把专属Github仓库的代码拉到本地就可以开始开发了。

多种语言支持

AppRunner支持多种语言,包括Java、Node.js、Clojure、Python、.NET,满足大家的语言偏好。

快速开发

一旦新应用生成后,基于MuServer的后台基础代码和Hello World页面已经就绪,我们可以以此为基础进行业务逻辑的开发。也可以随意引入前端框架。

数据可以以文件或以文件形式管理的轻量级数据库保存,AppRunner为每个应用保留一定的存储空间。

快速测试

我们可随时通过打包(如Java中的mvn package),然后运行程序包(如Java中的java -jar xxx.jar),即可通过localhost进行本地测试。

把代码提交到Github后,AppRunner也会以秒级的速度立即自动部署,然后所有人都可以通过应用专属的URL访问更新的应用。可以在AppRunner上看到部署和运行的日志。

无需管理服务器

服务器资源完全由AppRunner管理,我们作为开发人员根本不需要操心。

当然,AppRunner仅限于内部应用开发和使用,不能用于正式的业务应用和涉及敏感数据,这也是为什么它的开发、部署流程比较简单,但对于内部工具型的应用开发,足够了。

02

技术实现

下图是AppRunner的工作原理。当一个新应用生成时,AppRunner会为它分配一个唯一的端口和URL。用户通过应用专属的URL访问时,AppRunner会把请求代理到相应的端口。

AppRunner为每个新应用都准备了以MuServer为底层应用服务器的基础代码。MuServer(https://muserver.io/)是用Java开发的高效、轻量级的现代Web应用服务器。开发人员可以随意添加Handler来处理HttpRequest和HttpResponse,生成相应的API Endpoint。

开发人员也可以随意调用其它AppRunner应用提供的API,获取数据,站在别人的肩膀上。

由于所有应用的Github仓库都是内部开源的,我们也可以随时参阅别人的代码。

03

优秀应用

有了AppRunner,开发人员可以快速地、无所顾虑地开发内部工具型应用供所有人使用。到目前为止,AppRunner上已经部署了接近2000个应用,其中不乏被广泛使用的优秀应用。

比方说收集开发和DevOps指标的Dashboard类应用,方便所有人对重要指标进行度量,并以此为根据进行持续改进;自底向上的自组织团队登记,方便各团队管理人员数据;辅助系统监控的Dashboard;实现所有人在线各抒己见的回顾会议工具;运维数据完整性检查;系统间架构关联图谱;分享会预告和登记等。

04

写在最后

AppRunner作为开放的内部应用平台,除了激发了人们对内部工具类应用开发的热情,也让所有人更容易反哺,切实地为大家提供各种高效的工具,形成了一种良性的氛围与文化,这也是我想跟大家分享的重点。作为技术人,我们应该坚持用技术解决一切问题!

另外,作为一家技术公司,我们一直为人们提供管理和技术两个发展路径。但是技术路线怎么发展和评估,则不像管理路线那样可以通过管理级别、团队规模进行量化。一个技术人个体怎样证明自己比别人更厉害,甚至可以“以一打十”,其实是很难的。

而评估一个技术人的能力,一个切入点可能就是看TA是否有能力赋能组织和其他人做出更大的成就,而且更有说服力的,就是看TA是否做出过实实在在的产品、平台、工具或服务,切实地赋能了大家,这样TA的能力和贡献就有了杠杆。技术牛不牛,技术人有没有贡献,从来不能靠吹,而是要靠做。

文中提到的“丹花”是我们公认的技术大神,AppRunner也再次很好地证明了他的能力和贡献。这就是一个技术人发展的很好的榜样。

原文链接: http://mp.weixin.qq.com/s?__biz=MzI1MjQ3NzE2Mw==&mid=2247484890&idx=1&sn=578b4b0cebd1c0b2003c922aaf5a5e92&chksm=e9e26e5ede95e74866464330d7321fb8a98e87286f3ef68957126b230c777515efea575444e6#rd