OpenStack Upstream Training Report

Post on 14-Jan-2015

939 views 2 download

description

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

Transcript of OpenStack Upstream Training Report

OpenStack Upstream Training Report

June/19/2014

Shuichiro Makigaki

Datastore Platform Group,

System Platform Development Section,

Global Infrastructure Development Department

2

Agenda

1. Self Introduction

2. What is Upstream Training?

• Objectives

• Schedule

3. Training Report

4. Thoughts

5. Short QA

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

4

What is Upstream Training?

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

6

Where is Atlanta?

Georgia World Congress Center

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.

8

Objectives

× Learn architecture of OpenStack components

× Learn source code structure

× Learn hidden parameters

× Learn actual operation know-how

× Learn the best management practice

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

10

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.

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

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

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)

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

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…)

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.

18

Thoughts

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

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.

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)

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/

23

A week before Training

Day 1

Training

Day 2 Conference

A week

after Day 2

Online Meeting after Day2

24

Let’s start contribution!

25

Searching bug…

26

But, incomplete… (already fixed)

27

np. searching bug again…

28

Communicate well

29

OK, Push!

30

Reviewed!

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

31

……?!

32

33

Never give up!

34

And, push!

35

Wow! Quick review!

36

Recheck

37

Recheck!

38

Recheck!!

39

Recheck!!!

40

Recheck!!!!

41

Review +2!

42

Thank you for listening.