Archive | history RSS feed for this section

PaaS and DBaaS as tools

At MongoLab we’re obsessed with software tools to get stuff done.  DBaaS and PaaS represent new tools in a developer’s toolbox.  To borrow a 1997 Steve Jobs metaphor below, writing an app is like constructing a building.  And a good building tool (in the then newly acquired NeXT case, OpenStep) “lets you start developing your app on the 20th floor [instead of the 7th].” Likewise a good PaaS lets you develop your online service by starting with a pre-assembled deployment, provisioning, and scaling infrastructure.

Reformatted from Macworld Expo Jan 1997 video frame at about 14:00

A PaaS also comes with a pre-hired, trained, and conditioned team to keep it updated and running.  “Conditioned” means a team that will likely have resolved an issue prior to you running into it.  It also means that operational maneuvers that are rare for any one user are practiced nearly daily across a large population.  For example, we are constantly restoring databases, upgrading servers, finding helpful indexes, and have it down to a science.

Finally, in a developed PaaS, add-ons provide components that raise the base functionality even higher.  We’re in several PaaS add-on marketplaces, and to end users add-ons represent a menu of capabilities from internet telephony to new databases to analytics.  To add-on providers, PaaS represents a route to a market that is comfortable with as-a-Service offerings.

Off the rack or artisanal?

In the early days of UI application APIs, ignoring the API and writing directly to bare metal was a way to eke out every last bit of performance and control.  That hack-around code was fragile, needing to be maintained across API revisions, and more likely to exhibit inter-application conflicts that made for user headaches.  (PC Interrupt hell anyone?)

Will there always be performance and control advantages to building out your own server or rack?  Yes, and if your business demands it for raw competitive or cash flow reasons (performance ~= money), then it makes sense.  But for a growing fraction of businesses, focusing precious developer energy into infrastructure is less important than building a killer feature.

PaaS is a disruptive change: replacing existing processes, enabling new businesses, and needing market education.  New tools are always challenging practitioners to learn and adapt.  To an expert lathe operator, the language of CNC milling: 3D solid models and computerized tool paths can be unwieldy and foreign.  But to an industrial designer versed in modern manufacturing, CNC milling becomes a new way to express oneself, maybe even for an aluminum chassis previously unattainable at scale. That designer can still create objects with chisel and wood, and he can refine manufactured models with hand files and drills.

At the end of the day, any new tool must prove its worth and find its place in the toolkit.  As practitioners of software, we are always comparing the “known good” tools in our kit with the “new potentials”.  PaaS and DBaaS are tools that should evaluate for their capabilities and understand how they fit into your toolbelt.

Join fellow PaaS and DBaaS providers Nodejitsu, Xeround, Cloudant, and us for a discussion on PaaS and DBaaS hosted by Joyent.  Starts at August 22, 2012 at 11am US Pacific. Register here.

Interview: Brad Feld – Live life

Brad past the mid-point in his 50 mile foot race.

Brad Feld is one of the managing directors at Foundry Group, a venture capital firm that invests in early stage software / Internet companies throughout the United States, including MongoLab. He is also the co-founder of TechStars, a mentor-driven accelerator, author of several books and blogs, and a marathon runner. He is an long-time friend of mine, having invested in a 3D company I co-founded, ThinkFish, way back in 1995 when the Internet was running on sticks, stones and 10Base2. He graciously agreed to an email interview to share his thoughts on infrastructure, art, and life.

Question (Ben Wen): You’ve had a chance to work in the computer industry from when you were young. How would you characterize changes to the computing infrastructure (and especially the database) as impacting the way that you view investments?

Brad Feld: When I first started programming 30 years ago, I used flat file and ISAM databases. I remember the revelation I had when I could use a relational database with more than one index. I used to pay a lot of attention to the data structures underlying the applications I was involved in creating. As an investor, I continued to view the world through a relational lens until around 2005. Suddenly, I didn’t see every data set as a row-column database with indexes. That freed me up a lot to think about a different UI / UX, caused me to feel less constrained around extremely large data sets, and more importantly, caused the database and the application to disconnect from each other once and for all. I continue to understand how important the underlying database is, but as an investor I simply assume that magic can be done and don’t feel constrained by the limitations (functional or cost) of a relational data model.

Wen: Revelations: I agree it is deliciously memorable when some deeper insight arrives. Does investing give you Continue Reading →

{ "comments": 1 }

History: Continuation Passing Style in Node.js.

In 1975, MIT’s Artificial Intelligence Laboratory published AI Memo 349. Written by Gerald Jay Sussman and Guy Lewis Steele, Jr, it described the fundamentals of Scheme, a new LISP-like language based on the powerful lambda calculus.

One interesting new recursion technique they describe is the Continuation, which we now see today in many languages including  the rapidly rising Node.js framework. (Also known as CPS or Continuation Passing Style).

(the reference to [Reynolds] is a John C. Reynolds’ 1972 ACM Conference proceedings topic “Definitional Interpreters for Higher Order Programming Languages”)

PDF of AIM-349 is here:

In honor of today’s Node Summit it’s interesting to see one of the first publications that describes this key calling mechanism.

UPDATE: fixed to be a hyperlink.

{ "comments": 7 }