BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Supergiant.io —— 服务于有状态应用的容器平台

| 作者 Hrishikesh Barua 关注 12 他的粉丝 ,译者 邵思华 关注 3 他的粉丝 发布于 2016年5月23日. 估计阅读时间: 3 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

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地域的集群。

查看英文原文Supergiant.io - Container Platform for Stateful Applications

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT