Session ID : OPN214 Getting the most out of your open source investments

Zaheda Bhorat Max Spevack Principal Open Source Technologist Senior Manager, and Open Source 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

://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 - 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- yarn mr

mqtt boto 3 uml

ldns bixie - pig

go scikit-fuzzy react

mshadow 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 -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 -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 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 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 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 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

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

freeswitch xen pyaad 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--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.