Joyent Weblog
Cloud Nine: Specification for a Cloud Computer. A Call to Action.
What is cloud computing? We recently asked a number of people in our industry, and got back a range of interesting, and sometimes self-referential, responses. You can see them here. According to our respondents, cloud computing means anything from a single-tenant, multi-user application cloud (also known as software-as-a-service or “Saas”) to multi-tenant, general purpose, on-demand clouds (sometimes called platform-as-a-service or “PaaS”). Joyent provides an example of the former in our Connector product. We also do the latter in our Accelerator product.
I think the world of computing, generally, is moving away from a do-it-yourself approach to accomplish “shared” computing (and by computing is meant anything having to do with servers, in general) towards embracing or, better, stepping into the cloud for most computing the isn’t on the edge of the network. The migration has begun from dedicated, collocated servers to the cloud. Buyers don’t want to take possession of servers, routers, switches, network drops, racks; they want this from the cloud.

But what is the cloud?
What sort of cloud computer(s) should we be building or expecting from vendors? Are there issues of lock-in that should concern customers of either SaaS clouds or PaaS clouds? I’ve been thinking about this problem as the CEO of a PaaS cloud computing company for some time. Clouds should be open. They shouldn’t be proprietary. More broadly, I believe no vendor currently does everything that’s required to serve customers well. What’s required for such a cloud? I think an ideal PaaS cloud would have the following nine features:
1) Virtualization Layer Network Stability
Cloud computers must operate on some sort of virtualization technology for many of the following features to even be feasible. But as general purpose computing moves from dedicated hardware to on-demand computing, one key feature of the dedicated model for web applications is a stable, static IP address. If the virtualization layer borks (and this happens), when the cloud has recovered the cloud instances of compute, the developer should be able to rely on the web application just working without having to re-jigger network settings.
2) API for Creation, Deletion, Cloning of Instances
Developers should be able to interact with the cloud computer, to do business with it, without having to get on the phone with a sales person, or submit a help ticket. In other words, the customer should be able to truly get on-demand computing when they demand, whenever they demand. Joyent only began to offer this recently through Aptana and their Aptana Studio product. However, the API is only available to Aptana at this point. The API needs to be publicly available to everyone. Provide a credit card (that works and is yours) and you should get compute, storage, and RAM on-demand. The challenges for cloud computing companies is to figure the just-in-time economics that allow us to provide on-demand infrastructure without having lots of infrastructure sitting around waiting to be used. I think this means that cloud computing companies will, just like banks, begin more and more to “loan” each other infrastructure to handle our own peaks and valleys, But in order for this to happen we’d need the next requirement.
3) Application Layer Interoperability
Cloud computers need to support a core set of application frameworks in a consistent way. I propose that cloud computers should support PHP, Ruby, Python, Java and the most common frameworks, libraries, gems/plugins, and application/web servers for each of these languages. Essentially, a developer should be able to move between Joyent, the Amazon Web Services, Google, Mosso, Slicehost, GoGrid, etc. by simply pointing the “deploy gun” at the cloud (having used the API mentioned above to spin up instances) and go. Change DNS, done. But, no cloud computing company is innovating by providing better application layer solutions. We ought to support the most popular languages and move on. However, for a developer to truly have cloud portability, we need to support another requirement.
4) State Layer Interoperability
This is the most difficult problem to solve when scaling a web application, and, consequently, the area in which cloud computing companies are innovating while sacrificing interoperability. It’s not simply a question of deciding that we should all support MySQL or Postgres because we will find that the needed requirement (“Automatic Scaling”) is practically impossible to achieve with these tools. Amazon is innovating with SimpleDB, Google has BigTable as solutions for the problem, but developers can’t leave either cloud because neither SimpleDB nor BigTable are available anywhere else. What is needed, and I’m looking ahead to the next requirement when I say this, is an XMPP-based state-layer that can flush out to some SQL-y store. Think open-source Tibco. The financial markets fixed these problems years ago. This datastore needs to speak SQL, be built using open-source and free software, and be easy for developers to adopt. The value cloud computing companies provide to developers is running the state layer for them, without requiring developers to use some proprietary state layer that may or may not provide scalability upon success and represents lock-in.
5) Application Services (e.g. email infrastructure, payments infrastructure)
A cloud computer should provide scaled application services consumable by developers in developing and delivering their own applications. There are two types of application services. The first group is delivered using open protocols/formats. Examples would be IMAP/SMTP, LDAP/vCARD, iCAL/ICS, XMPP, OpenID, OPML. All clouds should offer these open protocols/formats so that developers can move between clouds without having to rewrite their application. The second group is delivered as web services, are often proprietary to the cloud (therefore a means of differentiation), and include services such as payments, inventory.
6) Automatic Scale (deploy and forget about it)
All things being equal, a competent developer should be able to deploy to a cloud and grow to five billion page views a month without having to think about “scale”. Just write the code, the cloud computer does the rest.
Is this achievable? Today, no. No cloud computer automatically scales applications. Part of the problem lies in the state layer. Part of the problem lies in what it means to scale. What is the measure of scale? Responsiveness? Scaling the state layer (e.g. the database) is a black art. Scaling the application layer or the static assets layer relies, in part on load balancing and storage.
7) Hardware Load Balancing
The cloud computer should provide the means to achieve five billion page views a month. I picked that number because it is big. If you’re writing an application, and you want to be able to achieve tremendous scale, the answer shouldn’t be to move off the cloud onto your own “private” cloud of dedicated servers. Of course, if the cloud computer is open as we’ve described, you can build your own cloud. It’s also true you can generate your own electricity from coal, if you want to bother. But why bother? Software load balancers will get you nowhere close to the throughput required to achieve 5 billion page views per month. The state of the art is hardware load balancers.
8) Storage as a Service
Storage should be available to developers as a service. Where this is done today, it is done using a proprietary API and represents lock-in. The storage service should allow customers to consume endless amounts of storage and pay for only what is used. Objects on the storage service should be accessed by developers as objects rather than as nodes in a hierarchical tree. This way developers don’t have to understand the hierarchy.
WebDAV could be an open protocol version of the storage service, but fails to provide the abstraction of treating objects as objects rather than nodes in a hierarchical tree. At present, I don’t believe there is a reasonable solution to the problem that isn’t also proprietary. We need to develop one that is open and free.
9) “Root”, If Required
The cloud computer vendor can’t think of everything a developer or application might need or want to do. So the cloud needs to be hackable and extensible by the developer and that means an administrative account of some sort that allows the developer to shape and mold the cloud to their specific needs. By definition, cloud computers must be built on top of some sort of virtualization technology, so the developer never has “root” to the cloud, only “root” to the developer’s part of the cloud.
Operating Systems Don’t Matter for Cloud Computing
People often confuse the “userland” with the operating system. An operating system provides the means for the userland to interact with hardware. The userland, especially in a (virtual) server context is “where stuff lives”. Where is the document root for Apache? Where do plug-ins get installed?
At Joyent, we use Solaris Express as the basis for our distribution of Solaris. It has a radically simplified userland designed for web applications, not for laptop computers, graphical user interfaces, mp3 libraries. Developers care about the userland, not the operating system. Wouldn’t it be great if you logged into your cloud and you saw:
/code
/frameworks
/binaries
How do we extend this so that the cloud is entirely “RESTful” and everything is just a URI? :)
The choice of the operating system (and the consequent virtualization technology) is critical to the cloud computing service provider. Whether we choose Solaris Zones or Xen or VMWare ESX or Linux KVM or Windows Server 2008 tells you about the ability of the cloud computer to scale reliably. Developers should care about the choices their cloud computing vendor makes because it speaks, in part, to the ability of the cloud to scale. But for using the cloud, deploying an application, it makes no difference.
Business Models
I’ve left aside talking about the business model of a cloud computer, since that is best left up to the vendor. The issues of whether there are contracts or not, whether one can pay with a credit card, is there hourly or monthly billing, these things don’t matter for the definition of a cloud computer. It is in these areas that vendors can innovate and differentiate.
Introducing CloudScore
The nine factors that make up a cloud computer can be applied by you, the buyer, to any cloud computer out there to determine a “CloudScore”.
Joyent’s Accelerator offering currently scores a CloudScore of 7 out of 9. We are working hard to achieve a Cloud 9.

Triathlon Experience with Fellow Joyeurs
This past Sunday four of us from Joyent (and one wife) participated in a sprint distance triathlon (half mile swim, 15 mile bike, 4 mile run) at Lake Berryessa east of Napa valley. We all finished. We all had a great experience. Some of the experiences included getting into the cold lake water at 8 in the morning with 125 other people in our wave (there were five waves) and immediately thinking a horrible mistake had been made. Oh, this is what the sinking of the Titanic must have been like, from a participant perspective. To finally getting the rhythm of the swim. Riding like a banshee on the bike. Getting off the bike and not being able to bend over to put on running shoes. And then 4.0 miles. 3.94 miles. 3.93. 3.92. 3.915. The view of the finish line was lubricant for sore muscles and achy joints. The manhattan that night, even better.
We all extend congratulations to Linka Watridge, the wife of our CFO Peter Watridge, on her winning time bettering all of us by more than three minutes.
From l to r: Rod Boothby, Peter Watridge, David Young, Blake Burris
Peter won the bet, if you care.
What is Cloud Computing?
We went to the Web 2.0 Expo and asked “What is Cloud Computing ?”. YouTube has a high definition version of What is Cloud Computing
Check out what the following people had to say:
- Tim O’Reilly
- Dan Farber
- Matt Mullenweg
- Jay Cross
- Brian Solis
- Kevin Marks
- Rafe Needleman
- Steve Gillmor
- Jeremy Tanner
- Maggie Fox
- Tom McGovern
- Sam Lawrence
- Stowe Boyd
- David Tebbutt
- Dave McClure
- Chris Carfi
- Rod Boothby
What do you think Cloud Computing is?
Joyent Developer Days: Proposed Cities
We are working on a series of one-day developer events to be held around the U.S. (to start*), that will include seminars and plenty of opportunities to hack on a few things.
The day itself will vary in format from location to location, but the goal is the same: bring the Joyent developer community closer together, provide the tools you need to build a successful web application and meet some fun people in the process.
We’ll be posting more details on the sessions as we finalize them, right now, we are curious as to what cities YOU feel we should absolutely visit. I have a list of 16 cities on our white board right now, I would like to bring that number down to 5 for the launch.
*Once the first five cities are under our belt, we will look at expanding the U.S. list based on your replies, and hopefully hopping the pond to visit our European friends as well as those down under.
UPDATE: 5/6/08
The five cities, leading by a mile, are: San Francisco Bay Area, Washington DC, New York, Boston, Chicago, and Austin.
I am going to leave the poll open through Friday, May 9th at 5pm PST and will post the results next Monday with proposed dates. If your city is not one of the five listed, vote now.
Codesnippets: A Place to Share Code
We’ve recently moved Textsnippets to Codesnippets and gave it a big face lift. Codesnippets is a place for developers to share code, solutions to problems, tutorials, techniques. And it is free.
Touch a Joyeur: Upcoming Events
Startup Camp (San Francisco, CA): May 4-5, 2008
While David, Peter, Rod and Blake are all up North killing themselves at (I mean participating in) a mini triathalon, Kristie Wells plans on roaming the hallways of Startup Camp and seeing what havoc she/I can create by trying to talk technical to a bunch of developers. Kidding. I promise not to talk technical to you guys.
More importantly, Jason will be leading a session called Building Your Company In The Cloud: Real Facts that starts on Sunday, May 4th at 1:50pm.
———
CommunityOne (San Francisco, CA): May 5, 2008
Sun has graciously offered us an area in Hall A to pitch a tent and hold a mini bootcamp of our own. Kristie Wells, Jason Hoffman, Rod Boothby and Blake Burris will all be on hand, leading fireside chats as well as sessions on ‘How to Scale’ between 11am to 4pm. We will also have a video camera on hand and interested in hearing your thoughts on ‘How to Scale’, which will be part II in a series we are launching in this blog shortly (part I was ‘What is Cloud Computing we did last week at Web 2.0 Expo).
Make sure you register and put ‘joyent’ as the referral code on page two of the registration form. Doing so will get you lunch, entry into Sun’s cocktail reception that starts at 6pm (free beer) and will also get you a free pass into day one of JavaOne Pavilion and General Sessions.
———
San Francisco Mini Meetup (San Francisco, CA): May 6, 2008
A couple Joyeurs are in town for the CommunityOne and JavaOne conference, so several of us are getting together to chow on some tacos and throw back a few pints. If you are interested in joining us, please leave a comment here and we will send you details once this has been locked down.
———
Taco Tuesday (San Francisco, CA): May 27, 2008
Tacos. Beer. Good conversation. Need we say more?
———
Google I/O (Mountain View, CA): May 28-29, 2008
Keep an eye out for Blake Burris, Rod Boothby and Kristie Wells.
———
RailsConf (Portland, OR): May 29-June 1, 2008
Several of the team members will be floating through the halls of the Oregon Convention Center…and you know there will be the daily ‘mixers’ as well. More information to follow shortly.
———
Velocity (Burlingame, CA): June 23-24, 2008
We plan to make a showing here, will add more information once available.
———
Structure 08 (San Francisco, CA): June 25, 2008
Jason Hoffman will be leading a session on Cloud Computing, Rod Boothby and Kristie Wells will be be on hand to hold the Hof’s Superman cape.
———
LoneStar Ruby Conference (Austin, TX): September 4-6, 2008
Look for Blake Burris roaming the halls…
Mi casa es su casa...most of the time. Joyeur commenting 'policy'.
Joyeur has a diverse audience with different sensibilities and opinions, and we tend to give folks a very long rope when leaving comments here on Joyeur.
Just please remember this is our home and we ask that you play nicely once you walk through the door. Good blog commenters add to the discussion and are known as knowledgeable, informative, friendly, and engaged. Bad blog commenters will be deleted, without notice, and possibly banned forever if you catch me in a foul mood. You can disagree with us, or any other commenters in this forum, but respect our space and keep your comments directed to the topic at hand.
To prevent your comment from being deleted:
- Please try to stay on topic as much as possible. We know sometimes you stray. That’s ok. Just try to keep it reeled in as much as possible.
- Relevant links in comments are okay, irrelevant links are not.
- Own your comment. We really don’t like ‘anonymous’ commenters and are more than likely to delete them. Be proud of what you have to say, and if you aren’t – then you should not be saying it. Linking back to your email address or website is even better as it shows me you are willing to stand behind your comment.
- No personal attacks, hate speech, excessive profanity, or other behavior that would be inappropriate in a civil conversation.
- No spam. We don’t like spam.
So don’t make us the bad guys. Just play nicely from the start and don’t track mud on the floor.
This is going to be big...
We’ve been working with Aptana on their Aptana Cloud offering, coming soon. The Joyent Master Control Program API was used to build the cloud. More later. But this is going to be big. Build in Aptana Studio, deploy and auto-scale on the cloud.
We're Looking for OpenSolaris SysAdmins in a Pacific Rim Timezone
If you are a great OpenSolaris sysadmin, and live in a pacific rim timezone (e.g. India to Korea), looking to enhance your career, we’d be happy to chat with you about opportunities at Joyent. Please respond to jobs [at] joyent [dot] com.
Rod Boothby Talks Cloud Computing at Web 2.0 Expo
Rod and I also held several interviews at the show – including Tim O’Reilly, Kevin Marks, Steve Gillmore, Dan Farber, and Rafe Needleman trying to get public opinion on ‘What is Cloud Computing’. We will be posting that video shortly as there is some good stuff in there.
Disclosure: That handsome fella interviewing him happens to be my husband, Chris Heuer, whose agency produced the Blogtropolus bloggers lounge at at the Web 2.0 Expo.
