2012年Blued上线,正值移动社交火爆之时,由于Blued极具中国同志特色,大大填补了国内这一垂直领域的空白,很快赢得了大量用户的青睐,上线以来一直维持着用户量、在线时长的稳定高速增长。从诞生至今,Blued很快经历了十万、百万、千万的访问级别,从最早的Web到数据库的简单架构,快速成长为集群化高可用架构,这正是Blued和UCloud工程技术团队联手打造的成功。
Blued是一款基于地理定位的交友程序,与国外流行的Grindr和Jack'd类似。大约70%用户每月至少登录一次Blued,1/4用户每天都会登录。2014年,Blued的团队已经扩张至 30人而Blued注册用户已超过200万人,并于2014年2月获得了千万元融资。
初创团队各种人才都是紧缺的,所有研发力量都必须用在刀刃上,解决方案必须尽可能简单可靠,还要保证在用户高速增长过程中保持足够的灵活性、稳定性和服务质量。而对于初创团队,由于初期服务容量很小,难得有运维人才加入;但当面临高速增长时,缺乏运维人才带来的技术瓶颈对工程技术团队来是也是最煎熬的。
“云平台服务所提供的解决方案凝结了大量优秀运维人才的长期经验,这无疑对于我们这种初创团队来说帮助是巨大的。将底层的难题统一交给更专业的人,是云服务能够如此便捷的最重要原因之一。那么及时有效快速响应就显得必不可少。UCloud为Blued专门建立了7x24小时的服务小组,任何时候都能提供及时的咨询响应。不仅如此,在遇到一些紧急问题的时候,也能非常及时地主动通知我们,提前做好相应的预案。”Blued CTO Calvin 这样向我们阐述道。
目前Blued有数十台云主机,完全基于UCloud底层服务搭建起具备高可用性的服务架构——而到目前为之,Blued团队依然只有3位服务端工程师,包揽了服务端开发、运维在内的一切工作。
看看Blued是如何做到的。
1.如何为“三高”产品快速搭建稳定底层架构?
Blued是高访问量、高数据流、高交互性质的“三高”产品,因此需要坚固稳定的集群底层进行维护和支撑,不能容忍单点故障。因此,我们一开始就选定了CPU密集型、大内存、高I/O三类主机配置;我们的集群并不是一开始就拥有数十台云主机来搭建底层集群,这样对我们的成本压力很大,因此一个快速扩容的弹性架构非常重要。如何做到快速?我们把每一类服务都做好镜像,可以通过实现制作好的镜像快速在集群中添加服务器,实现分钟级的服务扩容;此外,通过镜像功能,集群中单主机服务故障时可以也可以快速新增节点替换故障节点;
事实上,Blued在初期确实经历过服务单点不可横向扩展的阶段,那时最快的解决办法是升级主机配置,UHost主机的CPU、内存、磁盘扩容非常简单快捷,几乎感觉不到服务中断。
2.如何让网络层拥有“灵活”性?
对国内移动应用开发者来说,移动服务与传统互联网的最大不同就是网络运营商的变化,以及由此带来的访问速度问题。我们选择了BGP机房,经过实地测试,2G/3G网络下的访问速度相比传统双线机房提升近20%;灵活设置的防火墙省去了逐台配置IPTables的繁琐,运维效率大大提升了;大量内容带来的带宽上升,Blued启用“共享带宽”通过叠加“带宽包”实现带宽的灵活快速扩容。
3. 如何用简单的方法解决“安全、可靠”问题?
Blued在使用“共享带宽”后,所有服务器外网IP都转为弹性IP(EIP),我们使用了3个Nginx节点进行后端服务的流量接入和负载均衡,通过EIP绑定Nginx接入节点,可以做到无需调整DNS即可更换出现故障的接入主机。此外EIP接入对灵活应对网络攻击非常有帮助,譬如遇到部分用户无法访问某一IP的情况(如网络封禁等),可以先换IP再做追查;高可用性也可以通过EIP来实现,譬如单台服务故障,可以先新建服务重新绑定EIP,实现服务快速恢复,接下来再查问题。Blued同时也使用了内网弹性IP,作为内部分布式队列的快速切换方案。
3.怎样的方案能解决“高数据流”的问题?
Blued将关键的核心数据运行在UDB,数据库集群,快速增加从库,快速升级配置,可视化操作实现从库提升主库;而UMem构成的NoSQL存储支持大部分Redis协议的方案使得我们可以利用Redis高效的数据结构存储的同时,还节省了运维成本;
此外,高性能I/O磁盘对高速用户增长带来了大量的新增图片上传非常有用。通常,每个用户每次刷新会查看20-40张缩略图,如此频繁的访问,使得磁盘I/O非常容易成为瓶颈,因此针对图片这种频繁读写小文件的应用场景,高性能I/O磁盘对于整体性能帮助非常大。
云平台带来的还有更多
“透过灵活使用云平台服务,我们真正实现了网络层、前端服务层、后端服务、存储都能够灵活可插拔、可扩展,实现真正的高可用性。对于创业者来说,成本是很重要的考虑因素。创业者不仅要关注采购、人力所产生的实际成本,也需要关注服务运维、技术研究、问题解决等带来的附加时间精力成本,而后者往往是隐形的、难以衡量、代价高昂的。降低隐形技术成本的关键因素,是选择经过实践检验的解决方案。我们在发展过程中考虑过众多时下新技术,但最终却是一个简单的选择——UCloud服务所具备的高度可运维性和优质的服务,在和阿里云和腾讯云的比较重中“独树一帜”,这是我们所看中的。”Blued Calvin