UDN-企业互联网技术人气社区

板块导航

浏览  : 958
回复  : 0

[技术交流] Supergiant.io —— 服务于有状态应用的容器平台

[复制链接]
genie1003的头像 楼主
发表于 2016-5-23 14:04:18 | 显示全部楼层 |阅读模式
  Supergiant是一个使用Kubernetes打造的容器托管平台,适用于分布式的有状态应用。Supergiant是由Qbox.io团队所开发的,该团队同时还提供了托管版本的Elasticsearch。

  Supergiant是一种能够运行Docker容器、以托管有状态、集群化应用的框架。它的内部实现利用了Kubernetes的功能,但也开发了自有的结构与代码,以避免出现Kubernetes无法满足需求的场景,例如持久化保存以及外部的负载均衡。InfoQ与Qbox的CEO和联合创始人,同时也是Supergiant的创建者Mark Brandon进行了一次访谈,以深入了解Supergiant的技术细节。

  QBox.io团队早期的业务是提供托管版本的Elasticsearch,当时他们经历过各种问题,其中包括由于因“吵闹的邻居”效应(本意是指某个VM由于存储而产生的大量I/O操作对同一环境中其他VM的影响)而难以实现扩展的情况。根据团队的博客文章所说,对于管理互联的容器与卷的管理,Docker与Kubernetes看起来是一种正确的选择。

  部署在Supergiant平台上的应用中所涉及的存储功能都被分配在高可用的阵列中,但它并没有使用Kubernetes中的持久化数据卷。AWS目前已经提供了对Supergiant的支持,Supergiant使用了AWS中的Elastic Block Store(EBS),因此数据卷可随意在集群中移动。EBS中的数据卷的行为类似于硬盘,可接入虚拟机中或者撤消(也可进行挂载与卸载)。由于EBS数据卷的持久化可支持节点服务器的重启,因此即便某个节点变得不可用,数据也不会丢失。

  Kubernetes内置了负载均衡与高可用性方面的特性。按照Brandon的说法,Supergiant特意为外部的负载均衡功能编写了代码,因为“虽然Kubernetes的内部负载均衡功能十分出色,但它的外部负载均衡策略对于Elasticsearch这样的分布式应用来说并非最佳。”

  为了使你的软件作为一个Supergiant应用运行,它必须被打包为一个“组件”。这种组件既可以是一个NoSQL数据库,也可以是一个web服务器或node.js应用。根据Brandon所说:“任何一种可被Docker化的应用都可以成为一个组件”。Supergiant还提供了一套基于HTTP的API,用于组件的定义。

  运行在AWS环境中的应用都需要满足一个要求,即可以忍受可用性地域(AZ)的故障,而对跨区域可用性的支持则是更高级别的能力。根据Brandon的说法,Supergiant可管理跨多个AWS地域的集群。

相关帖子

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部