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

Post on 18-Nov-2014

155 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

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

#atlassian

STASH:TAKING EXPEDIA TO NEW HEIGHTS

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

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

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

• 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

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

DISCOVERY

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

DISCOVERY

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

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

ROADMAP

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?

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

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

Identify Low-Hanging Fruit • Technology Readiness • Team Readiness

... and finalize the taxonomy!

PREPARATION

Image courtesy of Dilbert by Scott Adams

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

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

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

!

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

Before Go-Live

Image courtesy of American Idol

After Go-Live

Image courtesy of American Idol

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

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

MIGRATION

Image courtesy of Futurama

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

MIGRATION

Image courtesy of Futurama

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

Training

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

appealing to graduates!

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

Adoption

688 Stash Users

819 Repositories

67 Projects

Well over 15GB of code

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?

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.

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

Key takeaways: #atlassian

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

Thank you!

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

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

top related