- Mentor: Andrey Turovsky. email: andrey-at-jisto-dot-com
- Mentor trello id: @andrey120
- Mentor available times: Open to discussion with development team, but for now it'll be Thursdays from 2-4PM. I will generally be available in person (most likely at the MassChallenge office in the Seaport), but also by phone and via Skype.
- Min-max team size: 3-7
- Expected project hours per week (per team member): 5-8
- Will the project be open source? Initially no. Depending on where the project goes, there is some possibility of partially or fully open sourcing the project toward the end of the course, but initially team members would need to sign a confidentiality agreement.
Despite advances in network hardware and software in cloud computing, network I/O can still easily become the bottleneck in large compute clusters. In a data center with regular large-scale application distribution (distribution of an application to many processing nodes), applications need the agility to be aware of the impact on the network and to react accordingly. The goal of this project is to help a start-up company implement a solution to a real world problem by developing an adaptable container deployment system, capable of monitoring the network and minimizing network congestion.
Preferred past experience
The project is fairly open-ended and the skills below are recommended, but being familiar with several of these tools and languages would definitely be helpful.
- Linux (project will be done exclusively in Linux)
- Bash scripting
- Node.js (optionally another scripting language - python, ruby, etc.)
- Docker (familiarity would be helpful, but not required)
- OSI model implementation familiarity, especially TCP/UDP a plus
- Implement initial simple container distribution system (design/implementation assistance will be provided) and test distribution performance in the cloud (MOC)
- Create dummy applications to simulate a busy network and test simple container distribution system on a busy network
- Continue improving distribution system design and testing performance
Technologies expected to be learned
- Low-level Networking protocols
- Node.js or another scripting language
- Shell scripting