Open stack summit surviving your first checkin

39
www.Nexusis.com 877.286.3987 1 Surviving your first check-in: An engineers guide to contributing to OpenStack Colin McNamara – Director, DC Practice Nexus IS CCIE #18233 @COLINMCNAMARA 10/16//2012

description

Whether you want to build the software, run it, grow the community or just learn more about it, there will be content, workshops and design sessions for you to attend at the OpenStack Summit, Oct 15-18 in San Diego. Stick around Friday for the first OpenStack service day, a 1/2 day beach cleanup. Register now! openstacksummitfall2012.eventbrite.com Schedule Speakers Attendees Share on twitter Share on facebook Tuesday, October 16 2:40pm Surviving your first check-in: An engineers guide to contributing to OpenStack Let me tell you a dirty little secret. While OpenStack is a great project, it is extremely complicated for and indivdual with an engineering/operations focus vs a programming focus to get to their first code contribution. My name is Colin, I am and engineer. Although I initially got involved with OpenStack in the context of operations, I quickly was drawn into actually contributing code to the project. What I found is that many of the tools and workflows used to contribute to OpenStack are completely foreign to those (like me) with an operations focus. In this session I will go over the biggest challenges that I faced as an engineer contributing. And review the tools and techniques to that I used to get past them. This information will be presented with the goal of arming engineers just getting involved with the knowledge tools necessary to get to their first successful contribution and beyond. Learning objectives 1. The importance of community - Leveraging the power of the meeting 2. Talking your employeer into supporting OpenStack and the CLA 3. Setting up your dev environments - getting beyond Devstack 4. Getting git, using the git repository for those that don't code for a living 5. Testing your code - what do you mean it doesn't build? 6. How to give back, and get other people involved in the community.

Transcript of Open stack summit surviving your first checkin

Page 1: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.39871

Surviving your first check-in: An engineers guide to contributing to OpenStack

Colin McNamara – Director, DC Practice Nexus ISCCIE #18233

@COLINMCNAMARA10/16//2012

Page 2: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.398722

Agenda

How this all started – “a simple experiment”

The importance of community - Leveraging the power of the meetup

Talking your employer into supporting OpenStack and the CLA

Setting up your Dev environments - getting beyond Devstack

“Getting” git, using the git repository for those that don't code for a living

Testing your code - what do you mean it doesn't build?

How to give back, and get other people involved in the community

Page 3: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.398733

My Background

Page 4: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.398744

My Perspective

Network Engineer first

Systems/Storage Second IEEE, IETF, T11

Linux user since 98

Creator of “Sausage Code”

NOT A PROGRAMMER

Page 5: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.398755

How this craziness started

Page 6: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.398766

“A simple experiment”

Ewan Mellor – Citrix Xen

Simple feature, Deploy Storage QOS

Turned into a 4 month saga

Lots of lessons to be learned

Page 7: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.398777

Leveraging the power of the Meetup

Page 8: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.398788

Meetup.com – Community is your friend

Join a Meetup.com group http://www.meetup.com/

openstack/

If there is none in your area– Start One

Many eyes help in overcoming challenges

Page 9: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.39871010

Talking to your employer about contributing

Page 10: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.39871111

Talking to your employer about contributing

Notify your manager. If you don’t have a policy you have a chance to set one.

In Ca, you are only protected if your company isn’t in the line of biz your project is.

If you are contributing on behalf of a company, an authorized representative of your company should also sign a Corporate Contributor License Agreement.

Page 11: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.39871212

Next steps – Executing your CLA

Create your launchpad account *** don’t change your username after ***

Join the OpenStack team on launchpad

Sign the CLA electronically

Update the Contributors Wiki

Request openstack-cla membership on launchpad

Wait (or ping an op on #openstack-dev)

Page 12: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.39871313

Setting up your Dev environment

Page 13: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.39871414

10 minutes to Devstack

Best run on Ubuntu 12.04

Log in as a USER (not root)

Sudo apt-get install git

git clone https://github.com/openstack-dev/devstack.git

cd devstack && ./stack.sh

Page 14: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.39871515

Getting beyond Default Devstack

I like to run in a VMware environment

Spin up new instances easily

Quickly compare versions

Default install pushes QEMU

Page 15: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.39871616

Getting beyond Default Devstack - Stackrc

/devstack/stackrc

Adjust API’s / Services

Change git repos

Page 16: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.39871717

Getting beyond Default Devstack - Stackrc

~/devstack/stackrc updated to point to working development branch

Refs/changes/50/5050/1 is the review ID

Page 17: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.39871818

You’ve made a change, Now What?

./rejoin_stack.sh will attach you the screen with all the terminals for the various apps. There could be as many as 14 screens depending on how many services are enabled

“ctrl-c” and “ctrl-d” on each window to kill the process. “ctrl-a n” takes you to next terminal. Restart the process by using up-arrow key and entering return

Another easier way to kill all and restart is to do “screen -ls” and kill the process. Restart by ./rejoin_stack.sh

Page 18: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.39871919

“Getting Git” OpenStack Workflows

Page 19: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.39872020

What is Git ?

Repository created for Linux Kernel Dev

Solves centralization problems – you can code at the lake, or in your isolated lab

Can be complex (multiple ways of doing things)

Page 20: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.39872121

Setting things up – Installing Git

Install Git

Install DevStack

Configure git

Install git-review

Clone a project

Verify gerrit works

Page 21: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.39872222

Setting things up – Installing DevStack

Install Git

Install DevStack

Configure git

Install git-review

Clone a project

Verify gerrit works

Page 22: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.39872323

Setting things up – Configuring Git

Install Git

Install DevStack

Configure git

Install git-review

Clone a project

Verify gerrit works

Page 23: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.39872424

Setting things up – Configuring git-review

Install Git

Install DevStack

Configure git

Install git-review

Clone a project

Verify gerrit works

Git review redirects a commit into a review and test process

Page 24: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.39872525

Setting things up – Cloning a project

Install Git

Install DevStack

Configure git

Install git-review

Clone a project

Verify gerrit works

Page 25: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.39872626

Setting things up – Testing Gerrit

Install Git

Install DevStack

Configure git

Install git-review

Clone a project

Verify gerrit works

This error held us up for 2 weeks…

Page 26: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.39872727

Setting things up – Generate your public key

Install Git

Install DevStack

Configure git

Install git-review

Clone a project

Verify gerrit works

Page 27: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.39872828

Setting things up – Add your key to review.openstack.org

Install Git

Install DevStack

Configure git

Install git-review

Clone a project

Verify gerrit works

Page 28: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.39872929

Setting things up – Add your key to review.openstack.org

Install Git

Install DevStack

Configure git

Install git-review

Clone a project

Verify gerrit works

Works -

Doesn’t Work -

Page 29: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.39873030

Making, Testing and submitting changes

Page 30: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.39873131

Pro Git – Well worth the price

I didn’t write it, but this book is great

It is on Safari Books Online

Page 31: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.39873232

Setting things up

Create a topic branch

Change code

Test Code

Commit Changes

Submit them for review

Monitor the review process

Page 32: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.39873333

Edited v1_1 api to describe phys as well as virt CPU

Create a topic branch

Change code

Test Code

Commit Changes

Submit them for review

Monitor the review process

Page 33: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.39873434

./Run_tests.sh in each project

Create a topic branch

Change code

Test Code

Commit Changes

Submit them for review

Monitor the review process

Page 34: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.39873535

Commit your code

Create a topic branch

Change code

Test Code

Commit Changes

Submit them for review

Monitor the review process

Be verbose, and be sure to call out whether a feature is blueprinted or a bugfix

Page 35: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.39873636

Submit it for review!!

Create a topic branch

Change code

Test Code

Commit Changes

Submit them for review

Monitor the review process

Page 36: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.39873737

Track the reviews progress

Create a topic branch

Change code

Test Code

Commit Changes

Submit them for review

Monitor the review process

Page 37: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.39873838

Giving back Engaging the community

Page 38: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.39873939

Giving back

Start a meetup.com group in your area

Attend Sean Roberts session on building community

Present to your peers

Share your experience with the world

Page 39: Open stack summit surviving your first checkin

www.Nexusis.com 877.286.398740

@colinmcnamarawww.colinmcnamara.com / www.nexusis.com