On Friday, before the opening ceremony DoLab had set up a table a bunch of cool devices they had built and designed. Dale Bracey had brought a stack of 5 Intel NUCs configured with OpenStack; he called it a the cloud on a desk. The idea of the cloud literally at your finger tips caught our attention. This was something I wanted (Now). Throughout the day I talked to Dale about System Architecture, and what it takes to maintain a huge cloud setup such as the one they have at Rackspace. Pretty much all of it went over my head. After doing some searching on Google, I had come to the conclusion: there are not many resources for students to learn about this and Cloud Infrastructure. We decided to do something about that.
What it does
We built a system where students and developers interested in learning about containerization and deployment of services to the cloud could easily play around and experiment with containers/services without worrying too much about the design and provisioning of images.
How I built it
Using docker as our container provider, we were able to create a layer of abstraction on top of the docker cli that simplified many tasks, such as the creation and destruction of containers as well as the network configuration.
Challenges I ran into
- Synchronizing realtime communication between containers through socket.io
Accomplishments that I'm proud of
Being able to successfully implement all the functionality I had planned to implement.
What I learned
I learnt about a lot of the low level API and management of the docker daemon, various techniques to do communication across containers and different hosts. For example, socket.io and TCP.
What's next for Cloud Bricks
Our next steps will be designing a user interface similar to that of Scratch or Block.ly and create a storyline or game that will guide students and allow them to interact with various components that would be typically found on cloud deployments. Parallel to that branch of development we need to design new components using real services such as MongoDB, Elastic Search, etc. Ideally, many of the blocks that will be published to the Docker Registry are community created and curated.