自宅创业 - #18 开始新产品,为网站App提供付费订阅

春节已过去一个月,向着 2022 年目标,重新出发。

开始新产品

新产品是一个为网站和App提供会员、订阅、付费功能的服务,会集成多种支付渠道,只需几行代码就能让你的网站和App支持付费订阅。对标产品是国外的 RevenueCat

这个产品的想法已经酝酿了一年多,考虑到面向开发者的产品太难赚钱,所以没有很快着手去做。在和很多开发者交流过程中,我感觉到大家需要这样的服务,所以应该有足够价值、值得做,能赚点零花钱也好。

目前我调研的情况是,国外有两个 RevenueCat 的竞品,但国内没有发现类似产品(欢迎提供线索)。有些关联但并不相同的是内容(知识)付费平台,例如:Patreon、面包多、爱发电等。

这个产品的前身是蚁阅的会员功能,我会把它做成支持多租户,功能相对完善,开箱即用的服务。

这一期主要做了:

  1. 集成微信支付渠道,把果蔬时节的支付代码迁移了过来。
  2. 重构代码,部署方式改成腾讯云-云函数(内部项目: ezfaas)。
  3. 统一的用户鉴权服务(SSO登录),正在开发(内部项目: ezauth)。

新产品正在开发,可能还需要 2 - 3 个月上线,敬请期待。

云函数部署

我的所有新产品都会首先考虑云函数部署,按量付费、免运维、低成本、弹性扩容这些特点非常适合做创业项目,全是优点。以下是我整理的完整部署方式。

网站通常包含后端服务,数据库,前端静态文件。数据库直接买云厂商提供的。

后端服务

后端服务通过「云函数」部署,采用容器镜像部署方式,不建议用内置的各类编程语言模板。

  1. 通过 Dockerfile 和 multi-stage build 制作很小的镜像,通常不超过 100M,推送到云厂商的镜像仓库。
  2. 创建云函数,选择容器镜像部署,用环境变量做程序配置。
  3. 写一个部署脚本,一键打包和更新部署镜像。

前端静态文件

前端静态文件通过「对象存储」部署。

  1. 对象存储创建空间(Bucket),开启静态网站服务。
  2. 通过命令行工具,将打包好的静态文件上传到对象存储。
  3. 写一个部署脚本,一键打包和上传文件。

网关和CDN

前后端部署之后,再通过「API网关」,将不同路径的请求转发到前端和后端。网关会有一个默认的 HTTPS 访问地址。

添加 CDN(全站加速/动静加速)域名,源站为 API 网关地址,配置 DNS CNAME 解析到 CDN 地址,此处配置好静态文件缓存规则。

再生成免费的HTTPS证书,云厂商都有提供,配置到 CDN 域名上,实现全站 HTTPS 访问。

网站监控

最后可以部署 Gatus 服务(健康监控),配置每隔几分钟请求一次后端服务。这样可以使云函数保持活跃状态,减少冷启动时间,同时也可以监控异常情况。

用户鉴权服务

用户鉴权服务类似 Auth0 和 Authing,我想把我所有产品的用户模块都统一起来,毕竟每个产品都写一套登录注册就太麻烦了。但这类核心服务我不想依赖第三方,需要自己完全可控,更放心也更省钱。也不能靠自己开发,时间成本太高。

所以我调研了一些开源的替代品,最后选择基于 Django OAuth Toolkit 定制开发。

Django插件,最灵活
https://github.com/jazzband/django-oauth-toolkit

Django + 中文 LGPL
https://github.com/longguikeji/arkid

Java 老牌项目
https://github.com/keycloak/keycloak

golang
https://github.com/tarent/loginsrv

golang + 中文
https://github.com/casdoor/casdoor

golang 功能较多
https://github.com/ory/kratos

选择 Django 插件主要原因是我很熟悉 Python,使用最灵活,方便按需修改,其他选项供参考。

我到了新城市

最近两周天气转暖,我来到了福建的一个小城市,租了一间小房子住。生活更简单,日常琐事更少了,最大的变化是大幅减少了吃饭时间。

我现在早餐吃包子鸡蛋,午饭和晚饭都吃 若饭,用 Blender bottle 不锈钢摇摇杯,非常好清洗,5分钟吃完一顿饭,每天大约能节省 2 小时。

除了节省时间,调配好的代餐其实营养更均衡,没有辛辣油腻和过多糖分。但是和父母在一起时,没法这样吃,老一辈的观念接受不了。

升降桌和工学椅也配好了,生产力拉满。周边环境还不错,时常散散步,劳逸结合。

出租房 工作台

最后

通过「RSS阅读器」或者关注公众号「自宅创业」可以订阅博客更新,也可以在 关于我 页面找到我的联系方式,欢迎交流!

返回

留言 - GitHub Issues | 订阅 - RSS源 |联系 - 关于我