阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

Google 的所有应用都运行在容器中

  • 2014-06-16
  • 本文字数:1343 字

    阅读完需:约 4 分钟

Google 现在已经使用容器来运行它们集群中的所有应用,每周会启动超过 20 亿个容器。

Google 云平台的高级软件工程师 Joe Beda 在 Gluecon 上做了一个关于 Google 如何使用 Linux 容器技术的报告。他在报告中声称现在 Google 所有的应用都是运行在容器中的。这导致的结果就是 Google 每周要启动超过 20 亿个容器,每秒钟要启动超过 3000 个容器,这还不包括那些长期运行的容器。

Google 自从 2004 年起就已经开始使用容器技术了,于 2006 年发布了 cgroups,并在去年创建了名为 Let Me Contain That For You (lmctfy) 的项目。Imctfy 是 Google 开源版本的容器栈,它提供了用来代替 LXC 的 Linux 应用容器。当在单台机器上运行多个应用时,这些容器支持应用间的资源隔离,而且这会给人感觉这些应用是独自占用机器而运行的。这些应用可以知道容器的存在,这样它们就可以创建和管理它们自己的子容器了。

Google 的软件工程师 Rohit Jnagal 对 Imctfy 发表了评论

从 2007 年起,我们就已经用 Imctfy 来管理 Google 所有的与资源隔离性相关的需求了。到现在,它已经广泛使用在 Google 的各个基础设施中。在重新设计 Imctfy 的过程中,我们能够干净利落地将这一层分离出来(译者注:为了将 Imctfy 开源,需要对其重新设计,将其与 Google 的其他业务相关的代码进行分离),并且我们认为将它拿出来回报给开源社区是一件非常令人愉快的事情。

他还介绍了 Imctfy 与 LXC 之间的主要区别:

  1. 资源管理 API:显而易见,LXC 的 API 是支持命名空间的,并且支持导出 cgroup。而对于 Imctfy,Google 则试图提供一种基于用户使用意图的资源配置,这种配置方式就不再需要用户了解 cgroup 的具体细节内容了,因为 cgroup 的 API 可能不是很稳定并且难以应付。
  2. 优先级:Imctfy 提供了对资源共享和过量配置的支持,过量配置的机器上的批处理工作负载可以在机器相对空闲的时候运行。所有应用都会声明一个优先级和一些与延迟相关的需求,Imctfy 会通过管理所有的 cgroup 的具体细节内容来满足每个任务的需求。
  3. 编程接口:对 Google 云而言,Imctfy 是应用管理的最底层的模块。它会和其他工具以及程序一起协同工作,而且在构建位于其上层的更加复杂的工具链时,它具有更好的针对性和稳定性。

Google 同样也正在将容器集成到 Google 云平台中。Google 所开源的节点容器管理器(node container manager )是一个小的Python 代理,它旨在通过一个YAML 清单(manifest)来管理一组Docker 容器的。一个用来管理 Google 计算引擎(Google Compute Engine)上运行的容器的公开预览版本的系统已经可以使用了,它支持容器清单,并可以在启动时创建容器。该软件是基于 Debian 7 的,并且包含有 Docker runtime 和节点容器管理器。

Docker 同样能够利用 Imctfy 的优势,因为现在已经有一个针对Docker 的Imctfy 驱动,这还只是一个处于早期阶段的集成方案。由于有了这个新的功能,从Docker 0.9 以后,我们就可以在不包含LXC 的环境中运行容器了。

查看英文原文: http://www.infoq.com/news/2014/06/everything-google-containers


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-06-16 10:432925

评论

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

力扣前400题解答笔记,全被字节大神整理到了这份文档里

Java 编程 架构 面试 程序人生

网络攻防学习笔记 Day148

穿过生命散发芬芳

等级保护 9月日更

TDSQL数据同步和备份

腾讯云数据库

数据库 tdsql

2021年金九银十必问的1000道Java面试题及答案整理

Java 架构 面试 程序人生 编程语言

腾讯云TDSQL助力金融核心系统数字化转型

腾讯云数据库

数据库 tdsql

2021中国规模化敏捷大会(早鸟票倒计时)

AmyGuo

DevOps 敏捷开发 Scrum精髓 硬件敏捷 规模化敏捷

MyBatis Plus 批量数据插入功能,yyds!

王磊

mybatis springboot

被阿里奉为神册!2021公认最权威的分布式微服务指导手册

Java 架构 面试 程序人生 编程语言

人工智能、机器学习和数据工程 InfoQ 趋势报告 - 2021 年 8 月

Regan Yue

人工智能 9月日更 数据工程 趋势报告

成为一名月薪2万的web安全工程师需要掌握哪些技能??

网络安全学海

黑客 网络安全 信息安全 渗透测试 WEB安全

2021西部云安全峰会召开:“云安全优才计划”发布,腾讯云安全攻防矩阵亮相

腾讯安全云鼎实验室

云安全 峰会

阿里大牛再写传奇:并发原理JDK源码手册GitHub下载量已破百万

Java 编程 架构 面试 程序人生

第4章-《Linux一学就会》- vim编辑器和恢复ext4下误删文件-Xmanager工具

学神来啦

vim Linux 运维 VI

地铁3D可视化,让一切尽在掌握

ThingJS数字孪生引擎

可视化

设计千万级学生管理系统的考试试卷存储方案

缘分呐

架构设计实战

考试试卷redis存储详细设计

小智

架构训练营

从浏览器地址栏输入url到显示页面的步骤

Augus

浏览器 9月日更

陌陌和它的解药,聊聊出海社交产品的思路

拍乐云Pano

社交APP出海 社交APP 泛娱乐出海

J2PaaS低代码开源版,10月1号即将上线,企业数字化转型优选!

J2PaaS低代码平台

低代码 零代码 开发工具

时间转换不在变bug

卢卡多多

时间戳 时间转换 9月日更

java 虚拟机 GC 学习笔记三

风翱

GC 9月日更

阿里藏经阁天花板:高性能Java架构核心原理手册,一定要偷偷看

Java 编程 架构 面试 程序人生

斯图飞腾Stratifyd亮相Smart Retail,AI赋能零售新增长

拥抱云原生,华为云GaussDB全新助力金融行业数字化转型

华为云数据库小助手

GaussDB GaussDB(for openGauss) 华为云数据库

写给“后浪”们的职业生涯规划建议

轻口味

android 生涯规划 音视频 9月日更

读懂Redis源码,我总结了这7点心得

Java redis 架构 面试 后端

喜讯 | 拍乐云创始人赵加雨荣获「2021企业数智化转型升级先锋人物」奖

拍乐云Pano

音视频 数智化

阿里资深架构师整理分享全套Java核心技术面试题及答案

Java 编程 架构 面试 程序人生

腾讯云TDSQL-C云原生数据库技术

腾讯云数据库

数据库 tdsql

硬件Scrum指南

AmyGuo

Scrum 敏捷开发 硬件架构 硬件开发‘ 硬件敏捷

消息队列:Kafka Consumer源码解读

正向成长

kafka

Google的所有应用都运行在容器中_DevOps & 平台工程_Carlos Sanchez_InfoQ精选文章