SAMI:来自三星的基于Docker和Mesos的容器解决方案(一)


【编者的话】如今的容器技术就像当年的虚级化技术一样,改变了IT界的工作方式。今年5月底,三星推出了自己的开源平台SAMI,随着平台的发展,产生了一系列问题,容器热之下,三星选择顺应潮流,转向了Mesos和Docker。

每隔几年,就会出现一种革命性的新技术来改变IT世界的工作方式。十年之前,虚拟化技术的出现铺平了通往云服务和云计算的道路。现在,容器及其创造出的充满活力的生态系统劲头正猛。本文将向你展示三星如何基于MesosDocker管理和运行物联网规模的计算基础设施的。

容器革命很大程度上要归因于DevOps的进步,更要归因于Docker的成功。容器是对流行的『微服务架构』的完美补充,正因如此,这也使得将软件应用设计为独立部署的服务成为可能。在三星,我们已经完全接受了这种新趋势。
1.jpg

SAMI是个非常复杂的平台,很多部分都是可替换和移动的。在撰写本文时,我们已有40多项内部服务(增加中),以及目前最流行的一些后端技术,其中包括NoSQL数据存储、消息代理、服务注册表、配置存储、图形数据库、HDFS、大数据处理器、内存缓存和传统SQL数据库。这个平台仍在不断发展,我们会不断引进新技术和应用来应对物联网所需的大数据处理过程中出现的问题和挑战。我们负责设计和管理支持其工作负载的基础设施,确保可扩展性、安全性和一致性,同时还要保持敏捷!

大约在一个月之前,我们把SAMI平台搬到Mesos和Docker上运行。可以把Mesos看做数据中心的内核,它抽象了所有的底层硬件和虚拟机,让你把数据中心当成一个超级大电脑来编程。同时,Docker作为容器化技术,简化了打包和搬运应用的方式。

这真正改变了我们对应用打包、部署、协调和监督的思考方式。这要求我们对自动化流水线进行彻底的重新设计,引进令人振奋的新技术的同时,也要淘汰许多老工具。

向容器技术推进

在容器成为家喻户晓的热门话题之前,我们曾有一个相当不错的全面自动化流水线,其核心是我们的配置管理(CM)系统。从配置到符合应用程序的部署,一切都通过我们的配置管理工具实现自动化。

但随着我们平台的增长,这些工具的缺点开始逐渐暴露出来。为了支持和衡量如SAMI般日益复杂的系统,一些新功能被迅速推出,我们意识到,我们急切需要一种新方法来部署和管理日益增多的微服务。

下面是一些需要解决的限制问题(注:这些都是CM工具中常有的陷阱,而未必是执行时常见的):
  1. 节点/机器专属角度(Node/Machine-specific perspective)
  2. 声明:Run ‘this’ on ‘that’ VM
  3. 静态分区
  4. 多租户需要手动配置
  5. 资源浪费
  6. 无资源隔离
  7. 配置和部署时间长
  8. 没有依赖/工作流管理:可以不执行“仅当部署Service-A之后且通过健康检查再部署Service-B”
  9. 无自愈功能:机器宕机,操作员需手动更换死亡节点
  10. 异构基础框架困难:几乎所有的cookbook/module/playbook都不能跨越两个发行版本
  11. 陡峭的学习曲线


要在物联网规模下运行一个现代平台,这些限制是我们不可接受的。

进入Mesos和Docker,帮忙扭转乾坤。在《物联网级负载的容器:下》中我们会解释SAMI中他是如何完成的。

原文链接:Containers for IoT-Scale Workloads: Part 1(翻译:马远征 审校:魏小红)

1 个评论

我顺便看了一下 Part 2 思路很赞

要回复文章请先登录注册