Open source ecosystem evolution open stack and kubernetes models
1. Open Source Ecosystem Evolution
OpenStack and Kubernetes models
Antonio Ojea, SUSE, Team Lead Openstack
2. History at a glance
Early days
(1969–1980)
Global Internet
(1989–1994)
Web 1.0 - dot com bubble
(1994–2004)
Virtualization and Web
2.0 (2004 - present)
in the late 1980s, Internet
was born, being the large
and global TCP/IP network
Tim Berners-Lee is credited with inventing the
World Wide Web in 1989 and developing in
1990 both the first web server, and the first web
browser, First graphical browser in 1993.
Marc Andreessen, released Netscape Navigator
in 1994, which resulted in one of the early
browser wars, when it ended up in a competition
for dominance (which it lost) with Microsoft
Windows' Internet Explorer. net via their own
internal browser.
The term resurfaced during 2002
– 2004nd gained prominence in
late 2004 following presentations
by Tim O'Reilly and Dale
Dougherty at the first Web 2.0
Conference.
2001, VMware created the first
x86 server virtualization product
Home Computers
(1980–1988)
In 1983, Richard Stallman
launched the GNU Project
to write a complete
operating system free
from constraints on use of
its source code.Stallman
also published the GNU
Manifesto in 1985
April 1998 by technology
publisher Tim O'Reilly orgnized
an event titled the "Freeware
Summit" and later named the
"Open Source Summit"[37]
, the
event brought together the
leaders of many of the most
important free and
open-source projects, Netscape
Communications
Corporation to release
their popular Netscape
Communicator Internet
suite as free software
in 1998
The Linux kernel, started by
Linus Torvalds, was released as
freely modifiable source code in
1991., Relicensed the project
under the GNU General Public
License.[28]
in February 1992.
In August 2006, Amazon created
subsidiary Amazon Web Services
In April 2008, Google released
Google App Engine in beta
In July 2010, Rackspace Hosting
and NASA jointly launched an
open-source cloud-software
initiative known as OpenStack..
In February 2010, Microsoft
released Microsoft Azure,
In 2015, Google and Linux
Foundation partner to create the
CNCF and release kubernetes v1.0
The Sinclair ZX80 personal computer was
launched by Sinclair Research Ltd of
Cambridge on 29th January 1980
The IBM Personal Computer model
number 5150 was introduced on August
12, 1981
In the 1950s and into the
1960s almost all software
was produced by
academics and corporate
researchers working in
collaboration.Software
was considered
copyrightable after the
1974
Microsoft was founded on 4
April 1975 by Bill Gates and
Paul Allen. Apple Inc was
founded on 1 April 1977.
3. Software Licenses
● A software license is a legal instrument (usually by way of contract law, with or
without printed material) governing the use or redistribution of software.
● Copyright is automatically attached to every novel expression of an idea, whether
through text, sounds, or imagery. The creator of has a right to the commercial
exploitation of only that particular expression.
● Among other things, no person other than the creator has the right under copyright
law to create “derivative works”
● This limitation to the expressions of an idea is the principal distinction between the
applications of patent and copyright. Unlike copyright, a valid patent does not
protect the expression of an idea but the underlying substance of it.
● In its traditional form, commercial software development is based on the
exploitation of the monopoly created by copyright for competitive advantage
● In part as a reaction to this distributor-driven model of copyright licensing,
programmers developed what is now known popularly as “Open Source” licensing.
● The fundamental purpose of open source licensing is to deny anybody the right to
exclusively exploit a work.
Ref: Understanding Open Source and Free Software Licensing By Andrew M. St. Laurent
Ref: https://en.wikipedia.org/wiki/Software_license
5. Software Ecosystems as Business Ecosystem
A business ecosystem (James F. Moore) consists of a set of companies working on a shared innovation. The companies
work together, cooperatively and competitively, for creating value for customers; the ecosystem advances as companies
and the innovation co-evolve together.
He identified and named four stages which are:
1. Birth where companies define value propositions of a seed innovation.
2. Expansion where the ecosystem seeks to expand to new territories
3. Leadership where participating companies start to struggle for a leadership. As an example, Moore used Microsoft’s
and Intel campaign against IBM during the “clone wars” of personal computers
4. Self-Renewal or Death where an ecosystem faces an external threat and it is forced to either renew itself or cease to
exist.
Ref: How do Software Ecosystems Co-Evolve? A view from OpenStack and beyond Working paper✰ Open-access at http://www.jteixeira.eu/pub/wp/ICSOB2017SEESNA.pdf
6. Free vs Open
"Most of the good programmers do programming not because
they expect to get paid or get adulation by the public, but
because it is fun to program." ~ Linus Torvalds
"First Monday Interview with Linus Torvalds: What motivates free software
developers?". Interview with Rishab Aiyer Ghosh, firstmonday.org. March 2, 1998.
I could have made money this way, and
perhaps amused myself writing code. But
I knew that at the end of my career, I
would look back on years of building
walls to divide people, and feel I had
spent my life making the world a worse
place.
On why he decided against writing proprietary
software; quoted in Free as in Freedom : Richard
Stallman's Crusade for Free Software' (2002) by
Sam Williams
Stallman is also the author of the GPL, and the first,
and still most important, philosopher of the free
software movement.
7. FOSS Development models
The Bazaar model,
“Linus’s cleverest hack was not the construction of
the Linux kernel itself, but rather his invention of
the Linux development model.
Some lessons learned:
“The first is the importance of users”
“release early, release often.And listen to your
customers”
the code is developed over the Internet in view of
the public
The Cathedral model,
source code is available with each software
release, but code developed between releases is
restricted to an exclusive group of software
developers. GNU Emacs and GCC were
presented as examples.
Software development, in its traditional form, relies
on tightly focused, relatively small groups of
programmers associated with a single institution or
corporation.
Ref: The Cathedral & the Bazaar by Eric Raymond
8. FOSS Foundations
not-for-profit and charitable organizations supporting the open source software movement, manages the
IP , provides organizational, legal, and financial , technical infrastructure, ...
● Free Software Foundation (FSF) – founded in 1985; began as a development center for the GNU Project. It currently
advocates for free software and against proprietary software and formats; and maintains and legally enforces the
GNU General Public License. It also created the Free Software Definition.
● Open Source Initiative (OSI) – founded in 1998; promotes open source software from a pragmatic rather than moral
perspective. Also created the Open Source Definition.
● Apache Software Foundation – founded in 1999; manages the development of the roughly 100 Apache software
projects, including the Apache HTTP Server.
● Eclipse Foundation – founded in 2004; supports the development of over 350 Eclipse projects, including the Eclipse
IDE.
● Linux Foundation – founded in 2000; supports the development of the Linux kernel, as well as over 60 other projects,
only some of which are connected to Linux. Also does advocacy, training and standards.
Ref: https://en.wikipedia.org/wiki/List_of_free_and_open-source_software_organizations
9. The “OpenStack” Phenomenon
The open source projects contributions base are formed by companies that obtains indirect value from the project
Competing revenue stream Revenue stream description Competing firms
Complementary services Firms providing specialized support, maintenance,
integration, customization, testing, consulting, etc.
SUSE, Mirantis, Red Hat, Canonical, HP, ...
Complementary software Firms providing software embedding OpenStack or
complementary drivers and plug-ins.
SUSE, IBM, VMware, Nebula, Cloudscaling,
Red Hat, Citrix, Canonical
Complementary hardware Firms providing hardware targeting OpenStack
installations.
IBM, HP, EMC
Distribution and support Firms distributing OpenStack with enterprise
support (for a fee).
SUSE, Red Hat, IBM, HP, VMware,
Canonical
Public cloud services Firms providing OpenStack based public cloud
services such as hosting.
HP, Rackspace, Canonical,
10. Openstack Open Source Ecosystem Evolution
Ref: Lessons learned from applying social network analysis on an industrial Free/Libre/Open Source Software ecosystem
https://jisajournal.springeropen.com/articles/10.1186/s13174-015-0028-2
OpenStack was created during the first months of 2010. Rackspace wanted to rewrite the infrastructure code running its
Cloud servers offering, and considered open sourcing the existing Cloud files code. At the same time, Anso Labs
(contracting for NASA) had published beta code for Nova, a Python-based “cloud computing fabric controller”.
Austin Bexar Cactus Diablo IcehouseHavana
11. OpenStack Open Source Competitors
Ref: CY15-Q1 Community Analysis — OpenStack vs OpenNebula vs Eucalyptus vs CloudStack, http://www.qyjohn.net/?p=3801
12. Openstack Foundation
The OpenStack Foundation promotes the global development,
distribution and adoption of open infrastructure.
The OpenStack Foundation was founded in September 2012 to
provide an independent home for the OpenStack cloud operating
system, which has since become one of the largest and most diverse
open source projects in history.
In December 2017, the OpenStack Foundation began incubating new
Strategic Focus Areas, starting with Container Infrastructure, CI/CD
and Edge Computing.
Ref: https://www.openstack.org/foundation/
Platinum Members
13. The “Kubernetes” Phenomenon
Kubernetes is an open source system for managing containerized applications across multiple hosts; providing basic
mechanisms for deployment, maintenance, and scaling of applications.
Kubernetes v1.0 gets released and Google partnered with the Linux Foundation to form the Cloud Native Computing
Foundation (CNCF) in 2015
The open source projects contributions base are formed by companies that obtains indirect value from the project.
14. Kubernetes Open Source Ecosystem Evolution
Ref: https://speakerdeck.com/thockin/kubernetes-state-of-the-project
15. Openstack Governance Model (per Oct 2 2018)
The OpenStack project is governed by three separate governance bodies, formally defined in the OpenStack Foundation bylaws.
Board of Directors
The OpenStack Board of Directors has oversight over the OpenStack Foundation, and the assets the Foundation protects (such as the
OpenStack trademark). It is composed of appointed representatives from Platinum sponsors, elected representatives from Gold sponsors,
and elected independent representatives.
Technical Committee
The OpenStack Technical Committee has oversight over technical matters and the upstream open source project. Its membership is directly
elected by the contributors to the upstream project. The Technical Committee shall have the authority to determine the modules for addition,
combination, split or deletion from the OpenStack Project except for modules of the Core OpenStack Project. For modules of the Core
OpenStack Project, the Technical Committee may recommend to the Board of Directors the modules for addition, combination, split
or deletion from the Core OpenStack Project.
User Committee
The OpenStack User Committee represents the downstream users of the OpenStack software. Its membership is currently appointed by the
three governing bodies, but should be directly elected soon. For more information about the User Committee, click here
16. Openstack Governance Model (per Oct 2 2018)
The Technical Committee shall have the authority to determine the modules for addition, combination, split or deletion from the OpenStack
Project except for modules of the Core OpenStack Project. For modules of the Core OpenStack Project, the Technical Committee may
recommend to the Board of Directors the modules for addition, combination, split or deletion from the Core OpenStack Project.
OpenStack Project Teams
OpenStack “Project Teams” are groups of people dedicated to the completion of the OpenStack project mission, which is ‘’to produce a
ubiquitous Open Source Cloud Computing platform that is easy to use, simple to implement, interoperable between deployments, works well
at all scales, and meets the needs of users and operators of both public and private clouds.’’ Project Teams may create any code
repository and produce any deliverable they deem necessary to achieve their goals.
The TC has ultimate authority over which project teams are designated as official OpenStack projects
Project Team Leads
Project Team Leads (“PTLs”) manage day-to-day operations, drive the team goals and resolve technical disputes within their team. Each
team should be self-managing by the contributors, and all disputes should be resolved through active debate and discussion by the
community itself. However if a given debate cannot be clearly resolved, the PTL can decide the outcome. Although the TC is generally
not involved in team-internal decisions, it still has oversight over team decisions, especially when they affect other teams or go contrary to
general OpenStack goals.
18. Requirements for new OpenStack Project applications (I)
Ref: https://governance.openstack.org/tc/reference/new-projects-requirements.html
The project follows the OpenStack way (“the 4 opens”): (living document https://github.com/hogepodge/four-opens)
● Open Source:
○ The proposed project uses an open source license (preferably the Apache v2.0 license, since it is necessary if the
project wants to be used in an OpenStack trademark program)
○ The project must have no library dependencies which effectively restrict how the project may be distributed or deployed
● Open Community:
○ The leadership is chosen by the contributors to the project
○ If the project has meetings, regular or otherwise, they should be public and in IRC. They should all be logged and
published. Project teams have discretion as to where meetings are held. They can be in the project specific IRC
channel, if it exists or one of the general meeting channels available. The advantage of hosting meetings in the project
specific channel is that project participants not present can catch-up more easily. Whereas holding the meeting in a
general channel gives extra visibility and makes it easier to ping other contributors.
○ The project shall provide a level and open collaboration playing field for all contributors. The project shall not benefit a
single vendor, or a single vendors product offerings; nor advantage contributors from a single vendor organization due to
access to source code, hardware, resources or other proprietary technology available only to those contributors.
19. Requirements for new OpenStack Project applications (II)
Ref: https://governance.openstack.org/tc/reference/new-projects-requirements.html
The project follows the OpenStack way (“the 4 opens”):
● Open Development:
○ The project uses public code reviews on the OpenStack infrastructure
○ The project has core reviewers and adopts a test-driven gate in the OpenStack infrastructure for changes
○ The project provides liaisons that serve as contacts for the work of cross-project teams in OpenStack
○ Where it makes sense, the project cooperates with existing projects rather than gratuitously competing or
reinventing the wheel
○ Where appropriate, the project adopts technology and patterns used by existing OpenStack projects
● Open Design:
○ The project direction is discussed at the Design Summit and/or on public forums
○ The project uses the openstack-dev ML to discuss issues
20. Cloud Native Computing Foundation
Kubernetes v1.0 gets released and Google partnered with the Linux Foundation to form the Cloud Native Computing
Foundation (CNCF) in 2015
•
Service Mesh StorageService Discovery
Distributed Tracing
Software Update Spec StorageSecurity Package
Management
Orchestration Networking API Service ProxyLogging Remote
Procedure Call
Distributed Tracing API Container Runtime Container Runtime
MessagingMonitoring
Ref: https://github.com/cncf/presentations/tree/master/kubernetes
22. Kubernetes governance model
SIGs
The Kubernetes project is organized primarily into Special Interest Groups, or SIGs. Each SIG is comprised of members
from multiple companies and organizations. Every identifiable subpart of the project (e.g., github org, repository,
subdirectory, API, test, issue, PR) is intended to be owned by some SIG.
Subprojects
Specific work efforts within SIGs are divided into subprojects. Every part of the Kubernetes code and
documentation must be owned by some subproject.
Working Groups
We need community rallying points to facilitate discussions/work regarding topics that are short-lived or
that span multiple SIGs. This is the purpose of Working Groups (WG). The intent is to make Working
Groups relatively easy to create and to deprecate, once inactive.
Committees
Some topics, such as Security or Code of Conduct, require discretion. Whereas SIGs are voluntary
groups which operate in the open and anyone can join, Committees do not have open membership
and do not always operate in the open. The steering committee can form committees as needed, for
bounded or unbounded duration. Membership of a committee is decided by the steering committee
Ref: https://github.com/kubernetes/community/blob/master/governance.md
23. Kubernetes Community Structure
Eligibility for voting
It is the responsibility of the steering
committee to refine these criteria prior to
each election.
Eligibility to vote for steering committee
members is defined by:
● People who had at least 50
contributions to the Kubernetes
project over the past year,
according to a snapshot taken
2018-08-15 of the data driving the
devstats developer activity counts
dashboard,
● People who have submitted the
voting exception form and are
accepted by the election
committee. We explicitly believe
the above heuristic will be
innacurate and not represent the
entire community.
24. Openstack and Kubernetes: Insights
Kubernetes Devstats
With the goal of measuring project
velocity and contribution statistic,
CNCF and Kubernetes community
are driving the DevStats initiative
○ Publicly accessible dashboard with
entire project statistics
○ Available at
https://k8s.devstats.cncf.io/
○ Source code at
https://github.com/cncf/devstats
Openstack Stackalytics
The Stackalytics project is on a mission
to provide transparent and meaningful
statistics regarding contributions to both
OpenStack itself and projects related to
OpenStack
○ Available at http://stackalytics.com/
○ Source code at
https://github.com/openstack/stackalytics
25. Openstack and Kubernetes: community membership
Openstack
Community Member
• Vote on Foundation Board Member Elections - No
Foundation Member
• Commit code to OpenStack via Gerrit
• Vote on Foundation Board Member Elections - Required*
Kubernetes
Role Responsibilities Requirements
Member
(372 in GH)
active contributor in the
community
sponsored by 2 reviewers. multiple
contributions to the project.*
reviewer review contributions
from other members
history of review and authorship in a
subproject
approver approve accepting
contributions
highly experienced and active reviewer
+ contributor to a subproject
subproject
owner
set direction and
priorities for a subproject
demonstrated responsibility and
excellent technical judgement for the
subproject
26. Openstack vs Kubernetes: Tools ;)
OpenStack Kubernetes
Development Language Python Go
Review System Gerrit (self hosted) Github (SaaS)
CI Zuul + Openstack
(self hosted)
Prow + Gcloud
Chat IRC (self hosted) Slack (SaaS)
Mailing lists Mailman (self hosted) Google groups (SaaS)
Collaborative tools Etherpads (self hosted) Google Docs (SaaS)
Support forums Askbot (self hosted) Stackoverflow (SaaS)