StackRocket: Build and share virtualized dev stacks, start coding in minutes
stackrocket.comI wonder - has anyone ever tried the approach of the entire VM binary image being the repo and doing smart bindiffs as changes? The trick would be to identify what is "code/config/program code" vs random/temp files.
In code tracking you do it manually by saying don't track. Here you'd need a bit more intelligence, but seems like doable.
And you could create then like a git for machines.
I may be too simplistic / not fully understand the stackrocket/blueprint/vagrant approach - but why not doing something radically simpler???
You are right, having a binary diffing mechanism would make it simpler to implement, but that diffing mechanism would be hard to implement!
We've thought about going pure diff at the beginning and decided that to implement that method will give us less flexibility in the short term.
I speculate that do so, we would need to implement our own virtual machine (we are using virtualbox) and/or disk image format.
mmm I take your point - what ideas are out there to do that thought? I agree it is hard ...
Good news is that for the "known/commont stuff" you can always have a central database of the random/temp stuff they generate.
E.g., mysql generetes tmp files here and there, and so and so - so you could profile all that common stuff in that way.
Then the uncommon stuff or your custom things, you declaratively say "do not track" as you do with code today.
Moreover you can do it in a way that is crowdsourced - ie: if its a cloud service when people declare such and such in mongodb is random/temp then you learn for all users.
At the end of the day there is a limited number of things people use and for the long tail it is OK for people to be declarative I guess.
But on the flip side I can see how that could end up being a nightmare.
But wouldn't it be nice to do something as simple as pull/commit/push for general purpose computers?
that piece is the less difficult i think - you could always use existing VM infrastructure and do (1) restore (2) apply changes and (3) save back - I wouldn't mess with disk formats and so on - no need
Thanks for your thoughts, PabloOsinaga.
I am just spitting out ideas without deep thought but a discussion might prove fruitful.
It could come down to certain types of data, some to be ignored, some to be careful of (like data or code), others to blindly overwrite (critical security updates).
The point would be treat the data as "dumb", but to keep in mind that some data are "dumber" than others.
Perhaps if we had our own disk image format, we could mark certain types of data to be ignored for instance.
Our VM would know what to mark as ignored for say POSIX systems and that aspect could be configurable.
That's exactly what Cloudlets does. http://github.com/dotcloud/cloudlets
That's nice. seems to be the infrastructure required for building such system. question is how do you come about building the manifests? Users need to do that???
I think there needs to be a higher level abstraction.
Blueprint is a nice step in that direction: make a change and dump out the environment.
Perhaps what we need is a system that compiles to that manifest, or to chef/puppet.
Setting up systems is a complex task that neither puppet nor chef solve, they make it less daunting, but it still is a real pain to do so!
or is your perspective that something as simple as this https://github.com/dotcloud/cloudlets/blob/master/sample.clo...
would work?
Wound't the system become a nightmare once I start installing/changing stuff in the machine in a very organic way?
Meaning, I'd have to go and maintain that manifest???
In practice, most of the work happens in the base image. Future versions simply extend the manifest with a few extra lines.
Ideally you want to "compile down" to cloudlets. With smart change management tools you can make it really simple for the user. That sounds exactly like Stackrocket's cup of tea :)
OK - I see. This is a PaaS play in a way, but one that offers a bit more of flexibilty/componentization than the "traditional" PaaS's
I was thinking more along the lines of something truly generic.
Didn't see your comment. Yes indeed, that's exactly what we're working towards =)
is this just vagrant (http://vagrantup.com) as a service? How is this different/better than vagrant? Looks interesting.
You are right. It's very similar to vagrant. When we started implementing our idea, we did not know about vagrant.
The vagrant functionality is part of what we do, but we also have a hosted service and offer access control to your team. We also have a mechanism to synchronize changes between your envs
In addition to Olivier's comment, we will also have deployment option to popular cloud providers such as Heroku, PHPFog and EC2
How will this work? It sounded like a user could just build a custom VM image and send it to you. There wouldn't be a way to deploy that to heroku, right?
Are you doing sort of a blended app hosting/cloud offering?
With what we have today, code on our pre-configured RoR stack will work on heroku.
What we have in the works is detecting if you have e.g. Redis and subscribing to that "addon" for you.
Have you seen the dotcloud "build files" for specifying services? I wonder if trying to encourage standardization among cloud/app hosts on a service specification file like this would be beneficial, similar to Gemfile/Procfile/etc.
service 'redis', '~> 2.2.2'
dotCloud team here. If there's interest, we'll happily contribute our specs and code to get things started.
I'd love to. I'll email you soon.
I smiled reading this exchange, very good-spirited. Hope you can successfully work together!
Any support for the new Win 8 developer preview? I'd love to have a development environment to start playing with new Metro App development..
Olivier here, a stackrocket co-founder.
We only support Mac os x at the moment as a client, and Linux as the dev environment.
That said, we will be looking to expand at some point. At this stage, we want to make sure we nail down the correct way of solving this problem.
Your homepage should definitely mention that Mac is the only supported client. Take a look at the OS statistics from the hits on your site - my guess is that most are not Mac.
Mac only really is a bummer. I realize that there's a large and vocal crowd of developers doing that, but there's also a big Windows/.NET crowd you could easily be targeting with this. Seeing this on Windows would be great, if you use the open source VirtualBox you can easily make cross platform images.
You are right. Windows is on the roadmap. We wish we had it today!
We don't have windows right now, but I'm sure that will be a major driver for user acquisition.
As others said, it would be good if you indicated only OS X support. I just assumed from the screencast that at least any *nix system would work. Surely making a Linux client isn't far off, though, right?
Yes indeed =)
So when you say "Build any stack and start coding in minutes" that's...aspirational? Or a bare-faced lie?
I suspect any attempts to distribute VMs of Visual Studio stack would result in nifty licensing costs.
Current features:
* Landing page
* Sign up formWe do have a product and a couple of companies as users. That said, we're in private beta.
If you're interested, sign up and shoot me an email. I'd like to learn more about what you're interested in.
No information about pricing, though?
Free for now to our private beta users. But we plan to have something similar to github when we begin to charge.
When I saw StackParts this week I was reminded about how much pain is involved in getting a particular "stack part" up and running. Nice to see a potential solution.
Thank you for your comment. It was a problem for us. After a few hardware failures we had had enough!
If you want an account, please sign up at stackrocket.com and sent me an email. I'd love to chat more and see how we can make your life easier
Love the concept. Casual use of VMs-as-if-they-were-documents is a great trend that still has a lot of potential. (StackRocket/Blueprint/Vagrant/etc could possibly benefit from a Ninite-like visual interface for bootstrapping dev/server VMs.)
A couple landing page nits:
• it'd be helpful to have some extra details/screenshots for people without flash to play the demo video
• lots of things on the landing page seem like they should be clickable to get started, but aren't. For example, 'Create a dev stack' and 'Make a stack, customize it' button-like areas. I bet using a click-analytics heatmap you'd see a lot of stray clicks on those.
That's a great idea! I'll bet chef and some elbow grease on the part of the service provider would make the ninite ideal possible for some limited subset of popular tools. This is where Turnkey Linux should be heading, too.
Thanks for the feedback. We're always looking to improve.
Minor spelling nitpick: cnapshots -> snapshots
Thanks! Fix coming right up
I have been having so many problems getting vagrant + chef-solo to do what I want to duplicate my rails dev env... Something simpler and more abstracted would be great. I want to spend my time coding, not configuring my environment.
Just had a look at the screencast. Looks really cool! Can't wait to start using that.
Hey pokezat, sign up at stackrocket.com and ping me at oyiptong -at- stackrocket.com with your HN username. I'll send you an invite.
Was anyone else annoyed that they can't pronounce "Rocket"?
As in?
It may just be me, but I tried clicking some emphasized text because it looks just like the links. E.g. I tried to click "or make your own..." in "Use our stacks, or make your own..."
We will fix that. It's confusing, I agree
This looks awesome. As a Python/Flask enthusiast, I have to ask. Know anything like this targeted at Python?
We are python devs and we do have a django stack =)
If you want an account, please sign up and send me an email with your HN username. I could also make you a flask stack.
My email is in another thread or in my profile.
Flask support would be amazing.
Awesome! Looking forward to using StackRocket in new projects!
How does this compare with OpenStack?
Openstack and cloudfoundry are attempts to standardize server infrastructures. They aim to make it easy to have your own private AWS.
A possible future for us would be to have easy deployment in your private "cloud", similar to vmware's cloudfoundry product.
That said, where we differ from cloudfoundry is that we aim to provide a great user experience and give everything to get started coding right away.
Inspiring design of the homepage!
Looks like a winner to me.
Looks practical, but I would like to see support for java, including building tools and such. The deployment is only part of the problem.
Java is definitely on the roadmap. We have been out of touch with the java universe for a few years, but we'd like to provide a great experience.
I'd imagine you could use Java on http://pair.io as it supports Clojure.
It looks like a crappy clone of DevStructure Blueprints. http://devstructure.com/
Why do you think it's crappy?
We might use blueprint in the future and contribute to the project. I think Matt and Richard are great guys.
That said, we offer more than blueprint, so it's not a clone.