openstack upstream training report

42
OpenStack Upstream Training Report June/19/2014 Shuichiro Makigaki Datastore Platform Group, System Platform Development Section, Global Infrastructure Development Department

Upload: rakuten-inc

Post on 14-Jan-2015

939 views

Category:

Technology


2 download

DESCRIPTION

This is a report of OpenStack Upstream Training at OpenStack Atlanta Summit (May 10-11 2014).

TRANSCRIPT

Page 1: OpenStack Upstream Training Report

OpenStack Upstream Training Report

June/19/2014

Shuichiro Makigaki

Datastore Platform Group,

System Platform Development Section,

Global Infrastructure Development Department

Page 2: OpenStack Upstream Training Report

2

Agenda

1. Self Introduction

2. What is Upstream Training?

• Objectives

• Schedule

3. Training Report

4. Thoughts

5. Short QA

Page 3: OpenStack Upstream Training Report

3

Self Introduction

History

[1987 March 9th] Born in Nagano

[2012 April 1st ~] Join Rakuten

[2014 April ~] Join OpenStack Project

Current Job

• Datastore Admin/Architect (Clustrix)

• Infra web tool development (RoR)

• OpenStack

座右の銘: 原理は単純を、構造は複雑を極め、人は最も人らしく

長所: 考える・悩む・調べる・本を読む・黙る

短所: 喋らない・喋ることが無い・喋ることが思いつかない

Frequently Asked Questions:

Q1. 休日何してるんですか?

Q2. 私も本好きです!何読まれるんですか?

Q3. 趣味グラミングいいですね!何してるんですか?

Q4. でもなぜインフラなんかに?

APPLESEED

Masamune Shirow

Page 4: OpenStack Upstream Training Report

4

What is Upstream Training?

Page 5: OpenStack Upstream Training Report

5

Upstream

Training

Conference

In Atlanta

Design

Summit

What is Upstream Training?

Upstream (software development)

In software development, upstream refers to a direction toward the

original authors or maintainers of software that is distributed as source

code, and is a qualification of either a bug or a patch.

From Wikipedia, the free encyclopedia

Page 6: OpenStack Upstream Training Report

6

Where is Atlanta?

Georgia World Congress Center

Page 7: OpenStack Upstream Training Report

7

Objectives

Faster integration of the companies product roadmap into the

OpenStack release cycle

Successfully contribute one real world patch to an OpenStack

component

Master the technical tools

Understand the OpenStack contribution workflow and social norms

In addition,

• Make connection

• Introduce the training to your boss!

• Leaded by developers, not sales person.

Page 8: OpenStack Upstream Training Report

8

Objectives

× Learn architecture of OpenStack components

× Learn source code structure

× Learn hidden parameters

× Learn actual operation know-how

× Learn the best management practice

Page 9: OpenStack Upstream Training Report

9

Training Schedule

Online mentoring 1 A week before Day 1

• Choice of a contribution, via email, with each participant

How OpenStack is made Day 1

• Learn and practice git, gerrit, IRC

The theory of contribution Day 2

• Lego contribution simulation

• Individual presentation of the contribution plan

Online mentoring 2 A week after Day 2

Page 10: OpenStack Upstream Training Report

10

Training Report

Page 11: OpenStack Upstream Training Report

11

A week before Training

Day 1

Training

Day 2 Conference

A week

after Day 2

A week before Day 1

Pick a few (3 or so) bugs from the low hanging fruit list or elsewhere (it

is up to you) look like good candidates for you to work on during the

training

• Mentor will help you pick one.

It is best to chose a contribution that looks easy.

• The goal of the training will be to get your work accepted

upstream.

• Even the simplest work is an opportunity to learn.

Page 12: OpenStack Upstream Training Report

12

A week before Training

Day 1

Training

Day 2 Conference

A week

after Day 2

Day 1 (Morning)

How OpenStack is made

(3h including 1h30 exercises)

1. Release cycle

2. Relevant actors

3. Technical Committee

4. Program ecosystem

5. Design summits

6. IRC meetings

Page 13: OpenStack Upstream Training Report

13

A week before Training

Day 1

Training

Day 2 Conference

A week

after Day 2

Day 1 (Afternoon)

Workflow of an OpenStack

contribution and tools

(3h including 2h exercises)

1. devstack

2. How to contribute

3. launchpad

4. gerrit workflow

5. Branching model

6. reviewing

7. writing a commit message

8. jenkins

Page 14: OpenStack Upstream Training Report

14

A week before Training

Day 1

Training

Day 2 Conference

A week

after Day 2

Day 2

1. The Contribution Process (3 hours)

2. Agile for Contributors (15 min)

3. Contribution Simulation (1 hour)

4. Contribution Planning (2 hours)

Page 15: OpenStack Upstream Training Report

15

A week before Training

Day 1

Training

Day 2 Conference

A week

after Day 2

Day2 - The Contribution Process

Philosophy of open source contribution

Project pulse

Who's behind ?

Project social groups

Assess your approach

Engage immediately

Play with your network

Smaller tasks

Choosing a question

Code of conduct

Disagree

Understanding the Conventions

Explain what you do

Prepare the backport

Local and upstream

Good workflow

Bad workflow

Quantify the delta

Speeding the acceptance

Timeframe

Building karma

Parallelizing

From easy to difficult

Archive and collect

Page 16: OpenStack Upstream Training Report

16

A week before Training

Day 1

Training

Day 2 Conference

A week

after Day 2

Day 2 - Lego: What agile is.

Upstream project : a Lego town

Company deadline : Lego exhibition

Epic : become a major contributor and

demonstrate the company skills during

the exhibition

• planning (5 min) → building (15

min) → reviewing (5 min)

Actor

• Upstream (Board, Technical Committee, Core)

• Company (CEO, Product owner, Scrum Master, Team members)

• Free Software contributors (Distracted, Controversial, Agreeable…)

Page 17: OpenStack Upstream Training Report

17

References

Training materials are available at:

https://wiki.openstack.org/wiki/OpenStack_Upstream_Training/Info

You can re-experience the training by reading them all.

Page 18: OpenStack Upstream Training Report

18

Thoughts

Page 19: OpenStack Upstream Training Report

19

Language barrier

Contribution is not just about being technically savvy. It's also about

cooperation and you will get an opportunity to practice from day one :-) For

instance, the language barrier is a handicap and an opportunity to help

or receive help. Native english speakers already noticed I'm not a native

english speaker and kindly refrained from criticizing me. I acknowledge

this problem and from time to time I'll ask for help to clarify an explanation. If

it turns out that my english is better than someone else, I'll return the favor

and gladly help rewrite a mail or rephrase a sentence.

From mentor’s email

Page 20: OpenStack Upstream Training Report

20

Language barrier

Lack of English listening ability

Can not understand lecture completely

• Mottainai!

Can not understand Exercise completely

However, can not ask a question!

But, anyone is kind basically even if you speak slowly.

• Keep accuracy, honesty and professionalism

Nervous is not a problem, but don’t hesitate.

Page 21: OpenStack Upstream Training Report

21

Import the training to Japan!

Required

• All!

• including free drink & lunch

Should be considered

• Lego: Alternative agile training

• Exercise: Make it clear. Sometimes vague…

Wanted

• Choose bugs carefully that will be fixed

• How to write better emails to community mailing list

• How to dive source code (gnu global, IDE, call graph…)

• How about other opensouce community style?

(Linux kernel, …, Github, bugzilla)

• How about other contribution way? (documentation, infra)

Page 22: OpenStack Upstream Training Report

22

Others

Communication

• Don’t depend on Launchpad and mailing list

• Instead, use IRC!

• Push codes to gerrit, as well as discussing

• Try other contribution ways • Documentation, code review, comments…

• Keep accuracy, honesty and professionalism

Don’t hesitate

• Everyone is kind

, and never give up

• recheck no bug, recheck bug,…

• Ignored? Say “Hello, again!” on IRC http://openstackreactions.enovance.com/2014/01/keep-hitting-recheck-no-bug-in-reviews/

Page 23: OpenStack Upstream Training Report

23

A week before Training

Day 1

Training

Day 2 Conference

A week

after Day 2

Online Meeting after Day2

Page 24: OpenStack Upstream Training Report

24

Let’s start contribution!

Page 25: OpenStack Upstream Training Report

25

Searching bug…

Page 26: OpenStack Upstream Training Report

26

But, incomplete… (already fixed)

Page 27: OpenStack Upstream Training Report

27

np. searching bug again…

Page 28: OpenStack Upstream Training Report

28

Communicate well

Page 29: OpenStack Upstream Training Report

29

OK, Push!

Page 30: OpenStack Upstream Training Report

30

Reviewed!

but “-1”… OK, what should I fix..?

Page 31: OpenStack Upstream Training Report

31

……?!

Page 32: OpenStack Upstream Training Report

32

Page 33: OpenStack Upstream Training Report

33

Never give up!

Page 34: OpenStack Upstream Training Report

34

And, push!

Page 35: OpenStack Upstream Training Report

35

Wow! Quick review!

Page 36: OpenStack Upstream Training Report

36

Recheck

Page 37: OpenStack Upstream Training Report

37

Recheck!

Page 38: OpenStack Upstream Training Report

38

Recheck!!

Page 39: OpenStack Upstream Training Report

39

Recheck!!!

Page 40: OpenStack Upstream Training Report

40

Recheck!!!!

Page 41: OpenStack Upstream Training Report

41

Review +2!

Page 42: OpenStack Upstream Training Report

42

Thank you for listening.