About mbed
mbed is a tool for Rapid Prototyping with microcontrollers.
Take the tour...
Back to blog

mbed.org cloud now being served from mbed Microcontrollers!

You may have noticed some slight disruption on the website last night, here is why. After a few weeks of planning, research and development, we've finally bought up an array of 10 mbeds to serve the mbed cloud.

One of mbeds earliest mantras is "eat your own dog food", a philosophy that has lead to us developing the core mbed libraries within the online compiler and the site from within itself.

After some great work done by the mbed community, most notably Rolf Meyer's HTTPServer and Igor Skochinsky's USB Host mass storage class, it became technically feasible to serve the mbed website from mbed hardware. The opportunity to eat our own dog food again proved too tempting.

Setup

It was clear that the mbed array needed a little assistance, and so a commercial load balancer was used to distribute the incoming request amoung the 4 webservers. Each server has it's own 16Gb USB Flash drive attached, and is dedicated to serving specific content, namely Web/Forum/Blog, the compiler, users A-K, users L-Z.

The remaining 6 mbeds are used as parallel processing nodes, each one containing the same library of standard tasks needed to keep the infrastructure going. The webservers break down the requests into serialised sub-tasks and farms them to the nodes, which are all hooked up essentially in parallel.

The initial setup employs AA NiMH batteries as the power source, which means UPS functionality is provided by design.

Installation

The existing infrastructure remains in place during this experiment so we can switch back quickly if there are any hiccups.

We unpacked the prebuilt and pretested breadboard based system that makes up the new server cluster. If the experiment goes well, this will be turned into a proper PCB implementation, with clusters of 16 mbeds.

The assembly was moved into position in the rack.

Cliff the IT guy was drafted in, partly to make sure we didn't unplug stuff we shouldn't, but also to help hook it all up, ensure there were enough network ports, power ports and so on.

The array of mbeds is installed, the four webserver/disks visible to the right, and the six nodes visible on the left. There is nothing left to do but power it up....

In thier new home, the development board powers up and is all looking good. There are a few anomilies with IP addresses which are soon resolved. The mbeds are reporting over their USB serial ports that they are functional. Last step is to flick the switch that tells the load balancer where to point incoming traffic to.

 

Success!

Conclusion

If it all runs well, we'll start work on PCB of mbeds that will have a backplane architecture so it can scale with the site.

The final architecture we're aiming to implement is :

 

The clusters will be broken down on a per function basis, so the clustering is hierarchical. We'll also look to make the load balancers based on mbed, so only the border router is dedicated non-mbed hardware.

There is a lot of work to be done still, but this is a great first step.

The changeover went a lot smoother than expected, and the mbed cloud is handling the traffic quite well.

Of course, there are both pros and cons to the new setup.

Pros:

  • Adding nodes to the mbed cloud is cheap and easy
  • USB stick storage is solid state - means no risk of disk failure
  • Near zero boot time for servers!

Cons:

  • The actual CPU power available has been reduced, so try to not make unnecessary compiles. Also, excessive compiles will run our batteries down faster
  • The batteries will inevitably eventually run flat, and unfortunately the website will be unavailable while we recharge them

Comments

01 Apr 2010

Now that you've got it installed, and running off of the batteries, can I have that bench supply back?

01 Apr 2010

Congratulations on a great project

Surely you are going to charge the batteries continually so as to keep the website running?

Tony

01 Apr 2010

:)

01 Apr 2010

Hello

This all sounds very interesting. I have a few questions, though:

1. Does it mean that all of the mbed site functionality is now being processed by only the mbed hardware cluster?

2. Is the mbed compiler for all mbed users also running on LPC processors? I thought it was based on GCC which in this case would require a native ARM Cortex-M3 toolchain!

In addition, could you kindly make the images larger as it is very hard to read out anything.

Asif

01 Apr 2010

HI Asif,

1. Yup, the website load is being spread amoung the mbeds

2. Yes, We cross compiled the toolchain for M3. So it is now an M3 compiler, running on an M3 - it is just like having an x86 compiler running on your x86 machine.

We dont want to make images too large to keep the bandwidth and file access overhead to a minimum.

Thanks,
Chris

01 Apr 2010 . Edited: 01 Apr 2010

Thanks to Jean-Francois Samson, I only then saw that he was right and this is April 1. Also, the pictures do show the difference. One is the server rack, the other is something else, like the phone system. im sure you wouldn't want to destroy your reputation by having the mbed site not working, or slow working!

Good one.

01 Apr 2010

Very impressive work guys - I love the concept.

Do you mean "so try to not make unnecessary compiles"?

01 Apr 2010

Wow, this is amazing. Great work!

I will DEFINITLY remember this date ;-)

01 Apr 2010

It is the best I have read so far ;-)

01 Apr 2010

Awesome, I'm happy that all the hard work finally pays off.

01 Apr 2010

Our company did something similar using all the old motherboards from discarded computers.  To solve the battery problem, we have run long jumper cables through the wall to the parking lot.  Each shift a different employee is designated as the Charger of the Shift and connects their running vehicle to the cables.  For this they get free coffee. You guys keep up the good work!

01 Apr 2010 . Edited: 01 Apr 2010

I won't even comment it... Oops, i just did... Nice try folks! ;D

Today its April 1st and there is a fish in your videos!

Nice try...

01 Apr 2010

I use an old TI programmable calculator as webserver. It runs on solar power so I never have to recharge it. Unfortunately the server room has no windows so I use a flashlight to shine on the solar panel. But those batteries are not recharable to changing them is done in a jiffy.  

01 Apr 2010

I love the giant breadboard zip tied to the server rack.  Classic.  If only you could have worked some duct tape into it as well...  It's still morning here, so no telling what stories will be coming as the day progresses, but this one has set the bar pretty high.

--steve

01 Apr 2010

Where can (I) get hold of Rolf Meyer's HTTPServer and Igor Skochinsky's USB Host mass storage class ...?

01 Apr 2010 . Edited: 01 Apr 2010

Just In....... US President Obama hearing of the success of the mbed cloud cluster has mandated the use of this breaktrough server technology in all Wall Street Transaction processing. He is quoted as saying "I just hope they can keep the batteries charged"

01 Apr 2010

FYI I should be able to get you guys a 1/50 x performance enhancement as soon as eLua supports ethernet on mbed :-)

01 Apr 2010

This appears to be one of those "April 1 jokes" which eventually become a real project (how many "MIPS per watt" could give a cluster of mbed boards?)

01 Apr 2010

Ok, I admit it........ you had me!

01 Apr 2010

I would not publish such an achievement on a 1st April :)  but I loved the idea of having such a grid to play with eLuaRPC on it :)

Best

Dado

 

01 Apr 2010

DEAR MBED TEAM

> a commercial load balancer was used to distribute the incoming request

Could you tell me more regarding this load balancing solution ?

Regards

JJacques

02 Apr 2010 . Edited: 02 Apr 2010

Congratulations!!! Good job!!!

02 Apr 2010

Ioannis Kedros wrote:

Congratulations!!! Good job!!!

Dude, this is an April Fools joke! (See the date it was posted).

LOL! Good one guys. ;)

03 Apr 2010 . Edited: 03 Apr 2010

 

Devesh Rai wrote:

 

Ioannis Kedros wrote:

Congratulations!!! Good job!!!

Dude, this is an April Fools joke! (See the date it was posted).

 

LOL! Good one guys. ;)

Oh come on… It was nice!!!

Please log in to post a comment.