SlideShare a Scribd company logo
Swimming upstream – Dave Neary1
Swimming
Upstream
Dave Neary, Red Hat
dneary@redhat.com
@nearyd
Swimming upstream – Dave Neary2
Why bother?
OPENSHIFT
Open source is everywhere!
Ganeti
80% as good
as the last guy needed it to be
David Schlessinger
Swimming upstream – Dave Neary5
Building on open source projects
Swimming upstream – Dave Neary6
Branching strategy
1. I branch, and do what I want
Community development
(mainline)
Branch
point Vendor branch
"Unleveraged potential"
Swimming upstream – Dave Neary7
Branching strategy
Cost: Work on vendor branch
Opportunity cost of upstream work
Community development
(mainline)
Branch
point Vendor branch
"Unleveraged potential"
Swimming upstream – Dave Neary8
Branching strategy
2. Branch and rebase
Community development
(mainline)
Branch
point Vendor branch
Merge
point
Cost
of
merge
Swimming upstream – Dave Neary9
Branching strategy
...and rebase and rebase and...
Community development
(mainline)
Vendor branch
Merge points
Swimming upstream – Dave Neary10
Branching strategy
Cost: Vendor work + cost of
repeated merging (maintenance)
Community development
(mainline)
Vendor branch
Merge points
Swimming upstream – Dave Neary11
Branching strategy
3. Branch, rebase, and upstream
Community development
(mainline)
Branch
point Vendor branch
Merge
point
Cost
of
merge
Propose
patches
upstream
Swimming upstream – Dave Neary12
Branching strategy
Cost: Vendor work + cost of
merge + “community overhead”
Community development
(mainline)
Branch
point Vendor branch
Merge
point
Cost
of
merge
Propose
patches
upstream
Swimming upstream – Dave Neary13
“Community overhead”?
Our communities expect lots of
things which companies would
not otherwise do
Swimming upstream – Dave Neary14
Standard branching
Swimming upstream – Dave Neary15
Vendors want to build on a stable base
Swimming upstream – Dave Neary16
Community wants patches to trunk
Swimming upstream – Dave Neary17
Case study: Wakelocks
2005: Google acquires Android
2009: Arve Hjønnevåg proposes
Wakelocks for inclusion in kernel
Initial proposal rejected, with
comments
2009: Several updates also
rejected
Debate dies down for a year
2010: Wakelocks and alternative
“autosleep” from Rafael Wyszocki
“debated”* on LKML
* >1500 email thread
Autosleep patches merged,
wakelocks still outside kernel
Android team members have spent literally hundreds of
man hours (my mail folder on the suspend blocker thread
has over 1500 mail messages, and is nearly 10MB), and
have tried rewriting the patches several times, in an
attempt to make them be main-line acceptable.
Aug 2010, Theodore T'so
DiBona said there were some developers at Google
working on it who “feel burned” by the decision but he
acknowledged that the “staffing, attitute and culture” at
Google isn’t sufficient to support the kernel crew.
Apr 2010, Paula Rooney, ZDNet
“Getting code into the kernel is always
easier if you have a recognised name
associated with it”
Matthew Garrett, LinuxCon 2010
Swimming upstream – Dave Neary25
“Do NOT fall into the trap of adding
more and more stuff to an out-of-
tree project. It just makes it harder
and harder to get it merged. There
are many examples of this.”
Andrew Morton
Ideal situation
This is what upstream does
Difficulties
● Hard to sync product & project release dates
and features
● Building a castle on quicksand
● Basically 1.5x to 2x the work up-front
Difficulties
Why is this relevant for OPNFV?
Swimming upstream – Dave Neary30
NFV is not just OpenStack
Swimming upstream – Dave Neary31
Example: SR-IOV support
● Performance: VMs to be allocated an SR-IOV Virtual
Function on capable hosts
● Requires NUMA awareness in Nova, libvirt, QEMU to
ensure VM is on the same NUMA segment as the VF
● Improved SR-IOV support in libvirt (VM placed in same
NUMA node as VF)
● PCI pass-through support for Nova
● User interface and policy enforcement
Virtualized Mobile Base Station
- Multiple RAN technologies from
multiple vendors to be consolidated
on a single BS to improve utilization
- BS virtualization can share resources
among multiple logical RAN nodes
from different systems.
- C-RAN for efficient resource
utilization among different physical
BSs.
- Baseband Unit (BBU) pool with high
performance servers and real-time
processing for signaling capacity
(ETSI #4)
Swimming upstream – Dave Neary33
Example: C-RAN/vRAN
● Determinism
● Real-time patches to KVM
● Performance
● DPDK accelerated Open vSwitch
● Reliability at scale
● HA instances in OpenStack Nova
● HA OpenStack
● Fault management and reporting
● IPv6 support – kernel through Nova, Neutron
Swimming upstream – Dave Neary34
Upstream first
Swimming upstream – Dave Neary35
Upstream first
● Maintaining significant out-of-tree patches across
multiple projects is unsustainable
● Features should be designed, written and proposed
with upstream developers
● Cascading changes across multiple projects require
explanation and advocacy
Swimming upstream – Dave Neary36
Upstream First
● Requires discipline (small changes, discussed first)
● Relationships (your priority might not be their priority)
● Many communities – not just OpenStack!
Swimming upstream – Dave Neary37
Not always easy!
Swimming upstream – Dave Neary38
Steps to success
1. Empathy
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=30475
Bug: assert(int+100 > int) optimized away
c2: “signed type overflow is undefined by the C standard”
c4: “You have GOT to be kidding? [...] You are missing the
point here. [...] PLEASE REVERT THIS CHANGE. [...] THIS IS
NOT A JOKE. FIX THIS! NOW!”
c5: “I am not joking, the C standard explictly says signed
integer overflow is undefined behavior.”
c9: “Hey Andrew, do you really think this issue goes away if you
keep closing the bugs fast enough?”
...
c48: “Oh wow, another wise cracking newbie who comments
without actually understanding the issue. I AM NOT RELYING
ON UNDEFINED BEHAVIOR.”
...
2. Framing
Moving in
New job
Swimming upstream – Dave Neary45
Start small
● Listen for a while
● Introduce yourself
● Ask questions with an open mind
Swimming upstream – Dave Neary46
Make friends
● Relationships are key
● Learn cultural norms
Swimming upstream – Dave Neary47
3. Mapping the lay of the land
Identify the leader(s)
Case study: OpenDaylight
Swimming upstream – Dave Neary50
OpenDaylight community structure
● http://www.opendaylight.org/community/how-
participate - “Getting started guide, “Developer wiki”
● Technical Steering Committee:
https://wiki.opendaylight.org/view/TSC:Main
● Project meetings: Attend TSC meetings
● Project list:
https://wiki.opendaylight.org/view/Project_list
● Active IRC channel: #opendaylight on Freenode
Swimming upstream – Dave Neary51
Tools to help identify leaders
● Source code analysis:
https://spectrometer.opendaylight.org/
● Mailing list analysis: MLStats:
http://metricsgrimoire.github.io/MailingListStats/
Infrastructure
and
Channels
Swimming upstream – Dave Neary53
Common communication infrastructure
● Mailing lists
● IRC
● Wiki
● Code review
● Source control
One rule:
When in Rome...
Community processes:
When in Rome...
Swimming upstream – Dave Neary55
4. Effecting change
Avoid the
Water
Cooler
Swimming upstream – Dave Neary57
Open and transparent
Do not fear mistakes.
There are none.
Miles Davis
Swimming upstream – Dave Neary59
Communicate the vision
Swimming upstream – Dave Neary60
Break things down
Swimming upstream – Dave Neary61
Showing your work
Optimise
for reading
Rewrite history with
git rebase --interactive
Swimming upstream – Dave Neary63
Rinse, repeat
Keep your eyes
on the prize
Swimming upstream – Dave Neary65
Thank you
Dave Neary, Red Hat
dneary@redhat.com
@nearyd

More Related Content

What's hot

Learn OpenStack from trystack.cn
Learn OpenStack from trystack.cnLearn OpenStack from trystack.cn
Learn OpenStack from trystack.cn
OpenCity Community
 
OpenNebulaConf2019 - Crytek: A Video gaming Edge Implementation "on the shoul...
OpenNebulaConf2019 - Crytek: A Video gaming Edge Implementation "on the shoul...OpenNebulaConf2019 - Crytek: A Video gaming Edge Implementation "on the shoul...
OpenNebulaConf2019 - Crytek: A Video gaming Edge Implementation "on the shoul...
OpenNebula Project
 
Ceph, Open Source, and the Path to Ubiquity in Storage - AACS Meetup 2014
Ceph, Open Source, and the Path to Ubiquity in Storage - AACS Meetup 2014Ceph, Open Source, and the Path to Ubiquity in Storage - AACS Meetup 2014
Ceph, Open Source, and the Path to Ubiquity in Storage - AACS Meetup 2014
Patrick McGarry
 
The NixOS project and deploying systems declaratively
The NixOS project and deploying systems declarativelyThe NixOS project and deploying systems declaratively
The NixOS project and deploying systems declaratively
Sander van der Burg
 
Ceph: A decade in the making and still going strong
Ceph: A decade in the making and still going strongCeph: A decade in the making and still going strong
Ceph: A decade in the making and still going strong
Patrick McGarry
 
Разведка в сетях IPv6
Разведка в сетях IPv6Разведка в сетях IPv6
Разведка в сетях IPv6
Positive Hack Days
 
OpenDaylight: an open source SDN for your OpenStack cloud
OpenDaylight: an open source SDN for your OpenStack cloudOpenDaylight: an open source SDN for your OpenStack cloud
OpenDaylight: an open source SDN for your OpenStack cloud
Anees Shaikh
 
Telco Access Network with SDN
Telco Access Network with SDNTelco Access Network with SDN
Telco Access Network with SDN
Jian-Hao Chen
 
The Nix project
The Nix projectThe Nix project
The Nix project
Sander van der Burg
 
NetBox as the Source of Truth for Cisco NSO Configurations
NetBox as the Source of Truth for Cisco NSO ConfigurationsNetBox as the Source of Truth for Cisco NSO Configurations
NetBox as the Source of Truth for Cisco NSO Configurations
Hank Preston
 
z13: New Opportunities – if you dare!
z13: New Opportunities – if you dare!z13: New Opportunities – if you dare!
z13: New Opportunities – if you dare!
Michael Erichsen
 
How to be a Network Engineer in a Programmable Age
How to be a Network Engineer in a Programmable AgeHow to be a Network Engineer in a Programmable Age
How to be a Network Engineer in a Programmable Age
Hank Preston
 
DevOps Live Meetup- NetDevOps session with Jay Shah (IEEE Published Paper)
DevOps Live Meetup- NetDevOps session with Jay Shah (IEEE Published Paper)DevOps Live Meetup- NetDevOps session with Jay Shah (IEEE Published Paper)
DevOps Live Meetup- NetDevOps session with Jay Shah (IEEE Published Paper)
JAY SHAH
 
webthing-floss-iot-20180607rzr
webthing-floss-iot-20180607rzrwebthing-floss-iot-20180607rzr
webthing-floss-iot-20180607rzr
Phil www.rzr.online.fr
 
PLNOG 3: Jens Link - IPv6 - Migration Planning
PLNOG 3: Jens Link -  IPv6 - Migration PlanningPLNOG 3: Jens Link -  IPv6 - Migration Planning
PLNOG 3: Jens Link - IPv6 - Migration Planning
PROIDEA
 
Kubernetes and lastminute.com: our course towards better scalability and proc...
Kubernetes and lastminute.com: our course towards better scalability and proc...Kubernetes and lastminute.com: our course towards better scalability and proc...
Kubernetes and lastminute.com: our course towards better scalability and proc...
Michele Orsi
 
SDN :: Software Defined Networking –2017 Executive Overview
SDN :: Software Defined Networking –2017 Executive OverviewSDN :: Software Defined Networking –2017 Executive Overview
SDN :: Software Defined Networking –2017 Executive Overview
Christian Esteve Rothenberg
 
How to Contribute to Ansible
How to Contribute to AnsibleHow to Contribute to Ansible
How to Contribute to Ansible
Cisco DevNet
 
Securing the Software Supply Chain with TUF and Docker - Justin Cappos and Sa...
Securing the Software Supply Chain with TUF and Docker - Justin Cappos and Sa...Securing the Software Supply Chain with TUF and Docker - Justin Cappos and Sa...
Securing the Software Supply Chain with TUF and Docker - Justin Cappos and Sa...
Docker, Inc.
 

What's hot (20)

Learn OpenStack from trystack.cn
Learn OpenStack from trystack.cnLearn OpenStack from trystack.cn
Learn OpenStack from trystack.cn
 
OpenNebulaConf2019 - Crytek: A Video gaming Edge Implementation "on the shoul...
OpenNebulaConf2019 - Crytek: A Video gaming Edge Implementation "on the shoul...OpenNebulaConf2019 - Crytek: A Video gaming Edge Implementation "on the shoul...
OpenNebulaConf2019 - Crytek: A Video gaming Edge Implementation "on the shoul...
 
Ceph, Open Source, and the Path to Ubiquity in Storage - AACS Meetup 2014
Ceph, Open Source, and the Path to Ubiquity in Storage - AACS Meetup 2014Ceph, Open Source, and the Path to Ubiquity in Storage - AACS Meetup 2014
Ceph, Open Source, and the Path to Ubiquity in Storage - AACS Meetup 2014
 
The NixOS project and deploying systems declaratively
The NixOS project and deploying systems declarativelyThe NixOS project and deploying systems declaratively
The NixOS project and deploying systems declaratively
 
Ceph: A decade in the making and still going strong
Ceph: A decade in the making and still going strongCeph: A decade in the making and still going strong
Ceph: A decade in the making and still going strong
 
Разведка в сетях IPv6
Разведка в сетях IPv6Разведка в сетях IPv6
Разведка в сетях IPv6
 
Docker openstack-2014
Docker openstack-2014Docker openstack-2014
Docker openstack-2014
 
OpenDaylight: an open source SDN for your OpenStack cloud
OpenDaylight: an open source SDN for your OpenStack cloudOpenDaylight: an open source SDN for your OpenStack cloud
OpenDaylight: an open source SDN for your OpenStack cloud
 
Telco Access Network with SDN
Telco Access Network with SDNTelco Access Network with SDN
Telco Access Network with SDN
 
The Nix project
The Nix projectThe Nix project
The Nix project
 
NetBox as the Source of Truth for Cisco NSO Configurations
NetBox as the Source of Truth for Cisco NSO ConfigurationsNetBox as the Source of Truth for Cisco NSO Configurations
NetBox as the Source of Truth for Cisco NSO Configurations
 
z13: New Opportunities – if you dare!
z13: New Opportunities – if you dare!z13: New Opportunities – if you dare!
z13: New Opportunities – if you dare!
 
How to be a Network Engineer in a Programmable Age
How to be a Network Engineer in a Programmable AgeHow to be a Network Engineer in a Programmable Age
How to be a Network Engineer in a Programmable Age
 
DevOps Live Meetup- NetDevOps session with Jay Shah (IEEE Published Paper)
DevOps Live Meetup- NetDevOps session with Jay Shah (IEEE Published Paper)DevOps Live Meetup- NetDevOps session with Jay Shah (IEEE Published Paper)
DevOps Live Meetup- NetDevOps session with Jay Shah (IEEE Published Paper)
 
webthing-floss-iot-20180607rzr
webthing-floss-iot-20180607rzrwebthing-floss-iot-20180607rzr
webthing-floss-iot-20180607rzr
 
PLNOG 3: Jens Link - IPv6 - Migration Planning
PLNOG 3: Jens Link -  IPv6 - Migration PlanningPLNOG 3: Jens Link -  IPv6 - Migration Planning
PLNOG 3: Jens Link - IPv6 - Migration Planning
 
Kubernetes and lastminute.com: our course towards better scalability and proc...
Kubernetes and lastminute.com: our course towards better scalability and proc...Kubernetes and lastminute.com: our course towards better scalability and proc...
Kubernetes and lastminute.com: our course towards better scalability and proc...
 
SDN :: Software Defined Networking –2017 Executive Overview
SDN :: Software Defined Networking –2017 Executive OverviewSDN :: Software Defined Networking –2017 Executive Overview
SDN :: Software Defined Networking –2017 Executive Overview
 
How to Contribute to Ansible
How to Contribute to AnsibleHow to Contribute to Ansible
How to Contribute to Ansible
 
Securing the Software Supply Chain with TUF and Docker - Justin Cappos and Sa...
Securing the Software Supply Chain with TUF and Docker - Justin Cappos and Sa...Securing the Software Supply Chain with TUF and Docker - Justin Cappos and Sa...
Securing the Software Supply Chain with TUF and Docker - Justin Cappos and Sa...
 

Viewers also liked

Metrics gone bad
Metrics gone badMetrics gone bad
Metrics gone bad
Dave Neary
 
The Ecclesiastes principle: Learning lessons of the past
The Ecclesiastes principle: Learning lessons of the pastThe Ecclesiastes principle: Learning lessons of the past
The Ecclesiastes principle: Learning lessons of the past
Dave Neary
 
Growing the next generation of Open Source developers
Growing the next generation of Open Source developersGrowing the next generation of Open Source developers
Growing the next generation of Open Source developers
Dave Neary
 
Using Personas to Target Users
Using Personas to Target UsersUsing Personas to Target Users
Using Personas to Target Users
Dave Neary
 
Growing next generation
Growing next generationGrowing next generation
Growing next generation
Dave Neary
 
Community antipatterns
Community antipatternsCommunity antipatterns
Community antipatterns
Dave Neary
 
OpenShift on OpenStack
OpenShift on OpenStackOpenShift on OpenStack
OpenShift on OpenStack
Dave Neary
 
Nfv primer v2
Nfv primer v2Nfv primer v2
Nfv primer v2
Dave Neary
 
A complete Open Source cloud: Storage, Virt, IaaS, PaaS
A complete Open Source cloud: Storage, Virt, IaaS, PaaSA complete Open Source cloud: Storage, Virt, IaaS, PaaS
A complete Open Source cloud: Storage, Virt, IaaS, PaaS
Dave Neary
 
NFV for beginners
NFV for beginnersNFV for beginners
NFV for beginners
Dave Neary
 
Foundations 101
Foundations 101Foundations 101
Foundations 101
Dave Neary
 
Personas
PersonasPersonas
Personas
Dave Neary
 
Community Impacts of Legal Decisions
Community Impacts of Legal Decisions Community Impacts of Legal Decisions
Community Impacts of Legal Decisions
Dave Neary
 
Making the Army of Awesome more Awesome (Mozilla Summit ignite)
Making the Army of Awesome more Awesome (Mozilla Summit ignite)Making the Army of Awesome more Awesome (Mozilla Summit ignite)
Making the Army of Awesome more Awesome (Mozilla Summit ignite)
David Eaves
 
Is there a big bang going on?
Is there a big bang going on?Is there a big bang going on?
Is there a big bang going on?
Dave Neary
 
Open daylight and Openstack
Open daylight and OpenstackOpen daylight and Openstack
Open daylight and Openstack
Dave Neary
 
NFV Tutorial
NFV TutorialNFV Tutorial
NFV Tutorial
Rashid Mijumbi
 
oVirt and OpenStack
oVirt and OpenStackoVirt and OpenStack
oVirt and OpenStack
Dave Neary
 
Networking in OpenStack for non-networking people: Neutron, Open vSwitch and ...
Networking in OpenStack for non-networking people: Neutron, Open vSwitch and ...Networking in OpenStack for non-networking people: Neutron, Open vSwitch and ...
Networking in OpenStack for non-networking people: Neutron, Open vSwitch and ...Dave Neary
 
Jeudis du libre_git
Jeudis du libre_gitJeudis du libre_git
Jeudis du libre_git
Dave Neary
 

Viewers also liked (20)

Metrics gone bad
Metrics gone badMetrics gone bad
Metrics gone bad
 
The Ecclesiastes principle: Learning lessons of the past
The Ecclesiastes principle: Learning lessons of the pastThe Ecclesiastes principle: Learning lessons of the past
The Ecclesiastes principle: Learning lessons of the past
 
Growing the next generation of Open Source developers
Growing the next generation of Open Source developersGrowing the next generation of Open Source developers
Growing the next generation of Open Source developers
 
Using Personas to Target Users
Using Personas to Target UsersUsing Personas to Target Users
Using Personas to Target Users
 
Growing next generation
Growing next generationGrowing next generation
Growing next generation
 
Community antipatterns
Community antipatternsCommunity antipatterns
Community antipatterns
 
OpenShift on OpenStack
OpenShift on OpenStackOpenShift on OpenStack
OpenShift on OpenStack
 
Nfv primer v2
Nfv primer v2Nfv primer v2
Nfv primer v2
 
A complete Open Source cloud: Storage, Virt, IaaS, PaaS
A complete Open Source cloud: Storage, Virt, IaaS, PaaSA complete Open Source cloud: Storage, Virt, IaaS, PaaS
A complete Open Source cloud: Storage, Virt, IaaS, PaaS
 
NFV for beginners
NFV for beginnersNFV for beginners
NFV for beginners
 
Foundations 101
Foundations 101Foundations 101
Foundations 101
 
Personas
PersonasPersonas
Personas
 
Community Impacts of Legal Decisions
Community Impacts of Legal Decisions Community Impacts of Legal Decisions
Community Impacts of Legal Decisions
 
Making the Army of Awesome more Awesome (Mozilla Summit ignite)
Making the Army of Awesome more Awesome (Mozilla Summit ignite)Making the Army of Awesome more Awesome (Mozilla Summit ignite)
Making the Army of Awesome more Awesome (Mozilla Summit ignite)
 
Is there a big bang going on?
Is there a big bang going on?Is there a big bang going on?
Is there a big bang going on?
 
Open daylight and Openstack
Open daylight and OpenstackOpen daylight and Openstack
Open daylight and Openstack
 
NFV Tutorial
NFV TutorialNFV Tutorial
NFV Tutorial
 
oVirt and OpenStack
oVirt and OpenStackoVirt and OpenStack
oVirt and OpenStack
 
Networking in OpenStack for non-networking people: Neutron, Open vSwitch and ...
Networking in OpenStack for non-networking people: Neutron, Open vSwitch and ...Networking in OpenStack for non-networking people: Neutron, Open vSwitch and ...
Networking in OpenStack for non-networking people: Neutron, Open vSwitch and ...
 
Jeudis du libre_git
Jeudis du libre_gitJeudis du libre_git
Jeudis du libre_git
 

Similar to Swimming upstream

Docker, developers take power
Docker, developers take powerDocker, developers take power
Docker, developers take power
Enalean
 
DevOps Culture Shift: Expanding On-Call Responsibilties
DevOps Culture Shift: Expanding On-Call ResponsibiltiesDevOps Culture Shift: Expanding On-Call Responsibilties
DevOps Culture Shift: Expanding On-Call Responsibilties
VictorOps
 
NVIDIA 深度學習教育機構 (DLI): Neural network deployment
NVIDIA 深度學習教育機構 (DLI): Neural network deploymentNVIDIA 深度學習教育機構 (DLI): Neural network deployment
NVIDIA 深度學習教育機構 (DLI): Neural network deployment
NVIDIA Taiwan
 
Mark Hughes Annual Seminar Presentation on Open Source
Mark Hughes Annual Seminar Presentation on Open Source Mark Hughes Annual Seminar Presentation on Open Source
Mark Hughes Annual Seminar Presentation on Open Source
Tracy Kent
 
The DevOps Journey at bwin.party
The DevOps Journey at bwin.partyThe DevOps Journey at bwin.party
The DevOps Journey at bwin.party
Kelly Looney
 
DSC UTeM DevOps Session#1: Intro to DevOps Presentation Slides
DSC UTeM DevOps Session#1: Intro to DevOps Presentation SlidesDSC UTeM DevOps Session#1: Intro to DevOps Presentation Slides
DSC UTeM DevOps Session#1: Intro to DevOps Presentation Slides
DSC UTeM
 
“OpenCV: Past, Present and Future,” a Presentation from OpenCV.org
“OpenCV: Past, Present and Future,” a Presentation from OpenCV.org“OpenCV: Past, Present and Future,” a Presentation from OpenCV.org
“OpenCV: Past, Present and Future,” a Presentation from OpenCV.org
Edge AI and Vision Alliance
 
Cloud Camp Chicago Dec 2012 Slides
Cloud Camp Chicago Dec 2012 SlidesCloud Camp Chicago Dec 2012 Slides
Cloud Camp Chicago Dec 2012 Slides
Ryan Koop
 
Cloud Camp Chicago Dec 2012 - All presentations
Cloud Camp Chicago Dec 2012 - All presentationsCloud Camp Chicago Dec 2012 - All presentations
Cloud Camp Chicago Dec 2012 - All presentations
CloudCamp Chicago
 
London Ceph Day: Ceph in the Echosystem
London Ceph Day: Ceph in the EchosystemLondon Ceph Day: Ceph in the Echosystem
London Ceph Day: Ceph in the Echosystem
Ceph Community
 
How to Contribute to Cloud Native Computing Foundation
How to Contribute to Cloud Native Computing FoundationHow to Contribute to Cloud Native Computing Foundation
How to Contribute to Cloud Native Computing Foundation
CodeOps Technologies LLP
 
How to contribute to cloud native computing foundation (CNCF)
How to contribute to cloud native computing foundation (CNCF)How to contribute to cloud native computing foundation (CNCF)
How to contribute to cloud native computing foundation (CNCF)
Krishna-Kumar
 
Five Ways To Do Data Analytics "The Wrong Way"
Five Ways To Do Data Analytics "The Wrong Way"Five Ways To Do Data Analytics "The Wrong Way"
Five Ways To Do Data Analytics "The Wrong Way"
Discover Pinterest
 
Freifunk Munich - How to scale Jitsi
Freifunk Munich - How to scale JitsiFreifunk Munich - How to scale Jitsi
Freifunk Munich - How to scale Jitsi
Annika Wickert
 
Value streammapping cascadiait2014-mceniry
Value streammapping cascadiait2014-mceniryValue streammapping cascadiait2014-mceniry
Value streammapping cascadiait2014-mceniry
Chris McEniry
 
Deployment is the new build
Deployment is the new buildDeployment is the new build
Deployment is the new build
Andrew Phillips
 
Technical standards & the RDTF Vision: some considerations
Technical standards & the RDTF Vision: some considerationsTechnical standards & the RDTF Vision: some considerations
Technical standards & the RDTF Vision: some considerations
Paul Walk
 
Microservices Antipatterns
Microservices AntipatternsMicroservices Antipatterns
Microservices Antipatterns
C4Media
 
Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...
Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...
Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...
Larry Smarr
 
Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...
Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...
Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...
Larry Smarr
 

Similar to Swimming upstream (20)

Docker, developers take power
Docker, developers take powerDocker, developers take power
Docker, developers take power
 
DevOps Culture Shift: Expanding On-Call Responsibilties
DevOps Culture Shift: Expanding On-Call ResponsibiltiesDevOps Culture Shift: Expanding On-Call Responsibilties
DevOps Culture Shift: Expanding On-Call Responsibilties
 
NVIDIA 深度學習教育機構 (DLI): Neural network deployment
NVIDIA 深度學習教育機構 (DLI): Neural network deploymentNVIDIA 深度學習教育機構 (DLI): Neural network deployment
NVIDIA 深度學習教育機構 (DLI): Neural network deployment
 
Mark Hughes Annual Seminar Presentation on Open Source
Mark Hughes Annual Seminar Presentation on Open Source Mark Hughes Annual Seminar Presentation on Open Source
Mark Hughes Annual Seminar Presentation on Open Source
 
The DevOps Journey at bwin.party
The DevOps Journey at bwin.partyThe DevOps Journey at bwin.party
The DevOps Journey at bwin.party
 
DSC UTeM DevOps Session#1: Intro to DevOps Presentation Slides
DSC UTeM DevOps Session#1: Intro to DevOps Presentation SlidesDSC UTeM DevOps Session#1: Intro to DevOps Presentation Slides
DSC UTeM DevOps Session#1: Intro to DevOps Presentation Slides
 
“OpenCV: Past, Present and Future,” a Presentation from OpenCV.org
“OpenCV: Past, Present and Future,” a Presentation from OpenCV.org“OpenCV: Past, Present and Future,” a Presentation from OpenCV.org
“OpenCV: Past, Present and Future,” a Presentation from OpenCV.org
 
Cloud Camp Chicago Dec 2012 Slides
Cloud Camp Chicago Dec 2012 SlidesCloud Camp Chicago Dec 2012 Slides
Cloud Camp Chicago Dec 2012 Slides
 
Cloud Camp Chicago Dec 2012 - All presentations
Cloud Camp Chicago Dec 2012 - All presentationsCloud Camp Chicago Dec 2012 - All presentations
Cloud Camp Chicago Dec 2012 - All presentations
 
London Ceph Day: Ceph in the Echosystem
London Ceph Day: Ceph in the EchosystemLondon Ceph Day: Ceph in the Echosystem
London Ceph Day: Ceph in the Echosystem
 
How to Contribute to Cloud Native Computing Foundation
How to Contribute to Cloud Native Computing FoundationHow to Contribute to Cloud Native Computing Foundation
How to Contribute to Cloud Native Computing Foundation
 
How to contribute to cloud native computing foundation (CNCF)
How to contribute to cloud native computing foundation (CNCF)How to contribute to cloud native computing foundation (CNCF)
How to contribute to cloud native computing foundation (CNCF)
 
Five Ways To Do Data Analytics "The Wrong Way"
Five Ways To Do Data Analytics "The Wrong Way"Five Ways To Do Data Analytics "The Wrong Way"
Five Ways To Do Data Analytics "The Wrong Way"
 
Freifunk Munich - How to scale Jitsi
Freifunk Munich - How to scale JitsiFreifunk Munich - How to scale Jitsi
Freifunk Munich - How to scale Jitsi
 
Value streammapping cascadiait2014-mceniry
Value streammapping cascadiait2014-mceniryValue streammapping cascadiait2014-mceniry
Value streammapping cascadiait2014-mceniry
 
Deployment is the new build
Deployment is the new buildDeployment is the new build
Deployment is the new build
 
Technical standards & the RDTF Vision: some considerations
Technical standards & the RDTF Vision: some considerationsTechnical standards & the RDTF Vision: some considerations
Technical standards & the RDTF Vision: some considerations
 
Microservices Antipatterns
Microservices AntipatternsMicroservices Antipatterns
Microservices Antipatterns
 
Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...
Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...
Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...
 
Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...
Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...
Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...
 

More from Dave Neary

Crafting an Open Source Product Strategy
Crafting an Open Source Product StrategyCrafting an Open Source Product Strategy
Crafting an Open Source Product Strategy
Dave Neary
 
Community dynamics
Community dynamicsCommunity dynamics
Community dynamics
Dave Neary
 
Community catalysts value of open source
Community catalysts   value of open sourceCommunity catalysts   value of open source
Community catalysts value of open source
Dave Neary
 
Crafting an open source product strategy
Crafting an open source product strategyCrafting an open source product strategy
Crafting an open source product strategy
Dave Neary
 
Open source business models
Open source business modelsOpen source business models
Open source business models
Dave Neary
 
Community antipatterns
Community antipatternsCommunity antipatterns
Community antipatternsDave Neary
 
Maemo Council
Maemo CouncilMaemo Council
Maemo Council
Dave Neary
 
Présenter les Logiciels Libres
Présenter les Logiciels LibresPrésenter les Logiciels Libres
Présenter les Logiciels Libres
Dave Neary
 
Giving Great Presentations
Giving Great PresentationsGiving Great Presentations
Giving Great Presentations
Dave Neary
 
Maemo Documentation Co Creation
Maemo Documentation Co CreationMaemo Documentation Co Creation
Maemo Documentation Co Creation
Dave Neary
 
Free software and telephony over IP
Free software and telephony over IPFree software and telephony over IP
Free software and telephony over IPDave Neary
 

More from Dave Neary (12)

Crafting an Open Source Product Strategy
Crafting an Open Source Product StrategyCrafting an Open Source Product Strategy
Crafting an Open Source Product Strategy
 
Community dynamics
Community dynamicsCommunity dynamics
Community dynamics
 
Community catalysts value of open source
Community catalysts   value of open sourceCommunity catalysts   value of open source
Community catalysts value of open source
 
Crafting an open source product strategy
Crafting an open source product strategyCrafting an open source product strategy
Crafting an open source product strategy
 
Open source business models
Open source business modelsOpen source business models
Open source business models
 
Community antipatterns
Community antipatternsCommunity antipatterns
Community antipatterns
 
Gnome census
Gnome censusGnome census
Gnome census
 
Maemo Council
Maemo CouncilMaemo Council
Maemo Council
 
Présenter les Logiciels Libres
Présenter les Logiciels LibresPrésenter les Logiciels Libres
Présenter les Logiciels Libres
 
Giving Great Presentations
Giving Great PresentationsGiving Great Presentations
Giving Great Presentations
 
Maemo Documentation Co Creation
Maemo Documentation Co CreationMaemo Documentation Co Creation
Maemo Documentation Co Creation
 
Free software and telephony over IP
Free software and telephony over IPFree software and telephony over IP
Free software and telephony over IP
 

Recently uploaded

National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 

Recently uploaded (20)

National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 

Swimming upstream

  • 1. Swimming upstream – Dave Neary1 Swimming Upstream Dave Neary, Red Hat dneary@redhat.com @nearyd
  • 2. Swimming upstream – Dave Neary2 Why bother?
  • 3. OPENSHIFT Open source is everywhere! Ganeti
  • 4. 80% as good as the last guy needed it to be David Schlessinger
  • 5. Swimming upstream – Dave Neary5 Building on open source projects
  • 6. Swimming upstream – Dave Neary6 Branching strategy 1. I branch, and do what I want Community development (mainline) Branch point Vendor branch "Unleveraged potential"
  • 7. Swimming upstream – Dave Neary7 Branching strategy Cost: Work on vendor branch Opportunity cost of upstream work Community development (mainline) Branch point Vendor branch "Unleveraged potential"
  • 8. Swimming upstream – Dave Neary8 Branching strategy 2. Branch and rebase Community development (mainline) Branch point Vendor branch Merge point Cost of merge
  • 9. Swimming upstream – Dave Neary9 Branching strategy ...and rebase and rebase and... Community development (mainline) Vendor branch Merge points
  • 10. Swimming upstream – Dave Neary10 Branching strategy Cost: Vendor work + cost of repeated merging (maintenance) Community development (mainline) Vendor branch Merge points
  • 11. Swimming upstream – Dave Neary11 Branching strategy 3. Branch, rebase, and upstream Community development (mainline) Branch point Vendor branch Merge point Cost of merge Propose patches upstream
  • 12. Swimming upstream – Dave Neary12 Branching strategy Cost: Vendor work + cost of merge + “community overhead” Community development (mainline) Branch point Vendor branch Merge point Cost of merge Propose patches upstream
  • 13. Swimming upstream – Dave Neary13 “Community overhead”? Our communities expect lots of things which companies would not otherwise do
  • 14. Swimming upstream – Dave Neary14 Standard branching
  • 15. Swimming upstream – Dave Neary15 Vendors want to build on a stable base
  • 16. Swimming upstream – Dave Neary16 Community wants patches to trunk
  • 17. Swimming upstream – Dave Neary17 Case study: Wakelocks
  • 19. 2009: Arve Hjønnevåg proposes Wakelocks for inclusion in kernel Initial proposal rejected, with comments
  • 20. 2009: Several updates also rejected Debate dies down for a year
  • 21. 2010: Wakelocks and alternative “autosleep” from Rafael Wyszocki “debated”* on LKML * >1500 email thread
  • 22. Autosleep patches merged, wakelocks still outside kernel
  • 23. Android team members have spent literally hundreds of man hours (my mail folder on the suspend blocker thread has over 1500 mail messages, and is nearly 10MB), and have tried rewriting the patches several times, in an attempt to make them be main-line acceptable. Aug 2010, Theodore T'so DiBona said there were some developers at Google working on it who “feel burned” by the decision but he acknowledged that the “staffing, attitute and culture” at Google isn’t sufficient to support the kernel crew. Apr 2010, Paula Rooney, ZDNet
  • 24. “Getting code into the kernel is always easier if you have a recognised name associated with it” Matthew Garrett, LinuxCon 2010
  • 25. Swimming upstream – Dave Neary25 “Do NOT fall into the trap of adding more and more stuff to an out-of- tree project. It just makes it harder and harder to get it merged. There are many examples of this.” Andrew Morton
  • 26. Ideal situation This is what upstream does
  • 27. Difficulties ● Hard to sync product & project release dates and features ● Building a castle on quicksand ● Basically 1.5x to 2x the work up-front
  • 29. Why is this relevant for OPNFV?
  • 30. Swimming upstream – Dave Neary30 NFV is not just OpenStack
  • 31. Swimming upstream – Dave Neary31 Example: SR-IOV support ● Performance: VMs to be allocated an SR-IOV Virtual Function on capable hosts ● Requires NUMA awareness in Nova, libvirt, QEMU to ensure VM is on the same NUMA segment as the VF ● Improved SR-IOV support in libvirt (VM placed in same NUMA node as VF) ● PCI pass-through support for Nova ● User interface and policy enforcement
  • 32. Virtualized Mobile Base Station - Multiple RAN technologies from multiple vendors to be consolidated on a single BS to improve utilization - BS virtualization can share resources among multiple logical RAN nodes from different systems. - C-RAN for efficient resource utilization among different physical BSs. - Baseband Unit (BBU) pool with high performance servers and real-time processing for signaling capacity (ETSI #4)
  • 33. Swimming upstream – Dave Neary33 Example: C-RAN/vRAN ● Determinism ● Real-time patches to KVM ● Performance ● DPDK accelerated Open vSwitch ● Reliability at scale ● HA instances in OpenStack Nova ● HA OpenStack ● Fault management and reporting ● IPv6 support – kernel through Nova, Neutron
  • 34. Swimming upstream – Dave Neary34 Upstream first
  • 35. Swimming upstream – Dave Neary35 Upstream first ● Maintaining significant out-of-tree patches across multiple projects is unsustainable ● Features should be designed, written and proposed with upstream developers ● Cascading changes across multiple projects require explanation and advocacy
  • 36. Swimming upstream – Dave Neary36 Upstream First ● Requires discipline (small changes, discussed first) ● Relationships (your priority might not be their priority) ● Many communities – not just OpenStack!
  • 37. Swimming upstream – Dave Neary37 Not always easy!
  • 38. Swimming upstream – Dave Neary38 Steps to success
  • 40.
  • 41. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=30475 Bug: assert(int+100 > int) optimized away c2: “signed type overflow is undefined by the C standard” c4: “You have GOT to be kidding? [...] You are missing the point here. [...] PLEASE REVERT THIS CHANGE. [...] THIS IS NOT A JOKE. FIX THIS! NOW!” c5: “I am not joking, the C standard explictly says signed integer overflow is undefined behavior.” c9: “Hey Andrew, do you really think this issue goes away if you keep closing the bugs fast enough?” ... c48: “Oh wow, another wise cracking newbie who comments without actually understanding the issue. I AM NOT RELYING ON UNDEFINED BEHAVIOR.” ...
  • 45. Swimming upstream – Dave Neary45 Start small ● Listen for a while ● Introduce yourself ● Ask questions with an open mind
  • 46. Swimming upstream – Dave Neary46 Make friends ● Relationships are key ● Learn cultural norms
  • 47. Swimming upstream – Dave Neary47 3. Mapping the lay of the land
  • 50. Swimming upstream – Dave Neary50 OpenDaylight community structure ● http://www.opendaylight.org/community/how- participate - “Getting started guide, “Developer wiki” ● Technical Steering Committee: https://wiki.opendaylight.org/view/TSC:Main ● Project meetings: Attend TSC meetings ● Project list: https://wiki.opendaylight.org/view/Project_list ● Active IRC channel: #opendaylight on Freenode
  • 51. Swimming upstream – Dave Neary51 Tools to help identify leaders ● Source code analysis: https://spectrometer.opendaylight.org/ ● Mailing list analysis: MLStats: http://metricsgrimoire.github.io/MailingListStats/
  • 53. Swimming upstream – Dave Neary53 Common communication infrastructure ● Mailing lists ● IRC ● Wiki ● Code review ● Source control
  • 54. One rule: When in Rome... Community processes: When in Rome...
  • 55. Swimming upstream – Dave Neary55 4. Effecting change
  • 57. Swimming upstream – Dave Neary57 Open and transparent
  • 58. Do not fear mistakes. There are none. Miles Davis
  • 59. Swimming upstream – Dave Neary59 Communicate the vision
  • 60. Swimming upstream – Dave Neary60 Break things down
  • 61. Swimming upstream – Dave Neary61 Showing your work Optimise for reading
  • 62. Rewrite history with git rebase --interactive
  • 63. Swimming upstream – Dave Neary63 Rinse, repeat
  • 64. Keep your eyes on the prize
  • 65. Swimming upstream – Dave Neary65 Thank you Dave Neary, Red Hat dneary@redhat.com @nearyd