用serverless给SaaS赋能

前言

本人是一家创业公司的前端架构师,我们主要的产品是做一个在线的股权激励与管理的SaaS平台 股加加
目前产品主要包括,线上管理平台和诸多小程序,还有一些线下的股权服务,欢迎各位前来体验。

为什么用Serverless

在我们整个的技术体系中,Serverless无疑是非常重要的组成部分。

对于我们这种小型的创业团队,最重要的就是在业务上,小步快跑,多试错,从而探索出一条到多条可行的商业模式。

Serverless 技术极大的缩短了我们的迭代时间,运维的成本,还有一些后端的成本。

之前的部署方式

原先我们部署方式是非常依赖云服务器的
我们在多个云服务器上,部署了我们所有的前端页面和 docker 集群

这样的部署方式,对于我们这种小型的开发团队来说有很多的弊端:

  1. 运维成本高 , 每次创建新的项目,都要改很多nginx或者dockerfile的配置。打 hotfix 也很不方便 ,每次都要重新部署。灰度测试更加是无从谈起了,赶业务上的功能都来不及,更何况是写一些功能来方便自己呢?
  2. 服务器成本也高,钱对于大公司来说不是问题,然而对于初创团队来说,就是最重要核心的问题了,本来开发人员工资成本就高,服务器还贵, 就以我们用的腾讯云为例:
    - 云服务器(4核8G 1Mbps) 一年 2923 ,线上多环境,加起来1年起码 1万多把
    - 云数据库(MongoDB) 一年,(一般点的配置) 1万+
    - redis: 一年 3k
    - Cos(对象存储)和Cdn(内容分发): 另算
    一年下来保守估计,费用在 25k 以上,这当然是不包括使用第三方工具平台接口的费用的。
  3. 没有弹性伸缩策略 ,这还是一个资源的利用率问题,在面对有些api,或者SSR页面并发量高的时候,往往都需要我们手动去扩容,并发量小时,新创建的容器往往就被闲置了。

Serverless选型

serverless 选型这块选择了 serverless framework

serverless

为什么?

我们创业团队,整个技术栈都是 nodejs,vue,nuxt,uni-app 构建的 ,即 javascript 打天下。

这样的一个 npm 上的 cli 包,显然比 特定云厂商的 cli 或者 vscode 插件,更有吸引力。

另外更重要的一点是,它提供了大量现成的 serverless-components

Serverless Components Github Link

这给我们云服务器上的代码做迁移,减少了大量的成本。

还有就是,它作为一个第三方的框架,它能做到同一段代码,部署在不同的 Serverless 服务提供厂商那。

总结

serverless framework 优点如下:

  1. 代码迁移成本较低
  2. 跨云厂商
  3. 极其灵活快速的部署方式
  4. 方便的线上调试和监控能力

使用场景

Serverless当然也不是万能的,不是所有的服务都适合改造成 Serverless

比如 im(即时通讯服务)就不怎么适合 Serverless 化

还有就是一些有状态的服务,在迁移的时候也需要把状态外置到其他地方,比如 Redis 等等。

像大部分的 Job Service 和 无状态的Api啥的,还是比较适合,当然整个api认证体系,能改jwt,就改。
Session也要外置。

还有就是,Serverless 访问数据库这些云上资源的时候,也要让他们处在同一个 VPC(私有网络)内部

它的场景特别适合像 小程序 那种,也难怪微信,支付宝啥的,也都在搞 云开发 ,然而他们这种和对应的平台,有些耦合了。面对那种跨多个平台 小程序 的需求时,有些 捉襟见肘

现在的部署方式

现在我把的服务进行了拆分,把一些经过判断可以 Serverless 化的,逻辑抽出来,进行单独的批量部署。

目前所有的 跨平台的小程序服务 已经全部转移到 腾讯云的 SCF 上,线上系统的 Job 和上传 Cos 桶之后的文档处理,也交给 SCF 做定时触发和上传触发。

我们的 SSR 项目和部分服务,由于迁移成本较高,没有进行迁移。

借助这项技术,我可以在不同的项目里,敲一行带有环境变量的指令,就能快速的把 layerservice 部署到云上,再借助 SCF 发布新版本的功能 和流量灰度的功能,给 上传上来的代码 预置并发实例 后,进行流量上的版本切换,从而达到平缓部署,灰度测试的功能。

在此方面大大的减少了我们团队的运维成本和服务器成本。

总结

目前使用这项技术1年多了
果然大大减少了我们的运维成本和服务器成本

另外有一些意外之喜:

  1. 它在拓宽了我们前端的视野,促使我们成为一名大前端
  2. 它加重了前端团队在整个技术体系中的 话语权

未来的写作计划

我接下来打算分享一些,Serverless 方面的最佳实践,
毕竟上面谈了这么多,实际上都很空。

留一下我的 Serverless 博客站的地址,
有兴趣可以在那里找到我的联系方式,欢迎一起交流技术。

icebreaker

  • 20
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值