Managing your Blackboard ®  System for Growth and Performance Presented By Steve Feldman April 13, 2005
Welcome <ul><li>Session Objectives: </li></ul><ul><ul><li>Introduction to Capacity Planning </li></ul></ul><ul><ul><li>Int...
Introduction: About Your Presenter <ul><li>What do I do at Blackboard? </li></ul><ul><ul><li>Director, Software Performanc...
Performance Maturity Model: Where do you fit in? Level 1:  Reactive Fire Fighting Level 2:  Monitoring And Instrumenting L...
Invest Your Time Understanding Performance and Capacity <ul><li>Set Performance Objectives from the Start </li></ul><ul><l...
Set Performance and Capacity Objectives from the Start <ul><li>It’s Never too late to define a performance or capacity obj...
Optimize Your Environment from the Start <ul><li>Blackboard environments moving from supported to mission critical (Applic...
Optimize Your Environment from the Start <ul><li>Optimize Environment from the Start based on Knowledge of Sub-Systems </l...
Introduction to Capacity Planning
Capacity Planning: Building an Ideal Blackboard Environment <ul><li>What is Capacity Planning? </li></ul><ul><li>Capacity ...
Capacity Planning Factors: Determine an Initial Deployment Architecture <ul><li>It’s Never Too Late to Consider or Reconsi...
Capacity Planning Factors: Handling Adoption and Growth <ul><li>Work with Functional Leaders to Understand Deployment Stra...
Capacity Planning Factors: Archiving Data <ul><li>A Lot of Data Can be Viewed as Disposable to Many and Priceless by Few <...
Capacity Planning Factors: Backups and Restoration <ul><li>Database Backups </li></ul><ul><ul><li>Differential versus Full...
Capacity Planning Factors: Maintenance Windows and Tasks <ul><li>Keep Your Users Informed </li></ul><ul><ul><li>Downtime/O...
Capacity Planning Factors: Integrating with External Systems <ul><li>Understand the integration </li></ul><ul><ul><li>What...
Capacity Planning Factors: Failover  and Redundancy <ul><li>Have a Plan </li></ul><ul><li>Make a Budget </li></ul><ul><ul>...
Capacity Planning Factors: Business Processes <ul><li>Define Schedule with Functional and Technical Leaders </li></ul><ul>...
Capacity Planning Factors: Planning for Upgrades <ul><li>Updating Versions of Blackboard </li></ul><ul><ul><li>Take Advant...
Capacity Planning Factors: Rolling Out New Features <ul><li>Understand How New Features Change the Following: </li></ul><u...
Capacity Planning Tools  <ul><li>Behavior Modeling </li></ul><ul><ul><li>What is it? </li></ul></ul><ul><ul><li>What tools...
Behavior Modeling
Capacity Planning Resources <ul><li>Modeling </li></ul><ul><ul><li>SPEED </li></ul></ul><ul><ul><li>IBM Rational </li></ul...
Introduction to Performance Management
Measuring Performance <ul><li>What to Focus On </li></ul><ul><ul><li>Response Time </li></ul></ul><ul><ul><li>Processing T...
Measuring Performance Workload Point of Max Workload Peak of Saturation Peak of Concurrency ∑   / Time = Sessions Per Hour...
Quality of Service Paradigm <ul><li>A web application’s quality of service is measured by response time, throughput and av...
Quality of Service: All for One and One for All Architecture… <ul><li>What exactly does this mean? </li></ul><ul><ul><li>I...
Quality of Service: All Things are Not Equal, So Let’s Not Treat them Equal… <ul><li>From a psychological perspective, it’...
Quality of Service: Where Can We Go With This… <ul><li>Resource management policies and procedures can be implemented to s...
Quality of Service: Example General Workload Distributed Workload Content Collection Workload Assessment Workload Adaptive...
Dealing with Performance and Capacity Issues
Dealing with Performance Issues <ul><li>Solving a performance issue is no different then solving a functional issue. The s...
Dealing with Performance and Capacity Issues <ul><li>Most clients fail to report performance issues. The bulk users of the...
Characteristics of a Good Problem Resolution Methodology <ul><li>Measurable </li></ul><ul><li>Reliable </li></ul><ul><li>D...
Performance Resolution Methods <ul><li>Trial and Error Method </li></ul><ul><li>Response Time Method </li></ul><ul><li>Do ...
Trial and Error Method <ul><li>Identify that a particular operation X has an unacceptable response time. </li></ul><ul><li...
Response Time Method <ul><li>Select the critical operations for which the business needs improved performance. </li></ul><...
Example #1 <ul><li>Scenario: Butch (Student) logs into Blackboard to access music files he stores in Content Collection. H...
Example #2 <ul><li>Scenario: The accounting department has decided to utilize the Blackboard assessment engine for high-st...
Example #3 <ul><li>Scenario: An integration between the campus SCT system and Blackboard must take place to ensure student...
Example #4: <ul><li>Scenario: You have procured budgetary funding to replace the older Blackboard servers and storage devi...
Example #5: <ul><li>Scenario: Suzie (Blackboard Administrator) has been contacted by her boss about a change in the school...
Performance Resources <ul><li>Measurement </li></ul><ul><ul><li>Windows Tool Kit, Top, Sar, VMStat, Prstat </li></ul></ul>...
Introduction to Load Testing
Introduction to Load Testing <ul><li>Load Testing is the process of… </li></ul><ul><li>Simulating synthetic workload on a ...
Introduction to Load Testing <ul><li>Software load testing requires a significant investment from an organization both fin...
Components of Load Testing Library of  Test Assets <ul><li>Reusable autonomous actions in the application (Create, Read, D...
Load Testing as a Part of the Blackboard SDLC
Load Testing as a Part of the Blackboard SDLC <ul><li>Five step process deep rooted in designing for performance before a ...
Load Testing Tools and Resources <ul><li>Simulation </li></ul><ul><ul><li>Mercury LoadRunner </li></ul></ul><ul><ul><li>Se...
Closing Slide <ul><li>Innovating Together in ‘05: </li></ul><ul><ul><li>Managing Performance and Capacity is something eve...
Upcoming SlideShare
Loading in …5
×

Managing your Blackboard® System for Growth and Performance

1,887 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,887
On SlideShare
0
From Embeds
0
Number of Embeds
13
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Managing your Blackboard® System for Growth and Performance

  1. 1. Managing your Blackboard ® System for Growth and Performance Presented By Steve Feldman April 13, 2005
  2. 2. Welcome <ul><li>Session Objectives: </li></ul><ul><ul><li>Introduction to Capacity Planning </li></ul></ul><ul><ul><li>Introduction to Performance Management </li></ul></ul><ul><ul><li>Handling Performance and Capacity Issues </li></ul></ul><ul><ul><li>Introduction to Load Testing </li></ul></ul><ul><li>Innovation </li></ul><ul><ul><li>Methodology for Resolving Issues </li></ul></ul><ul><li>Results/Outcomes </li></ul><ul><ul><li>Awareness of what you are doing well or not doing at all. </li></ul></ul>
  3. 3. Introduction: About Your Presenter <ul><li>What do I do at Blackboard? </li></ul><ul><ul><li>Director, Software Performance Engineering and Architecture </li></ul></ul><ul><ul><li>Part of Product Development, but interface with every department in Blackboard. </li></ul></ul><ul><ul><li>Manage the Software Performance Engineering (SPE) Process as part of the development lifecycle. </li></ul></ul><ul><li>A few key points… </li></ul><ul><ul><li>Been at Blackboard since the Fall of 2003. </li></ul></ul><ul><ul><li>Worked on AP2, AP3 and R7.0 </li></ul></ul><ul><ul><li>Manage a team of several developer/engineers. </li></ul></ul><ul><ul><li>Practicing Member of CMG </li></ul></ul>
  4. 4. Performance Maturity Model: Where do you fit in? Level 1: Reactive Fire Fighting Level 2: Monitoring And Instrumenting Level 3: Performance Optimizing Level 4: Business Optimizing Level 5: Process Optimizing Michael Maddox, MCI; A Performance Process Maturity Model
  5. 5. Invest Your Time Understanding Performance and Capacity <ul><li>Set Performance Objectives from the Start </li></ul><ul><li>Optimize Your Environment from the Start. </li></ul>
  6. 6. Set Performance and Capacity Objectives from the Start <ul><li>It’s Never too late to define a performance or capacity objective. </li></ul><ul><ul><li>Come as the result of a problem or issue </li></ul></ul><ul><ul><li>Solving a maintenance window or schedule </li></ul></ul><ul><ul><li>Planning for an upgrade </li></ul></ul><ul><ul><li>Planning for a rollout to new users </li></ul></ul><ul><ul><li>New Blackboard Building Blocks, Features or Integration </li></ul></ul><ul><li>Define Clear and Concise Objectives </li></ul><ul><ul><li>Measurable/Quantifiable and Achievable </li></ul></ul><ul><ul><li>Differentiate between Performance and Capacity </li></ul></ul><ul><ul><ul><li>Processing Time versus Workload </li></ul></ul></ul><ul><ul><ul><li>Growth versus Adoption </li></ul></ul></ul><ul><ul><ul><li>Resource Utilization and Maintenance </li></ul></ul></ul>
  7. 7. Optimize Your Environment from the Start <ul><li>Blackboard environments moving from supported to mission critical (Application Management Maturity Model) </li></ul><ul><li>Dedicate equipment and even network bandwidth. </li></ul><ul><li>Understand the working parts </li></ul><ul><ul><li>Acquire knowledge about the integrated sub-systems. </li></ul></ul><ul><ul><li>Don’t need to be a web, app or db guru, but know enough to: </li></ul></ul><ul><ul><ul><li>Manage and Maintain Independently </li></ul></ul></ul><ul><ul><ul><li>Research Knowledge Gaps </li></ul></ul></ul><ul><ul><ul><li>Solve Common Issues without Help </li></ul></ul></ul>
  8. 8. Optimize Your Environment from the Start <ul><li>Optimize Environment from the Start based on Knowledge of Sub-Systems </li></ul><ul><li>Monitor and Instrument Regularly </li></ul><ul><li>Talk to Your Users about their Experience. </li></ul><ul><li>Investigate Yourself </li></ul><ul><li>Finding the Right Configuration takes time: </li></ul><ul><ul><li>Make 1 Change at Time </li></ul></ul><ul><ul><li>Make the Change Based on Empirical Information (Not Hunches…) </li></ul></ul><ul><ul><li>Maintain a Consistent Configuration for 1 period of time (month, semester or a grading period) </li></ul></ul>
  9. 9. Introduction to Capacity Planning
  10. 10. Capacity Planning: Building an Ideal Blackboard Environment <ul><li>What is Capacity Planning? </li></ul><ul><li>Capacity Planning Factors </li></ul><ul><ul><li>Determine an Initial Deployment Architecture. </li></ul></ul><ul><ul><li>Handling Adoption and Growth </li></ul></ul><ul><ul><li>Archiving Data </li></ul></ul><ul><ul><li>Backups and Restoration </li></ul></ul><ul><ul><li>Maintenance Windows and Tasks </li></ul></ul><ul><ul><li>Integrating with External Systems </li></ul></ul><ul><ul><li>Redundancy and Failover </li></ul></ul><ul><ul><li>Business Processes </li></ul></ul><ul><ul><li>Upgrades </li></ul></ul><ul><ul><li>Rolling out New Features </li></ul></ul><ul><li>Capacity Planning Tools </li></ul>
  11. 11. Capacity Planning Factors: Determine an Initial Deployment Architecture <ul><li>It’s Never Too Late to Consider or Reconsider Your Deployment Architecture. </li></ul><ul><li>Try to Understand Key Components </li></ul><ul><ul><li>Eventual Audience Rollout </li></ul></ul><ul><ul><li>User Behavior </li></ul></ul><ul><ul><ul><li>Session Patterns </li></ul></ul></ul><ul><ul><ul><li>Frequency </li></ul></ul></ul><ul><ul><ul><li>Concurrency </li></ul></ul></ul><ul><ul><li>Data Management Strategy </li></ul></ul><ul><ul><li>Resource Needs </li></ul></ul><ul><ul><ul><li>Processing </li></ul></ul></ul><ul><ul><ul><li>Storage </li></ul></ul></ul>
  12. 12. Capacity Planning Factors: Handling Adoption and Growth <ul><li>Work with Functional Leaders to Understand Deployment Strategy </li></ul><ul><ul><li>Adoption Patterns of Users and Features </li></ul></ul><ul><li>Study Growth </li></ul><ul><ul><li>Not just users and courses, but data and content. </li></ul></ul><ul><ul><li>Instrument daily, weekly, monthly, yearly, etc. </li></ul></ul><ul><li>Study the Activity Patterns of your Users (Behavior Modeling) </li></ul><ul><ul><li>Session Times </li></ul></ul><ul><ul><li>Where they go and what they do… </li></ul></ul>
  13. 13. Capacity Planning Factors: Archiving Data <ul><li>A Lot of Data Can be Viewed as Disposable to Many and Priceless by Few </li></ul><ul><li>Define a Strategy Early On About Archiving Data. </li></ul><ul><ul><li>Enable Tracking and Study Last Modified </li></ul></ul><ul><ul><li>Use BB Tools to Archive and Export </li></ul></ul><ul><ul><li>Remove from the System </li></ul></ul><ul><li>Maintain Activity Accumulator Data </li></ul><ul><ul><li>Export </li></ul></ul><ul><ul><li>Purge Regularly </li></ul></ul>
  14. 14. Capacity Planning Factors: Backups and Restoration <ul><li>Database Backups </li></ul><ul><ul><li>Differential versus Full </li></ul></ul><ul><ul><ul><li>Depends on Size, Confidence in Process and Usage </li></ul></ul></ul><ul><ul><ul><li>Plan for the Unexpected </li></ul></ul></ul><ul><ul><ul><li>Restore on Development Environments Routinely </li></ul></ul></ul><ul><ul><ul><li>Store in a Safe Place </li></ul></ul></ul><ul><ul><ul><li>Practice During Maintenance Windows </li></ul></ul></ul><ul><li>File System Backups </li></ul><ul><ul><li>Perform Regularly </li></ul></ul><ul><ul><li>Just as Valuable as database back-ups </li></ul></ul><ul><ul><li>Not just data, but configuration </li></ul></ul>
  15. 15. Capacity Planning Factors: Maintenance Windows and Tasks <ul><li>Keep Your Users Informed </li></ul><ul><ul><li>Downtime/Outages </li></ul></ul><ul><ul><li>Periods where Performance Can be Affected </li></ul></ul><ul><li>Schedule Regularly </li></ul><ul><ul><li>Log Rotations </li></ul></ul><ul><ul><li>Server Restarts </li></ul></ul><ul><ul><li>Database Statistics, Index Rebuilt and Extent Management </li></ul></ul><ul><ul><li>Data Fragmentation </li></ul></ul><ul><ul><li>Archiving and Purging Data </li></ul></ul><ul><ul><li>Service Packs and Upgrades (discussed later) </li></ul></ul>
  16. 16. Capacity Planning Factors: Integrating with External Systems <ul><li>Understand the integration </li></ul><ul><ul><li>What data is affected </li></ul></ul><ul><ul><ul><li>Inbound versus Outbound </li></ul></ul></ul><ul><ul><li>Frequency of Integration </li></ul></ul><ul><ul><ul><li>Real-time versus Batched/Scheduled </li></ul></ul></ul><ul><ul><ul><li>Hopefully not manually intervened </li></ul></ul></ul><ul><li>Performance of both systems should not be affected based on integration </li></ul>
  17. 17. Capacity Planning Factors: Failover and Redundancy <ul><li>Have a Plan </li></ul><ul><li>Make a Budget </li></ul><ul><ul><li>If no budget, communicate plan and downtime </li></ul></ul><ul><li>Practice for the Unexpected </li></ul><ul><li>Be Realistic </li></ul><ul><li>Built-In Capabilities for Redundancy and Failover </li></ul><ul><ul><li>Blackboard Load-Balancing </li></ul></ul><ul><ul><li>SQL-Server Clustering and Oracle RAC </li></ul></ul><ul><li>Quality of Service Models </li></ul><ul><ul><li>Tomcat Clusters </li></ul></ul>
  18. 18. Capacity Planning Factors: Business Processes <ul><li>Define Schedule with Functional and Technical Leaders </li></ul><ul><ul><li>Schedule for an extended period of time </li></ul></ul><ul><ul><li>Map out window based on need and usage </li></ul></ul><ul><ul><li>Model and Prototype </li></ul></ul><ul><ul><ul><li>Make Sure the Window is Large Enough </li></ul></ul></ul><ul><li>Business processes should make sense and be realistic </li></ul><ul><li>Schedule During Periods of Low Usage and Non-Peak Times </li></ul><ul><li>Make it Repeatable, Automated and Easy to Debug </li></ul>
  19. 19. Capacity Planning Factors: Planning for Upgrades <ul><li>Updating Versions of Blackboard </li></ul><ul><ul><li>Take Advantage of New Features </li></ul></ul><ul><ul><li>Functional Patches </li></ul></ul><ul><ul><li>Performance Same or Optimized </li></ul></ul><ul><ul><ul><li>Performance Requirement for Every Development Release </li></ul></ul></ul><ul><li>Updating Platform Technology </li></ul><ul><ul><li>Platform Patches </li></ul></ul><ul><ul><li>Operating System Upgrades </li></ul></ul><ul><ul><ul><li>Plan for Downtime (Data Restoration) </li></ul></ul></ul><ul><li>Updating Hardware Architecture </li></ul><ul><ul><li>Plan for Downtime (Data Restoration) </li></ul></ul><ul><ul><li>Take Advantage of Faster, Cheaper Equipment </li></ul></ul>
  20. 20. Capacity Planning Factors: Rolling Out New Features <ul><li>Understand How New Features Change the Following: </li></ul><ul><ul><li>Customer/User Behavior </li></ul></ul><ul><ul><li>Adoption </li></ul></ul><ul><ul><li>Growth </li></ul></ul><ul><ul><li>Resource Utilization </li></ul></ul><ul><ul><li>Integration Patterns </li></ul></ul><ul><ul><li>Business Process Changes </li></ul></ul>
  21. 21. Capacity Planning Tools <ul><li>Behavior Modeling </li></ul><ul><ul><li>What is it? </li></ul></ul><ul><ul><li>What tools can you use? </li></ul></ul><ul><ul><li>Valid Instrumentation Periods. </li></ul></ul><ul><ul><li>What to look for and to learn from the data. </li></ul></ul><ul><li>Homegrown Tools (What to Mine) </li></ul><ul><ul><li>Last Modified </li></ul></ul><ul><ul><li>Growth Changes </li></ul></ul><ul><ul><li>Adoption Patterns </li></ul></ul><ul><ul><li>Concurrency Patterns </li></ul></ul><ul><ul><li>Business Processes (Run Times) </li></ul></ul>
  22. 22. Behavior Modeling
  23. 23. Capacity Planning Resources <ul><li>Modeling </li></ul><ul><ul><li>SPEED </li></ul></ul><ul><ul><li>IBM Rational </li></ul></ul><ul><ul><li>Simul8 </li></ul></ul><ul><ul><li>Opnet </li></ul></ul><ul><ul><li>NetIq (WebTrends) </li></ul></ul><ul><ul><li>Many Freeware Products on SourceForge </li></ul></ul><ul><li>Resources </li></ul><ul><ul><li>Performance by Design : Computer Capacity Planning By Example ; Menasce, Daniel </li></ul></ul>
  24. 24. Introduction to Performance Management
  25. 25. Measuring Performance <ul><li>What to Focus On </li></ul><ul><ul><li>Response Time </li></ul></ul><ul><ul><li>Processing Time </li></ul></ul><ul><ul><li>Storage/Growth (volumetric patterns) </li></ul></ul><ul><ul><li>Workload (Processing and Memory) </li></ul></ul><ul><ul><li>Network Utilization/Bandwidth </li></ul></ul><ul><ul><li>Adoption/Behavior </li></ul></ul><ul><ul><li>New Features and Deployments </li></ul></ul><ul><li>Plot, Measure and Model </li></ul><ul><ul><li>Distinct Sessions </li></ul></ul><ul><ul><li>Physical Resource Utilization (Workload) </li></ul></ul><ul><ul><li>Logical Resource Utilization </li></ul></ul>
  26. 26. Measuring Performance Workload Point of Max Workload Peak of Saturation Peak of Concurrency ∑ / Time = Sessions Per Hour s i = 0 Time Users Slope of Abandonment Slope of Recovery 0 60 x
  27. 27. Quality of Service Paradigm <ul><li>A web application’s quality of service is measured by response time, throughput and availability. </li></ul><ul><li>Poor quality of service leads to abandonment, decline in adoption and potentially permanently lost users. </li></ul><ul><li>QoS is key to assessing how well Web-based applications meet user expectations on two primary measures: availability and response time. </li></ul>
  28. 28. Quality of Service: All for One and One for All Architecture… <ul><li>What exactly does this mean? </li></ul><ul><ul><li>In today’s architecture no system, sub-system, use case, transaction, data element, etc. has a greater utility value then its neighbor component in the system. </li></ul></ul><ul><li>Is this an accurate representation of the product? </li></ul><ul><ul><li>In Blackboard, all things are not created equally or weighted equally in value as deemed by our users. </li></ul></ul><ul><ul><li>However, our architecture is such that all things are created and weighted equally. </li></ul></ul><ul><li>Why is this bad? </li></ul><ul><ul><li>The QoS of the application becomes unpredictable. </li></ul></ul><ul><ul><li>No guarantees can be made for capacity planning and utilization. </li></ul></ul><ul><ul><li>Clients rarely have the comfort level that their application environment is ever stable other then periods of light usage. </li></ul></ul>
  29. 29. Quality of Service: All Things are Not Equal, So Let’s Not Treat them Equal… <ul><li>From a psychological perspective, it’s easy to predict which systems have greater QoS needs then others. </li></ul><ul><ul><li>Taking an assessment has a greater utility then reading an announcement. </li></ul></ul><ul><ul><li>Entering gradebook scores has a greater utility then adding a course document or folder. </li></ul></ul><ul><li>From a workload perspective, it’s easy to conceptualize which systems demand greater QoS needs then others. </li></ul><ul><ul><li>A lab of 20 students taking an assessment has a greater workload on the system then a lab of 20 students reading a course document. </li></ul></ul><ul><ul><li>A virtual workshop of 20 users collaborating has a greater workload then 20 students navigating through a course. </li></ul></ul>
  30. 30. Quality of Service: Where Can We Go With This… <ul><li>Resource management policies and procedures can be implemented to support the workload needs of the system. </li></ul><ul><ul><li>Sub-system or potentially task workload monitoring. </li></ul></ul><ul><ul><li>Administrator defined thresholds for application management. </li></ul></ul><ul><li>Seasonal deployment changes based on patterns/trends of usage or even predefined scheduling by course administrators. </li></ul><ul><li>Better utilization of capital expenditures. </li></ul><ul><ul><li>Potentially more expensive with greater adoption. </li></ul></ul><ul><ul><li>Quantifiably reliable. </li></ul></ul>
  31. 31. Quality of Service: Example General Workload Distributed Workload Content Collection Workload Assessment Workload Adaptive Content Workload
  32. 32. Dealing with Performance and Capacity Issues
  33. 33. Dealing with Performance Issues <ul><li>Solving a performance issue is no different then solving a functional issue. The same level of care and effort in solving the issue should be given. We recommend the following three steps as the appropriate path for problem determination and resolution: </li></ul><ul><li>Decompose the Problem </li></ul><ul><li>Resolve the Issue </li></ul><ul><li>Follow Up and Prevent </li></ul>
  34. 34. Dealing with Performance and Capacity Issues <ul><li>Most clients fail to report performance issues. The bulk users of the system (students) rarely report issues. </li></ul><ul><li>Most Issues are reported when </li></ul><ul><ul><li>Administrators experience performance issues first hand for their own tasks. </li></ul></ul><ul><ul><li>Instructors are performing course administration activities. </li></ul></ul><ul><ul><li>Instructors are working on the product in a classroom environment. </li></ul></ul><ul><ul><li>Administrators pick up student chatter in BLOGS and Discussion Boards. </li></ul></ul><ul><li>What does that mean? </li></ul><ul><ul><li>Identifying the actual performance bottleneck is hard and requires a well formulated approach. </li></ul></ul><ul><li>Primarily performance issues are the result of: </li></ul><ul><ul><li>Poor System Management in Dealing with Growth </li></ul></ul><ul><ul><li>Changes in Adoption Patterns (Concurrency Thresholds) </li></ul></ul><ul><ul><li>Functional Issues in the Application </li></ul></ul><ul><ul><li>Undersized Hardware and Resources </li></ul></ul><ul><ul><li>User Error (Unrealistic Operations) </li></ul></ul>
  35. 35. Characteristics of a Good Problem Resolution Methodology <ul><li>Measurable </li></ul><ul><li>Reliable </li></ul><ul><li>Deterministic </li></ul><ul><li>Practical </li></ul><ul><li>Finite </li></ul><ul><li>Predictive </li></ul><ul><li>Efficient </li></ul><ul><li>Impact Aware </li></ul>
  36. 36. Performance Resolution Methods <ul><li>Trial and Error Method </li></ul><ul><li>Response Time Method </li></ul><ul><li>Do Nothing and Ignore Method </li></ul><ul><ul><li>Blame the Users Sub-Method </li></ul></ul><ul><ul><li>Blame the Hardware Sub-Method </li></ul></ul><ul><ul><li>Blame the Vendor Sub-Method </li></ul></ul>
  37. 37. Trial and Error Method <ul><li>Identify that a particular operation X has an unacceptable response time. </li></ul><ul><li>Make changes with the intent of improving X. </li></ul><ul><li>Remove any changes that make X worst. </li></ul><ul><li>If improvement is not perceived, go back and make additional changes. </li></ul><ul><li>If the improvement is minor, then go back and make more changes as it is possible to produce more improvements with additional changes. </li></ul>
  38. 38. Response Time Method <ul><li>Select the critical operations for which the business needs improved performance. </li></ul><ul><li>Collect proper diagnostic data during periods of poor performance with a focus on: </li></ul><ul><ul><li>Response Time Consumption </li></ul></ul><ul><li>Execute the optimization activity that will have the greatest net payoff to the business. </li></ul><ul><li>If the best payoff activity fails to yield desired results, then suspend optimization activities until something changes: </li></ul>
  39. 39. Example #1 <ul><li>Scenario: Butch (Student) logs into Blackboard to access music files he stores in Content Collection. He selects the appropriate tab and waits for the left navigation frame to completely load. He ends up waiting for 2 minutes until the tree fully loads. Angered by repeated incidents of this he sends a furious email to the system administrators complaining about his “lost time” waiting for the tree to load. </li></ul><ul><li>Question: How do we address this problem appropriately? </li></ul>
  40. 40. Example #2 <ul><li>Scenario: The accounting department has decided to utilize the Blackboard assessment engine for high-stakes testing during semester mid-terms. The department has issued a 1000 question random block assessment, in which students will be responsible for answering 25 questions in an all-at-once deployment fashion. The department wants all 500 students to complete testing during a 2 hour window over the course of a week. </li></ul><ul><li>The last time the department used Blackboard for high-stakes assessment, students complained about page load times and a few incidents in which students were kicked out of the application resulting in a locked assessment. </li></ul><ul><li>Question: The department has approached your help. How do you avoid a repeated issue? </li></ul>
  41. 41. Example #3 <ul><li>Scenario: An integration between the campus SCT system and Blackboard must take place to ensure students and faculty exist in the system and with the appropriate course enrollment based on recent course registration. The integration must take place prior to the beginning of the semester. The same integration took place last semester, but was deemed a failure by the faculty as it took over a week for all courses, faculty and students to be entered and associated on the system. </li></ul><ul><li>You were/are the administrator in charge of the integration. Part of the problem was that your data feeds from SCT were unorganized. Another problem is that you ran into a large number of system-level issues that caused your integrations to fail. </li></ul><ul><li>Question: How do you reduce the risk and ensure successful integration? </li></ul>
  42. 42. Example #4: <ul><li>Scenario: You have procured budgetary funding to replace the older Blackboard servers and storage device for newer hardware. This new hardware is expected to solve all of your performance problems. The new servers will arrive in late May, which will give you 45 days to configure and convert your Blackboard environment before the bulk of your students get back on the system. You have been told by your boss that the system can only be down for 48 hours, as the summer school still uses Blackboard. </li></ul><ul><li>Question: How do you ensure a smooth conversion with minimal downtime? What can you do in advance? How would you spend your 48 hours of downtime? </li></ul>
  43. 43. Example #5: <ul><li>Scenario: Suzie (Blackboard Administrator) has been contacted by her boss about a change in the school’s Blackboard licensing. The school had been using a Blackboard Learning System™ - Basic license for the past two years. They have upgraded to the Blackboard Learning System and purchased the Blackboard Community System™ and Blackboard Content System™ in order to support a new distance learning initiative. Her boss tells Suzie that she is responsible for the following: </li></ul><ul><li>Purchasing of hardware and storage to support new products. </li></ul><ul><li>Software Upgrade from Blackboard Learning System – Basic Edition to Blackboard Learning System </li></ul><ul><li>Installation and Configuration of the new implementation. </li></ul><ul><li>The new software components are expected to change the way Blackboard has traditionally been used at the school. There will be lot’s more data, and will cater to a community 10X the size of the present implementation. </li></ul><ul><li>Question: What can Suzie do in order to prepare for the change in features, adoption and growth? </li></ul>
  44. 44. Performance Resources <ul><li>Measurement </li></ul><ul><ul><li>Windows Tool Kit, Top, Sar, VMStat, Prstat </li></ul></ul><ul><ul><li>JProbe, OptimizeIt, HPJmeter, JMPI/Thread Dumps </li></ul></ul><ul><ul><li>Hotsos, Statspack, TKProf, Enterprise Manager, Query Analyzer </li></ul></ul><ul><ul><li>Performasure, Spotlight, Patrol, Unicenter </li></ul></ul><ul><ul><li>Apache Server-Status, JVMStat, VerboseGC </li></ul></ul><ul><li>Resources </li></ul><ul><ul><li>http://support.microsoft.com/kb/224587 </li></ul></ul><ul><ul><li>http://www.sql-server-performance.com/jc_sql_server_quantative_analysis1.asp </li></ul></ul><ul><ul><li>http://www.javaperformancetuning.com </li></ul></ul><ul><ul><li>http://www.oraperf.com </li></ul></ul><ul><ul><li>http://www.ixora.com.au </li></ul></ul><ul><ul><li>http://www.hotsos.com </li></ul></ul><ul><ul><li>http://perl.apache.org/docs/1.0/guide/performance.html </li></ul></ul>
  45. 45. Introduction to Load Testing
  46. 46. Introduction to Load Testing <ul><li>Load Testing is the process of… </li></ul><ul><li>Simulating synthetic workload on a software application. </li></ul><ul><li>Identifying where bottlenecks exist: </li></ul><ul><ul><li>Software Layer </li></ul></ul><ul><ul><li>Hardware and/or Interface Layer </li></ul></ul><ul><li>Determining software and system capacity capabilities under a given workload. </li></ul><ul><li>Attempting to meet or exceed a predefined performance objectives. </li></ul><ul><li>Representing conditional patterns of application usage. </li></ul>
  47. 47. Introduction to Load Testing <ul><li>Software load testing requires a significant investment from an organization both financially and operationally. </li></ul><ul><li>Most commercially available load testing tools cost tens of thousands of dollars to purchase and maintain. </li></ul><ul><li>Organizing and managing a staff focused on using these specialized tools bears similar expense. </li></ul><ul><li>Organizations must be prepared to deal with the results of the load tests. </li></ul><ul><ul><li>Optimizing Software (Refactoring) </li></ul></ul><ul><ul><li>Identifying Accurate Sizing and Capacity Configurations </li></ul></ul>
  48. 48. Components of Load Testing Library of Test Assets <ul><li>Reusable autonomous actions in the application (Create, Read, Delete, </li></ul><ul><li>Update and Execute) </li></ul><ul><li>Isolated verification points </li></ul><ul><li>Incorporation of abandonment (patience rating) </li></ul>Volumetrics and Usage Analysis <ul><li>Capture statistical overview of current implementations (data models) </li></ul><ul><li>Study usage patterns and trends for simulation </li></ul><ul><li>Develop performance data models based on findings. </li></ul>Scenario Definition Abandonment <ul><li>Define user patience rating (Will users abandon if the transaction </li></ul><ul><li>or site are slow) </li></ul><ul><li>Incorporate as a means of preserving realistic/expected usage patterns. </li></ul><ul><li>Simulation of realistic scenarios based on actual usage (artifacts) </li></ul><ul><li>Focus on sessions per hour rather then solely on concurrency </li></ul><ul><li>Session Outcomes: Abandon, Abort, Continue or Idle. </li></ul>
  49. 49. Load Testing as a Part of the Blackboard SDLC
  50. 50. Load Testing as a Part of the Blackboard SDLC <ul><li>Five step process deep rooted in designing for performance before a feature is developed. </li></ul><ul><li>Part of the requirements process by assessing risk, defining performance requirements and isolating high-impact use cases. </li></ul><ul><li>Study artifacts of performance within current implementations: </li></ul><ul><ul><li>Usage Analysis </li></ul></ul><ul><ul><li>Data Collection (Volumetrics within the Data Model) </li></ul></ul><ul><li>Isolate software contention by identifying software anti-patterns. </li></ul><ul><li>Refactor and optimize the software application layer (business logic and database structure). </li></ul><ul><li>Performance test the software under conditional and common load on standard/recommended configurations. </li></ul><ul><ul><li>Simulate Abandonment for Calibration Purposes </li></ul></ul><ul><ul><li>Generate enough samples of a given function </li></ul></ul><ul><ul><li>Stay within 2 Sigma (95% response time) </li></ul></ul>
  51. 51. Load Testing Tools and Resources <ul><li>Simulation </li></ul><ul><ul><li>Mercury LoadRunner </li></ul></ul><ul><ul><li>Segue Silk Performer </li></ul></ul><ul><ul><li>Grinder and Apache JMeter </li></ul></ul><ul><ul><li>Open STA </li></ul></ul><ul><ul><li>Rational Test Studio </li></ul></ul><ul><ul><li>Microsoft WCAT and WAST </li></ul></ul><ul><li>Resources </li></ul><ul><ul><li>http://www.keynote.com/downloads/articles/tradesecrets.pdf (Abandonment) </li></ul></ul><ul><ul><li>http://www-128.ibm.com/developerworks/rational/library/4169.html (Great Starter Article) </li></ul></ul><ul><ul><li>Performance Analysis for Java Websites ; Joines, Stacy </li></ul></ul>
  52. 52. Closing Slide <ul><li>Innovating Together in ‘05: </li></ul><ul><ul><li>Managing Performance and Capacity is something everyone can do. </li></ul></ul><ul><ul><li>The more quantifiable something is…the more attainable it can be. </li></ul></ul><ul><li>Resources Available: </li></ul><ul><ul><li>Provided throughout the presentation. </li></ul></ul><ul><li>Follow up Contact(s): </li></ul><ul><ul><li>Steve Feldman, [email_address] </li></ul></ul><ul><li>IF YOU ONLY REMEMBER 1 THING: </li></ul><ul><ul><li>It is never too late to think about performance and capacity. </li></ul></ul>

×