Project Sputnik Profile Tool: Dell commits engineering resources, Docker joins the cause and we want your input!

November 12, 2013

Sputnik_Sticker_FinalWhen 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).

Internal need

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

DockerRather 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:

  • Language:  a programming language e.g. Python, Ruby, JavaScript
  • 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. 🙂

Extra-credit reading

Pau for now…


Talking to the Docker Dudes

September 12, 2013

This morning a group of us here at Dell met with Ben Golub, Jerome Petazzoni and Nick Stinemates of dotCloud, the company behind the wildly popular open source project, Docker, “the Linux container engine.”  They came to sample the great barbecue and to chat about how Docker might potentially work with Project Sputnik, the Crowbar Project and a few other efforts.

Docker, which went live in March already has 150 contributors, 60,000+ downloads and 1000s of applications containerized and uploaded to their registry.   Given the fact that the company only has 18 employees, quite a bit of this work has been done by the passionate community that has formed in the first six months.

Overview and Tech talk

I did two interviews with the gents from Docker, a higher level overview with Ben their CEO and a more technical talk with SRE manager Jerome and Nick, their sales and deployment engineer.  Enjoy!

Some of the ground Ben covers:

  • What is Docker?
  • How it developed out of dotCloud’s PaaS efforts
  • How Ben got involved with the project and his background
  • What are dotCloud’s plans for Docker and who is integrating with it?

Some of the ground Jerome and Nick cover:

  • How long they’ve been involved and what they focus on
  • How Docker works with LXC and how it might work without LXC
  • Ubuntu is recommended but all you need is AUFS support
  • In next release they plan to offer official support beyond Ubuntu
  • Holy DevOps batman, Docker has something to offer Devs, QA Engineers, Continuos  integration and Sys Ops.

Extra-credit reading

Pau for now…