约半年前,美团悄然上线了美团云(Meituan Open Services,简称MOS),这是美团网根据自身虚拟化平台开发和运维经验开放的云计算服务,类似AWS。
美团 CEO 王兴可能是中国最知名的连续创业者,曾创办校内和饭否。2010年创办美团,从社交网络转向电子商务。其背后的思路却一脉相承:利用人际关系传播信息。恐怕没有人会想到美团会涉足云计算服务,但在王兴看来,美团云的推出是一件自然而然的事情。
很多人认为团购业务对技术要求不高,主要是线下的谈判推广。然而,给人感觉像是硅谷技术出身的王兴却主张,很多时候技术是决定性的。美团能够在那么多团购网站的竞争中胜出,和技术的领先有非常大的关系。团购业务非常分散,全国各地那么多城市、每个城市的情况如何、竞争对手在当地的份额和增长趋势如何、给消费者的推荐、给商家提供的服务……在这些问题上,技术都起着关键的作用。美团内部自主开发的业务、销售系统大大提升了公司运营的自动化水平,为美团的高速发展提供了良好的支撑。例如团购商家结算自动化:一旦符合付款触发条件系统会自动付款。快速、准确、高效而且不需要人工干预。而有些竞争对手是手工完成这一流程的,需要近百人的队伍。
为了满足生产环境和研发测试环境的需要,为了更有效地利用计算资源、更方便地部署运维,技术为先的王兴推动了虚拟化平台的开发。这个虚拟化平台支撑了美团整个业务,同时发现其他公司也有类似需求,就拿出来对外了。
王兴认为云计算毫无疑问是未来的方向,而且中国要有自己的云计算:“我早几年跟朋友说,就像19世纪末如果你到国外去,发现他们有蒸汽机车而中国没有, 这是根本无法竞争的。”在王兴看来,云计算平台有力的支撑了美团的业务,基础技术越做越好。那么把富余的资源开放出来,又没有太多额外成本,何乐而不为呢?
经过半年多的持续改进,美团云的各项功能已经基本完善,科学松鼠会、Clover 四叶新媒体、雪球等知名网站都使用了美团云,从社区、SNS等处用户的评价也可以看出,美团云的口碑相当不错。SegmentFault 访谈了美团云,希望能帮助更多的开发者了解美团云,选择适合自己的云服务。
SegmentFault: 国内云服务商已经很多了。比如阿里在内核开发、scalability 等方面都有很不错的技术积累。美团云的定位是什么呢?或者说,美团云如何避免同质化竞争?
美团云: 美团云的定位是外化美团快速发展过程中的技术积累和底层基础设施。通过自身高业务量压力检验过的底层平台,为对基础设施有需求的创业团队、互联网公司、传统ISV等提供稳定可靠、高性价比、靠谱专业的技术服务。有个细节是,我们的客服都由工程师担任,以便快速定位和解决用户问题。
SegmentFault: 美团云的客服都由工程师担任,这是一个很大的优势。之前也有在知乎上看到用户评价“邮件回复速度和专业程度都很赞”。当云服务遇到问题的时候,能和靠谱的工程师直 接沟通,可以大大提高解决问题的效率。刚才你提到美团云是外化美团的技术积累和底层基础设施,这么说美团自己的团购等业务系统也在美团云上?
美团云: 美团团购等业务系统都在美团云上面持续稳定运行两年多。基础设施分三部分:支撑美团团购等业务的私有云平台,支撑美团云的公有云平台,支撑内部RD开发测试的办公云平台。三个云平台均是同一套底层系统,设计层面大体一致。因为面对业务不同,私有云和办公云没有计费、网络隔离等用户相关的模块。
SegmentFault: 网络隔离是为了保障安全吧。云计算的安全非常重要。美团云采取了哪些措施保证安全?
美团云: 我们基于OpenFlow/SDN技术实现了共享网络下的二层网络隔离机制。一个用户名下的虚拟机之间能内网互通,而不同用户的虚拟机之间完全实现二层网络隔离,同时网络隔离机制对用户透明。用户无需关心虚拟网络的配置,虚拟机创建成功后就自动生效。
SegmentFault: 美团云使用的虚拟化技术是KVM?这个选择有哪些考量呢?
美团云: 美团云使用的虚拟化技术是KVM 。在美团云开放之前,美团经历过从物理机到Xen再到KVM的架构迁移,主要从性能和社区本身支持程度来考量。KVM 有 Redhat 的支持且已经进入Linux Kernel主代码树,我们通过验证认为这是一个成熟可靠的解决方案。
SegmentFault: 美团云在 OpenStack 的基础上做了很多定制?
美团云: 美团云除了 OpenStack 的 keystone(身份认证)、glance(镜像存储)和swift(对象存储)模块,其他所有组件(包括计算、网络等)均为自己开发。美团云考察 OpenStack 时,它的发展还处于相对比较早期的阶段,所以只借用了其中一部分组件。整体上约 20% 直接使用,约80%则是自主开发。
SegmentFault: 看到美团云的API提供了 Python 的 SDK/客户端。网站和控制面板也是 Python 写的?美团选择 Python 是基于哪些考量?
美团云: 美团云的整体框架基于 Python 编写,所以先提供的是兼容 AWS EC2 API 的 SDK(RESTful的API可以使用常见语言实现),后续根据用户需要会有其他语言的 SDK。网站和控制面板则是使用 Django & BootStrap 构建。Python 是美团系统运维团队的主力开发语言,所以算是顺其自然的选择吧。
SegmentFault: 美团云的 API 用起来很方便,不过好像没在 API 看到备份的接口?有计划推出这方面的功能么?
美团云: 美团云底层采用 Raid10 以保障物理机的数据安全,用户层面目前没有备份的接口(包括API)。我们建议有此需求的用户在内网开启不带公网IP和外网带宽的服务器,定时做数据备份。另外,我们后续会推出每个账号一定额度(比如2-3个)的 snapshot 备份的功能。
SegmentFault: 期待 snapshot 备份。美团云支持的 Linux 发行版比较新(Ubuntu 12.04、Centos 6.4、Debian 7.0),不会因为软件源老旧而导致软件安装困难。有内网源,更新也非常快。因此,在美团云上安装软件、部署应用非常方便快捷。不过如果有一键安装应用功能,可能会更方便。以后有计划提供么?
美团云: 一键安装应用的方式在 AWS 上面称为 market place,这方面我们目前在尝试解决,也与一些SaaS提供商讨论过合作。2014年上半年有计划做一键安装应用的功能。
SegmentFault: 美团是一家工程师文化很浓郁的公司。可以谈谈这方面的情况么?
美团云: 举几个例子吧。第一个:工程师标配 Macbook Pro 、27 寸的大屏幕高清显示器,另有专业的人体工学椅。我们没有着装限制,也支持弹性工作时间,工程师可以自行安排上下班时间。第二个,团队文化方面我们推崇学习、相信技术的力量。我们有技术委员会和美团技术学院等虚拟团队、有内容丰富全面的培训分享活动、有技术部图书馆、不定期举办的 Hackathon等。第三个,美团云团队全部由工程师组成,即使是市场合作、产品设计工作也由工程师负责。项目管理根据团队和产品或业务的需求而定,比如前端产品可能会快速迭代,底层产品则兼顾稳定性和产品迭代速度。其他一些细节:我们有很高的机械键盘普及率,很多同事有 Github 或其他平台的开源项目。从业务及市场数据看美团已有一定体量,但我们仍然定位在创业团队,以创业的方式和理念纵情向前。
如发现文章有错误、对内容有疑问,都可以关注美团技术团队微信公众号(meituantech),在后台给我们留言。
分享一线技术实践,沉淀成长学习经验