From Open Source to Open Core: The Hard Way

This is the story of a journey. A long and challenging journey in which a small, bootstrapped team has taken Sensu from humble beginnings as an open source software project, to an open core platform for a burgeoning commercial product (Sensu Enterprise).

This journey begins in February 2013, when Heavy Water formally began offering ‘first party’ professional services for Sensu (the open source monitoring framework). We quickly realized that scaling a professional services business wouldn’t generate the kind of consistent and recurring revenue we would need to reach our goals for Sensu: to build the best monitoring software in the world, and to do so while continuing to develop Sensu as an open source software project. So we began to consider other revenue sources.

In the Spring of 2013 we began offering first party support for Sensu. Over the course of the next year this would take many forms, from SLA-based monthly and annual support offerings, to incident support (enabling Customers to get immediate support without a long-term commitment), and everything in-between. Although we liked these approaches because they were centered around the open source software project, ultimately none of these models were driving meaningful improvements to Sensu. We needed a better plan that would enable us to incorporate our deep knowledge of monitoring and operational awareness into a product.

May 2014 — Sensu Enterprise Development Begins

Early Sensu Core development was both helped and hindered by a commitment to remain as unopinionated as possible. The goal of the Sensu open source software project is to facilitate a diverse number of use cases by providing a framework made of simple primitives, allowing users to compose monitoring solutions using best-in-class tools. In fact, this was the basic premise of much of the original professional services we provided for Sensu — we helped customers configure Sensu to integrate with third-party systems for incident management, custom graphing dashboards, etc. And yet, many Sensu users were asking for a more opinionated Sensu — a ‘batteries included’ Sensu that would make it easy to get integrated with the tools and systems they were already using.

Consequently, while attending Monitorama in May 2014, we finally settled upon a plan to productize the work we had been providing for customers via our professional services (integrating Sensu with third-party tools) and we called it simply: ‘Sensu Enterprise’ — a batteries-included Sensu, with an officially supported dashboard, third-party integrations, and commercial support.

June 2014 — First Major Refactor of Sensu Core

The most exciting part of this plan for us was that by pivoting to an open core model it would also benefit the open source project, so much so that we spent most of the first few months of Sensu Enterprise development on improving Sensu Core and refactoring the codebase, resulting in the 0.13 release.

This first Sensu Core release in the Sensu Enterprise era was important because it introduced an abstracted Transport, enabling alternative message queues to be used in place of RabbitMQ (an architectural improvement that would allow us to add support for alternative transports in Sensu Enterprise, making it easier to deploy into more organizations), and improved Sensu’s support for Extensions (code that is loaded into the main Sensu process, which is how we would implement the built-in integrations in Sensu Enterprise).

December 2014 — Sensu Enterprise Beta Launch

By December 2014 we had made enough progress on Sensu Enterprise that we were ready to start collecting feedback from external users, so we launched a private beta.

The beta program turned out to be a huge success, running for over 10-weeks and involving over 50 organizations, we were able to collect a lot of user feedback and implement a final set of improvements before releasing Sensu Enterprise 1.0.

April 2015 — Sensu Enterprise Hits 1.0

Sensu Enterprise 1.0 was released on April 13, 2015 after nearly 11 months of active development, four major releases of Sensu Core (versions 0.13 through 0.17), a 10-week beta program, and a major rewrite of the Sensu documentation. This initial release was focused on a small set of built-in integrations, the first ever “officially supported” dashboard for Sensu, and an enterprise-class support SLA. It wasn’t much in the way of features, but it ended up being enough to generate a lot of interest from new customers, which would provide the revenue needed to grow the team and build new features.

April 2016 — Looking Back at One Year of Sensu Enterprise

All throughout the month of April 2016 we’ve been reflecting on the first year of Sensu Enterprise, and we’re very happy with the following highlights:

  • Monthly release cadence. There were over 12 releases of Sensu Enterprise during it’s first year of public availability, including 11 new feature releases (versions 1.1 through 1.11). This release cadence has allowed us to be extremely responsive to our paying customers needs, shipping minor enhancements and major new features at a very fast pace.
  • Official Sensu Training program. In July 2015 we made a formally standardized training program for Sensu, which was derived from 2+ years of ad hoc training provided via professional services engagements. In October 2015 we began hosting public training sessions which may be attended in person at our training facility in Portland, OR or remotely via Google Hangouts.
  • Premium Support. In September 2015 we began offering Premium Support for Sensu Enterprise, answering our customers requests for shorter response times and a 24/7 support SLA.
  • New Integrations. Since the 1.0 release, Sensu Enterprise has added several new integrations and other features, including: SNMPv1, InfluxDB, DataDog, VictorOps, SNMPv2, OpenTSDB, OpsGenie, Metrics API, Client-based Contact Routing, PuppetDB, ServiceNow
  • New Platforms! In addition to Sensu’s long-standing support for Ubuntu/Debian, RHEL/CentOS, and Microsoft Windows platforms, native packages for installing the Sensu client are now available for several new platforms, including Mac OS X, FreeBSD, IBM AIX, Solaris, and Raspberry Pi (for all your at-home monitoring needs) — all of which are covered via Sensu Enterprise Support.

Sensu Enterprise by the Numbers

As a 100% bootstrapped company, making the transition from a pure professional services business into product company has been challenging, which makes the success of Sensu Enterprise especially rewarding. So, how has Sensu Enterprise performed in its first year? We are very happy to report that in 12 months time we have managed to realize an 80x YOY increase in monthly recurring revenue (April 2015/2016). And while MRR is perhaps not a helpful comparison for a first-year product, the annual run rate is very telling: Sensu Enterprise saw an 11.5x growth in ARR from its opening quarter (Q2 2015) to Q4 2015, putting ARR well into 7-figure territory after only 9 months of sales!

Open Source Software is Hard, but Open Core is Harder

While our mission has been and continues to be centered around the Sensu open source software project, this hasn’t always been obvious. Intense focus on early customer feedback and our own internal roadmap for Sensu resulted in reduced participation in the Sensu community for prolonged periods of time. Although we have shipped 6 major releases of Sensu Core in the past year (0.18–0.23), our distance from the community led to an intimidating backlog of open issues in GitHub and difficult conversations in IRC, but we have overcome these obstacles.

The additional project management and engineering resources that Sensu Enterprise sales enable are helping us to resume regular participation in the community. We’re also happy to report that we have closed over 150 GitHub issues in the last 30-days with several more issues set to be closed by the impending 0.24 release. We’ve also started having some public discussions around upcoming changes to Sensu that will resolve several long-standing gaps in the platform. Closing these issues should help the Sensu open source project reach the “version 1.0” milestone this summer, which is one of our top priorities.

What’s Next?

With our renewed involvement and focus on the community and building momentum towards a Sensu Core version 1.0 release, we are excited about the future for Sensu Core and Sensu Enterprise. Here’s just a few of the new features that are coming soon:

  • Tessen — the monitor for your monitoring. Tessen will offer all Sensu users with an answer to the question: “what is monitoring your monitoring?” By opting-in to send a heartbeat and some monitoring data (e.g. client count, check requests/results per minute, events per minute, etc) to the hosted Tessen service, Sensu users will be able to receive alerts for monitoring anomalies.
  • Sensu Core 1.0, with Tessen support and new Aggregates 2.0 and Subdue 2.0 APIs.
  • Sensu Enterprise 2.0, with new SLA monitoring, federated API w/ token-based authentication and RBAC, ‘Big Data’ stream processing integrations, reporting, and chat bots.