如何用腾讯云快速开发一个陌生人社交app

B18是一个面向中学生的陌生人社交应用。简单来说,它是一个只允许中学生注册的“陌陌”。

它是一个初创的社交应用,前期以快速的功能迭代开发为主,尽可能的降低开发成本、时间成本,验证市场。要达到这个目的,我们团队尽可能的使用现成的第三方服务,挤压时间来对开发核心功能。

云计算高速发展的这几年,IaaS、SaaS雨后春笋般涌现,为应用开发团队提供了各种各样的云服务。怎么从众多的云服务商中选出最适合的一个?

我们选用腾讯云,来作为我们后端服务的根基:

一是腾讯产品的浓厚社交基因,跟我们陌生人社交的产品基因吻合的,众多腾讯自己的社交产品都使用腾讯云;二是腾讯云提供了众多社交产品所需要的功能解决方案,如云通信、短视频、直播等;三是根据团队研发人员过往的云产品使用经验,腾讯云在IO性能、稳定性方面有更为卓越的表现。

我们的后台服务开发过程中,除了核心功能逻辑是由自己开发团队实现外,数据库、数据分析、域名、监控、聊天、社区等等环节,我们都利用了腾讯云云服务来加速我们的产品部署。

整体技术架构

B18初期产品技术架构.png

我们的服务器逻辑,使用PHP语言,因为其具有轻量、开发快、易部署运维的特点。它的单进程单线程编程模型大大降低了软件开发的复杂度,对于初创团队而言,还能用相对低廉的价格招聘到适合的工程师。

其中数据存储的环节上,MySQL、Redis、Memcached、对象储存,我们全部都利用了腾讯云的相关数据服务产品。因为根据我们的经验,数据管理,是产品运维中一个比较折腾的点,要做好数据管理相关的性能、监控、备份、回档、扩容、分布式等等环节,是相当不容易的一件事。所以我们使用了腾讯云提供的数据服务,降低“趟坑”的可能性。

选购云主机很容易陷入一个误区,就是一开始就选用一台性能牛逼的云主机,每个月在云主机上就投入了不少金钱。相对于其它主流语言如C、Java,虽然PHP的执行性能并不好,但是它简单轻量,非常适合进行Web开发,部署非常简单。考虑到以后假如遇到并发问题了,利用负载均衡,我们只需简单的增加一台逻辑服务器即可。由于数据服务是剥离的,云主机本身仅仅是进行PHP语言的执行工作,一开始我们可以选购一台低价的云主机即可。

核心功能模块

地理位置定位

作为一款陌生人社交应用,其最核心的功能非“附近的人”莫属了。技术上怎么高效的实现附近的人?比如说怎么快速的找出附近的人? 难道使用SQL数据库筛选出所有用户,并分别获取它们的经纬度进行距离计算?

我们的地理位置定位,使用了geohash算法:用字符串来表示经纬度两个坐标。geohash表示的并不是一个点,而是一个矩形区域。

比如某个经纬度,转化成的字符串是wx4g0ec19,我们要找到这个经纬度附近的人,使用SQL语句 'LIKE wx4g0ec%'来高效的进行附近的人筛选。

图像服务

社交应用,有大量的用户上传照片。在云服务广泛应用之前,开发人员自建文件服务,还得自己购买硬盘,不但价格高昂,还有各种各样的运维问题需要解决,比如,机械硬盘到达生命周期结束怎么办?备份的工作怎么进行?

使用云存储,就有很多好处,价格低、易扩容、稳定安全,还可以轻松跟CDN(内容分发网络)配合,提升用户客户端下载图片的速度,优化用户体验。

数据服务

前面总体架构提及过,我们的数据服务,均使用云服务,而不是自己搭建。那么,我们分别用这些数据服务,做一些什么事情?

关系数据库 MySQL

MySQL数据库是整体社交app的数据重心,重要、基础的数据都储存在里面,比如用户信息、用户地理位置。

云存储 Redis

Redis云存储,保存一些次要、周边的功能系统,比如说用户之间的拜访记录、点赞记录等。要注意的是,很多时候Redis与MySQL配合,是作为缓存的角色出现的,而我们这里Redis是作为数据库。

弹性缓存 Memcached

Memcached主要是作为缓存服务,做性能优化。比方说,“获取附近的人列表”,是一个很消耗数据库性能的计算,因此每一次计算,我们会把附近的人列表,保存成一段时间的缓存,来防止用户不停的刷新附近的人列表来大量消耗服务器性能。

短信验证码

现在一款手机应用,通过手机号码验证码验证进行注册的方式几乎成为了标配。因此我们使用腾讯云的短信服务,来实现验证码功能,每条短信几分钱。

云通信

既然是社交应用,聊天功能怎么能少?自研一个聊天系统,可谓一个浩瀚的工程。能不能直接使用像QQ、微信一样的聊天系统来为我服务? 腾讯云的云通信,就是这样的一套强大的SDK。

经验分享

前面的这些技术架构选型,离不开一个“”字。 不光技术上如此,我们的产品和团队管理同样也基于“快”的原则做过一些尝试。

产品设计原型

我们使用Axure RP进行App的原型设计。 好的原型设计,能让美术和客户端更快的完成他们的工作,比满口的空话、满屏的文字来得实在得多。

团队管理软件

目前我们的团队成员,有异地办公。 怎么确保工程进度完成,团队协作工具必不可少,总不能老是把各种文档通过QQ传来传去吧?

我们探索过teambition, quip等协作工具,考虑到小团队的敏捷性,最终我们还是选用最简单的方法,就是直接用上了OneNote云共享笔记。

Docker开发环境应用

在以往,开发、运维环境不一致,是一个开发人员、运维人员很头疼的问题。Docker的出现解决了这个问题,我们开发人员,使用Docker来搭建整个逻辑服务器的开发环境,诸如PHP、Nginx等软件的版本,是跟生产环境完全一致的,来避免踩坑。

未来

现阶段我们的产品还属于初期,快速的功能开发、扩充业务为主要目的。我们广泛应用的腾讯云云服务,为我们减少了大量的金钱、时间成本。

随着业务发展,我们计划未来会更多的利用腾讯云其它云服务,比如机器学习、消息队列、直播方案、短视频方案等。这些都是我们未来产品发展所需要利用的功能。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容