Serverless往事(一):从零搭建一个web应用

2018-11-29  本文已影响0人  anOnion

Serverless往事

我想单独开一个叫《Serverless往事》的topic,讲述从2018年年初开始我们“艰难探索”新架构的一些故事。Topic会不定期更新,希望能一直更新到一个大型网站的面世。

背景

18年初,突然得到领导通知,要起一个serverless的web应用。当时并不清楚具体缘由,只是隐约听说原先架构成本过高已无力支撑产品上线。一番调研后,海外的某个组首次实践了serverless并获得巨大成功。大中华区CEO很快通知我们,要在中国推广aws serverless。

当时的情况极为尴尬:除了一些朴素的java知识,全组甚至全厂都没有粗通架构的后端;前端也极为原始,几乎没人接触过三大框架;CI/CD,更是无从谈起。最大的困难是:我厂只做B端,对Internet网络攻击毫无抵抗力。然后,我们接到了任务:搭建一个叫E-pub的互联网web应用。一个新时代就这样开始了。。。

业务分析

E-pub是我所在某招聘相关产品组的一个子模块,主要面向互联网端的应聘者。业务流很简单:应聘者通过E-pub录入个人信息,并向雇主申请Job。雇主在企业内部HR系(姑且叫IVF吧)能及时同步应聘者申请。主要页面其实就两个:1. 隐私条款 2. 用户信息录入页面

技术栈

业务确定后我们立马讨论了技术栈的选择。

Technical stack

Architecture Review

两个礼拜后,我旁听了组里领导和arc team的Review,依稀记得对方来了两日本人和一个印度人。不得不佩服我领导,他和对方leaders谈笑风生,独留我一人茫然无知,大概是我听力实在是太差了吧。两次review会议后,E-pub得出了大体如下的框架。

Architecture

架构很直白,服务部署在lambda上,应聘者只能通过api gateway读取Job信息,并录入个人信息;IVF(对的,是我们的那个内部HR系统)轮询E-pub,同步信息后删除Dynamodb和S3里的记录。

回过头来看,这个设计甚至不如一个学生管理系统复杂,不过在E-pub场景里却是一个很务实的选择。

说点闲话,汉语语境里保守激进都带明显的贬义性质。很多人喜欢评论别人的技术选型太保守或是太激进,然后沾沾自喜一番。但是评价者自身没有技术判断力呢?架构的选择也是如此,其实并没有保守或是激进之说,简单务实才是最正确的选择。

小结

到此为止我们的E-pub正式进入开发阶段,虽然系统简单但是五脏俱全。之后我们仅仅用了一个多月就搭起了这个web应用,对比IVF年复一年的跳票,不得不说serverless带给了我们巨大的惊喜。总结起来大约有这么几点优势:

不久之后,我们迅速开启了另一个新项目——M-pub。这次挑战更胜从前,更复杂的web安全、DB读写限制、MT、微服务治理、CI/CD……世上并没有一劳永逸的框架,更没有放之四海皆准的技术。我们又该如何抉择,to be continue...

后话

有一次我向某日本领导请教技术栈的问题,她道出了一些很有趣的事。领导们并不关心技术,更不关心开发体验,他们只想要一个低成本的产品。这些话让我茅塞顿开:对于底层小职员来说,我们追求新技术是因为技术是安身立命的本钱;但领导们不是,他们讲的是管理,要的是可控。从某种意义上来说,正确理解领导的意图其实也是我们底层小职员安身立命的技能。

上一篇 下一篇

猜你喜欢

热点阅读