Cloud 9 Infrastructure


#1

I love using Cloud 9. But what even intrigues me more is how it is built?

Right now in my line of work I am getting acquainted with Cloud technologies, mainly OpenStack. I find it it very fascinating but very complex at the same time.

I was wondering if Cloud 9 uses/is based on something similar? Maybe this is kind of a stupid question but I figured I would just give it a go.


#2

Hey @BigChief45 :slightly_smiling:,

C9 intrigues me as well. I see it as an evolved IDE. I don’t know the exact workings behind the scenes myself yet and I don’t want to prevent a dialog but another one of my favorite things about C9 is it’s viewable-source on GitHub. So you can see some a lot of the tech there and how it’s happening and then C9 also has a great engineering blog.

Best,
Mike


#3

Thanks for the reply @mikeumus!

I took a look at the core source. It mainly uses Node.js ? Was not aware of that.

However my question was mostly aimed at the Infrastructure part. How they handle compute nodes to create and schedule VMs, storage, etc. And how Node.js plays the role of handling all this?

Not sure if it’s a topic open for discussion.


#4

That’s actually an awesome question, we love when people are interested in computing and technology! As you can imagine, Cloud9 is a quite complex app. I’ll try to share some of the key aspects:

Cloud9 is primarily written in Node.js and client-side Javascript.

At the core of the IDE is the Ace text editor, which is a popular open source project itself. The Cloud9 application consists of modular Javascript plugins which are combined to provide all the functionality of the IDE. Each major feature is an independent plugin that can be loaded on its own and allows us to change the feature set depending on the customer. For example, each language, debugger, sidebar panel, and dialog are implemented as plugins. Like @mikeumus said, most of these plugins are open source.

Infrastructure: Workspaces are hosted on a custom system based on Docker. We put a lot of work into building and optimizing this system are very proud of how well it scales and how fast new Cloud9 workspaces are provisioned. It’s coded in Node.js and lots of Bash. :slightly_smiling: The code is closed source and not available to the public.

Hosting is done using Google Cloud Platform and we are distributed over several global datacenter locations. This helps to minimize the latency between server and client. Google handles the computing, network, and storage for us.


#5

I actually took a peek at the system my workspace was on and discovered 2x dual core 2.3Ghz xeons, 51-ish GB of ram and one 1.2TB hdd mounted running who knows how many workspaces. I found the hardware config to be a little odd. I like that it runs on Google Cloud. It’s a great system hands down.


#6

@xoob Thanks for such a great detailed answer :slightly_smiling: