Mayfield Blog

The API-ificiation of software – and LEGOs

Today everything has an API. Facebook has hundreds of APIs across such social areas as friends, photos, likes and events. Google has thousands of APIs across search/AdWords, Web analytics, YouTube, maps, email and many more. Amazon has APIs that cover the spectrum from Alexa Web traffic rankings to e-commerce product and pricing information and even the ability to start and stop individual machines. I spent a decade architecting and building component and services based software, and another decade after that evaluating and investing in infrastructure software, I believe this mobile and cloud influenced wave of RESTful service-oriented software may finally live up to its initial promise.

Although the majority of API attention has centered on consumer Web services, an emerging cadre of startups are focused on infrastructure and business processes. These newcomers are providing a broad range of critical services neatly packaged as frameworks or APIs. Some of these companies, such as Salesforce and Google Maps, are next generation SaaS providers that have built solutions to serve both end users and developers. Others, including Mailchimp and Twilio, are pure play offerings that solely target developers as customers.

Open source helped to reignite the open systems movement in the late 1990s, which popularized the idea of creating public projects and actively soliciting community feedback and involvement. Tens of thousands of open source projects have been created, but only those projects that built sizable communities have thrived. Most of the large infrastructure software categories were eventually filled by strong open source projects and some spawned successful commercial software companies, including RedHat, XenSource, Sourcefire, MySQL, JBoss, Talend and Alfresco. These companies span a broad range — from operating systems/hypervisors to security to middleware and database/content management.

Developers now expect the same instant gratification as end users. Instead of having to download, configure and manage all the associated software components, more and more of these capabilities need to be packaged “as-a-service” — hence, the move to cloud services. It is also important to remember that software development is an art, and programmers want a very simple and elegant programming interface.

These developer-focused startups provide simply packaged programming interfaces for a wide range of cloud-enabled services — from such basic infrastructure capabilities as storing and retrieving files to much more complex business processes, including invoicing, billing and payment processing. In some instances, startups begin by offering a constrained solution around a key feature/function, but then leverage that starting point to broaden the service into a more complete offering. This is the approach that CloudFlare and Urban Airship took, for example.

Targeting developers is not the only thing these startups are doing differently. Leveraging the inherent distribution of the app economy gives these new companies another intriguing opportunity to disrupt the incumbents. The explosive growth in mobile applications and the associated re-platforming means that developers are rebuilding from the ground up and evaluating new technologies at all layers. In addition, the emergence of so many new languages even further complicates the problems for incumbents. Originally written for the C++ and Smalltalk audiences, one of my favorite programming books of all time, “Design Patterns: Elements of Reusable Object-Oriented Software,” by the famous Gang of Four, has certainly influenced software architects on clean and reusable design abstractions.

Here is a broad, but by no means exhaustive, list of some of the potential infrastructure categories and disruptive companies. (If you want an exhaustive list of APIs check out ProgrammableWeb.) Some of the categories are unfilled by potential disruptors, and other categories include pure cloud services as well as software products. (In a follow-up post, I will share another list that includes a range of higher level business process type services.)

Category/Function

Incumbents

Disruptors

Compute

HP, IBM, Dell

Amazon, Rackspace, Joyent, Heroku, Node

Networking

Cisco, Juniper

Amazon, Pertino

WAN Optimization

Riverbed, Cisco, Juniper/Peribit

Load Balancing

Cisco, F5,

Nginx, Zeus

Disaster Recovery

EMC, Symantec/Veritas

Storage/File Sharing

EMC, NetApp

Amazon, Dropbox, Box

Email

MS Exchange, Constant Contact, Vertical Response

MailChimp, Mailgun, Postmark, SendGrid

Telephony

Avaya, Nortel

2600hz, ifbyphone, RingCentral, Tropo, Twilio

Chat

Microsoft, AOL, Facebook

Google Talk, HipChat

GIS/Mapping

ESRI, Trimble, MapQuest

CloudMade, Google Maps

Anti-malware

McAfee, Symantec, Websense

Webroot, Zscaler

Web Security

Cisco, Checkpoint

Cloudflare

Identity Management

Active Directory, IBM/Tivoli

Centrify, Ping, Symplified

Config/Systems Management

BMC/BladeLogic, HP/Opsware, IBM/Tivoli

Cfengine, Chef, Puppet, Vagrant

Log Management

ArcSight, Splunk

Loggly, SumoLogic, Papertrail

App Performance Management

IBM Tivoli, HP Openview, BMC Patrol

NewRelic, Boundary

Messaging

IBM, Tibco

Amazon SQS, Urban Airship, Pusher

Data Synchronization

Oracle, IBM/Lotus, Symantec/Veritas

Couchdb, Simperium

Data Sourcing, Cleansing and Enrichment

D&B, Axciom

Data.com/Jigsaw, Radius, FullContact

Database

IBM, Oracle, Sybase, MySQL

Amazon, Google, Cloudant, MongoHQ, Database.com

Data Marketplace

D&B, Experian, Axciom

Factual, Xignite

Content/Document Management

IBM Filenet, OpenText, Sharepoint,

Alfresco, Acquia

Testing

HP Mercury, CA Gomez, Keynote

SOASTA, SauceLabs

In some ways, this isn’t an entirely new approach. During the Web and client server technology cycles, some successful software companies used a similar model of providing libraries (and even DLLs). Crystal Reports made it extremely easy for developers to embed reporting within their applications; Hummingbird and Wollongong offered (TCP/IP) networking stacks; Visigenic provided (ODBC) database libraries/drivers; and Neuron Data and PowerBuilder provided platforms for user interfaces. These examples show that it was possible to build successful businesses at all levels of the software stack.

Consequently, APIs are only the latest packaging as developers transition from objects and class libraries to RESTful services. However, it seems that the promise of service oriented architectures is finally being realized, and it is creating a strong opportunity for innovative business models.

So what does all this mean? Client-server software was replaced by on-premise Web-based apps, which are in turn being replaced by cloud/SaaS solutions. Perhaps the next generation of software will be solutions composed from these APIs/services. All of these exciting startups are proving that developers need — and want — these services. But ultimately, building complete solutions might require a LEGO-like construction kit. Is the future of software about Lightweight Enterprise Gadget Orchestration? Perhaps, there is even an opportunity for someone to provide an Interface Builder (remember NextStep?) that can natively access the myriad of emerging SaaS/APIs.