陌陌架构分享

2015年4月28日 | 分类: 【技术】

享地址: http://www.infoq.com/cn/presentations/momo-mobile-development-technology-share
听陌陌CTO李志威同学讲陌陌的技术发展历程,有一些启发和思考以记之。
(1)前期技术选型时,尽量用业界已有的通用和成熟技术,以避免自己闭门创车和重复发明轮子,这对于一个创业团队尤为重要!
(2)Redis+MongoDB的存储系统,为后续灵活扩容和性能支撑提供保障;
(3)选用“云”主机,可以避免前期没有专业运维人员和DBA的烦恼;
(4)用扛住,后优化的思维;
(5)衡量代码质量的中心指标是代码的可读性和可维护性,以及设计是否够简单;
(6)自动监控和报警是运维必不可少的环节;
(7)一键部署与持续集成工具的运用;
(8)移动化的运维,即用手机要查看服务器的各种监控信息,如:Redis队列,各类用户统计数据等等,个人认为这是运维工作的一个很好创新;
(9)应用supervisor来管理所有服务器后台进程;
(10)用“重启”这种看似偷懒的做法,来解决部分实际中遇到的问题;

(11)使用Ganglia来监控服务器集群的各项性能指标,如:cpu 、mem、硬盘利用率, I/O负载、网络流量等;
(12)使用fabric来管理批处理任务,以方便自动化部署;
(13)使用puppet自动化配置和部署系统;
(14)一台新服务器自动上架和部署的全过程如下:
1)供应商送到机房,按我们的布线方案上架
2)使用远程装机,10分钟
3)使用Puppet自动同步一切配置
4)使用yum安装自定义配置打包的服务
5)使用Supervisor管理所有服务进程
6)加入到Nagios、Ganglia、自定义监控
(15)工程师移动运维时所做的工作如下:
1)无聊时查看最新的用户注册情况、系统状态
2)手机上线代码
3)上线服务后通过手机查看数据、队列、服务器负载是否正常
4)户外用手机重启服务