2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

大众点评容器云平台:运营超一年,承载大部分业务

  • 2015-08-10
  • 本文字数:2219 字

    阅读完需:约 7 分钟

Docker 容器的应用场景之一就是构建企业私有云平台,它简单、轻量的特点不仅可以降低私有云的构建难度,而且还能更高效的利用物理资源。同时,容器在安全性方面的短板恰恰因为私有云的应用场景而显得不再重要。但基于容器的私有云也有不少挑战,比如网络、监控、用户习惯等方面都需要有好的解决方案。大众点评在 2014 年 7 月就基于 Docker 搭建了私有云平台,目前平台承担了大部分的线上的业务,实例数 2800 个左右,Docker 物理集群 300 多台。InfoQ 记者采访了大众点评云平台首席架构师盛延敏,听他分享大众点评私有云平台实战过程中踩过的坑和经验教训。另外,盛延敏还将在 8 月 28 日~29 日举办的 CNUTCon 全球容器技术大会上分享题为《大众点评的容器私有云实战》的演讲,敬请关注。

InfoQ:点评是从什么时候开始使用 Docker 构建私有云平台的?未使用容器云之前,点评内部有基于其他技术搭建私有云吗?基于 Docker 的私有云会有哪些优势?有哪些挑战?

盛延敏:我们从 2014 年开始基于 Docker 搭建点评的私有云平台。原先点评的应用都是部署在 KVM 上的,大量重复性的操作耗费了运维同学不少的时间和精力,特别是扩容和缩容这块。所以就萌发了使用 Docker 搭建一个私有云平台的想法,借助云平台,将应用标准化,运维自动化。从目前使用情况来看,基本达到了原先设想的目标。

未使用容器云之前,点评内部谈不上使用过私有云。从实践来看,基于 Docker 的私有云可以带来更高效的物理资源使用率,更快的部署以及更加统一规范的标准化运行环境。较虚拟化云,其优势还是很明显的。关于挑战,我的主要体会是安全和规范,Docker 还不能做到完全的多租户环境,这一点对于安全敏感的企业级应用是一个不小的挑战。不过,对于私有云而言,这一点倒不是一个致命的短板。另外一个从实践来看,大家对于从 KVM 过渡到 Docker 的使用环境,使用习惯也是一个不小的挑战。举个例子,在 KVM 时代,应用上线前是一定要分配一些 KVM 实例的,这样可以加速应用上线发布的速度。到了 Docker 时代,Docker 可以支持实例秒级创建,是不是还一定要预先分配实例?这其实是一个使用习惯的问题。

InfoQ:你们的容器云平台使用了哪些开源的技术栈?

盛延敏:底层使用了 Docker,通过 Dockerfile、Docker Registry 统一管理应用的标准化运行环境。这一块是整个容器云的基石。
组件之间的交互使用了 NATS,通过消息的『发布 - 订阅』模型,将各个组件之间的耦合最小化。这也是参考和学习了 Cloud Foundry 公有云架构。

接入层使用了 Nginx 和 ZooKeeper,对于 Web 类型的应用,通过和 Nginx 暴露的 Restful 接口交互,完成实例在集群内的注册以及注销。对于服务类型的应用,通过在 ZooKeeper 上注册和注销服务 IP 和端口,便于服务客户端发现和更新该服务。

InfoQ:从我的理解来看,基于容器的私有云,需要用户了解 Docker 等技术,并且容器推荐的是使用微服务架构。那你们在内部推进这样的私有云是否困难?架构方面的问题如何解决?

盛延敏:你说的很对。所以我们从一开始就制定了合适的目标,其中最重要的是不要让用户感觉到 KVM 切换到 Docker 这个转换,在这个目标基础上我们做了大量的工作。比如,用户并不需要自己了解 Dockerfile,我们使用 Dockerfile 来定制应用运行的环境,如果需要更新运行时环境,也是由云平台团队来维护。如果你需要 Node.js 的环境,我们可以帮助定制一个 Node.js 的镜像。再比如,我们更改了 Docker 的代码,让其从推荐的微服务架构演变到目前的『虚拟机』架构。开发和运维可以通过 IP 直接访问到 Docker『虚拟机』,基于 IP 的应用基础架构也不需要开发和运维做剧烈的改变。通过这些方法,加上公司内部的支持,逐渐推动了私有云平台的加速建设。

InfoQ:目前有哪些业务跑在容器上了?怎么样的业务适合容器云?

盛延敏:基本上除搜索和数据库以外,点评现有的业务大多都有跑到容器上的。当然覆盖率还在提升当中。只要是可以标准化的业务,经过改造基本都可以跑到容器云上。当然这里面也有一些特殊情况,例如 IP 本身是不是对外暴露的,是否可以支持横向扩展等等。

InfoQ:监控、网络方面的问题是如何解决的?

盛延敏:监控点评有业绩比较有名的 CAT(Central Application Tracking),所以我们的监控也是接入 CAT 的。通过收集 CGroups 和 Docker 实例的实时信息,将内存、CPU、网络等源源不断的上报到 CAT。再由 CAT 提供查询,检索和展示。当然,也支持告警。

关于网络,主要是采用了 Linux bridge 工作在 level 2 的模式,使公共 IP 得以暴露出来,这部分我们是做了定制的。

InfoQ:目前私有云的有哪些基础功能?可以做什么,不可以做什么?接下来有什么规划?

盛延敏:主要的基础功能包括实例的创建和销毁、缩容和扩容,和 DevOps 工具集成等等。接下来会把精力放到整个平台的演进上,包括模块的进一步拆分,新的镜像的支持,和运维工具 Puppet 的集成等等。

InfoQ:这么长时间的应用,有做过复盘吗?未来有什么计划?

盛延敏:我们还是复盘过的,其实我们自己觉得也比较幸运,刚开始决定做 PaaS 的时候,正是 Docke 技术出现并繁荣的时候,在 Docke 上构建整个私有云平台是一个比较明智的决定。更早一点的话,说不定就使用 LXC 或者 Warden 了。未来的计划还是跟公司的业务需求紧密结合,最大能力的发挥 PaaS+Docker 的威力。

InfoQ:你将在 CNUTCon 上分享哪些内容?

盛延敏:上述的内容都会有涉及到。另外,还有大量我们的『干货』分享,都是我们曾经踩过的坑哦。欢迎大家捧场。谢谢!

2015-08-10 08:396670
用户头像

发布了 219 篇内容, 共 150.5 次阅读, 收获喜欢 195 次。

关注

评论

发布
暂无评论
发现更多内容

在线TOML转YAML工具

入门小站

工具

虎符宣布开启平台币回购计划 HOO应声大涨20%

区块链前沿News

Hoo虎符 Hoo 虎符交易所 虎符平台币

2021 大促 AntMonitor 总结 - 云原生 Prometheus 监控实践

SOFAStack

云原生 分布式架构 SIGMA

剖析CWE视图的层次定义和解析方式

华为云开发者联盟

存储 视图 cwe CWE节点 CWE视图

2022 福虎芯旺 | 旺链科技新春线上年会回顾

旺链科技

区块链 产业区块链 年会

学生管理系统架构设计

孙强

架构实战营

SQL基于时间的盲注过程

喀拉峻

网络安全

Flink 实现 MySQL CDC 动态同步表结构

腾讯云大数据

flink 源码 流计算 Oceanus

从重大漏洞应急看云原生架构下的安全建设与安全运营(下)

腾讯安全云鼎实验室

云原生 安全漏洞 容器安全 安全服务

虎啸龙吟之国产数据库风云榜-2022年01月

墨天轮

数据库 国产数据库

☕【Java深层系列】「并发编程系列」让我们一起探索一下CountDownLatch的技术原理和源码分析

码界西柚

Java 并发编程 jdk8 1月月更

恒源云(GPUSHARE)_【Object Detection 20年】小结

恒源云

深度学习 计算机视觉 目标检测

从交换机安全配置,看常见局域网攻击

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

介绍一种在ABAP内核态进行内表高效拷贝的方法,和对应的Java和JavaScript版本的伪实现

汪子熙

Java JavaScript abap 1月月更

2022年运维工程师必备利器-云管平台

行云管家

云计算 运维 云管平台 2022

Think in Mingdao——人人都是全栈工程师

明道云

源码深度剖析:Eureka与Ribbon是怎么做服务发现的?

碌碌无为小码农

Java 架构 程序人生 编程语言 经验分享

你会几种读取/加载 properties配置文件方法

华为云开发者联盟

Java 开发 ClassLoader properties 配置文件

深入浅出 Apache Pulsar(5)Pulsar Connectors

云智慧AIOps社区

Java kafka 云原生 消息中间件 Apache Pulsar 消息系统

基于esbuild的universal bundler设计

字节跳动终端技术

json 字节跳动 前端 火山引擎 lynx

WGCLOUD和zabbix、prometheus(普罗米修斯)有什么区别

王逅逅

服务器部署 运维平台 zabbix Prometheus linux security

超赞:不愧是“阿里内部Redis学习笔记”从头到尾,全是精华

碌碌无为小码农

Java 面试 程序人生 编程语言 经验分享

写给Android开发者的芯片知识

轻口味

人工智能 android 行业资讯 芯片 1月月更

鸿蒙轻内核源码分析:Newlib C

华为云开发者联盟

鸿蒙 内核 LiteOS-M Newlib C Newlib

云平台和云管平台的三大区别详细解析-行云管家

行云管家

云计算 云服务 云平台 云管平台

多协议接入框架 xRPC 发布在即,为你解读更多 APISIX 生态细节

API7.ai 技术团队

后端开发 api 网关 后端技术 后端数据

Linux之grep命令

入门小站

Linux

ReactNative进阶(三十三):Mac 下 homebrew 的安装和 brew 命令的使用

No Silver Bullet

homebrew React Native 1月月更

做了5年后端研发,靠着这份面试题跟答案,我从12K变成了30K

碌碌无为小码农

Java 架构 程序人生 编程语言 经验分享

书单 | 致敬计算机视觉领域经典著作!

博文视点Broadview

【架构训练营模块一作业】微信业务架构图 & 学生管理系统

yhjhero

架构实战营

大众点评容器云平台:运营超一年,承载大部分业务_服务革新_小盖_InfoQ精选文章