Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Why Gitflow and Semantic Versioning will make your life better

No description
by

Tim Heilman

on 5 June 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Why Gitflow and Semantic Versioning will make your life better

2.0.12
2.0.14
2.0.15
Why Gitflow and Semantic Versioning will make your life better
[STORY]
(FEATURE)
(CARROT)
DEPLOYABLES EAT STORIES (GOOD)
DEPLOYABLES EAT BABIES (BAD)
[DEPLOYABLE]
(RPM)
(BUNNY)
STORIES HAVE BUGS
BUGS = BABY-EATING
NO BUGS = FANCY TRICKS
Not to be confused with the concept by the same name from
The Black Swan
by Nassim Nicholas Taleb
Release Start!
1.28.0
1.29.0
Release Branch
I don't know what's what, so I deploy one bunny per ticket
HOPSCOTCH
Will the bunny eat babies while playing hopscotch?
[RELEASE NOTE]
(EARSTONE EEL)
[TEST PLAN]
(SPLAT NET)
1.28.0
[RELEASE NOTE]
(EARSTONE EEL)
[TEST PLAN]
(SPLAT NET)
[INTEGRATION ENVIRONMENT]
(ITINERANT INVENTOR GNOME)
INT-OH-FOO
1.31.0-put-me-in-the-gnome
INT-RELEASE
1.28.0
ONE TEST PLAN
[RELEASE TRAIN]
(TERRAIN EASEL)
POINT 1:
BUGS CREEP IN BECAUSE
STABILIZATION CYCLE IS UNPROTECTED
FROM FEATURES WITH BUGS
POINT 1:
WITH GIT FLOW,
BUGS KEPT OUT BECAUSE STABILIZATION CYCLE PROTECTED FROM NEW (BUGGY) FEATURES
POINT 2:
PUPPET CONFIG CHANGES AND SCHEMA CHANGES ARE EASIER TO CONSUME, ASSOCIATED WITH A SEMANTIC VERSION
1. Because it will prevent bugs-in-production
2. Because it will make it easier to get stuff deployed and tested (CI/CD)
3. Because it will change our process from a PUSH to a PULL workflow
PER VERSIONED-RPM
ONE INTEGRATION ENVIRONMENT
(PUPPET CHANGES, SCHEMA CHANGES AS WELL)
[DEVELOPER]
(CARROT FARMER)
[TECH OPS]
(BUILD ENGINEER)
(RELEASE ENGINEER)
(SYSTEMS ENGINEER)
(BUNNY FARMER)
POINT 2:
GETTING SOFTWARE INTO ENVIRONMENTS AND TESTING IT THERE IS DIFFICULT; RELEASE NOTES AND TEST PLANS ARE NOT ALIGNED TO ANY SPECIFIC VERSION
[QA ENGINEER]
(EEL FISHERMAN)
THIS IS
NO FUN
POINTS 1 & 3:
OOPS! DEV PUSHED MORE CARROTS WITH BUGS INTO THE STABILIZATION CYCLE!
STILL
[TECH OPS]
(BUILD ENGINEER)
(RELEASE ENGINEER)
(SYSTEMS ENGINEER)
(BUNNY FARMER)
[RELEASE TRAIN]
(TERRAIN EASEL)
ONE RELEASE NOTE
ON THIS RELEASE TRAIN
POINT 2:
GIT FLOW/SEMANTIC VERSIONING:
PUPPET CONFIGURATIONS AND SCHEMA CHANGES ALL AUTOMATICALLY TRANSFERRED TO LATEST DEPLOYABLE AS IT STABILIZES, VIA THE SEMANTIC VERSION NUMBER
POINT 1 & 3:
NO NEW FEATURES! GET THE NEXT
TRAIN!
[DEVELOPER]
(CARROT FARMER)
[DEVELOPER]
(CARROT FARMER)
[DEVELOPER]
(CARROT FARMER)
POINT 2:
AUTOMATABLE INTEGRATION TESTING STARTS WITH
Release Finish! (We're ready to PULL the next release train!)
[QA ENGINEER]
(EEL FISHERMAN)
(eventually) SURE, I CAN WRITE RELEASE NOTES, PUPPET CHANGES, AND SCHEMA CHANGES IN ONE PLACE PER SEMANTIC VERSION
(eventually) SURE, I CAN WRITE TEST PLANS/ AUTOMATED TESTS IN ONE PLACE PER SEMANTIC VERSION
[TECH OPS]
(BUILD ENGINEER)
(RELEASE ENGINEER)
(SYSTEMS ENGINEER)
(BUNNY FARMER)
POINT 2:
CONFIGURATION CHANGES AND SCHEMA CHANGES ARE DIFFICULT TO TRACK, AS THEY AREN'T ALIGNED TO ANY SPECIFIC VERSION
CONTROLLER-SERVER
CALIBRATION-SERVER
2.13.0
CONTROLLER-SERVER
CONTROLLER-SERVER
CONTROLLER-SERVER
Lockdown_Browser-Mac
SFTP_Rostering
TutorialPlayer
activemq
adm-static-web
admin_mdb
admin_ui
calibration-server
cas_server
content-puller-server
controller-server
documentation-TestWarmup
documentation-guides-templates
documentation-help
documentation-tutorials
etl_app_eot
etl_app_nightly
item-viewer
java-1.6.0-sun
java-1.7.0-oracle
nightly-processing
partner-config-server
partner-support-web
partner-support-web-queries
platform-support-server
proctor-server
remote_broker
reporting_app_large
reporting_app_mdb
reporting_app_ui
saml-sp
selection-server
services_kit-examples
student-server
test-server
test_player
testevent-server
theta-static-web
webservices

I'm no longer drowning in eels! Now a ticket COULD be to deploy all the bunnies at once, not onesie-twosie!

IF WE ADOPT IT, ORGANIZATION-WIDE
OK, we'll "do" git-flow, and we'll roll-forward to fix bugs discovered during stabilization
OK, we'll wait for release-start to get deployments to int-oh-foo & run integration tests DURING the stabilization cycle, even for "older" features
RUNNING A ZOO IS ALWAYS CHALLENGING!
Lockdown_Browser-Mac
SFTP_Rostering
TutorialPlayer
activemq
adm-static-web
admin_mdb
admin_ui
calibration-server
cas_server
content-puller-server
controller-server
documentation-TestWarmup
documentation-guides-templates
documentation-help
documentation-tutorials
etl_app_eot
etl_app_nightly
item-viewer
java-1.6.0-sun
java-1.7.0-oracle
nightly-processing
partner-config-server
partner-support-web
partner-support-web-queries
platform-support-server
proctor-server
remote_broker
reporting_app_large
reporting_app_mdb
reporting_app_ui
saml-sp
selection-server
services_kit-examples
student-server
test-server
test_player
testevent-server
theta-static-web
webservices

}
THE "5/19" RELEASE
Point 3: Developers PUSH work to QA
POINT 3: QA PULLS WORK FROM DEV BY ENABLING NEXT RELEASE-START
2.0.13
Full transcript