Joyent Weblog
Let my People Have Root
First Salesforce, now Google. When will these companies get it through their heads that proprietary, single-source platforms are ridiculous? I mean, why in the world would I lock myself into one software platform AND one hosting provider when I there are so many high-quality, low-cost, portable alternatives out there? Silly.
As we as an industry build out various cloud computing offerings, the issue is becoming clear, as in computing paradigms before, who wins? Open or Closed? Google’s App Engine and Force.com are at one extreme. You must use their storage system. You must use their (choice of) language. Beyond that, you are locked into their authentication systems, their email systems and most importantly, their specific approach to scaling. Google App Engine implies a certain way of scaling. Google has scaled search (a single tenant application). They have had a little more trouble scaling Gmail, for example (also single tenant).
App Engine is certainly convenient for Google because it maps exactly to what they have already built for internal use. But does it mean that Google has solved the hard problem of how to manage a cloud computing offering while simultaneously giving developers the freedom of full root control? And is root access important?
Amazon has taken a less closed approach. EC2 is open. The down side to EC2 is that it is fully virtual, meaning that if it goes down you lose your files, your DB, everything on your EC2 instance. Amazon’s solution to this has been the “closed” or proprietary S3 storage offering.
The bottom line is that if you build your application on App Engine, Force or EC2/S3, you are locked into those platforms. Moving off will require a substantial re-engineering effort.
At Joyent, we believe Open Wins.
Developers get root on Joyent. You can run any DB, any application stack. Any storage. The fact that Twitter grew up on Joyent and then graduated is actually proof that we really do run an open-standards-based cloud. Try to leave App Engine. Or AWS. When you move can you install Bigtable? S3?
Jonathan Schwartz is right when he says computing is becoming a utility that can be monetized like any other commodity: when there are standards. There aren’t standards for cloud computing today beyond building on open protocol, open source stacks, and being willing to give customers control (i.e. “root”), and pick up their applications and move to other clouds, without a rewrite.
You want root.
Commenting is closed for this article.
Yeah, that’s like requiring your customer to use one particular operating system variant. Who’d do something weird like that?
— Chuck 38 days ago #It certainly would take some effort to port away from App Engine and Big Table. But I suspect plenty of developers rather leave that Linux book on the shelf and not deal with root. It’s a set of trade offs, which seems far better than Amazon’s offering. SimpleDB locks someone in, though EC2 still requires making images and all that root-like stuff. I’m interested to see where App Engine goes… though it won’t suit everyone or every app.
— Nathan Youngman 38 days ago #A few points:
- The thing that makes AppEngine attractive is how easy they make application deployment (including scalability). Yes, having root is nice, but so is being able to just whip out an app, throw it out there and have it run. We developers are just as lazy as anyone else :-)
- They’ve priced it so it’s essentially free for an app until it hits a certain scale/size. For a certain class of developers (small, indy apps) it’s virtually risk-free to start something and to keep it running until it becomes a success (or not). A lot of apps will get their start on AppEngine simply because there’s no financial downside to running it there.
- I know you guys are big on Rails, but as a Python/Django fan I’m personally thrilled to be able to have a simple hosting bed for that platform. I can’t tell you what a royal pain in the ass it was to get Django going on a Joyent accelerator.
Don’t get me wrong. My company has a bunch of Joyent instances running, but they’re all costing money until we launch the product. That’s the risk we’re willing to take. For my own personal on-the-side application (Django back-end, iPhone front-end) I’m going to take a good look at AppEngine.
If you want to keep the small indy developer, you may not want to dismiss AppEngine so quickly. Or at least, try to go one better ;-)
— Ramin 38 days ago #I agree with everyone above and you are right, it is nice to have root access to a box, but what is even better is having best practices built into a system right out of the box. Why should I have to think until I am getting 1,000 requests per second which happens, I guesstimate, to be under 0.0001% of sites that get launched. You are the professional hosting company, I am the developer, why should I have to re-invent the wheel?
Just to get my RoR application running on a Joyent Accelerator took me two days because the wiki instructions were broken and tech support kept on responding to me in jibberish. Not a great experience. From my perspective Joyent does great in a broken industry but once someone fixes it like a Google then things will change.
Me and my love hate relationships with you guys :-).
— John Kopanas 38 days ago #@Nathan, Ramin, John: good points. I agree with them (mostly). Our point is the “let developers not worry” solution needs to be open. Or you will find yourself trapped.
— David Young 38 days ago #@Chuck: operating systems don’t matter, as I’ve said before. But if they do, you can get OpenSolaris. You can't get Bigtable or S3. That’s my point.
— David Young 38 days ago #Couldn’t you have the best of both worlds of the powerful Joyent Accelerator & the crazy simple Google App Engine features if only Joyent were to offer a managed Accelerator service.
There are many of us that want to use Apache, MySQL, PHP on a powerful Accelerator but don’t want to hassle (and time spent) of installing the web server, database etc… and maintaining them.
I (and I know many others) would greatly love a managed Accelerator service.
Pleeeeeeeeeeeease, Joyent :)
— Doug 38 days ago #@David Young point taken. Operating systems shouldn’t matter, but sometimes they do. Learning the semantics of another distro can be a distraction: another OS can be a pain. Having said that, it wasn’t a big deal (although there was some moaning).
Joyent’s big advantages are image persistence and app portability. With those I agree wholeheartedly. Just running a database and not worrying about persistence is very nice.
The “having root” argument holds up against AppEngine, but is weak against EC2: you have root on an EC2 image as well. You could argue that you actually have more control of the environment in which an EC2 image runs, and of the lifecycle of that image.
— Chuck 38 days ago #David,
Your advocacy for open standards/platforms is appreciated.
The reality is EC2/S3/SdB and Google’ AppEngine herald a unstoppable trend. How much more longer before Sun and Microsoft fire up their cloud servers for developer access? And why would IBM, HP and Dell watch from the sidelines?
They all can afford to price it agressively as the money is to be made from volumes/traffic/adrevenue; Can Joyent match that?
Does Joyent have an offering in the works to convince the developers and companies who will be lured by lower prices and perhaps zero startup cost?
All this open standards philosophizin’ is great, but its time to show us the money.
I
— Taknev 38 days ago #With EC2 you get root. You don’t necessarily have to redesign much to move away. S3 is rather simple and there are even rails plugins that make it easy to move from S3 to other storage types.
-Dan
— Dan Quellhorst 37 days ago #Doesn’t _why’s Amazon S3 Clone ParkPlace make the transition between S3 and you system easier ?
— zemariamm 37 days ago #No need to panic David. I don’t think Google is after your customers. Don’t worry we won’t leave because we have brains and we wont’ want to lock ourselves into Google’s proprietary jail – we’ve been there once before (Microsoft on desktop).
Google is aiming at YCombinator kids with 2 week prototypes in minds who want to get bought by Google for $200K. :-)
— Ev 37 days ago #Google App Engine is restricted to Python, that is true. However they will be opening up to other languages in the near future. Currently it is in beta. It isn’t going to be Python only.
— Rushi 37 days ago #Hi David,
There’s one important thing which EC2 and Google App Engine has (or will have) which you don’t (unless I’ve missed something): an API for dynamically booting and stopping VMs as required, with per-CPU-hour billing instead of monthly or yearly billing. This is the essential pre-requisite for liquid scaling , which is the main selling point for both EC2 and App Engine.
I’m a Joyent customer and I really like the service, but the hard truth is that until you have this, you’re not really an on-demand “cloud computing” provider, but instead more like a traditional hosting provider using virtualisation to reduce operational and maintenence overheads.
— Ian Sollars 37 days ago #Hey David,
I am a (happy) django user on accelerators too, but I have to admit too that I would rather have a smooth setup/deployment process and costs based on usage.
Setting up my accelerator was different every time (blastwave, pkgsrc, facebook template) and took me a few days to figure out. I’m pretty unix-savvy but figuring everything out through wiki’s and forums does not feel very professional.
I am a (happy) django user on accelerators too, but I have to admit too that I would rather have a smooth setup/deployment process and costs based on usage.
Setting up my accelerator was different every time (blastwave, pkgsrc, facebook template) and took me a few days to figure out. I’m pretty unix-savvy but figuring everything out through wiki’s and forums does not feel very professional.
We are just a small mac software company that occasionally gets dugg. That forces us to buy a bigger server then we need 90% of the time. I totally get that you guys are aiming for the next twitter but don’t forget that there are lots of guys like us with pretty populair sites that need decent hosting.
And while you think about repositioning why not considering adding awesome features like CDN. I bet you guys can nail that and most of the competition is either expensive or just weird. Oh, and DNS services would be cool for a hosting provider too. For a few times $125 a month it seems weird to have to get that somewhere else.
So apart from all this, I really think you are still the best guys around. I guess what I’m saying is I would just love to see you guys less focussed on super-demanding-highend-scaling-expertise and more on very-easy-to-build-and-deploy-apps-the-best-and-easiest-way-possible.
— Koen Bok 37 days ago #And while you think about repositioning why not considering adding awesome features like CDN. I bet you guys can nail that and most of the competition is either expensive or just weird. Oh, and DNS services would be cool for a hosting provider too. For a few times $125 a month it seems weird to have to get that somewhere else.
Wow, sorry for the duplicate begin. I have no clue what went wrong :-(
— Koen Bok 37 days ago #If you use persistentfs, you can create a POSIX-compliant and persistent filesystem with S3, which basically obviates the problems you mention in the post.
— PJ Doland 37 days ago #@Ian: you’re right about the API. Stay tuned.
— David Young 37 days ago #Hum, definitely – this sounds interesting :-)
— Ian Sollars 37 days ago #I would like to second @Koen Bok recommendation (and Doug implies it) for Joyent to focus more on the ease of setup and administration of Accelerators.
— Shawn W. 37 days ago #@Chuck
Slicehost offers a choice of OSes:
Ubuntu 7.10 (Gutsy Gibbon)
Ubuntu 6.06 (Dapper Drake) LTS
Debian 4.0 (Etch)
Gentoo 2007.0
Centos 5.1
Fedora 8
Arch 2007.08
Their 512MB slice is $38/month.
— Slicehoster 37 days ago #@Slicehoster: why does the OS matter? Our 512mb Accelerator is $75/month and offers 10TB transfer per month (vs. 200GB) and access to 95% of 8 cores (vs. 4).
— David Young 37 days ago #It seems like there is a common thread for people wanting an easier solution to startup on your servers using best practices. Everything else seems to be answered except for this one. I am wondering if there is anything in the short term plans to put something like this in place?
— John Kopanas 37 days ago #@David
You’re asking why the OS matters? To begin with, I wasn’t arguing that the OS did matter, I was just simply stating a series of facts. You’re being severely disingenuous here, though, if you say otherwise:
“You must use their storage system. You must use their (choice of) language. Beyond that, you are locked into their authentication systems, their email systems and most importantly, their specific approach to scaling.”
“At Joyent, we believe Open Wins. – You can run any DB, any application stack. Any storage.”
Just not your (open) choice of Operating System. And not only do you have NO choice with an accelerator, it’s actually worse – you’re locked into a relatively obscure OS.
And David, it won’t be possible to hold an ongoing honest discussion with you, if you fail to understand or are unwilling to admit how important the operating system is.
If you insist, however, what if you believe in or require an open source OS? One not encumber with patent and trademark issues? How about package/library management? Does years of personal familiarity hold any value? It does to me. How about the massive amount of community support around Fedora, or Ubuntu’s popularity?
You want your OS.
— Slicehoster 37 days ago #@David Young – there wouldn’t be so many different Linux distributions if OS didn’t matter.
Hell, I recall you guys been pretty happy about moving from FreeBSD to OpenSolaris. Why do it if OS means nothing?
— ceejayoz 37 days ago #This and the other mock postings makes it certainly seem like Joyent is a little scared by what Google and others are doing.
Perhaps this will give you the push you need to lower your pricing of $45 (and setup fees) for 256MB of RAM as well as offer other OS options.
— Rob 37 days ago #@Slicehoster and ceejayoz: the OS doesn’t matter to the web developer. The web framework (PHP, Ruby, Java, etc) is what matters. The OS matters very much to the infrastructure provider (e.g. Joyent). We chose OpenSolaris because of ZFS, DTrace, ability to address lots of memory, and many, many CPUs. That’s our opinionated choice. I recognize others view things differently.
— David Young 37 days ago #Easy deployment is hard to do when there are so many choices. I used Rails Machine for a while, and it was dead simple because of the provided Capistrano recipes (I didn’t even know Capistrano back then). Applying that over to a general-purpose host like Joyent is a lot more work, even with a single OS. There are a variety of languages and SCMs to choose from, and single and multi-server deployments in various configurations.
That is only half of the puzzle in a service like Google App Engine, which like AWS is quite a different model from typical hosting, plus offering a free taste.
— Nathan Youngman 37 days ago #@David
I am a web developer. It matters to me. All of things I mentioned (for which you queried and then conveniently neglected to address..) matter to me.
“...the OS doesn’t matter to the web developer. “
Are you sure?
(hint: I’m an incredibly happy Slicehost customer)
— Slicehoster 37 days ago #@Slicehoster: As a web app developer, I couldn’t care less about the OS, as long as my application layer ran and had all the features I needed. I develop on Mac OS, test on Windows, Linux, and Solaris, and eventually move it to Joyent’s OpenSolaris.
This is because my layer of abstraction is Python, Apache, Django, and MySQL. Someone else’s might be PHP or Ruby, Postgres or SQLite. And if the basic stack doesn’t have it I want gcc, make, and bash so I can build add-on apps that I can’t get to in Python. The last thing I want to think about is the OS.
@David: an instance creation API is cool, but so is a slick UI for doing quick and dirty tasks. I keep my personal account on WebFaction. They have a really nice UI for deploying instances of common blogging engines, databases, Django, etc. It’s good enough for 80% of the things I do. What they don’t have is the scalability if something gets Dugg.
These aren’t hobby projects, btw. They’re prototypes and demos being done for clients and partners. Not even close to — as @Ev said — the Y-Combinator kids. They’re not meant to scale. But they’re good stepping stones on the way to the final thing. I can’t imagine doing that on Joyent today. Way too much work.
To paraphrase the Perl guys, I want a service that makes “easy things easy and hard things possible.”
— Ramin 37 days ago #Even though people like to knock them all the time, Dreamhost has an absolutely awesome control panel.
It can create databases, install popular software (e.g. Wordpress, etc), I can easily create email accounts etc … all with ease.
And you know what, even with their crappy downtimes – people stay solely because of the crazy simple and easy to use control panel they have developed.
Joyent, that’s why so many people were disappointed when word came out that TextPanel was not going to be developed.
People want tools to make their life easier. Webmin sucks in comparison to Dreamhost control panel. If you don’t believe me, spend the 7 bucks and find out.
(I only say this b/c I love you guys so much)
— Chad 37 days ago #Adding to this, yes, the stupid OS matter because in the bastardized *nix land, everything is different in everything. Or more exactly, if is necesary touch GCC and is not in a repository, you can get lost very quicly.
Then, solaris ports of linux things are not smoth. I lost 3 weeks triying to use pyLucene, and in the end, decide to launch the site with no searching – hoping solve it later -.
In the other hand, the google apps service have a lot of problems, or more exactly, a lot of that kind of small-things that become a lot of thing later. If I need to reinvent PIL, for example,where is the fun?
But I agree something could be done to easy the deployment on the accelerators. Maybe a option that say: “Add full django support with (Select packages: SVN, PIL, DB Library, etc)
— mamcx 37 days ago #I think a lot of people have wasted tremendous amounts of time trying to learn to use Solaris and trying to use c ruby libraries on solaris. There is a lot of sysadmin overhead added by Solaris if you are a linux expert trying to use it as you’d use linux.
I’d happily sacrifice root. What do I use root for? Updating blastwave packages, trying to get things to compile on solaris, and setting up SMF services. Hmm. Google has eliminated the need for all of that.
If Joyent offers a competitive advantage against app accelerator, it might be:
1) better pricing
2) better performance
3) significantly more flexibility
or simply
4) root access
Focusing on 4 is just a bad idea. The real question is, what is Joyent doing to help make peoples’ rails apps easy to deploy? It’s not submitting patches so that gems compile effortlessly on Solaris! It’s not making mysql on accelerators blazingly fast (even though Sun now owns mysql). What is it? It is the answer to that question that will determine whether anyone stays on Joyent as soon as Google releases support for Ruby in app accelerator.
Also, there is at least one open source bigtable clone, and I imagine that a competent engineer could recreate google’s platform on EC2 or even on an accelerator in less than a week. It’s not magic, it’s just python, cgi, bigtable, and a handful of other conventions.
Reading an absurd post about the benefits of root — for anything but niche deployments — really does not inspire confidence in Joyent’s vision and direction.
— john willis 37 days ago #@john willis
I completely agree. Many people I know, including myself, are willing to give up root access simply for a easy to use administrative interface to manage their Accelerator.
— Chad 37 days ago #@slicehoster: what’s your web application? URL? I’ll take back everything is you’ve built something with lots of users. Regards.
— David Young 37 days ago #@folks: “easy to use interface to manage their Accelerator” isn’t so easy to accomplish. Why? Well, for one, if we take control of updates, we’re going to break applications. Joyent is working to solve. But we’ll always have a bias towards developers that aspire to making very successful applications with tens of thousands of users.
— David Young 37 days ago #