Serverless 最佳实践:如何两周内开发出用户量过亿的微信小程序(开发一款微信小程序)

一切好的产品都是从一个绝妙的创意开始!

腾讯相册前身是空间相册,而且空间相册已经在手机 APP 端,网页端都有了入口。为了增加用户活跃,让客户在各个软件中都能快速触达,腾讯相册团队推出了微信小程序形式的腾讯相册。本文将从开发背景、技术需求与落地实践三个维度出发,还原腾讯相册小程序的开发历程,以及 Serverless 是如何助力腾讯相册团队在两周内,开发出承载过亿用户量的微信小程序。

  • 注:文章内容整理自腾讯云产品经理方坤丁和高级架构师卢萌凯在 Kubecon 2019 上的演讲,演讲主题为《Serverless 云上最佳实践 :如何在两周内开发出用户量过亿的微信小程序》,感兴趣的读者可点击文章底部“了解更多”下载讲师完整 PDF。

腾讯相册微信小程序开发背景说明

在 2019 年 Q1,微信和 WeChat 的合并活跃用户为 11.12 亿,而小程序的活跃用户从 17 年初发布后,在 18 年底增长到了 2.3 亿。小程序主要有以下几个特点:

  • 速度快。无需下载安装,加载速度快于 app HTML5,随时可用
  • 无适配。一次开发,多端兼容,免除了对各种手机机型的适配
  • 可分享。支持图文分享、支持分享给微信好友和群聊
  • 体验好。可达到近乎与原生 app 相同的操作体验和流畅度
  • 易获取。支持扫码、微信搜索、好友推荐等发起场景
  • 低门槛。基于微信的生态。已有公众号的组织可快速注册、可快速生成小程序

Serverless 最佳实践:如何两周内开发出用户量过亿的微信小程序(开发一款微信小程序)

微信小程序的这些特性,能够与腾讯相册这类社交性工具完美结合。那么,这个小程序应该怎样设计?作为一名产品经理,我们想到了如下几个需求:

  • 基本能力:图片及视频获取、展示、管理、上传、下载、图片集
  • 社交属性:点赞、评论
  • 传播能力:分享
  • 用户规模:千万级
  • 上线时间:4 周。时间对于产品占领用户的心来说十分重要,因此,时间目标定了 4 周上线。

Serverless 最佳实践:如何两周内开发出用户量过亿的微信小程序(开发一款微信小程序)

需求明确之后,就是怎样用高效、快速并省成本的方式实现腾讯相册小程序。

腾讯相册小程序基于 Serverless 落地实践

传统模式开发流程

产品的开发需求非常明确,总结 4 个字就是“多快好省”。承载千万级用户的小程序,对后台架构的性能和稳定性要求非常高,如果有足够的时间和资源,这些都不是问题。但是想要在 4 周的时间内完成开发并上线,压力非常大。如果按照传统的开发模式下,这样一款小程序需要

  1. 项目人员准备:至少 1 个前端工程师,2 个后台工程师,加一个测试和 2 个运维
  2. 当人员 Ready 后,开始着手环境搭建,需要运维购买资源,如主机,数据库,负载均衡等,并协助部署运行环境、域名备案、搭建监控告警系统等。
  3. 环境 Ready 后,前端和后台开始开发,然后测试介入、运维完成线上部署,最后申请发布。

即使顺利的情况下,整套流程都很顺利的走完,也需要至少 8 周的时间,如果人员不到位,需要的时间更久。可以发现,耗时主要是在环境搭建和开发流程当中,而且人力耗费也在这一块。

Serverless 最佳实践:如何两周内开发出用户量过亿的微信小程序(开发一款微信小程序)

在开发流程这块,后端开发除了需要关注核心业务逻辑之外,还需要做框架选型,了解数据库和文件存储等。并且还需要耗费精力对性能进行优化,比如高并发。那么必然也要去了解底层的运行机制,比如容器服务。同时运维也要花大量的时间来保障安全和容灾等能力。

Serverless 最佳实践:如何两周内开发出用户量过亿的微信小程序(开发一款微信小程序)

因此,自上而下,对团队成员的专业技能要求越来越高。同时,花费的时间也越来越多。

环境和开发工作全部完成后,需要进行架构维护,不仅需要维护业务集群,还需要关注各个组件的稳定性。测试方面,除了产品功能验证外,还需要压测各个组件的性能。最后,还需要随时保障整个系统的稳定性和安全性。

Serverless 最佳实践:如何两周内开发出用户量过亿的微信小程序(开发一款微信小程序)

基于 Serverless 模式的开发流程

如果将刚才提到的和核心业务逻辑不相关的事情都交给微信和腾讯云,系统架构将会大大简化,而且能够节省不少人力。最终,只需要关注的只剩下小程序端 核心业务,整个开发流程将会变得无比简洁。通过 Serverless,这种想法可以得以实现。Serverless 其实是一种架构理念,他是把底层资源抽象成 API 的形式对用户提供服务。

Serverless 最佳实践:如何两周内开发出用户量过亿的微信小程序(开发一款微信小程序)

在去年年初,微信团队和腾讯云团队开始尝试将 Serverless 和小程序开发结合起来并提供一套小程序 · 云开发解决方案,这还要归功于 Faas 在国内的兴起。有了 Faas 之后,用户核心计算逻辑的承载平台真正实现了 Serverless 化。

Serverless 最佳实践:如何两周内开发出用户量过亿的微信小程序(开发一款微信小程序)

  • 首先云开发封装了用户需要用到的云函数、数据库和文件存储资源,开发不用再去关心环境问题;
  • 其次,从小程序端到云开发后台的请求,走的是微信和腾讯云之间的专线,并且用的是私有协议,所以用户也不用担心安全问题;
  • 最后,云开发整个后台提供了完善的监控和日志系统,也省去了运维同学的部分工作。因此,新的方案不仅省去了很多运维的工作,同时也有效的加速了开发流程。

Serverless 最佳实践:如何两周内开发出用户量过亿的微信小程序(开发一款微信小程序)

如何使用

新的架构或者方案具体该怎么使用呢?之前有提到,整个方案里最核心的是计算模块。当有用户在小程序端发起后台请求的时候,云函数平台会根据用户的请求量动态的伸缩实例,以保证用户的请求能够被及时响应,同时用户可以在云函数里发起数据库以及文件存储的读写操作。下图展示的完整架构是 Serverless 的具体表现形式。用户不再需要部署服务器,通过无服务器云函数即可实现核心业务逻辑。

Serverless 最佳实践:如何两周内开发出用户量过亿的微信小程序(开发一款微信小程序)

这一套基于 Serverless 的架构将会具备以下优势:1、无穷的弹性计算能力;2、让用户聚焦核心业务逻辑的编写;3、根据请求自动运行;4、秒级上传部署;5、几乎不需要运维运维。

Serverless 最佳实践:如何两周内开发出用户量过亿的微信小程序(开发一款微信小程序)

如何基于 Serverless 实现腾讯相册小程序开发

以最核心的社交功能为例。按照传统的开发模式,研发团队会面临几个挑战,运维人力,开发复杂度,历史包袱等。

Serverless 最佳实践:如何两周内开发出用户量过亿的微信小程序(开发一款微信小程序)

借助云开发的能力,架构设计将会变得非常简单。举个例子,按照传统的开发方式,需要花费大量的时间在框架路由设计和安全设计,以及后台的性能优化上面。而基于 Serverless 的方案,只需引用 SDK,就能直接 callfunction,运行业务代码。

Serverless 最佳实践:如何两周内开发出用户量过亿的微信小程序(开发一款微信小程序)

再来看下性能方面,根据现网的运行数据,发现无论波峰还是波谷,后台的响应延迟都在 70ms 以下。

Serverless 最佳实践:如何两周内开发出用户量过亿的微信小程序(开发一款微信小程序)

可以看到,对比传统的开发模式,需要大约 1 人 10 周的人力完成开发,而借助 Serverless,只需要 1 人 3 周就能完成基础开发和测试。因为,系统架构变的非常简单,并且和原有的空间后台完美兼容,极大的提升了开发效率。

Serverless 最佳实践:如何两周内开发出用户量过亿的微信小程序(开发一款微信小程序)

总结

对于公司 / 个人来说,通过云的 Serverless 架构开发微信小程序,有下面几个非常显著的优势:

  1. 加快了产品的迭代效率
  2. 稳定,高可用,弹性伸缩,完全不需要自己关心底层的运维
  3. 降低了资源的投入,这里包括了人力和财力

腾讯云 Serverless,可以助力微信小程序开发!用户后续在开发小程序,或者有任何想法需要快速落地时,可以想到采用 Serverless 架构来开发 ,非常的惊喜、简单。

本文转载自公众号 ServerlessCloudNative(ID:ServerlessGo)

点击“了解更多”下载讲师完整 PDF。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2024年5月9日 上午10:00
下一篇 2024年5月9日 上午10:11

相关推荐

  • 重磅!“北京房山”APP上线啦!(北京房山App)

    12月31日 “北京房山”APP正式上线 作为房山区官方手机客户端 方方今天给您好好介绍一下 “北京房山”APP都有啥 一段视频带您先睹为快 今天,“北京房山”APP 上线启动仪式…

    科研百科 2023年2月8日
    142
  • 保密科研项目 保密科研项目有哪些

    保密科研项目是指那些为了保护国家安全和公共利益而采取严格保密措施的科研项目。这些项目通常涉及到科学技术、政治、经济、文化等各个领域,并且可能会对全球政治、经济、社会产生重大影响。 …

    科研百科 2024年4月1日
    92
  • 科研项目分几类(科研项目整合成五大类)

    科研项目整合成五大类 随着科技的不断进步,科研项目也在不断发展。有些科研项目可能涉及到多个领域,有些科研项目也可能需要跨学科合作。为了更好地管理和整合这些科研项目,我们将其整合为五…

    科研百科 2024年4月4日
    176
  • 医学社会效益

    医学社会效益是医学研究的重要方向之一,通过对医学社会效益的探讨和研究,不仅可以更好地了解疾病的生物学和生态学机制,还可以为临床实践提供重要的参考和指导。 医学社会效益通常指医学行为…

    科研百科 2024年10月10日
    14
  • 廉政档案管理系统建设背景及功能简介(廉洁档案系统)

    廉政档案管理系统建设的背景是由于当前反腐败工作的严峻形势和社会对反腐败工作的要求而提出的。廉政档案管理系统的主要功能包括以下几个方面: 廉政信息管理:对领导干部的基本信息、家庭成员…

    科研百科 2024年6月14日
    46
  • 智慧工厂智能工厂(智慧工厂管理软件)

    智慧工厂管理软件:提升生产效率和质量的利器 随着制造业的不断发展和智能化的推进,智慧工厂已经成为现代制造业的一个必然趋势。智慧工厂管理软件是实现智慧工厂的重要组成部分,可以提高生产…

    科研百科 2024年8月30日
    30
  • 投资工程管理软件——基础服务平台(一)(工程投资管理是什么)

    投资工程管理软件。 编导:陈菲。 为实现公司业务流程系统化,加强对各部门间项目数据的统一管理。具体的基础服务平台包括:实现项目管理全过程无缝协同办公,及时准确核算项目的利润。由于项…

    科研百科 2024年4月24日
    89
  • 虹口四中心小学卢老师简介

    卢老师是虹口四中心小学的一名教师,也是学校的一名知名教师。他出生于一个普通家庭,从小就受到父母的良好教育和环境的影响,对教育有着浓厚的兴趣。 在他大学时期,卢老师开始从事教育事业,…

    科研百科 2024年10月26日
    3
  • excel怎么制作进度计划中的横线

    制作进度计划中的横线 在Excel中,我们可以使用横线来分隔不同的段落或项。制作进度计划中的横线可以帮助人们更好地组织他们的工作,并确保他们计划的进展符合预期。以下是一些步骤,可以…

    科研百科 2024年11月18日
    3
  • 济南交通:以高水平党建引领交通运输高质量发展(党建引领交通发展发言稿)

    记者 于泊升 2023年,济南吹响“拼项目”冲锋号,发出“拼发展”动员令,济南市城乡交通运输局全面贯彻落实党的二十大精神,紧紧围绕市委、市政府“项目突破年”各项部署,“铁陆空地水”…

    科研百科 2024年6月27日
    621