Sputnik is a set of tools for programmatically managing your development environment. By applying the principle of infrastructure as code to your personal workstation it makes the process of maintaining it both deterministic and modular.
Determinism and Repeatability
As a developer, you lovingly, iteratively, and relentlessly customize your workstation to fit your ever evolving needs like a glove. As time passes and your expertise grows this can come to represent hundreds, if not thousands, of hours in careful research, experimentation and configuration. This includes shells, editors, editor plugins, syntax highlighters, utilities, languages, language libraries, system libraries, servers, daemons, etc... Cross each of those with its unique configuration as it resides on your box and you have a lot of accrued knowledge sitting on the table. We call this knowledge your Developer DNA.
Where (besides an incomplete copy in your head), is this hard-won knowledge encoded? What if you were to buy a new computer tomorrow? How long would it take for you to faithfully replicate something resembling your development environment? Certainly you could do it again from memory, but it would never quite be the same and the process would be arduous and error prone. We've all had those "Oh yeah! I remember now. I need to have version a.b.c of library X before I can use program Y" before. Individually they can be easily dealt with, but taken together can eat up hours.
Sputnik allows you to maintain a programatic description of your personal development infrastructure under source control. In this way, your entire environment, from shell colors and preferences to application frameworks, can be built from scratch on any supported operating system and hardware in a matter of minutes and with only a single command:
Modularity and Shareability
A key benefit of the Sputnik model is not just the ability to retain the knowledge you have acquired in making your own development environment, but also the ability to share what you have learned with others and benefit from what others have learned in kind.
Sputnik has the concept of composable profiles which can be developed and shared via a github. Each profile is thin wrapper around a chef recipe which can be configured with a builder-like syntax.
Sputnik is an experimental work with several different prototypes. No design decision is set in stone and we're looking for people like you to steer the course we eventually take. If this is a problem you want to see solved then please! Join up with us on the Dell tech center or at one of our informal get togethers listed below.
The ideas behind Sputnik are not novel, only their domain of application. Direct inspiration was drawn from Pivotal Workstation and in particular a talk at ChefConf 2012 given by Matt Kocher as well as Instant Infrastructure by Chris McClimans
The Sputnik Project is graciously sponsored by Dell.