Leaping the chasm from proprietary to open: A survivor's guide

B
Leaping the chasm from
proprietary to open:
A survivor’s guide
CTO
Bryan Cantrill
@bcantrill
Open source: In the beginning
• In the beginning, it was all open: software shipped with its source
• IBM led the move to proprietary enterprise software with their
move to an “object-only” model in 1983
• The rise of the personal computer in the 1980s led to the broader
rise of proprietary software, with the tone set by Bill Gates’
infamous 1976 letter, “An Open Letter to Hobbyists”
• By the mid-1990s, software was commercial, proprietary — and
entirely ossified, with many domains (e.g., languages, operating
systems, databases) considered “done”
Open source: The internet cometh
• The rise of the internet (and especially, Perl and Apache) brought
with it an ethos of sharing source to collaboratively develop it
• Free-and-open dominated among de novo non-commercial
systems software: languages (Perl, Python) databases (MySQL,
Postgres), web servers (Apache), OSs (Linux, BSD)
• Proprietary software remained, but with cost often driven to $0
• The early internet can be seen as a growing chasm between free-
but-proprietary (e.g. Java) and free-and-open (e.g. Perl)
Open source in the 2000s
• In the Dot Com Bust, economics dictated that open source (and
commodity hardware!) be used wherever possible
• Companies would occasionally contribute back the changes they
made to the software they used, but only rarely did they open
source software that they themselves invented
• Counter-examples were in infrastructural software domains in
which open source had become a hard requirement...
Leaping the chasm: OpenSolaris
• Sun — alone among the proprietary Unix vendors — chose the
arduous path of open sourcing its OS to assure its vitality
• Solaris was open sourced in June 2005 — and was showcased
by Sun engineers at OSCON in August (a decade ago!)
• To balance community needs with IHV wants, Sun chose a weak
copy-left (CDDL) that amounted to a cleaned-up MPL
• After being open sourced, Solaris was developed entirely in the
open, becoming perhaps the largest single software project to
completely transition from proprietary to open
Oracle pulls OpenSolaris back into the abyss
• After Oracle acquired Sun, it was clear that there was no interest
in open source — and zero appreciation of its social contract
• On Friday, August 13th an internal memo closed OpenSolaris:
We will distribute updates to approved CDDL or other open source-licensed code following
full releases of our enterprise Solaris operating system. In this manner, new technology
innovations will show up in our releases before anywhere else. We will no longer
distribute source code for the entirety of the Solaris operating system in real-time
while it is developed, on a nightly basis.
• Oracle’s depraved (and cowardly!) act foreshadowed even more
diabolical behavior: the assertion that APIs can be copyrighted!
The rise of illumos
• Oracle couldn’t actually close OpenSolaris; they could only fork it
• A new community, illumos, formed from the ashes of OpenSolaris,
aided by (but much larger than!) the Solaris diaspora
• Five years later, illumos is thriving with an established track
record for innovation (e.g., ZFS, DTrace, containers), new blood,
and multiple distributions (e.g., OmniOS, Joyent’s SmartOS)
• See http://illumos.org, http://omnios.omniti.com, http://smartos.org
Open sourcing shrink-wrapped software
• The OpenSolaris experience can be viewed as an object lesson
in open sourcing traditional, licensed, shrink-wrapped software
• Leaping the chasm from proprietary to open is (ultimately) a
business decision, and you will need to make the business case
• You need to move past fear to opportunity: think of open source
not as endangering revenue but rather as driving adoption
• Reminder: those that will operate and self-support your software
weren’t going to pay you anything anyway!
• And no, your competitors aren’t going to steal it
Open sourcing shrink-wrapped software, cont.
• Don’t be forkaphobic; the easier it is to fork your software, the
harder it is to fork the community!
• Don’t fetishize governance and/or process — for most open
source projects, core team + consensus is just fine (there are
exceptions to this; stay tuned!)
• Prefer permissive (or weak copy-left) licenses over strong copy-
left ones — license incompatibility impedes adoption
• Elevate your people! Organizations don’t innovate, people do —
and with open source, you can provide that transparency!
Open source and the cloud
• With the rise of cloud computing in the late-2000s, open source
became ever more entrenched, with more professionally-written
software being born in the open
• Trend was both accelerated and reflected by the rise of GitHub,
which greatly reduced the cost of open sourcing software
• Large companies began open sourcing important de novo
software e.g. Yahoo’s Hadoop, Google’s V8, Facebook’s Hive
• This has accelerated so much that it is now an engineering
challenge to determine which open source project to use!
SaaS: Proprietary software strikes back!
• But the cloud also represented a new kind of proprietary software:
proprietary software made available as a service
• Lock-in from services — especially platforms-as-a-service — can
be even more acute than that from shrink-wrapped software!
• Adding insult to injury, these proprietary services are often
(quietly) built on open source components — without so much as
patches being offered back!
• The new vector for proprietary software reveals GPL’s copy-left to
be an obviated notion — and that coercion is the wrong approach
to encourage contribution
Leaping the chasm: SmartDataCenter
• At Joyent, our core technologies — SmartOS and node.js — have
always been open source, but the distributed systems and
services that we built and operated based on them were not
• First among these is SmartDataCenter, our SmartOS- and
container-based cloud orchestration software that we run
ourselves as the Joyent Public Cloud — and sell to others
• Open sourcing software that runs your service is technically hard;
it is easy for implicit operational dependencies to creep in
• Risk is higher than with open sourcing software you merely use,
as code (and histories!) must be carefully scrubbed of secrets
Leaping the chasm: Manta
• But wait, it gets worse: proprietary systems and services can
easily build dependencies on other proprietary services
• We had built a significant dependency on a new, container-based
storage service that we had built, Manta
• We couldn’t meaningfully open source SmartDataCenter without
also open sourcing Manta, complicating the effort significantly
• If it needs to be said: it is much easier to be born open than to
become open — all software should be built assuming that it is
already open!
Leaping the chasm: SDC + Manta
• For many years, we had wanted to open source SDC and Manta
• It took much longer than one would like, in part because open
sourcing proprietary software is so easy to veto or (worse!) defer
• In making the case for open sourcing SDC + Manta, we made the
familiar arguments for open sourcing shrink-wrapped software:
open source as lead generation, as early evaluation program, etc.
• But two other arguments ultimately carried the day…
Infrastructure software must be open source!
• For infrastructure software (e.g., operating systems, databases,
runtimes), open source is now a constraint on the problem
• In this regard, open source has unequivocally won
• This trend is continuing upstack — software used as foundation
and/or component is overwhelmingly biased to be open in the
limit: increased adoption feeds network effects
• Docker is a particularly strong testament to the transformative
power of open sourcing infrastructure software...
Open source is our best vector for hiring
• Joyent — like most companies — struggles to find the right talent
• University hiring has reasonable fidelity, but is increasingly
expensive/competitive — and can result in a monoculture
• Open source communities self-identify and self-select, attracting
those who are drawn to the mission
• Participation in our open source communities is a much better
analogue for the work that we actually do!
• Our open source communities are our highest fidelity, lowest cost
vector for hiring — it’s our farm system!
Leaping the chasm: SDC + Manta!
• On November 6, 2014, we open sourced SDC and Manta!
• We moved to become an all-open company; the only proprietary
software is that which contains true secrets (e.g., billing software)
• e.g., Triton is our new service for running Docker containers
directly on the metal — and was born open
• We have already found that our technologies are being used in
places and by people where it wouldn’t have been otherwise
• And our first hire because of open source happened mere weeks
after we open sourced it! (And others have followed…)
SDC + Manta: Licensing!
• Based on our previous experiences, we:
• Love permissive licensing, but hate license incompatibilities
• Love contributors, but hate contributor license agreements
• Based on this, we selected the Mozilla Public License 2.0
• For a commercial entity, the MPL has some nice CYA attributes:
e.g., explicit warranting of original work, patent troll protection
• The MPL is explicitly compatible with other open source licenses
• The MPL is a great license that merits broader consideration!
SDC + Manta: Governance!
• Most open source projects can be entirely consensus driven —
the patch rate is low enough and the number of contributors small
enough that everyone can effectively look at everything
• If projects become more popular, the model can be extended with
a core team that can review work and guide contributors
• Most projects — including (for the moment) SDC and Manta —
can stop there: GitHub is all the governance one needs
• So while there is generally no need for elections or foundations or
any other such madness, there are, of course, exceptions...
Open source: When to consider a foundation
• Some (very few!) open source projects become so popular that
multiple, new commercial entities are created around them
• For these projects, no corporate steward is sufficiently neutral:
commercial tensions will threaten to rip a project apart
• In these rare cases, projects may be better served in a foundation
• This can be very hard to internalize — especially to a corporate
steward that believes that they are acting (and have acted) in the
best interests of the community!
• Yes, we learned this the hard way with node.js!
The limitations of foundations
• Foundations should be used and created only sparingly!
• Foundations pose more questions than they answer:
• How are board seats determined? (Pay-to-play? Community
elections? Code contributions?)
• How are conflicts resolved? (By consensus? By voting?)
• What are the principles that guide the work? (Does the mission
of the foundation go beyond mere self-preservation?)
• Foundations are only better than the alternatives
Leaping the chasm
• While there is still a chasm between proprietary and open source
software, open source is broadly winning — especially in
infrastructure software
• It is much easier to open source when a project is still young —
and being open may take the project in interesting directions
• For commercial entities, challenges have shifted from “when do I
open source?” to “when does this need to be in a foundation?”
• Participating in and leading open source efforts as a commercial
entity is an ongoing education; check back at OSCON 2025!
Thank you!
• SmartDataCenter: https://github.com/joyent/sdc
• Manta: https://github.com/joyent/manta
• Thanks to the many Joyent engineers who made open source
SDC and Manta happen, especially @trentmick, @rmustacc,
@dapsays, @jmclulow, Keith Wesolowski, @pfmooney,
@joshwilsdon, Jerry Jelinek, @kusor, @notmatt and @orlandov
• And did I mention that we’re hiring? ;) (Remote-friendly!)
1 of 23

Recommended

The DIY Punk Rock DevOps Playbook by
The DIY Punk Rock DevOps PlaybookThe DIY Punk Rock DevOps Playbook
The DIY Punk Rock DevOps Playbookbcantrill
3.6K views15 slides
Run containers on bare metal already! by
Run containers on bare metal already!Run containers on bare metal already!
Run containers on bare metal already!bcantrill
2.5K views28 slides
Why it’s (past) time to run containers on bare metal by
Why it’s (past) time to run containers on bare metalWhy it’s (past) time to run containers on bare metal
Why it’s (past) time to run containers on bare metalbcantrill
3.5K views18 slides
The Peril and Promise of Early Adoption: Arriving 10 Years Early to Containers by
The Peril and Promise of Early Adoption: Arriving 10 Years Early to ContainersThe Peril and Promise of Early Adoption: Arriving 10 Years Early to Containers
The Peril and Promise of Early Adoption: Arriving 10 Years Early to Containersbcantrill
3.8K views55 slides
Dynamic Languages in Production: Progress and Open Challenges by
Dynamic Languages in Production: Progress and Open ChallengesDynamic Languages in Production: Progress and Open Challenges
Dynamic Languages in Production: Progress and Open Challengesbcantrill
3.1K views33 slides
node.js and Containers: Dispatches from the Frontier by
node.js and Containers: Dispatches from the Frontiernode.js and Containers: Dispatches from the Frontier
node.js and Containers: Dispatches from the Frontierbcantrill
4.4K views23 slides

More Related Content

What's hot

Down Memory Lane: Two Decades with the Slab Allocator by
Down Memory Lane: Two Decades with the Slab AllocatorDown Memory Lane: Two Decades with the Slab Allocator
Down Memory Lane: Two Decades with the Slab Allocatorbcantrill
3.2K views22 slides
The Internet-of-things: Architecting for the deluge of data by
The Internet-of-things: Architecting for the deluge of dataThe Internet-of-things: Architecting for the deluge of data
The Internet-of-things: Architecting for the deluge of databcantrill
3.8K views31 slides
The Container Revolution: Reflections after the first decade by
The Container Revolution: Reflections after the first decadeThe Container Revolution: Reflections after the first decade
The Container Revolution: Reflections after the first decadebcantrill
5.4K views36 slides
Oral tradition in software engineering: Passing the craft across generations by
Oral tradition in software engineering: Passing the craft across generationsOral tradition in software engineering: Passing the craft across generations
Oral tradition in software engineering: Passing the craft across generationsbcantrill
4.2K views22 slides
Experiences porting KVM to SmartOS by
Experiences porting KVM to SmartOSExperiences porting KVM to SmartOS
Experiences porting KVM to SmartOSbcantrill
9.4K views34 slides
Platform as reflection of values: Joyent, node.js, and beyond by
Platform as reflection of values: Joyent, node.js, and beyondPlatform as reflection of values: Joyent, node.js, and beyond
Platform as reflection of values: Joyent, node.js, and beyondbcantrill
13.2K views39 slides

What's hot(20)

Down Memory Lane: Two Decades with the Slab Allocator by bcantrill
Down Memory Lane: Two Decades with the Slab AllocatorDown Memory Lane: Two Decades with the Slab Allocator
Down Memory Lane: Two Decades with the Slab Allocator
bcantrill3.2K views
The Internet-of-things: Architecting for the deluge of data by bcantrill
The Internet-of-things: Architecting for the deluge of dataThe Internet-of-things: Architecting for the deluge of data
The Internet-of-things: Architecting for the deluge of data
bcantrill3.8K views
The Container Revolution: Reflections after the first decade by bcantrill
The Container Revolution: Reflections after the first decadeThe Container Revolution: Reflections after the first decade
The Container Revolution: Reflections after the first decade
bcantrill5.4K views
Oral tradition in software engineering: Passing the craft across generations by bcantrill
Oral tradition in software engineering: Passing the craft across generationsOral tradition in software engineering: Passing the craft across generations
Oral tradition in software engineering: Passing the craft across generations
bcantrill4.2K views
Experiences porting KVM to SmartOS by bcantrill
Experiences porting KVM to SmartOSExperiences porting KVM to SmartOS
Experiences porting KVM to SmartOS
bcantrill9.4K views
Platform as reflection of values: Joyent, node.js, and beyond by bcantrill
Platform as reflection of values: Joyent, node.js, and beyondPlatform as reflection of values: Joyent, node.js, and beyond
Platform as reflection of values: Joyent, node.js, and beyond
bcantrill13.2K views
Joyent circa 2006 (Scale with Rails) by bcantrill
Joyent circa 2006 (Scale with Rails)Joyent circa 2006 (Scale with Rails)
Joyent circa 2006 (Scale with Rails)
bcantrill4.1K views
node.js in production: Reflections on three years of riding the unicorn by bcantrill
node.js in production: Reflections on three years of riding the unicornnode.js in production: Reflections on three years of riding the unicorn
node.js in production: Reflections on three years of riding the unicorn
bcantrill17.5K views
server to cloud: converting a legacy platform to an open source paas by Todd Fritz
server to cloud:  converting a legacy platform to an open source paasserver to cloud:  converting a legacy platform to an open source paas
server to cloud: converting a legacy platform to an open source paas
Todd Fritz2.5K views
Docker-N-Beyond by santosh007
Docker-N-BeyondDocker-N-Beyond
Docker-N-Beyond
santosh007541 views
Whales, Clouds, and Bubbles...? by Mary Anthony
Whales, Clouds, and Bubbles...?Whales, Clouds, and Bubbles...?
Whales, Clouds, and Bubbles...?
Mary Anthony562 views
Crash Course in Open Source Cloud Computing by Mark Hinkle
Crash Course in Open Source Cloud ComputingCrash Course in Open Source Cloud Computing
Crash Course in Open Source Cloud Computing
Mark Hinkle2.1K views
Demystifying Containerization Principles for Data Scientists by Dr Ganesh Iyer
Demystifying Containerization Principles for Data ScientistsDemystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data Scientists
Dr Ganesh Iyer198 views
Opening words at DockerCon Europe by Ben Golub by Docker, Inc.
Opening words at DockerCon Europe by Ben Golub Opening words at DockerCon Europe by Ben Golub
Opening words at DockerCon Europe by Ben Golub
Docker, Inc.13.4K views
Open Source Tool Chains for Cloud Computing by Mark Hinkle
Open Source Tool Chains for Cloud ComputingOpen Source Tool Chains for Cloud Computing
Open Source Tool Chains for Cloud Computing
Mark Hinkle2.9K views
InteropNY/CloudConnect 2014 - Quick Crash Course in Open Source Cloud Computing by Mark Hinkle
InteropNY/CloudConnect 2014 - Quick Crash Course in Open Source Cloud ComputingInteropNY/CloudConnect 2014 - Quick Crash Course in Open Source Cloud Computing
InteropNY/CloudConnect 2014 - Quick Crash Course in Open Source Cloud Computing
Mark Hinkle1.4K views
Meetup Mesos : Mesos, Chronos and Marathon in CI/CD factory by Laurent Grangeau
Meetup Mesos : Mesos, Chronos and Marathon in CI/CD factoryMeetup Mesos : Mesos, Chronos and Marathon in CI/CD factory
Meetup Mesos : Mesos, Chronos and Marathon in CI/CD factory
Laurent Grangeau486 views
Cloud Computing Expo West - Crash Course in Open Source Cloud Computing by Mark Hinkle
Cloud Computing Expo West - Crash Course in Open Source Cloud ComputingCloud Computing Expo West - Crash Course in Open Source Cloud Computing
Cloud Computing Expo West - Crash Course in Open Source Cloud Computing
Mark Hinkle2.8K views
Future of Open Source in a Cloudy World by Bret Piatt
Future of Open Source in a Cloudy WorldFuture of Open Source in a Cloudy World
Future of Open Source in a Cloudy World
Bret Piatt2.1K views

Viewers also liked

A crime against common sense by
A crime against common senseA crime against common sense
A crime against common sensebcantrill
3.9K views20 slides
Debugging microservices in production by
Debugging microservices in productionDebugging microservices in production
Debugging microservices in productionbcantrill
7K views45 slides
Debugging (Docker) containers in production by
Debugging (Docker) containers in productionDebugging (Docker) containers in production
Debugging (Docker) containers in productionbcantrill
5.1K views42 slides
The State of Cloud 2016: The whirlwind of creative destruction by
The State of Cloud 2016: The whirlwind of creative destructionThe State of Cloud 2016: The whirlwind of creative destruction
The State of Cloud 2016: The whirlwind of creative destructionbcantrill
6.5K views19 slides
Cgroups, namespaces and beyond: what are containers made from? by
Cgroups, namespaces and beyond: what are containers made from?Cgroups, namespaces and beyond: what are containers made from?
Cgroups, namespaces and beyond: what are containers made from?Docker, Inc.
11.3K views55 slides
Docker란 무엇인가? : Docker 기본 사용법 by
Docker란 무엇인가? : Docker 기본 사용법Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법pyrasis
67.9K views38 slides

Viewers also liked(9)

A crime against common sense by bcantrill
A crime against common senseA crime against common sense
A crime against common sense
bcantrill3.9K views
Debugging microservices in production by bcantrill
Debugging microservices in productionDebugging microservices in production
Debugging microservices in production
bcantrill7K views
Debugging (Docker) containers in production by bcantrill
Debugging (Docker) containers in productionDebugging (Docker) containers in production
Debugging (Docker) containers in production
bcantrill5.1K views
The State of Cloud 2016: The whirlwind of creative destruction by bcantrill
The State of Cloud 2016: The whirlwind of creative destructionThe State of Cloud 2016: The whirlwind of creative destruction
The State of Cloud 2016: The whirlwind of creative destruction
bcantrill6.5K views
Cgroups, namespaces and beyond: what are containers made from? by Docker, Inc.
Cgroups, namespaces and beyond: what are containers made from?Cgroups, namespaces and beyond: what are containers made from?
Cgroups, namespaces and beyond: what are containers made from?
Docker, Inc.11.3K views
Docker란 무엇인가? : Docker 기본 사용법 by pyrasis
Docker란 무엇인가? : Docker 기본 사용법Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법
pyrasis67.9K views
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다! by pyrasis
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
pyrasis274.4K views
Docker introduction by dotCloud
Docker introductionDocker introduction
Docker introduction
dotCloud455.8K views
Docker 101: Introduction to Docker by Docker, Inc.
Docker 101: Introduction to DockerDocker 101: Introduction to Docker
Docker 101: Introduction to Docker
Docker, Inc.71.2K views

Similar to Leaping the chasm from proprietary to open: A survivor's guide

Corporate Open Source Anti-patterns by
Corporate Open Source Anti-patternsCorporate Open Source Anti-patterns
Corporate Open Source Anti-patternsbcantrill
72.5K views22 slides
Introduction To Open Source by
Introduction To Open SourceIntroduction To Open Source
Introduction To Open SourceUchechukwu Obimma
87 views16 slides
[Workshop] Building an Integration Agile Digital Enterprise with Open Source ... by
[Workshop] Building an Integration Agile Digital Enterprise with Open Source ...[Workshop] Building an Integration Agile Digital Enterprise with Open Source ...
[Workshop] Building an Integration Agile Digital Enterprise with Open Source ...WSO2
784 views151 slides
How to get started in Open Source! by
How to get started in Open Source!How to get started in Open Source!
How to get started in Open Source!Pradeep Singh
552 views66 slides
LCA14: LCA14-110: FLOSS Training by
LCA14: LCA14-110: FLOSS TrainingLCA14: LCA14-110: FLOSS Training
LCA14: LCA14-110: FLOSS TrainingLinaro
3.2K views17 slides
Open soucre(cut shrt) by
Open soucre(cut shrt)Open soucre(cut shrt)
Open soucre(cut shrt)Shivani Rai
431 views20 slides

Similar to Leaping the chasm from proprietary to open: A survivor's guide(20)

Corporate Open Source Anti-patterns by bcantrill
Corporate Open Source Anti-patternsCorporate Open Source Anti-patterns
Corporate Open Source Anti-patterns
bcantrill72.5K views
[Workshop] Building an Integration Agile Digital Enterprise with Open Source ... by WSO2
[Workshop] Building an Integration Agile Digital Enterprise with Open Source ...[Workshop] Building an Integration Agile Digital Enterprise with Open Source ...
[Workshop] Building an Integration Agile Digital Enterprise with Open Source ...
WSO2784 views
How to get started in Open Source! by Pradeep Singh
How to get started in Open Source!How to get started in Open Source!
How to get started in Open Source!
Pradeep Singh552 views
LCA14: LCA14-110: FLOSS Training by Linaro
LCA14: LCA14-110: FLOSS TrainingLCA14: LCA14-110: FLOSS Training
LCA14: LCA14-110: FLOSS Training
Linaro3.2K views
Open soucre(cut shrt) by Shivani Rai
Open soucre(cut shrt)Open soucre(cut shrt)
Open soucre(cut shrt)
Shivani Rai431 views
Intro to open source - 101 presentation by Javier Perez
Intro to open source - 101 presentationIntro to open source - 101 presentation
Intro to open source - 101 presentation
Javier Perez350 views
SFO15-TR1: The Philosophy of Open Source Development by Linaro
SFO15-TR1: The Philosophy of Open Source DevelopmentSFO15-TR1: The Philosophy of Open Source Development
SFO15-TR1: The Philosophy of Open Source Development
Linaro702 views
Contributing to Open Source by Amol A. Sale
Contributing to Open SourceContributing to Open Source
Contributing to Open Source
Amol A. Sale404 views
Best practices for using open source software in the enterprise by Marcel de Vries
Best practices for using open source software in the enterpriseBest practices for using open source software in the enterprise
Best practices for using open source software in the enterprise
Marcel de Vries4K views
Conversation on Open Source - CU Boulder - Feb 2017 by Jason Carolan
Conversation on Open Source - CU Boulder - Feb 2017Conversation on Open Source - CU Boulder - Feb 2017
Conversation on Open Source - CU Boulder - Feb 2017
Jason Carolan355 views
OSSF 2018 - Colin Charles of GrokOpen - Community vs. enterprise how not to ... by FINOS
OSSF 2018 - Colin Charles of GrokOpen - Community vs. enterprise  how not to ...OSSF 2018 - Colin Charles of GrokOpen - Community vs. enterprise  how not to ...
OSSF 2018 - Colin Charles of GrokOpen - Community vs. enterprise how not to ...
FINOS52 views
The Coming OSS Sustainability Crisis by Aaron Stannard
The Coming OSS Sustainability CrisisThe Coming OSS Sustainability Crisis
The Coming OSS Sustainability Crisis
Aaron Stannard237 views
Managing Open Source Licenses (Geeks Anonymes) by Geeks Anonymes
Managing Open Source Licenses (Geeks Anonymes)Managing Open Source Licenses (Geeks Anonymes)
Managing Open Source Licenses (Geeks Anonymes)
Geeks Anonymes193 views
Alfresco: The Story of How Open Source Disrupted the ECM Market by Jeff Potts
Alfresco: The Story of How Open Source Disrupted the ECM MarketAlfresco: The Story of How Open Source Disrupted the ECM Market
Alfresco: The Story of How Open Source Disrupted the ECM Market
Jeff Potts1.7K views
“State of the Tooling” in Open Source Automation by Shane Coughlan
“State of the Tooling” in Open Source Automation“State of the Tooling” in Open Source Automation
“State of the Tooling” in Open Source Automation
Shane Coughlan44 views
IWMW 2002: open source sofware debate: kelly by IWMW
IWMW 2002: open source sofware debate: kellyIWMW 2002: open source sofware debate: kelly
IWMW 2002: open source sofware debate: kelly
IWMW 220 views

More from bcantrill

Predicting the Present by
Predicting the PresentPredicting the Present
Predicting the Presentbcantrill
30 views17 slides
Sharpening the Axe: The Primacy of Toolmaking by
Sharpening the Axe: The Primacy of ToolmakingSharpening the Axe: The Primacy of Toolmaking
Sharpening the Axe: The Primacy of Toolmakingbcantrill
248 views23 slides
Coming of Age: Developing young technologists without robbing them of their y... by
Coming of Age: Developing young technologists without robbing them of their y...Coming of Age: Developing young technologists without robbing them of their y...
Coming of Age: Developing young technologists without robbing them of their y...bcantrill
370 views21 slides
I have come to bury the BIOS, not to open it: The need for holistic systems by
I have come to bury the BIOS, not to open it: The need for holistic systemsI have come to bury the BIOS, not to open it: The need for holistic systems
I have come to bury the BIOS, not to open it: The need for holistic systemsbcantrill
1.6K views20 slides
Towards Holistic Systems by
Towards Holistic SystemsTowards Holistic Systems
Towards Holistic Systemsbcantrill
5.7K views13 slides
The Coming Firmware Revolution by
The Coming Firmware RevolutionThe Coming Firmware Revolution
The Coming Firmware Revolutionbcantrill
1.2K views12 slides

More from bcantrill(19)

Predicting the Present by bcantrill
Predicting the PresentPredicting the Present
Predicting the Present
bcantrill30 views
Sharpening the Axe: The Primacy of Toolmaking by bcantrill
Sharpening the Axe: The Primacy of ToolmakingSharpening the Axe: The Primacy of Toolmaking
Sharpening the Axe: The Primacy of Toolmaking
bcantrill248 views
Coming of Age: Developing young technologists without robbing them of their y... by bcantrill
Coming of Age: Developing young technologists without robbing them of their y...Coming of Age: Developing young technologists without robbing them of their y...
Coming of Age: Developing young technologists without robbing them of their y...
bcantrill370 views
I have come to bury the BIOS, not to open it: The need for holistic systems by bcantrill
I have come to bury the BIOS, not to open it: The need for holistic systemsI have come to bury the BIOS, not to open it: The need for holistic systems
I have come to bury the BIOS, not to open it: The need for holistic systems
bcantrill1.6K views
Towards Holistic Systems by bcantrill
Towards Holistic SystemsTowards Holistic Systems
Towards Holistic Systems
bcantrill5.7K views
The Coming Firmware Revolution by bcantrill
The Coming Firmware RevolutionThe Coming Firmware Revolution
The Coming Firmware Revolution
bcantrill1.2K views
Hardware/software Co-design: The Coming Golden Age by bcantrill
Hardware/software Co-design: The Coming Golden AgeHardware/software Co-design: The Coming Golden Age
Hardware/software Co-design: The Coming Golden Age
bcantrill1.9K views
Tockilator: Deducing Tock execution flows from Ibex Verilator traces by bcantrill
Tockilator: Deducing Tock execution flows from Ibex Verilator tracesTockilator: Deducing Tock execution flows from Ibex Verilator traces
Tockilator: Deducing Tock execution flows from Ibex Verilator traces
bcantrill475 views
No Moore Left to Give: Enterprise Computing After Moore's Law by bcantrill
No Moore Left to Give: Enterprise Computing After Moore's LawNo Moore Left to Give: Enterprise Computing After Moore's Law
No Moore Left to Give: Enterprise Computing After Moore's Law
bcantrill4.1K views
Andreessen's Corollary: Ethical Dilemmas in Software Engineering by bcantrill
Andreessen's Corollary: Ethical Dilemmas in Software EngineeringAndreessen's Corollary: Ethical Dilemmas in Software Engineering
Andreessen's Corollary: Ethical Dilemmas in Software Engineering
bcantrill2.2K views
Visualizing Systems with Statemaps by bcantrill
Visualizing Systems with StatemapsVisualizing Systems with Statemaps
Visualizing Systems with Statemaps
bcantrill4.8K views
Platform values, Rust, and the implications for system software by bcantrill
Platform values, Rust, and the implications for system softwarePlatform values, Rust, and the implications for system software
Platform values, Rust, and the implications for system software
bcantrill6.8K views
Is it time to rewrite the operating system in Rust? by bcantrill
Is it time to rewrite the operating system in Rust?Is it time to rewrite the operating system in Rust?
Is it time to rewrite the operating system in Rust?
bcantrill27.4K views
dtrace.conf(16): DTrace state of the union by bcantrill
dtrace.conf(16): DTrace state of the uniondtrace.conf(16): DTrace state of the union
dtrace.conf(16): DTrace state of the union
bcantrill836 views
The Hurricane's Butterfly: Debugging pathologically performing systems by bcantrill
The Hurricane's Butterfly: Debugging pathologically performing systemsThe Hurricane's Butterfly: Debugging pathologically performing systems
The Hurricane's Butterfly: Debugging pathologically performing systems
bcantrill5.7K views
Papers We Love: ARC after dark by bcantrill
Papers We Love: ARC after darkPapers We Love: ARC after dark
Papers We Love: ARC after dark
bcantrill3.1K views
Principles of Technology Leadership by bcantrill
Principles of Technology LeadershipPrinciples of Technology Leadership
Principles of Technology Leadership
bcantrill5.4K views
Zebras all the way down: The engineering challenges of the data path by bcantrill
Zebras all the way down: The engineering challenges of the data pathZebras all the way down: The engineering challenges of the data path
Zebras all the way down: The engineering challenges of the data path
bcantrill17.2K views
Debugging under fire: Keeping your head when systems have lost their mind by bcantrill
Debugging under fire: Keeping your head when systems have lost their mindDebugging under fire: Keeping your head when systems have lost their mind
Debugging under fire: Keeping your head when systems have lost their mind
bcantrill3.6K views

Recently uploaded

The Coming AI Tsunami.pptx by
The Coming AI Tsunami.pptxThe Coming AI Tsunami.pptx
The Coming AI Tsunami.pptxjohnhandby
14 views12 slides
Choosing the Right Flutter App Development Company by
Choosing the Right Flutter App Development CompanyChoosing the Right Flutter App Development Company
Choosing the Right Flutter App Development CompanyFicode Technologies
13 views9 slides
This talk was not generated with ChatGPT: how AI is changing science by
This talk was not generated with ChatGPT: how AI is changing scienceThis talk was not generated with ChatGPT: how AI is changing science
This talk was not generated with ChatGPT: how AI is changing scienceElena Simperl
34 views13 slides
"Package management in monorepos", Zoltan Kochan by
"Package management in monorepos", Zoltan Kochan"Package management in monorepos", Zoltan Kochan
"Package management in monorepos", Zoltan KochanFwdays
37 views18 slides
Cencora Executive Symposium by
Cencora Executive SymposiumCencora Executive Symposium
Cencora Executive Symposiummarketingcommunicati21
174 views14 slides
Measurecamp Brussels - Synthetic data.pdf by
Measurecamp Brussels - Synthetic data.pdfMeasurecamp Brussels - Synthetic data.pdf
Measurecamp Brussels - Synthetic data.pdfHuman37
27 views14 slides

Recently uploaded(20)

The Coming AI Tsunami.pptx by johnhandby
The Coming AI Tsunami.pptxThe Coming AI Tsunami.pptx
The Coming AI Tsunami.pptx
johnhandby14 views
This talk was not generated with ChatGPT: how AI is changing science by Elena Simperl
This talk was not generated with ChatGPT: how AI is changing scienceThis talk was not generated with ChatGPT: how AI is changing science
This talk was not generated with ChatGPT: how AI is changing science
Elena Simperl34 views
"Package management in monorepos", Zoltan Kochan by Fwdays
"Package management in monorepos", Zoltan Kochan"Package management in monorepos", Zoltan Kochan
"Package management in monorepos", Zoltan Kochan
Fwdays37 views
Measurecamp Brussels - Synthetic data.pdf by Human37
Measurecamp Brussels - Synthetic data.pdfMeasurecamp Brussels - Synthetic data.pdf
Measurecamp Brussels - Synthetic data.pdf
Human37 27 views
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading... by The Digital Insurer
Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading...
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And... by ShapeBlue
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
ShapeBlue120 views
"Surviving highload with Node.js", Andrii Shumada by Fwdays
"Surviving highload with Node.js", Andrii Shumada "Surviving highload with Node.js", Andrii Shumada
"Surviving highload with Node.js", Andrii Shumada
Fwdays59 views
The Power of Generative AI in Accelerating No Code Adoption.pdf by Saeed Al Dhaheri
The Power of Generative AI in Accelerating No Code Adoption.pdfThe Power of Generative AI in Accelerating No Code Adoption.pdf
The Power of Generative AI in Accelerating No Code Adoption.pdf
Saeed Al Dhaheri44 views
AI + Memoori = AIM by Memoori
AI + Memoori = AIMAI + Memoori = AIM
AI + Memoori = AIM
Memoori15 views
Optimizing Communication to Optimize Human Behavior - LCBM by Yaman Kumar
Optimizing Communication to Optimize Human Behavior - LCBMOptimizing Communication to Optimize Human Behavior - LCBM
Optimizing Communication to Optimize Human Behavior - LCBM
Yaman Kumar39 views
Mobile Core Solutions & Successful Cases.pdf by IPLOOK Networks
Mobile Core Solutions & Successful Cases.pdfMobile Core Solutions & Successful Cases.pdf
Mobile Core Solutions & Successful Cases.pdf
IPLOOK Networks16 views
Redefining the book supply chain: A glimpse into the future - Tech Forum 2023 by BookNet Canada
Redefining the book supply chain: A glimpse into the future - Tech Forum 2023Redefining the book supply chain: A glimpse into the future - Tech Forum 2023
Redefining the book supply chain: A glimpse into the future - Tech Forum 2023
BookNet Canada46 views
Adopting Karpenter for Cost and Simplicity at Grafana Labs.pdf by MichaelOLeary82
Adopting Karpenter for Cost and Simplicity at Grafana Labs.pdfAdopting Karpenter for Cost and Simplicity at Grafana Labs.pdf
Adopting Karpenter for Cost and Simplicity at Grafana Labs.pdf
MichaelOLeary8213 views
AIM102-S_Cognizant_CognizantCognitive by PhilipBasford
AIM102-S_Cognizant_CognizantCognitiveAIM102-S_Cognizant_CognizantCognitive
AIM102-S_Cognizant_CognizantCognitive
PhilipBasford23 views
What is Authentication Active Directory_.pptx by HeenaMehta35
What is Authentication Active Directory_.pptxWhat is Authentication Active Directory_.pptx
What is Authentication Active Directory_.pptx
HeenaMehta3515 views
The Role of Patterns in the Era of Large Language Models by Yunyao Li
The Role of Patterns in the Era of Large Language ModelsThe Role of Patterns in the Era of Large Language Models
The Role of Patterns in the Era of Large Language Models
Yunyao Li104 views
PCCC23:日本AMD株式会社 テーマ2「AMD EPYC™ プロセッサーを用いたAIソリューション」 by PC Cluster Consortium
PCCC23:日本AMD株式会社 テーマ2「AMD EPYC™ プロセッサーを用いたAIソリューション」PCCC23:日本AMD株式会社 テーマ2「AMD EPYC™ プロセッサーを用いたAIソリューション」
PCCC23:日本AMD株式会社 テーマ2「AMD EPYC™ プロセッサーを用いたAIソリューション」

Leaping the chasm from proprietary to open: A survivor's guide

  • 1. Leaping the chasm from proprietary to open: A survivor’s guide CTO Bryan Cantrill @bcantrill
  • 2. Open source: In the beginning • In the beginning, it was all open: software shipped with its source • IBM led the move to proprietary enterprise software with their move to an “object-only” model in 1983 • The rise of the personal computer in the 1980s led to the broader rise of proprietary software, with the tone set by Bill Gates’ infamous 1976 letter, “An Open Letter to Hobbyists” • By the mid-1990s, software was commercial, proprietary — and entirely ossified, with many domains (e.g., languages, operating systems, databases) considered “done”
  • 3. Open source: The internet cometh • The rise of the internet (and especially, Perl and Apache) brought with it an ethos of sharing source to collaboratively develop it • Free-and-open dominated among de novo non-commercial systems software: languages (Perl, Python) databases (MySQL, Postgres), web servers (Apache), OSs (Linux, BSD) • Proprietary software remained, but with cost often driven to $0 • The early internet can be seen as a growing chasm between free- but-proprietary (e.g. Java) and free-and-open (e.g. Perl)
  • 4. Open source in the 2000s • In the Dot Com Bust, economics dictated that open source (and commodity hardware!) be used wherever possible • Companies would occasionally contribute back the changes they made to the software they used, but only rarely did they open source software that they themselves invented • Counter-examples were in infrastructural software domains in which open source had become a hard requirement...
  • 5. Leaping the chasm: OpenSolaris • Sun — alone among the proprietary Unix vendors — chose the arduous path of open sourcing its OS to assure its vitality • Solaris was open sourced in June 2005 — and was showcased by Sun engineers at OSCON in August (a decade ago!) • To balance community needs with IHV wants, Sun chose a weak copy-left (CDDL) that amounted to a cleaned-up MPL • After being open sourced, Solaris was developed entirely in the open, becoming perhaps the largest single software project to completely transition from proprietary to open
  • 6. Oracle pulls OpenSolaris back into the abyss • After Oracle acquired Sun, it was clear that there was no interest in open source — and zero appreciation of its social contract • On Friday, August 13th an internal memo closed OpenSolaris: We will distribute updates to approved CDDL or other open source-licensed code following full releases of our enterprise Solaris operating system. In this manner, new technology innovations will show up in our releases before anywhere else. We will no longer distribute source code for the entirety of the Solaris operating system in real-time while it is developed, on a nightly basis. • Oracle’s depraved (and cowardly!) act foreshadowed even more diabolical behavior: the assertion that APIs can be copyrighted!
  • 7. The rise of illumos • Oracle couldn’t actually close OpenSolaris; they could only fork it • A new community, illumos, formed from the ashes of OpenSolaris, aided by (but much larger than!) the Solaris diaspora • Five years later, illumos is thriving with an established track record for innovation (e.g., ZFS, DTrace, containers), new blood, and multiple distributions (e.g., OmniOS, Joyent’s SmartOS) • See http://illumos.org, http://omnios.omniti.com, http://smartos.org
  • 8. Open sourcing shrink-wrapped software • The OpenSolaris experience can be viewed as an object lesson in open sourcing traditional, licensed, shrink-wrapped software • Leaping the chasm from proprietary to open is (ultimately) a business decision, and you will need to make the business case • You need to move past fear to opportunity: think of open source not as endangering revenue but rather as driving adoption • Reminder: those that will operate and self-support your software weren’t going to pay you anything anyway! • And no, your competitors aren’t going to steal it
  • 9. Open sourcing shrink-wrapped software, cont. • Don’t be forkaphobic; the easier it is to fork your software, the harder it is to fork the community! • Don’t fetishize governance and/or process — for most open source projects, core team + consensus is just fine (there are exceptions to this; stay tuned!) • Prefer permissive (or weak copy-left) licenses over strong copy- left ones — license incompatibility impedes adoption • Elevate your people! Organizations don’t innovate, people do — and with open source, you can provide that transparency!
  • 10. Open source and the cloud • With the rise of cloud computing in the late-2000s, open source became ever more entrenched, with more professionally-written software being born in the open • Trend was both accelerated and reflected by the rise of GitHub, which greatly reduced the cost of open sourcing software • Large companies began open sourcing important de novo software e.g. Yahoo’s Hadoop, Google’s V8, Facebook’s Hive • This has accelerated so much that it is now an engineering challenge to determine which open source project to use!
  • 11. SaaS: Proprietary software strikes back! • But the cloud also represented a new kind of proprietary software: proprietary software made available as a service • Lock-in from services — especially platforms-as-a-service — can be even more acute than that from shrink-wrapped software! • Adding insult to injury, these proprietary services are often (quietly) built on open source components — without so much as patches being offered back! • The new vector for proprietary software reveals GPL’s copy-left to be an obviated notion — and that coercion is the wrong approach to encourage contribution
  • 12. Leaping the chasm: SmartDataCenter • At Joyent, our core technologies — SmartOS and node.js — have always been open source, but the distributed systems and services that we built and operated based on them were not • First among these is SmartDataCenter, our SmartOS- and container-based cloud orchestration software that we run ourselves as the Joyent Public Cloud — and sell to others • Open sourcing software that runs your service is technically hard; it is easy for implicit operational dependencies to creep in • Risk is higher than with open sourcing software you merely use, as code (and histories!) must be carefully scrubbed of secrets
  • 13. Leaping the chasm: Manta • But wait, it gets worse: proprietary systems and services can easily build dependencies on other proprietary services • We had built a significant dependency on a new, container-based storage service that we had built, Manta • We couldn’t meaningfully open source SmartDataCenter without also open sourcing Manta, complicating the effort significantly • If it needs to be said: it is much easier to be born open than to become open — all software should be built assuming that it is already open!
  • 14. Leaping the chasm: SDC + Manta • For many years, we had wanted to open source SDC and Manta • It took much longer than one would like, in part because open sourcing proprietary software is so easy to veto or (worse!) defer • In making the case for open sourcing SDC + Manta, we made the familiar arguments for open sourcing shrink-wrapped software: open source as lead generation, as early evaluation program, etc. • But two other arguments ultimately carried the day…
  • 15. Infrastructure software must be open source! • For infrastructure software (e.g., operating systems, databases, runtimes), open source is now a constraint on the problem • In this regard, open source has unequivocally won • This trend is continuing upstack — software used as foundation and/or component is overwhelmingly biased to be open in the limit: increased adoption feeds network effects • Docker is a particularly strong testament to the transformative power of open sourcing infrastructure software...
  • 16. Open source is our best vector for hiring • Joyent — like most companies — struggles to find the right talent • University hiring has reasonable fidelity, but is increasingly expensive/competitive — and can result in a monoculture • Open source communities self-identify and self-select, attracting those who are drawn to the mission • Participation in our open source communities is a much better analogue for the work that we actually do! • Our open source communities are our highest fidelity, lowest cost vector for hiring — it’s our farm system!
  • 17. Leaping the chasm: SDC + Manta! • On November 6, 2014, we open sourced SDC and Manta! • We moved to become an all-open company; the only proprietary software is that which contains true secrets (e.g., billing software) • e.g., Triton is our new service for running Docker containers directly on the metal — and was born open • We have already found that our technologies are being used in places and by people where it wouldn’t have been otherwise • And our first hire because of open source happened mere weeks after we open sourced it! (And others have followed…)
  • 18. SDC + Manta: Licensing! • Based on our previous experiences, we: • Love permissive licensing, but hate license incompatibilities • Love contributors, but hate contributor license agreements • Based on this, we selected the Mozilla Public License 2.0 • For a commercial entity, the MPL has some nice CYA attributes: e.g., explicit warranting of original work, patent troll protection • The MPL is explicitly compatible with other open source licenses • The MPL is a great license that merits broader consideration!
  • 19. SDC + Manta: Governance! • Most open source projects can be entirely consensus driven — the patch rate is low enough and the number of contributors small enough that everyone can effectively look at everything • If projects become more popular, the model can be extended with a core team that can review work and guide contributors • Most projects — including (for the moment) SDC and Manta — can stop there: GitHub is all the governance one needs • So while there is generally no need for elections or foundations or any other such madness, there are, of course, exceptions...
  • 20. Open source: When to consider a foundation • Some (very few!) open source projects become so popular that multiple, new commercial entities are created around them • For these projects, no corporate steward is sufficiently neutral: commercial tensions will threaten to rip a project apart • In these rare cases, projects may be better served in a foundation • This can be very hard to internalize — especially to a corporate steward that believes that they are acting (and have acted) in the best interests of the community! • Yes, we learned this the hard way with node.js!
  • 21. The limitations of foundations • Foundations should be used and created only sparingly! • Foundations pose more questions than they answer: • How are board seats determined? (Pay-to-play? Community elections? Code contributions?) • How are conflicts resolved? (By consensus? By voting?) • What are the principles that guide the work? (Does the mission of the foundation go beyond mere self-preservation?) • Foundations are only better than the alternatives
  • 22. Leaping the chasm • While there is still a chasm between proprietary and open source software, open source is broadly winning — especially in infrastructure software • It is much easier to open source when a project is still young — and being open may take the project in interesting directions • For commercial entities, challenges have shifted from “when do I open source?” to “when does this need to be in a foundation?” • Participating in and leading open source efforts as a commercial entity is an ongoing education; check back at OSCON 2025!
  • 23. Thank you! • SmartDataCenter: https://github.com/joyent/sdc • Manta: https://github.com/joyent/manta • Thanks to the many Joyent engineers who made open source SDC and Manta happen, especially @trentmick, @rmustacc, @dapsays, @jmclulow, Keith Wesolowski, @pfmooney, @joshwilsdon, Jerry Jelinek, @kusor, @notmatt and @orlandov • And did I mention that we’re hiring? ;) (Remote-friendly!)