When we first introduced Project Sputnik over a year ago we talked about two community projects: the profile tool and the cloud launcher. We garnered a fair amount of attention and made some progress but unfortunately not as much as I would have liked. I am very happy to report therefore that recently we have put together an intrepid group of developers and architects within Dell to pick up the profile tool charge.
While we’ve had a few false starts in the past, besides the addition of committed Dell resources, there are a couple of other things that set this time apart: 1) we are starting from an internal use case and 2) we are working with and leveraging some of the work of Docker.
And just like when project Sputnik originally kicked off, we want to get your input and feedback on the Profile Tool and its direction (see a few paragraphs down for what specifically we are looking to you all for).
Scratching your own itch is a key component to any self-respecting open source project. Read on to see where ours came in. A group within the Enstratius team, which we acquired back in the Spring, is switching to Sputniks (Dell XPS 13 developer edition) as their primary laptop. One thing that team member John Vincent was tasked with doing was getting these new systems set up quickly for the team. He was looking for a way to automate the process when his boss suggested he check out what we were hoping to do with the profile tool. John liked what he saw so much that he joined the team.
Besides this representation from the Enstratius team, the Sputnik team also includes members from Dell Services’ office of the CTO and the Dell Cloud Services development and architecture team.
Working with the Docker crew
Rather than re-inventing the wheel, and to help provide perspective, we are now working with the folks from Docker. They will be giving us their feedback, helping with integration and creating a Go profile.
As their CEO Ben Golub said, “The Dell team has delivered real benefits for the developer community through Project Sputnik and we expect same from the profile tool. We’re committed to working with their team to provide the best possible integration with Docker so those benefits continue to grow.”
Profile tool: Some details and a quick POC
The idea behind the profile tool is to enable a developer to quickly set up an environment without cluttering up their system. This applies whether it is a “clean” computer for a new hire or a new project for an existing team member where the developer needs to use a new language or tool-chain.
A profile is basically a collection of simple YAML files, stored in a pre-determined directory structure, which specify one or more of the following:
- Framework: a language-specific software platform which simplifies the programming task (e.g. Django, Rails, Node.js)
- Library: an additional software component, such jinja2 or numpy for Python
- Service: a software service used by the project, such as a database or message queue
To use a profile, it is downloaded to the developer’s machine, and an isolated environment (Linux container) is automatically created using Docker if it is part of the profile.
Input from the community
Here is the Profile Tool repository on Github and to give you a feel for how the profile tool might work, here is a quick POC (note that these actions aren’t actually being executed. We’re just logging them as if we were).
We would love to get your input. Some of the different ways you can contribute are as follows:
- Open issues on this repository with suggestions on proposed definition syntax
- Fork the repository and propose your own definition for a language
- Share this initiative with your respective communities
- Offer insight into how your community or company can use this
- Be honest and tell us what works and what doesn’t
While almost everything is open to modification, we have a few small requirements.
- The definition format MUST be YAML. YAML was chosen because it allows the appropriate data structures, is both human- and machine-readable and allows comments
- Respect the goals of minimalism and composition defined above
- This is based on Ubuntu 12.04 amd64 (for now) as the primary use case is for inclusion in the Sputnik laptop
We will be soliciting feedback for the next three weeks so please get us your thoughts by December 3.
What about the cloud tool?
We haven’t forgotten about the cloud tool, which allows you to deploy your applications to the cloud. While you can currently use Linux containers and JuJu to get your apps into the clouds, we are working on a version that will provide even greater automation. This will be phase II after we get the profile tool a bit further along, stay tuned!
But wait, there’s more…
If you’re interested in Project Sputnik you’ll want to watch this blog which will be bringing some more news in the not too distant future. :)
Pau for now…