Session ID : OPN214 Getting the most out of your open source investments
Zaheda Bhorat Max Spevack Principal Open Source Technologist Senior Manager, Linux and Open Source Amazon Web Services Amazon Web Services
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Open Source
Consume Contribute Community Communicate Culture We are AWSOpen Hands up! Open Source Trends
40M+ 41B+ Open Source Developers Lines of Code
44M+ 1.3M+ New Repositories on New contributors (2019) GitHub (2019)
Courtesy of The Linux Foundation Sources: Sourceclear, Sonatype, Github Amazon mission
To be Earth’s most customer-centric company … Consume License detection & compliance
Stay close to upstream
Don’t ingest unlicensed code
Keep your 1P and 3P code separate
Best Practices ClearlyDefined
SPDX
https://github.com/amzn/askalono
Tools Contribute 2016 gerrit-check scapy
gradle fast align apache phoenix lombok tez capybara plugin
- cbmc pygresql cmock devkit dovecot appium
libarchive esp-open-rtos picker jcommander
hue iot toolbar mysql workbench libsoup zipper eclipse paho mariadb-connector-j - github little proxy little cnn aws
californium pyzmq cocoapods rails remotedebugger
elastalert redis appium-gulp-plugin street address street chromedriver
xcpretty google guava wing - debug -
apache hive apache joshua loader - catwatch libfuse fabric daterange webdriveragent utilities sync appium
grpc hot - wycheproof appium oci-fetch - django eval yubico ansible kernel - gulp-typescript yarn mr
mqtt boto 3 uml
ldns bixie - pig
go scikit-fuzzy react
mshadow spark apache react
- appium-android-bootstrap
libgxps safe postgresql presto
linux wordpress apache commons dbutils
glib rosette udp grpc -
joshua decoder parquet lantram akka glib-networking dynamic-object agent chromium vim appiumadb docker fop input presto hadoop apache 2 - httpclient ios-webkit-debug-proxy gvsbuild statsd backend
assertj-core databind apache commons lang dynamodb-milkhatx webdriver java qemu
apache pig apache word segmentation goa ruby-simple-queue logstash
immutables.org mvel jackson moses openfire tupl hana nginx
iputils treeextra netty tsung
chromium s3_file dockerclient
wired tiger - facebook redhat filequeue httpcomponents rspec-retry go aws-scala beanstalker sentry apache mxnet xen leveldb client troposphere - apache oozie
lang go-winio containerd pkg errors dpdk celery dynamodb backend
apache zeppelin exe statsd - elephas - init gpyopt bandit - http2 go
apache commons io kinesalite apache bigtop - go elasticsearch yield-java dot - open fire kenlm ews java api cloud rebouncer
botoflow parquet-python
apache ant haproxy mqtt js glisten bigstore -
apache tomcatapache exoplayer protocol angulartooltips appium airflow - ultipart-parser apache hbase sys-proctable rdoc git dtcoretext p5 cmis_5 react-native 2017 tslint-eslint-rules gbm java apache (http server) cerebro glib alks-cli oss-attribution-generator gerrit-check incubator mxnet jruby web socket sharp rollbar linux (kvm) hue rgp netlink cli xml -
cni scapy
- tabular json11 postcss-extract-animations nvme - jgit fast align tez emscripten r509-ocsp-responder flink gucumber lmdbjava security monkey security
linux licensee plugin
homebrew pygresql smack - lombok aalto nodejs dovecot gpy slight.alexa wing gpyoptapache phoenix libarchive capybara picker devkit tslint jcommander
appium typescript-fsa little proxy little
zipper syntax moby cmock gradle cbmc - esp-open-rtos iot
elastalert kappa toolbar mariadb-connector-j github
- libsoup lfs
irate mysql workbench eclipse paho plantuml plus pyzmq cnn cocoapods cmis_5 flask-sqlalchemy aws
tensorboard rails git git fortune server 389ds appium-gulp-plugin pkcs7pad californium
wycheproof sockeye google guava redis street address street xcpretty debug wing -
xenbits goa loader
tinyxml12 remotedebugger phoenix openjdk
chromedriver open mpi - daterange - catwatch apache hive sync tacacs fabric
libfuse sqoop webdriveragent hot chart.js yubico kernel swipeout utilities - s2n libc
yarn - apache joshua -
astrum go apache spark oci-fetch django eval
ex_aws - - moto ansible yarn boogieman
react appium apache beam grpc mr wycheproof mysql boto 3 appium - scikit-fuzzy bixie uml react mshadow keras pig gulp-typescript safe native
mqtt openssl
libgxps ompi ldns bam - dmlc grpc apache commons dbutils - linux appium-android-bootstrap udp joshua decoder lantram - ublockorigin apache hadoop presto typescript-json-schema ) parquet
bam react glib geckodriver glib linux (pm) linux xfs counterfeiter dynamic-object libjson akka agent peewee appiumadb input
nvme glib-networking rosette
lang fop chromium vim assertj-core ( firefox - httpclient
gvsbuild test docker - presto hadoop apache 2 ios-webkit-debug-proxy go qemu word segmentation databind statsd backend tercom linux
dynamodb-milkhatx wordpress mvel nginx apache antapache pig apache
webdriver apache commons lang libmoon openfire immutables.org gsettings eslint dpdk
moses iputils ruby-simple-queue tsung hana webhooks logstash wired tiger s3_file tupl netty chromium bencode-go wingtk jackson btrfs multi-module-maven-release-plugin treeextra liblouis curator aws-scala - sentry rspec-retry filequeue
binary ts-test dockerclient go - - parsimonious gpyopt server kotlin facebook autovpn httpcomponents - beanstalker
yarn cmake libkv linux-pci rust sequel apache mxnet leveldb pyaad go client corenlp - xen
(xendrivers) troposphere pidgin react-int ntpsec apache oozie open fire +
containerd celery dynamodb backend
exe glistencairo - hadoop apache zeppelin python rigor graph init statsd gtk - allure
- mqtt js linux object - errors
pynamodb airlift apache bigtop emrun - apache tomcatapache redhat deniswernert/udev dot nginx kinesalite dataformats kubernetes elephas bigstore go - bandit lombok - - irate
rdoc uiautomator2 apache commons io parquet-python elasticsearch - yield-java conda pkg linux (fbdev) git apache
seabios lfs
immutableassign rebouncer exoplayer mithriljs paramz kenlm ews java api - botoflow janus cloud papaparse haproxy gatsby apache lucene dynamic
git sys-proctable macports containernetworking airflow appium hypothesis s3fs angulartooltips ultipart-parser behave jackson
apache hbase appium dtcoretext bro
coreos vowpal wabbit koji
bin sparklingml conda-build go-winio linux (blkfront) redux repolinter linux (arch) postgresql intellij-community functional-streams-for-scala typed definitely wireshark react-native react-spinkit jscolor spark-redshift multi-module-mave spring framework pydeepgp p5-protocol-http2 deep visualization toolbox mxnet notebooks react-draft-wysiwyg libfabric xen devel cryptography gbm java cynicalapache (http server) cerebro alks-cli oss-attribution-generator tslint-eslint-rules glib incubator mxnet jruby arrow rollbar linux (kvm) rgp netlink gerrit-check
web socket sharp cldr hue cli cni xml 2018 - scapy - diaporama authenticator tabular tensorflow packer json11 postcss-extract-animations - nvme - jgit fast align tez emscripten lmdbjava gucumber security monkey security
linux licensee plugin homebrew pygresql gpyopt - lombok smack aalto dovecot
nodejs syntax - flink gpy amphtml slight.alexa wing unicode apache phoenix libarchive capybara picker devkit tslint jcommander appium typescript-fsa machines
little proxy little go-git zipper moby cmock - kotlinpoet esp-open-rtos gradle kuromoji plantuml iot
elastalert kappa toolbar cbmc mariadb-connector-j
github libsoup
eclipse paho pose - lfs -
irate mysql workbench plus pyzmq cnn r509-ocsp-responder cocoapods cmis_5 flask-sqlalchemy aws
tensorboard rails git git fortune server 389ds appium-gulp-plugin
quicktype pkcs7pad californium redis
wycheproof sockeye google guava spack street address street xcpretty debug wing irqbalance - pyinvestigate kcov open mpi goa loader miniredis graphql-java pysnmp remotedebugger tinyxml12 openjdk
chromedriver tinycorelinux - daterange - catwatch sync tacacs_plus tacacs apache spark focus-android convolutional fabric
libfuse apache hive sqoop teleport webdriveragent hot yubico chart.js kernel notebook swipeout utilities - s2n libc
yarn - apache joshua scipy - astrum oci-fetch go
mosquito django eval
llvm jwt ex_aws bundler - - boogieman - moto yarn react appium apache beam grpc mr wycheproof
jawk boto 3 appium
mysql - scikit-fuzzy bixie ansible uml react pig keras clearlydefined jose gulp-typescript - ompi mshadow bam ubuntu safe libgxps apache jena udp native
mqtt openssl ldns
tvm grpc - hypothesis oauth2 dmlc - apache commons dbutils appium-android-bootstrap -
kpatch graal bam joshua decoder lantram cargo-kcov ublockorigin apache hadoop nimbus
presto typescript-json-schema ) parquet react
counterfeiter glib peewee linux (pm) linux xfs linux libjson geckodriver akka xcode-install libuavcan dynamic-object input agent gvsbuild - jupyter notebook appiumadb
firefox protobuf nvme glib-networking rosette
lang fop
chromium assertj-core (
chromium vim httpclient glib test liboqs ndbench docker - presto hadoop apache 2 ios-webkit-debug-proxy go qemu word segmentation databind statsd backend tercom linux dynamodb-milkhatx nnvm mvel wordpress
apache pig apache nginx apache antapache
spacemacs apache commons lang webdriver codegen libmoon - openfire logstash gsettings immutables.org eslint ffmpeg open quantum safe dpdk
moses iputils ruby-simple-queue netty tsung hana webhooks btrfs jest wired tiger s3_file wingtk tupl - bencode-go jackson treeextra xenbits fsdevel apache activemq - liblouis
curator multi-module-maven-release-plugin aws-scala intellij swagger swagger go - rspec-retry filequeue dockerclient sentry binary txthings -
- jetty.project xen (devel)ts-test parsimonious linux lsp sparkmagic phoenix server kotlin facebook
httpcomponents autovpn cmake apache httpcomponents core -
beanstalker openssl yarn gpyopt libkv apache mxnet
go linux-pci
rust leveldb pyaad xen sequel netty reactive streams packr client corenlp troposphere apache commons-compress - pidgin cyrus-sasl react-int ntpsec apache oozie seunjeon open fire + containerd
celery dynamodb backend badssl.com exe pynamodb glistencairo (xen drivers) (xen - hadoop apache zeppelin python rigor graph init statsd gtk - allure
- mqtt js object - errors airlift apache bigtop emrun - apache tomcatapache redhat deniswernert/udev dot nginx kinesalite goleveldb dataformats elephas bigstore go - bandit lombok linux - - irate
rdoc uiautomator2 apache commons io parquet-python elasticsearch
conda - yield-java pkg linux (fbdev) git
apache boringssl lfs exoplayer rebouncer immutableassign mithriljs paramz kenlm ews java api - botoflow janus cloud papaparse haproxy gatsby sys-proctable apache lucene jose dynamic git linux kexec containernetworking airflow s3fs appium macports hypothesis angulartooltips ultipart-parser behave jackson
kubernetes appium dtcoretext apache hbase bro coreos sparklingml vowpal wabbit koji rusqlite bin go-winio linux (blkfront) conda-build recrud redux seabios repolinter retool typed definitely jdk linux (arch) postgresqlintellij-community openjml wireshark react-native react-spinkit jscolor spark-redshift webkit functional-streams-for-scala glide selenium jedis apache solr istio multi-module-mave foolbox goics jepsen spring framework pydeepgp mxnet notebooks react-draft-wysiwyg airflow apacheincubator graphql-go p5-protocol-http2 deep visualization toolbox gdk-pixbuf cerebro alks-cli libfabric xen devel cryptography gitpay tslint-eslint-rules gbm java cynicalapache (http server) glib oss-attribution-generator onnx
incubator mxnet sdk scala - rusoto arrow linux (kvm) rgp netlink - rollbar gerrit-check druid
web socket sharp cldr hue cli jruby cni xml - scapy runc tabular - - diaporama packer json11 postcss-extract-animations authenticator go nvme libvpx - jgit fast align client pixiedust -
docker-lambda - tez lmdbjava smack gucumber security monkey security capybara
linux licensee rs gpyopt xrt emscripten
- pygresql aalto dovecot
nodejs syntax ros2 gremlin - lombok flink
homebrew gpy amphtml wing gluon-nlp alexa unicode slight. 2019 tslint eksctl apache phoenix libarchive ros_comm go-git tensorflow jcommander
appium typescript-fsa
tlaplus - little proxy little zipper moby apollo incubator kotlinpoet esp-open-rtos plantuml coap quickstart-android gradle cbmc kuromoji archiver cmock plus redis py agents elastalert kappa dieharder apexai react-native-website dsl-json - envoy apache kafka react-apollo mariadb-connector-j picker
openapi-to-postman devkit protobuf machines
plugin libuavcan - - stylelint create-react-app firecracker armstrap-pyvirtualbench jwt - vscode chromedriver - terraform-provider-aws - keys swiftpath iot espressif esp-idf toolbar bucketbench - libsoup tacacs
eclipse paho pose - jose rust lfs - irate mysql workbench -
stlink r509-ocsp-responder lustre cocoapods cmis_5
pyzmq cnn ocgan forward flask-sqlalchemy aws tensorboard - github resource rails git git fortune server 389ds appium-gulp-plugin gpg kernel quicktype pkcs7pad californium redis typedoc cvc4 irqbalance - appium wycheproof sockeye google guava spack tinycorelinux nimbus street address street
debug wing dataset xcpretty
- apollo-client-devtools pyinvestigate open mpi eclipse rdfj aspectj goa loader miniredis graphql-java pysnmp remotedebugger tinyxml12 openjdk - daterange agent
catwatch webdriveragent tacacs_plus - sync kcov apache spark focus-android convolutional fabric
libfuse apache hive sqoop
teleport apache joshua rails hot chart.js yubico webrtc
notebook swipeout utilities - libc ssh s2n downshiftopen mpi -
yarn signals llvm - go - astrum oci-fetch linux django
mosquito eclipse cache eval lz4 - ex_aws bundler grpc rocksdb rt boogieman multiwoz - ganesha moto yarn - react appium apache beam mr
libgxps jawk boto 3 wycheproof mysql - scikit-fuzzy bixie ansible uml m react keras pig mqtt perftest boneyard - clearlydefined gulp-typescript ompi mshadow bam ubuntu - apache jena safe native distribution relay batfish openssl ldns docker hypothesis redis-doc tvm oauth2 grpc - apache commons dbutils p programming language programming p appium-android-bootstrap - awscurl next-offline kpatch graal bam meshnet-cni soot joshua decoder dmlc cargo-kcov ublockorigin apache hadoop ipasir lantram presto typescript-json-schema ) parquet coretex react
counterfeiter rtl88x2bu_wifi glib peewee linux (pm) linux xfs libjson geckodriver gvsbuild java-dataloader dynamic-object udp - xcode-install agent dbus-cxx jupyter notebook appiumadb
firefox dart nvme glib-networking rosette
lang fop
http4k chromium assertj-core ( smatch webdriverio sip
ndbench - mpi-operator snowplow chromium vim httpclient glib akka test databind input docker - - liboqs tsung moses go ios-webkit-debug-proxy asm
word segmentation livy presto hadoop apache 2 rust-mysql-simple sofia tercom linux
mosh wordpress statsd backend pions dynamodb-milkhatx nnvm changelog
apache pig apache blmath nginx apache antapache webhooks - webdriver codegen libmoon qemu soundcloud gsettings source-map-explorer jackson logstash-plugins
workbox ffmpeg dpdk firecracker-containerd apache incubator-tvm logstash mvel fast-rtps openfire apache commons lang open quantum safe roc_comm eslint rrt_exploration elastic4s yarn immutables.org iputils ruby-simple-queue swagger swagger btrfs
fasthttp dockerclient list binary jest s3_file wingtk -
wired tiger - tupl hana -
bencode-go netty
fsdevel treeextra parsimonious apache activemq xenbits server facebook - liblouis openscenegraph curator spire password multi-module-maven-release-plugin aws-scala httpcomponents - go - beanstalker filequeue gpyopt
conventional rspec-retry go sentry txthings vrnetlab leveldb - ts-test dalli jetty.project xen (devel) linux coreboot sparkmagic phoenix
kotlin cz service hadoop autovpn cmake opensslapache httpcomponents core go-cni - libkv linux-pci apache mxnet rust vcpkg
freeswitch xen pyaad mono sequel netty reactive streams packr client corenlp
protobuf troposphere apache commons-compress - bpftrace hudi badssl.com remote
pidgin http
react-int - - (xen drivers) (xen
cyrus-sasl ntpsec python graph seunjeon open fire apache oozie - + exe object resources containerd hudi apache - - celery dynamodb backend -
pynamodb glistencairo init dataformats jose apache zeppelin errors - rigor linux - statsd - gtk uiautomator2 allure elasticsearch core
- mqtt js bigstore dot -
secure airlift emrun
- apache bigtop - apache tomcatapache - redhat botoflow deniswernert/udev nginx kinesalite xserver goleveldb schema pkg go
earl grey earl lombok immutableassign paramz apache apache bandit - jpf irate rdoc jupyter janus git client apache commons io parquet-python
aws-sam-sinatra-template elephas dynamic
rebouncer conda
drachtio-server containernetworking
lsp-intellij-spacemacs neper systemtap hypothesis cloud yield-java json k8s-topo
jackson - linux (fbdev) appium s3contents
boringssl python lfs haproxy exoplayer
rust-protobuf mithriljs appium jaro winkler kenlm - gatsby
ews java api angulartooltips to wing airflow papaparse - openjml splunk-hec-go jose apache lucene git sys-proctable linux kexec s3fs dtcoretext ultipart-parser macports behave definitely typed definitely libwebsockets
kubernetes wsl bcc
apache hbase bro
coreos sparklingml vowpal wabbit koji
rusqlite bin go-winio conda-build linux (blkfront) incubatorapache redux
horovod airflow apacheincubator
ecsrun jsonnet graphql snippets-android linux (arch) lancet-tool clair aws-airflow-stack apache tinkerpop rpms notebook-research recrud retool eslint-plugin-import httpcomponents seabios fast-cdr repolinter functional-streams-for-scala wireshark jdk containerd postgresql intellij-community py-metric-temporal-logic selenium react-native react-spinkit jscolor apache solr spark-redshift webkit multi-module-mave lace cloud-custodian foolbox goics jepsen spring framework owasp coredns glide telegraf jedis istio pydeepgp onfido php apache graphql-go luceneutil p5-protocol-http2 deep visualization toolbox gdk-pixbuf mxnet notebooks selenium react-draft-wysiwyg gradient-checkpointing Track your contributions
Give attribution and credit
Build open source decision-making frameworks
Define your success metrics first
Best Practices OSS Contribution Tracker https://github.com/amzn/oss-contribution-tracker
OSS Attribution Builder https://github.com/amzn/oss-attribution-builder
OSS Dashboard https://github.com/amzn/oss-dashboard
Tools Community Bill Joy, JavaOne 2003
Innovation happens elsewhere … Participate
Best Practices The Apache Pyramid
Leads/architects 1–2
Trusted committers 10
Contributors 100
Users 1,000 Community Open source foundations and organizations
Open Container ONUG Linux CNCF OSI The ASF Initiative
Java Community Core Infrastructure Open Robotics TODO .NET Academy Software Process Initiative Participate
Tools and Code of Conduct
Best Practices Participate
Tools and Code of Conduct
Many ways to contribute
Best Practices Participate
Tools and Code of Conduct
Many ways to contribute
Mentor and leadership
Best Practices Communicate Communicate Communicate Communicate Good documentation
Brand for projects
Measure everything
Tell your story
Best Practices Promote your open source project AWSOpen social media
Twitter: @AWSOpen, @AWSCloud | Facebook | LinkedIn Website: opensource.amazon.com | aws.github.io AWSOpen source blog
aws.amazon.com/blogs/opensource Good documentation
Brand for projects
Measure everything
Tell your story
Best Practices Good documentation
Brand for projects
Measure everything
Tell your story
Best Practices Culture Create an OSPO
Best Practices Create an OSPO
Train and empower
Best Practices Create an OSPO
Train and empower
Adopt open source values
Best Practices Create an OSPO
Train and empower
Adopt open source values
Shared learning
Best Practices Resources
opensource.amazon.com Resources
https://todogroup.org/guides/ https://github.com/todogroup/policies Open Source
Consume Contribute Community Communicate Culture Thank you!
Zaheda Bhorat & Max Spevack @zahedab @AWSOpen
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.