scm and performance - ny web performance meetup
TRANSCRIPT
SOFTWARE CONFIGURATION MANAGEMENT & PERFORMANCE
GUY FERRAIOLO
NY WEB PERFORMANCE MEETUP, 2/22/2010, NY, NY
COPYRIGHT 2010
some rights reserved
This work is licensed under the Creative Commons Attribution-No Derivative Works 3.0 License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nd/3.0/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, US
TOPICS OF THIS TALK
BACKGROUND, DEFINITIONS, DESCRIPTIONS OF SCM
GOOD THINGS SCM PROVIDES FOR PERFORMANCE ENGINEERS
SOME ASPECTS OF A GOOD SCM METHODOLOGY
SOFTWARE CONFIGURATION MANAGEMENT
USUALLY CALLED SCM
IMPORTANT FOR MANY REASONS NOT RELATED TO PERFORMANCE
OFTEN NEGLECTED
FREQUENTLY REINVENTED
DEFINITION OF SCM
In software engineering, software configuration management (SCM) is the task of tracking and controlling changes in the software. Configuration management practices include revision control and the establishment of baselines. [ http://en.wikipedia.org/wiki/Software_configuration_management]
A MORE ECCENTRIC DEFINITION
A FORM OF FUNCTIONAL PROGRAMMING
THE DATA OPERATED ON IS CODE
THE PRIMARY OUTPUTS ARE TRANSFORMED CODE, EXECUTABLES AND SCRIPTS
SCM ACTIVITIES
MANAGE CODE REPOSITORIES
BUILD SPECIFIC VERSIONS OF SOFTWARE
RECORD WHAT WAS BUILT, WHEN, WHY AND BY WHOM
MANUFACTURE, DISTRIBUTE AND INSTALL SOFTWARE
MORE SPECIFIC SCM ACTIVITIES RELATED TO PERFORMANCE (#6)
DEPLOY FOR SPECIFIC PURPOSES
DEVELOPMENT
PERFORMANCE TESTING
A/B TESTING
WHAT DO WE WANT FROM OUT SCM METHODOLOGY
HIGHLY AUTOMATED
REVERSIBLE
SELF-DOCUMENTING
SIMPLE WORKFLOW
THINGS THAT MAKE AN SCM PROCESS WEAK (#1)
NOT INTEGRATED • MONITORING AND DEPLOYMENT ARE COMPLETELY DISTINCT PROCESSES
MANUAL MAGIC IN THE MIDDLE OF THE PROCESS • HIGHLY AUTOMATED UNTIL A MANUAL STEP REQUIRING HIDDEN KNOWLEDGE IS DONE BY A SMALL SET OF PEOPLE
FAILS TO RECORD KEY INFORMATION OR PRESENTS IT IN SUCH VOLUME THAT IT CAN’T BE EASILY ANALYZED
THINGS THAT MAKE AN SCM PROCESS WEAK (#2)
ALLOWING PRIVILEGED PEOPLE TO BREAK RULES
USING TOOLS THAT CAN’T PROVIDE KEY FUNCTIONALITY
POSITIVE STEPS TO GOOD SCM
NEEDS SUPPORT OF MANAGEMENT AND KEY DEVELOPERS
NEEDS TO BE USED ON A REGULAR BASIS
NEEDS TO REPORT UNDERSTANDABLY AND REGULARLY
TOOLS AND TECHNIQUES (#2)
I DISLIKE RPM AS A DEPLOYMENT TOOL, TRY SOMETHING ELSE
MAKE IS GOOD, I HAVE NOT WORKED WITH ANT
VIEWPATHING IS A VERY POWERFUL TECHNIQUE, LATER GENERATION NMAKE HAS IT
TOOLS AND TECHNIQUES (#3)
SUBVERSION IS ACCEPTABLE, IT’S GLOBAL NUMBERING SCHEME HIDES SOME USEFUL INFORMATION
INVESTIGATING S-LISTS AS A CONCEPTUAL MODEL IS VERY USEFUL
RECAP
SCM IS VALUABLE IN GENERAL
SCM HAS DIRECT AND SIGNIFICANT IMPACT ON PERFORMANCE ENGINEERING
THERE IS A LARGE BODY OF WORK THAT CAN BE MINED TO IMPROVE ANY SCM PROCESS
RESULTS ARE (SOMEWHAT) PROPORTIONAL TO EFFORT
DEFINITION OF SCM:
HTTP://EN.WIKIPEDIA.ORG/WIKI/SOFTWARE_CONFIGURATION_MANAGEMENT
CONTAINS A FAIRLY DETAILED EXPLANATION OF VIEWPATHING:
HTTP://WWW2.RESEARCH.ATT.COM/~GSF/NMAKE/NMAKE.HTML