getting involved in world class software engineering tips and tricks to join apache open source...

49
Getting Involved in World-class Software Engineering Tips and Tricks to Join Apache Open Source Community Evans Ye HadoopCon 2014 Taiwan 05/26/202 2

Upload: evans-ye

Post on 01-Dec-2014

276 views

Category:

Software


0 download

DESCRIPTION

Trend Micro has been involved in Hadoop related Apache open source project for a long time. So far we've contributions separated in projects such as Hadoop, HBase, Pig and Bigtop. In this talk, I'll share you some features we developed and our experience on join the apache community. To be specific, the talk will be composed by following sections: • My development in Apache Bigtop • tips and tricks to join the community • Apache Bigtop Status quo • Feature preview on recent development - docker based hadoop provisioning Let's make some contributions to open source projects and build up your personal influence to the digital world!

TRANSCRIPT

Page 1: Getting involved in world class software engineering tips and tricks to join apache open source community

Getting Involved in World-class Software Engineering:Tips and Tricks to Join Apache Open Source Community

Evans Ye

HadoopCon 2014

Taiwan

04/09/2023

Page 2: Getting involved in world class software engineering tips and tricks to join apache open source community

• Evans Ye – Developer, SPN, Trend Micro– Worked on hadoop ecosystem

since 2012– Contributor for Apache Bigtop– TWHUG 2013Q4 & 2014Q1

Who am I

04/09/2023

Page 3: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

Agenda

• Why you should join the community• My journey to Apache Bigtop• tips and tricks to join the community• Apache Bigtop status quo• Feature preview on recent development

Page 4: Getting involved in world class software engineering tips and tricks to join apache open source community

Why you should join open source community?

Page 5: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

無私奉獻的精神 !

Well, Part of…

學習上乘的 coding技巧

Page 6: Getting involved in world class software engineering tips and tricks to join apache open source community

The Real Problem

Page 7: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

超爛 DER這個軟體雖然有 A功能,卻沒有 B功能耶。

Page 8: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

超爛 DER這個軟體 Bug好多,好難用。

Page 9: Getting involved in world class software engineering tips and tricks to join apache open source community

You can make it betterby join the community

Page 10: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

• Do not have the feature we need?– Contribute

Get you’re desired feature keep maintained by the community(in next release)

• Too buggy?– improve its quality

less troubleshooting

less operational effort (apply workarounds…)

Page 11: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

Extra bonus for individuals

• Expert’s free code review• Embrace new technology timely just like a

geek• Personal reputation• Improve English reading/writing skill by

communicate with native speakers

Page 12: Getting involved in world class software engineering tips and tricks to join apache open source community

Okay, How to contribute?

Page 13: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

Basic working flow

Public issue tracking system

Create Ticket

Contributor

Attach patch

Committer

Reviewand commit

found a bug got some new featuresimprove the document

Page 14: Getting involved in world class software engineering tips and tricks to join apache open source community

真實案例:My Journey to Apache Bigtop

Page 15: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

Apache Bigtop is a project for…

• Packaging– Packages Hadoop ecosystem RPMs, DEBs

• Testing– integration/interoperability testing framework

• Virtualization– vagrant based hadoop provisioning

• Deployment– A set of puppet recipes for deployment covers

most of the hadoop ecosystem

Page 16: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

Started on Dec. 2013

• Create my first ticket:

• With a beautiful patch attached

• Thinking of that will probably get committed soon

Page 17: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

• And nobody gives a ____ about me

– Maybe I didn’t describe the issue clearly…

Page 18: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

再接再厲 !

• Create another ticket:

• Also a nice patch attached

Page 19: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

4 days later…

• Some one jump in and tested the patch

COMMITTED!

Page 20: Getting involved in world class software engineering tips and tricks to join apache open source community

媽 ! 我終於對這世界有了(微不足道的 )貢獻

Page 21: Getting involved in world class software engineering tips and tricks to join apache open source community

Other Developed Features

Page 22: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

– A open source command line VM(IaaS) provisioning tool

– Support shell, chef, puppet, ansible, etc provisioner

Quick intro. to Vagrant

Providers

Vagrantfile

VM

Page 23: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

– A IT automation tool to help system administrators automate the many repetitive tasks

– Suitable for deployment and configuration management

– You only need to define the desired state

Quick intro. to Puppet

Page 24: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

Hadoop cluster deploying from zero

Vagrant Box(Centos, Ubuntu,

…)

$ vagrant up

DONE!VirtualboxVMs

Page 25: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

Usage

• System level integration test for hadoop ecosystem

• Easily to get a development environment• Reproduce/troubleshooting hadoop cluster

issues– Namenode, Jobtracker, ResourceManager HA

• Bigtop puppet recipes testing

• Bigtop github:– bigtop/bigtop-deploy/vm/vagrant-puppet/README.md

Page 26: Getting involved in world class software engineering tips and tricks to join apache open source community

Tips and Tricks to Join Open Source Community

Page 27: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

Tip 1 – niche market

• Pick up a specific feature no one(or few people) interested.– Bigtop: vagrant based hadoop provisioning– HBase: canary tool

• Pros:– less “competitors”– New features are relatively easy to be improved

• Cons:– The feature might not be accepted by community

Page 28: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

Tip 2 – claim tickets

• Users bug report• Some Sr. community members will create

lots of tickets• But they might not have time to resolve it.• Ask politely first, don’t duplicate effort

Page 29: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

Example – BIGTOP-1171如果你還沒做,我可以試試看如果你正在做,我可以幫忙測試

我還沒做,但我想可以這樣做:step1, step2,…

我願意幫忙測你的 patch

Page 30: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

Confidential | Copyright 2013 TrendMicro Inc.

Tip 3 – socializing with project members

• Knowing who can help is important– committers or active members

• Build up your personal reputation– your patch always has good quality – easy to test, easy to commit

2

Page 31: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

Examples

Call for committer’s help to commit this in.

Ask other committer to help to commit the patch

Page 32: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

Examples

Get project lead’s +1 is a BIG endorsement to your patch

Page 33: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

Tip 4 – be patient

• Your patch may be ignored since they’re too busy– Wait for a while, probably a week– If no one responding on your patch, you can

ask for someone’s opinion– Add more description to better describe the

patch– Move on to other ticket, don’t wait

• Let it go~Let it go~

Page 34: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

Bigtop 1163, my first ticket

• 155 days later, finally…

33 Days122 Days

2013 Dec. Jan. Feb. March April May 2014

Add more description

Got responded by a committer and soon get

committed

Page 35: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

Average committed days

– It could be fast if community members knows well what you’re doing

• good doc, clear code, join discussion

BIGTO

P-116

3

BIGTO

P-116

7

BIGTO

P-117

1

BIGTO

P-117

4

BIGTO

P-117

8

BIGTO

P-127

4

BIGTO

P-133

6

BIGTO

P-134

7

BIGTO

P-134

8

BIGTO

P-141

60

40

80

120

160

Page 36: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

Tip 5 – Join discussion

• Other open source members might have different opinion, thus you need to provide your different opinion as well.

Page 37: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

Example

• A community member creates a ticket:

2

Delete Canary? No way!

Our HBase contributor

Page 38: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

Confidential | Copyright 2013 TrendMicro Inc.

Tip 6 – Join mailing list

2

Page 39: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

Tip 7 – Know how to use Jira

• Carefully select the priority when creating tickets – Don’t grant this in order to get more visibility

• remember to flip the status when patch attached

• Use Jira’s mention function when you’d like to get someone’’s attention.– [~evans_ye], any thoughts?

Page 40: Getting involved in world class software engineering tips and tricks to join apache open source community

Summary

Page 41: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

Tips to Join Open Source Community

• niche market• claim tickets• socializing with project members• be patient• Join discussion• Join mailing list• Know how to use Jira

Page 42: Getting involved in world class software engineering tips and tricks to join apache open source community

Apache Bigtop Status Quo

Page 43: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

Apache Bigtop Status Quo

• Bigtop 0.8.0 is going to release– Hadoop 2.4.1, HBase 0.98.5, Pig 0.12.1...

• Deprecated Makefile build system– switch to gradle

• Moving to JDK 7• Docker based continuous integration

– build, test, deploy on multiple platform

• Dropping Whirr…

Page 44: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

Docker?

• Linux Container– high level view: lightweight VM– really fast, suitable for dev/testing

https://www.docker.com/whatisdocker/

Page 45: Getting involved in world class software engineering tips and tricks to join apache open source community

Feature preview to recent Development:Docker based hadoop provisioning

Page 46: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

Docker based hadoop provisioning

to docker image

Page 47: Getting involved in world class software engineering tips and tricks to join apache open source community

Lighting-fast hadoop provisioning

Page 48: Getting involved in world class software engineering tips and tricks to join apache open source community

04/09/2023

LIVE DEMO

Provision a 3 node Hadoop cluster on Ultrabook in a minute!

Page 49: Getting involved in world class software engineering tips and tricks to join apache open source community

Q&A

04/09/2023

We’re hiring!