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