从0到1构建和维护一个在线打卡系统项目需要投入多少资源呢?
答案是:1位开发人员 + 1个应用程序的JAR/WAR包 + Serverless应用引擎(SAE)+ 2分钟部署。
高校健康打卡项目发起于北京大学软件与微电子学院,是该学院张齐勋老师在疫情期间编写的一套健康信息采集和报表系统。该系统已在 GitHub 开源,并在 Wuhan2020 社区联合主办的 Hack for Wuhan 黑客松活动中荣获最受观众喜爱奖。在疫情期间,该项目已在北大软微等全国 30 余个高校院系部署应用,为疫情期间的高校师生健康信息采集汇总的需求提供了快速高效可定制的一站式解决方案。
由于高校打卡项目涉及高校数据安全,故采用自建方式来运行,而非使用第三方的打卡软件。
该项目使用经典的 LAMP + 小程序技术栈开发,前后端分离,开发者社区中基于 Java、Go等多语言的后端项目也在开发中。在疫情期间,如果只有1-2个开发人员,还按照传统模式买机器-各种语言应用编译打包-部署应用-搭建监控系统-线上运维挨个去做,肯定是满足不了交付效率,同时线上稳定性也得不到保证。因此,一套低门槛开箱即用,且能在短时间内快速构建一套稳定的后端系统来支撑这套多语言健康信息采集和报表系统的正常运行显得尤为重要。另外高校打卡时间段固定,会出现洪峰流量,但能否在应对洪峰流量的同时也能最大程度的节省成本,也是当时的挑战之一。
痛点综述:整套系统从0到1搭建,业务交付效率要求高,但开发人员只有1-2个,且涉及到多语言。潮汐使用计算资源,如果自己保有IaaS资源,会出现利用率不高的问题,且需要考虑如何应对洪峰流量。
阿里云Serverless应用引擎(简称SAE)基于 Serverless 架构,帮助PaaS层用户免运维IaaS和K8s,按需使用,按量计费。支持镜像/WAR/JAR三种方式部署,低门槛零代码改造实现微服务/Web/多语言应用快速上云,同时打通了基础设施产品SLB、SLS、NAS等和微服务周边生态产品,以及Devops产品,提供了一站式体验,是企业上云的最佳选择之一。
客户借助 SAE 实现了:
1. 免运维,从0到1快速交付:基于SAE,北大打卡项目无需购买和运维ECS,通过镜像方式白屏化快速部署了多个多语言应用。且无需自建监控系统,提供了开箱即用的应用监控能力,极大提升了交付效率。
2. 灵活弹性,节省成本:SAE支持基于CPU、Mem使用率等监控指标自动触发扩缩容,也支持定时弹性,这种灵活的弹性策略既能轻松应对流量高峰,也真正做到了按需使用,节省了非打卡时段的闲置成本。
3. 极致体验,提供一站式服务:SAE在细节层面做的非常到位,可以直接在应用内开启 HTTPS 服务等,并与证书管理系统也有很好的集成。
总体而言,使用 SAE大幅提升了北大打卡项目从0到1搭建的交付效率,为该项目在疫情期间提供稳定服务提供了强有力的保障。后续该项目不仅会继续支撑高校打卡,也会作为开发者学习开源流程和基础开发技能的入门项目之一。
Wuhan2020 发起人 Frank 说:“Serverless应用引擎(SAE)帮助我们和齐勋老师从0到1快速搭建了一套服务,帮助项目在较短的时间内就能上线运行,面对学生们的打卡高峰,可以轻松应对,免去了我们在应用可用性上的维护成本,同时也节省了机器成本。”