写点什么

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

2016 年 5 月 22 日

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

2016 年 5 月 22 日 19:001132
用户头像

发布了 428 篇内容, 共 153.1 次阅读, 收获喜欢 27 次。

关注

欲了解 AWS 的更多信息,请访问【AWS 技术专区】

评论

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

年轻人不讲武德不仅白piao接口测试知识还白piao接口测试工具会员

测试人生路

接口测试

科普干货|漫谈鸿蒙LiteOS-M与HUAWEI LiteOS内核的几大不同

华为云开发者社区

华为 鸿蒙 IoT

什么是云服务?

anyRTC开发者

音视频 WebRTC 云服务 RTC

#不吐不快# CV千千条,修改最重要。代码不规范,伙伴两行泪!

程序员小航

奇葩的经历 不吐不快

一瞬间让我秒变“快男”!腾讯内部强推Java性能优化手册,快了不止一点点。

Java架构追梦

Java 架构 jdk 面试 性能优化

云原生2.0时代下,DevOps实践如何才能更加高效敏捷?

华为云开发者社区

云计算 数字化 华为云

DàYé的CTO姗姗学步路

曲水流觞TechRill

管理 CTO

注册中心原理剖析

石刻掌纹

【薪火计划】03 - 从错误中认识到管理

brave heart

管理

vue项目实战经验汇总

徐小夕

Java 面试 Vue 前端 Vue3

Nginx-技术专题-技术介绍

李浩宇/Alex

SQL数据库:窗口函数

正向成长

窗口函数

IoT企业物联网平台,从设备端到云端业务系统全链路开发实战

苏堤嘉木

阿里云 最佳实践 物联网 IoT

阿里P8以hashmap讲解如何学习jdk源码,还不学习

小Q

Java 学习 源码 jdk mybatis

Redis 持久化之 RDB 与 AOF 详解

AI乔治

Java 架构 redis持久化 redia

MySQL从库维护经验分享

Simon

MySQL 主从复制

synchronized 到底该不该用

古时的风筝

Java synchronized

CSS 排版与正常流 —— 重学CSS

三钻

CSS 排版

前嗅教你大数据——什么是代理IP?

前嗅大数据

爬虫 数据采集 静态IP 代理IP 动态IP

Springboot过滤器和拦截器详解及使用场景

AI乔治

Java spring 架构 Spring Boot

MySQL中的锁机制

AI乔治

Java MySQL 架构 线程 锁机制

Jira停售Server版政策客观解读——如何最小化风险?

PingCode

项目管理 研发管理 Jira Atlassian

Glide.with(view)挂在了谁的生命周期上

mengxn

生命周期 Glide Activity Fragment

【活动回顾】WebRTC服务端工程实践和优化探索

ZEGO即构

WebRTC 服务端工程

#不吐不快# 三观很正的Boss,你遇到过么?

架构精进之路

职场成长 奇葩的经历 不吐不快

甲方日常53

句子

工作 随笔杂谈 日常

面经手册 · 第18篇《AQS 共享锁,Semaphore、CountDownLatch,听说数据库连接池可以用到!》

小傅哥

Java 并发编程 共享锁 Semaphore 信号量

11.11 应对海量访问的网络基石 京东智联云自研交换机发展之路

京东科技开发者

运维 网络 交换机

Dubbo 接口,导出 Markdown ,这些功能 DocView 现在都有了!

程序员小航

markdown idea插件 IntelliJ IDEA 文档生成 Doc View

什么是低代码(Low-Code)?

应用研发平台EMAS

工具 研发效能 低代码 开发 代码

圆通快递回应内鬼泄露用户信息:严打数据倒卖灰色产业

石头IT视角

低代码的认知误区与落地实践

低代码的认知误区与落地实践

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