公司BlaBlaCar 位置法国巴黎 行业随意组合公司

挑战

世界上最大的长途拼车社区,BlaBlaCar,连接来自22个国家的4000万名成员。公司自2012年以来经历了指数增长和基础设施需要跟上。“当你考虑服务器的数量翻倍,你开始思考,“我应该做些什么更有效率呢?”西蒙Lallemand BlaBlaCar基础设施工程师说。“答案是不雇用越来越多的人来处理服务器和安装。”The team knew they had to scale the platform, but wanted to stay on their own bare metal servers.

解决方案

选择不转向云计算虚拟化或使用私有云在自己的服务器上,BlaBlaCar团队成为集装箱化的早期采用者,使用CoreOs运行时rkt,最初部署使用舰队集群管理器。去年,该公司转向Kubernetes编制,现在也使用普罗米修斯监控。

影响

“之前使用容器,有时需要一天,有时两个,只是创建一个新的服务,“Lallemand说。“所有的工具,我们周围的容器,复制一个新的服务现在是几分钟。这真是一个巨大的收获。我们是更好的在我们的数据中心的容量规划,因为我们有更少的限制,由于这种抽象之间的服务和我们的硬件上运行。对于开发人员来说,这也意味着他们可以只关注他们正在开发的功能,而不是基础设施。”

的4000万用户BlaBlaCar,很容易找到陌生人朝着同一个方向分享骑和成本。你甚至可以选择你想从多少“bla bla”喋喋不休骑长途的伴侣。

在幕后,基础设施落后严重骑手社区的指数增长。成立于2006年,公司目前触及跨步2012左右。说:“我们的基础设施是非常传统的基础设施工程师西蒙Lallemand,他在2014年开始在该公司工作。”一开始,有点混乱,因为我们不得不尽快(成长)。但随后而来的时候,你必须设计使其易于管理的事情”。

到2015年,该公司约有50个裸金属服务器。团队使用MySQL数据库和PHP,但Lallemand说,“这是一个静态的方式。”They also utilized the configuration management system,厨师,但没有自动化的过程。“当你考虑服务器的数量翻倍,你开始思考,“我应该做些什么更有效率呢?“Lallemand说。“答案是不雇用越来越多的人来处理服务器和安装。”

相反,BlaBlaCar开始进行旅行但不确定路线。“我们可以决定去云虚拟化甚至使用私有云在我们自己的服务器上,“Lallemand说。”,但进入云意味着我们不得不做出许多改变在我们的应用程序的工作,我们只是不愿从前提云。”They wanted to keep the great performance they got on bare metal, so they didn't want to go to virtualization on premise.

解决方案:集装箱化。这是2015年初和容器仍然相对较新。“这是一个大胆的举动,“Lallemand说。“我们决定下一个服务器,我们将购买新的数据中心都是相同的模式,所以我们可以外包服务器的维护。我们决定去与容器和CoreOS容器Linux作为一个抽象的硬件。似乎不会过时和容器,因为我们可以看到公司已经做什么容器。”

接下来,他们需要选择的运行时容器,但“有很少部署在生产环境中,“Lallemand说。他们尝试了码头工人但决定使用rkt。Lallemand BlaBlaCar解释说,“更简单集成rkt东西。”At the time, the project was still pre-v1.0, so "we could speak with the developers of rkt and give them feedback. It was an advantage." Plus, he notes, rkt was very stable, even at this early stage.

一旦这些决定是那年夏天,实现公司想出了一个计划。首先,他们成立了一个专责小组创建一个工作流,将由三个测试10 Lallemand的团队成员。但是他们照顾经营定期研讨会与所有10个成员,以确保每个人都在船上。“当你专注于你的产品有时你真的忘记如果它是用户友好的,别人是否能设法创建容器,”Lallemand说。“我们做了很多迭代找到一个好的工作流程”。

建立工作流后,Lallemand微笑着说,“我们有这种奇怪的想法,我们应该首先尝试最困难的事情。因为如果成功的话,它将为一切工作。”So the first project the team decided to containerize was the database. "Nobody did that at the time, and there were really no existing tools for what we wanted to do, including building container images," he says. So the team created their own tools, such asdgr,建立集装箱图片,这样整个团队有一个共同的框架来构建在同一图像相同的标准。他们也修改了服务发现的工具神经突触;他们的版本,Go-NerveGo-Synapse,用去建造更有效,包括新特性。所有这些工具都是开源。

与此同时,该公司正在努力将其整个平台迁移到容器设置截止日期为2015年的圣诞节。与所有的工作并行进行,BlaBlaCar能够得到约80%的生产与生活交通运行在容器的截止日期在12月的容器。(现在是100%)。“这是一个非常繁忙时间交通,“Lallemand说。“我们知道,通过使用这些新服务器和容器,它可以帮助我们处理交通。”

在旺季拼车,一切运行良好。“我们有最大的影响是部署新的服务,“Lallemand说。“使用容器之前,我们必须首先部署一个新服务器和创建配置与厨师。有时需要一天,有时两个,只是创建一个新的服务。和所有的工具,我们在容器,复制一个新的服务是几分钟。所以这是一个巨大的收获。对于开发人员来说,这意味着他们可以只关注他们正在开发的功能,而不是基础设施或小时他们将测试他们的代码,或者一个小时,它将部署。”

为了满足自我的最后期限,他们做出的一个决定就是不做任何“编排魔法”对齐容器的生产。相反,他们使用的基本舰队工具从CoreOS部署他们的容器。(他们并构建一个工具GGN他们已经开源,使它更容易为他们的系统工程师使用。)

不过,球队知道他们想要更多的编排。“我们的工具做了一个很好的工作,但是在某一时刻你想给开发者团队更多的自治权,“Lallemand说。“我们也意识到,我们不想成为单点联系开发商当他们想推出新服务。”By the summer of 2016, they found their answer inKubernetes,刚开始支持rkt实现。

讨论他们的需求和他们接触后CoreOS和谷歌,他们相信Kubernetes BlaBlaCar工作。“我们意识到,有一个真正强大的社区,这意味着我们不会维护我们自己的很多工具,“Lallemand说。“如果我们能够更好地服务于一些大的项目像Kubernetes。”They also started using普罗米修斯他们正在寻找“面向服务的监控,可以每晚更新。”Production on Kubernetes began in December 2016. "We like to do crazy stuff around Christmas," he adds with a laugh.

BlaBlaCar现在有大约3000个吊舱,其中1200 Kubernetes上运行。Lallemand领导一个“基础团队”照顾的25个成员网络,数据库开发人员和系统约为100。有一些挑战这一点。“rkt实现仍不完成100%,“Lallemand指出。“这是很好的,但是有一些功能失踪。我们有问题我们如何做事有状态的服务,如数据库。我们知道我们将迁移的一些服务;其它的一些更复杂的处理。但Kubernetes社区赚了很多部分的进展。”

团队特别开心,他们现在能够计划能力更好的在公司的数据中心。“我们有更少的限制,因为我们之间有一个抽象服务和硬件上运行,“Lallemand说。“如果我们失去了一个服务器,因为有一个硬件问题,我们只是容器移动到另一个服务器上。这是更有效。我们通过改变配置文件中的一行。Kubernetes,应该是自动的,所以我们将会无事可做。”

这些进步并最终渗透到BlaBlaCar的用户。“我们已经改善整体可用性在我们的网站上,“Lallemand说。“当你切换到这原生云模型运行在容器内的一切,你必须确保你可以在任何时候重新启动服务器或一个数据容器没有任何停机时间,在不损失流量。所以现在我们的基础设施更有弹性,我们比以前有更好的可用性。”

BlaBlaCar内的技术部门,原生云之旅已经创建了一些深刻的变化。Lallemand认为在概念阶段定期会议和培训课程在实施帮助。”之后,每个人都参加了迁移过程,”他说。“然后我们组织划分成不同的“部落”团队,收集开发人员、产品经理、数据分析师,所有不同的工作岗位,工作在一个特定产品的一部分。之前,他们组织的功能。这个想法是为了让这些部落访问基础设施直接自助的方式,而不必问。这些人真正自治。他们的责任,产品的一部分,他们可以更快的做出决定。”

这个DevOps变换变成一个积极的为公司的一名职员。“团队对DevOps转换非常兴奋,因为这是新的,我们努力使事情更可靠,更不会过时,“Lallemand说。“我们喜欢做的事情很少人在做什么,除了互联网巨头。”

这些变化已经产生影响,BlaBlaCar希望分手了越来越多的应用到服务。“我不要说microservices因为他们不微,“Lallemand说。“如果我们能把开发团队之间的责任,这将是更容易管理和更可靠的,因为我们可以很容易地添加和删除服务如果一个失败。您可以轻松地处理它,而不是添加一个庞然大物,我们还有。”

Lallemand其他欧洲公司说话的时候好奇BlaBlaCar所做的基础设施,他告诉他们来。“我告诉他们,很高兴我们今天处理的基础设施相比,我们之前,”他说。“他们只是需要记住他们真正的动机,无论是在开发或可靠性灵活性,然后一步一步达到这些目标。这是我们所做的。重要的是不要做技术的技术。为了一个目的。我们的重点是帮助开发人员。”

Baidu