Linked Data in Production: Moving Beyond Ontologies
SCM and Performance - NY Web Performance Meetup
1. 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
2. TOPICS OF THIS TALK
BACKGROUND, DEFINITIONS, DESCRIPTIONS OF SCM
GOOD THINGS SCM PROVIDES FOR PERFORMANCE
ENGINEERS
SOME ASPECTS OF A GOOD SCM METHODOLOGY
3. SOFTWARE CONFIGURATION
MANAGEMENT
USUALLY CALLED SCM
IMPORTANT FOR MANY REASONS NOT RELATED TO
PERFORMANCE
OFTEN NEGLECTED
FREQUENTLY REINVENTED
4. 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]
5. A MORE ECCENTRIC DEFINITION
A FORM OF FUNCTIONAL PROGRAMMING
THE DATA OPERATED ON IS CODE
THE PRIMARY OUTPUTS ARE TRANSFORMED CODE,
EXECUTABLES AND SCRIPTS
6. SCM ACTIVITIES
MANAGE CODE REPOSITORIES
BUILD SPECIFIC VERSIONS OF SOFTWARE
RECORD WHAT WAS BUILT, WHEN, WHY AND BY WHOM
MANUFACTURE, DISTRIBUTE AND INSTALL SOFTWARE
7. MORE SPECIFIC SCM ACTIVITIES
RELATED TO PERFORMANCE (#1)
AUTOMATE DEPLOYMENT OF MONITORING TOOLS
8. MORE SPECIFIC SCM ACTIVITIES
RELATED TO PERFORMANCE (#2)
CORRELATE MONITORING WITH DEPLOYMENT
9. MORE SPECIFIC SCM ACTIVITIES
RELATED TO PERFORMANCE (#3)
DEPLOY WITH A HIGH DEGREE OF UNIFORMITY
11. MORE SPECIFIC SCM ACTIVITIES
RELATED TO PERFORMANCE (#5)
CONTROL URL-BASED CACHING
12. MORE SPECIFIC SCM ACTIVITIES
RELATED TO PERFORMANCE (#6)
DEPLOY FOR SPECIFIC PURPOSES
DEVELOPMENT
PERFORMANCE TESTING
A/B TESTING
13. MORE SPECIFIC SCM ACTIVITIES
RELATED TO PERFORMANCE (#7)
TRACK PROBLEMS
BY MODULE
BY DEVELOPER
14. WHAT DO WE WANT FROM OUT
SCM METHODOLOGY
HIGHLY AUTOMATED
REVERSIBLE
SELF-DOCUMENTING
SIMPLE WORKFLOW
15. 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
16. THINGS THAT MAKE AN SCM
PROCESS WEAK (#2)
ALLOWING PRIVILEGED PEOPLE TO BREAK RULES
USING TOOLS THAT CAN’T PROVIDE KEY FUNCTIONALITY
17. 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
19. 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
20. 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
21. 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