stash – taking expedia to new heights - david williams and christopher pepe

38
#atlassian

Upload: atlassian

Post on 18-Nov-2014

155 views

Category:

Software


0 download

DESCRIPTION

Discover how making the move from Perforce to Git at Expedia lead to standing room-only training sessions abundant with high fives. The move to Git improved Expedia's software development with faster development cycles, deeper integrations, increased transparency, and a more unified development platform.

TRANSCRIPT

Page 1: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

#atlassian

Page 2: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

STASH:TAKING EXPEDIA TO NEW HEIGHTS

DAVID WILLIAMS • SENIOR TECHNICAL PRODUCT MANAGER • EXPEDIA • @EXPEDIA

CHRISTOPHER PEPE • PARTNER & SENIOR SOLUTIONS ARCHITECT • PRAECIPIO CONSULTING • @PRAECIPIO

Page 3: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

R O A D M A P

D I S C O V E RY

What we’ll cover

P R E PA R AT I O N

I M P L E M E N TAT I O N

M I G R AT I O N

T R A I N I N G

W H AT ' S N E X T

Page 4: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

• Perforce VCS• Remote Productivity Report• Legacy Build ScriptSo many options...but how does it work?

• Everybody's doing it!• Pre-Dev Ops• Ivy & Jenkins

DISCOVERY

Centralized SVN development

Distributed Git development

SVN

CentralSVN repo

Workingcopy

Workingcopy

Dev #1 Dev #2

Git Git

GitGit

PublicGit repo

PublicGit repo

LocalGit repo

Dev #1 Dev #2

LocalGit repo

Page 5: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

• “Under desk” implementation• Stash envy• Storing production code

DISCOVERY

Page 6: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

• ALM support• Enterprise solution• High Performance• Failover• Disaster Recovery• Not under a desk

DISCOVERY

Page 7: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

R O A D M A P

D I S C O V E RY

P R E PA R AT I O N

I M P L E M E N TAT I O N

M I G R AT I O N

T R A I N I N G

W H AT ' S N E X T

Page 8: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

• Expedia, meet Stash: The Human Side of VCS Migration• Interviews• Word-of-Mouth Enthusiasm• Scope Stash servers

ROADMAP

Page 9: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

Atomic Cut-Over

• No dependency on build tools

Piecemeal

• Devs to git

• Devtools on Perforce

The Atlassian

• Mirror Commits

• Move Devtools to git

• Move Devs to git

ROADMAPAtomic Cut-Over, Piecemeal, or The Atlassian?

Page 10: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

Conversion Technology

• Git Fusion

• New Perforce servers

• Sky is the limit!

• Git-p4

• Older Perforce servers

• Limited but powerful

Migrating Builds

• Exercise for each Dev Team

• Expedia = Awesome Technology

• Ivy to Maven Bridge

• Exposed Ivy artifacts to Nexus

• Ivy build.xml to Maven pom.xml conversion tool

ROADMAP

Git Git Fusion p4d

git push

git clone git fetch git pullUser

WorkstationGit Fusion

ServicePerforce Service

p4 commands

Page 11: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

R O A D M A P

D I S C O V E RY

P R E PA R AT I O N

I M P L E M E N TAT I O N

M I G R AT I O N

T R A I N I N G

W H AT ' S N E X T

Page 12: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

Identify Low-Hanging Fruit • Technology Readiness • Team Readiness

... and finalize the taxonomy!

PREPARATION

Image courtesy of Dilbert by Scott Adams

Page 13: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

R O A D M A P

D I S C O V E RY

P R E PA R AT I O N

I M P L E M E N TAT I O N

M I G R AT I O N

T R A I N I N G

W H AT ' S N E X T

Page 14: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

Testing ProcessLeverage the fact that VCS is transactional • Start from any point in the past• Pull any diff over later• Just do it - and if it worked, then plan with the dev team to cut over• Have faith in your tools

!

Simple: Compare the commit histories

Simple but slow: Diff each repo (repo size isn’t reliable but contents are)

Validate Builds: Same artifact from Perforce and Git

Page 15: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

Challenges

• Inability to write using non-user SSH keys• Resolved in 2.12

• Certificate issue for Windows clients• Could be resolved by using a public signed certificate.

• Needed to build Git from source• OS package not available• Required security exception

• Design concerns over which environments can access• Should we make Stash publicly available for OSS projects?  

• Migration concerns with projects dependent upon components build system

!

Page 16: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

Disaster Recovery• Currently using a number of tiered backups

• Plan to implement a 3rd• We periodically rsync the Stash home directory to a cold standby.

• Simultaneously logship the DB.  • In case of recovery, never more than 15 minutes out of date

• Weekly full backup of Stash • Currently takes 15 min. to complete

• Now that we're on 2.12, we plan to implement DIY backups • Takes more to set up

Page 17: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

Before Go-Live

Page 18: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

Image courtesy of American Idol

Page 19: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

After Go-Live

Page 20: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

Image courtesy of American Idol

Page 21: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

R O A D M A P

D I S C O V E RY

P R E PA R AT I O N

I M P L E M E N TAT I O N

M I G R AT I O N

T R A I N I N G

W H AT ' S N E X T

Page 22: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

Expect the… Expected! • Well-planned• Well-tested• Well-executed

MIGRATION

Image courtesy of Futurama

Page 23: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

Expect the… Expected! • Well-planned• Well-tested• Well-executed

MIGRATION

Image courtesy of Futurama

Page 24: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe
Page 25: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe
Page 26: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

R O A D M A P

D I S C O V E RY

P R E PA R AT I O N

I M P L E M E N TAT I O N

M I G R AT I O N

T R A I N I N G

W H AT ' S N E X T

Page 27: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

Training

• Standing Room Only!• Expedia Git Experts Emerged!• Eyes Lit Up!• Atlassian makes Expedia

appealing to graduates!

Page 28: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

R O A D M A P

D I S C O V E RY

P R E PA R AT I O N

I M P L E M E N TAT I O N

M I G R AT I O N

T R A I N I N G

W H AT ' S N E X T

Page 29: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

Adoption

Page 30: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

688 Stash Users

Page 31: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

819 Repositories

Page 32: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

67 Projects

Page 33: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

Well over 15GB of code

Page 34: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

Shiny, Happy People

• Didn’t dictate the tool to use• Grassroots initiative• Give the people what they want• Happy, eager users

Dragging people kicking and screaming, or trying to hold back the mob?

Page 35: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

What's Next?

• Positive rollout experience• Word of Mouth adoption of Stash• Integration with other Atlassian tools• Traceability from ideation to release is a powerful thing.

Page 36: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

What stuck with us

• Stash has been easy both to install and to use  • Stable Scalability• Many Migration Strategies:

• Simple to Complex• Meets Developer Needs

• Lots of Community Support• Git is where the industry is going (has gone?)

Page 37: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

Key takeaways: #atlassian

• Discovery• Roadmap• Preparation• Implementation• Migration• Training• What’s Next

Page 38: Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe

Thank you!

DAVID WILLIAMS • SENIOR TECHNICAL PRODUCT MANAGER • EXPEDIA • @EXPEDIA

CHRISTOPHER PEPE • PARTNER & SENIOR SOLUTIONS ARCHITECT • PRAECIPIO CONSULTING • @PRAECIPIO