写点什么

复盘自研产品,总结技术实践

  • 2024-06-05
    北京
  • 本文字数:2060 字

    阅读完需:约 7 分钟

复盘自研产品,总结技术实践

简介: 一个小小的产品,它的发展会见证很多变革,有行业的,有技术的,但是当你回顾过去,更多印象的反而是一群奋斗的人。每个人的工作有高峰底估,每个产品也是一样,但是只要你具有信念,坚持不懈,持续迭代,就算不是 ChatGPT 这种划时代产品,一个小而美的小产品也是很赞的,重要的是持续帮助服务一撮人。


产品背景


回到 2013 年,那时候淘宝开发平台招开发商,给商家做软件产品。

偶然机会,我做了一个大转盘抽奖的产品放到淘宝服务市场给商家用,不到 2 天,就有很多用户来咨询,我感受到了一丝兴奋,于是快马加鞭的迭代开发,也有很多朋友的帮助,每天编程到午夜 2 点。随之而来的大量用户,我确定了方向,电商平台需要有个性化的营销工具,抽奖就是最简单最清晰的首选工具。

一周后我的新产品抽奖靠手上线了,主要提供帮助商家设置抽奖营销,商家可以服务他们的用户。

技术选型实践


image.png


开发语言实践

2013 年时候,我们从最早.net 平台 c# 开发,因为我之前是做这方面的程序员。

2016 年左右,后来逐步迭代了 PHP 后台,前端采用原生 JavaScript 的模式。

大概这个时候是

2019 年左右,后来迭代成了 PHP 逻辑端,消费者前端采用了淘宝小程序;商家后端和管理员端采用了 VUE 的技术。

2023 年左右,目前逻辑层和后端代码还是采用 PHP 的 thinkphp 框架。前端没有变化。


image.png


数据库实践

数据库方面,早期是 SQL Server 到后来的 MYSQL 和 Redis 的模式。

过程中想换过 MongoDB,但是一方面从商业营收来看,还有开发资源来看,成本比较高,就放弃了,其实这种抽奖类 Node.js + MongoDB 的开发组合是最适合的。大并发是必须的。后面讲采用 MySql 和 Redis 怎样来解决大并发问题。

上面的技术产品,都采用的是阿里云的商家聚石塔的产品。ECS,RDS,Redis,OSS 等。

架构设计实践

架构演变

架构上从早期的 2 层。.net asp.net 页面逻辑+数据库的模式。

后来逐步变成了 PHP 逻辑层 API 模式,前端 VUE,小程序,MySql,云函数等多层组合。


image.png


现在的架构图


image.png


因为前些年淘宝生态发展很繁荣,很多电商平台也都在学习解决,比如京东也再发展自己的生态商家平台,我们当然也直接入驻了。下面是我们针对京东商家平台做的架构设计,大家可以参考了解,欢迎一起交流学习。

其他平台架构图


image.png


产品前端实践

历经迭代,我们产品目前前端技术主要采用手淘小程序的消费者端,千牛小程序的商家电脑活动配置端,VUE 开发的 Web 管理员端。


image.png


成本优化实践

再展示一些目前云计算的产品场景图,便于大家更好的理解。

云产品技术升级带来的成本优化

这里云计算给我们的成本优化帮助很大。比如从原始的 ECS,到后来的云函数/Serverless 的模式,从原来的 RDS,到后来的云数据库的模式。

云产品订购升级带来的成本优化

从早期我们年购 ECS,RDS,到后来根据不同云产品,进行分期购买,到后来的按量购买。最典型的就是双 11 压力大的时候我们要采买多台,这个时候只需要购买 1 个月即可。包括到现在后期产品使用量变小了,我们变成的按流量购买的形式,这些都是对我们在产品成本上的优化。

下面一些图是淘宝聚石塔提供给我们的 CI/CD 工具,展示了我们针对不同场景的调整,可以做到快速一键切换。

问题解决实践

高并发问题的解决


image.png


讲下高并发的问题,因为其实抽奖,裂变这种互动应用,高 QPS,高并发是一个常见的问题,也是一个棘手的问题,很多新手容易抓瞎,在 2013 年那个时候我们就因为突然的大规模流量导致频繁宕机,淘宝的流量不是盖的。但是在早期,这些高并发都需要自己去解决,伴随着互联网云计算的发展,现在的技术朋友轻松很多,用容器负载技术,Serverless 技术就能轻松解决并发问题,而且费用还便宜,1 个人就能搞定全部。

我们的高并发大概经历的过程是这样的:

               ● 分表分库,优化 Web Server。我们从早期 SQL Server 迁移到开源 MySQL 中。比如把商家 ID 做分成,根据业务逻辑拆分不同商家编号,不同层次的放入不同的表中,每个表的数据量控制在 15 万条以内。

               ● 增加 ECS 做负载均衡,加入 Redis,加入队列等。Redis 这里解决了我们很大的问题,比如加载商家抽奖布局和消费者基础信息的,不用直接读 MySQL,先去判断 Redis。

               ● 使用容器技术,包括轻容器 Docker,到资源池,K8 容器,SLB 等云资源编排。容器方面我们最多扩展到 10 个做负责均衡的处理,这里就是要利用用 CI/CD 的功能,做好灰色发布,分层发布的模式。

               ● 使用 Serverless 技术,包括云函数,云数据库。其中我们用云函数分布了一些并发量大的功能点,做 API 的处理模式。

未来我们将继续迭代,包括开发运维采用 GitOps 等等。有没有觉得透过这么小的产品迭代,也能清晰看到互联网技术的不断演进。我猜测未来类似我们这种小产品,将会更容易开发和迭代,也许 1 个人从产品开发到部署运维,可以轻松全部搞定。

产品思考


image.jpeg


一个小小的产品,它的发展会见证很多变革,有行业的,有技术的,但是当你回顾过去,更多印象的反而是一群奋斗的人。

每个人的工作有高峰底估,每个产品也是一样,但是只要你具有信念,坚持不懈,持续迭代,就算不是 ChatGPT 这种划时代产品,一个小而美的小产品也是很赞的,重要的是持续帮助服务一撮人。

发布于: 28 分钟前阅读数: 7
用户头像

还未添加个人签名 2020-09-02 加入

还未添加个人简介

评论

发布
暂无评论
复盘自研产品,总结技术实践_小院里的霍大侠_InfoQ写作社区