BT

Your opinion matters! Please fill in the InfoQ Survey!

Supergiant.io - Container Platform for Stateful Applications

| by Hrishikesh Barua Follow 5 Followers on May 16, 2016. Estimated reading time: 1 minute |

A note to our readers: As per your request we have developed a set of features that allow you to reduce the noise, while not losing sight of anything that is important. Get email and web notifications by choosing the topics you are interested in.

Supergiant is a container hosting platform built using Kubernetes for distributed, stateful applications. Supergiant was built by the Qbox.io team which provides hosted Elasticsearch.

Supergiant is a framework that runs Docker containers hosting stateful, clustered applications. It utilizes Kubernetes under the hood and has its own structures and code in cases where Kubernetes does not serve the purpose, like persistent storage and external load balancing. InfoQ got in touch with Mark Brandon, CEO and Co-Founder of Qbox, the creators of Supergiant, to learn more about the technical details behind it.

The QBox.io team started with hosted Elasticsearch. Many of the issues they faced include not being able to scale due to the "noisy neighbor" effect. Docker and Kubernetes seemed like the right options to manage networked containers and volumes, according to their blog.

Storage for applications deployed on Supergiant is allocated on high-availability arrays, however, it does not use Kubernetes' persistent volumes. Currently available on AWS, Supergiant uses Amazon's Elastic Block Store (EBS) so that volumes can move freely around the cluster. EBS volumes behave like hard drives that can be plugged and unplugged (and mounted/unmounted) into virtual machines. Since EBS volumes are persisted across node server reboots, data is not lost when a node goes down.

Kubernetes has native load balancing and HA features. The Supergiant team wrote code specifically for external load balancing, says Brandon, because "while Kubernetes does internal load balancing masterfully, its external load balancing strategy was less than ideal for distributed applications like Elasticsearch."

To run as an application on Supergiant, a piece of software needs to be packaged as a "Component". A component could be a NoSQL database, a web-server or a node.js app. "Any application that can be Dockerized can be made into a component", according to Brandon. Supergiant provides an HTTP based API for defining components.

One of the requirements for applications running on AWS is to be tolerant of availability zone (AZ) failures, with support for cross-region availability being the next level. Supergiant is working on managing clusters across AWS zones, said Brandon.

Rate this Article

Adoption Stage
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread
Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Discuss

Login to InfoQ to interact with what matters most to you.


Recover your password...

Follow

Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.

Like

More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.

Notifications

Stay up-to-date

Set up your notifications and don't miss out on content that matters to you

BT