openstack upstream training report
DESCRIPTION
This is a report of OpenStack Upstream Training at OpenStack Atlanta Summit (May 10-11 2014).TRANSCRIPT
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.