5 Flexible and Scalable Application Deployment An ideal deployment will contain…Availability at every edge of the application environmentStrategy: Physical distribution of load-balanced systemsStrategy: Minimum DB recovery, not necessarily 0 downtimeConsumption of every possible machine resourceStrategy: Virtualization provisioningTechniques for improving user experienceStrategy: Techniques and tools for achieving page-level SLAsLarge addressable memory spacesStrategy: 64-bit and large OS process space allocations
6 Flexible and Scalable Application Deployment An ideal deployment will contain…Minimum Storage Recovery TimeStrategy: Enterprise storage with Snapshot capabilitiesAdvanced monitoring for operations and planningStrategy: Measurement tools and analyticsAutomation…Automation…AutomationStrategy: Investment in repeatable, reliable automated processes.
7 Deployment: Availability VLEs are different beasts today then in the past.Communities are biggerSessions last longerContent is richerKey point: Adoption is greater and users expect their sites up 24 x 7 x 365Architecture is designed for many parallel instances of the product scaled in a horizontal fashion.Distributed physical deploymentsVirtualization is a key elementDatabase failover more important than horizontal database scalability.Emphasis on vertical database scalability
9 Deployment: Resource Utilization Moore’s law is in full effectCPUs are getting faster with more coresMemory is in abundance and cheapStorage is grossly abundantMassive systems can be obtained at low cost, but cannot be saturated in stand-alone configurations.Virtualization offers the opportunity…Deploy with availability in mindSaturate system resources
10 Deployment: Improving Page Responsiveness Gzip…Gzip…Gzip…All of our supported browsers handle gzip?Reduces payloadImproves lower latency connections like Cable, DSL and Dial-upMinor overhead on the application layer (~2% to ~5%)Have the option to perform at the load-balancer layerMost Bb deployments do not enable Gzip at allEven when enabled, some proxies and software packages mess-up the Accept Encoding HeaderOptimize your imagesPage size really does matterReduce the size without reducing the quality
11 Deployment: Large Address Space As of Blackboard Learn™ Release 9.1 all supported/certified configurations include a 64-bit option.Pushing more processing to client and DB over the last few releases, but major memory management technique is to use more application caches.Memory stays persistent longerLess wasteful from a creation/destruction perspective, but puts greater demands on larger spaces.Most of our application testing focused on 4GB and 8GB JVM deployments on 6GB and 10GB OS spaces.Limited testing at 16GB and 32GB
13 Deployment: Storage MTTR Reference architecture pushes for “diskless” boots in which ISCSI or NFS partition resides on an enterprise storage system.Both OS/VM partition and data partition served up from remote storage deployment designed for performance and scalability.Make your hardware work from a CPU, Memory and Network perspective…save the Disk for the experts.Consider scenarios for reducing “Mean Time to Recovery or Repair”Snapshot technology offering minutes for recovery
14 Deployment: Advanced Monitoring Measurement is the secret sauce for successful deployments.Most reliable and scalable deployments measure beyond the server infrastructureDifferent types of measurementsSystem/Environmental measurementsBusiness measurementsSynthetic measurementsCollecting is only part of the prizeNeed to analyze the data to drive business decisions from the data.
15 Deployment: Automation Goal of moving to 100% unattended and fully automated deployment.Reduce MTTR and prevent disastersAutomation requires intimacy…intimacy requires knowledgeUse automation forConfiguration Management and DeploymentMaintenanceRepeatable tasksAdaptive tuningMinimize possibility of human errorisioning_Whitepaper.pdf
17 Sizing the Application: To Hyper-Thread or Not Applies to Intel deployments only“..delivers thread-level parallelism on each processor resulting in more efficient use of processor resources—higher processing throughput—and improved performance on multi-threaded software.” –Intel CorporationGreatly improved in series processorProvides double worker thread capacityIf it’s not turned on, stop what you are doing and enable it ASAP!
18 Moving Away from Clusters Tomcat clusters were introduced back in Blackboard Learn 7.X prior to the transcendence of server virtualization.Only supported 32-bit configurations at the time, but systems were being shipped with 8GB, 16GB and 32+GB of RAM.Needed a way to take advantage of memory, but were limited to a 1.7GB address space.Recommending “distributed” deployment approaches as well.Still applies, but can be achieved differently.Clustering has its advantages, but also has its penalties.Failover not as ideal as one would desire.Best approach is to scale up with 64-bit spaces and distributed JVMs across both virtual and physical configs
19 Sizing Using P.A.Rs PAR = Performance Archetype Ratios Methodology for sizing based on units of work that can be applied to “unit of configuration”PARs assume a world of linear unitsAdd units of configuration to meet growing demands of unit of work.PARs based on (4) key resources: CPU, Memory, Disk and I/O and application interfaces (threads and connections).Used for making capacity decisions for sizing both virtual and physical components.
20 Optimizing the Web Server The web server in the Blackboard Learn configuration is nothing more than a gateway to the application container.When clusters were more relevent, the web server acted as a pseudo load-balancer.Not many opportunities for optimization other thanKeepAlivesInterfacesCompressionIt can become a bottleneck if not properly optimizedBetter to have high ceilings from an interface perspective
21 Optimizing the JVMJava hotspot offers standard –X and non-standard –XX options for performance and behavior.-X options are always guaranteed across releases and patches of Java.-XX options must be used with caution as they are subject to change with any release of Java.-XX options should be tested and measured using the production safe arguments.Read the release notes of Java for “performance” updates
22 Optimizing the JVMCross-platform recommendation for using Concurrent Mark Sweep CollectorBest optimized for 64-bit addressCombine –XX:+UseConcMarkSweepGCwith –XX:+UseParNewGCManually size New Space using –XX:NewSize and – XX:MaxNewSize options (1/4 to 1/3 total heap).Consider Survivor Space ratios 4 or lower.Be careful about sharing –XX non-standard options across customers.If you don’t understand what the option does and it’s not recommended by Blackboard, best choice is to not use it.
23 Optimizing the Database: SQL Server # of data files makes no difference on SQL Server for Data and TransactionAllow the data/transaction files to grow as big as they want within reason.What’s reason: 64GBTempDB is completely different story# of files = # of DB ThreadsSet first X files to a uniform size, set last file to same size with auto-extension ONDetermine size need over timeSeparate volume for paging file
24 Optimizing the Database: SQL Server Be aware of MDOP: Max Degree of ParallelismSetting to unlimited can have a negative affect on query performance unintentionally.AWE can and does work on 64-bit systemsConfigure READ_COMMITTED_SNAPSHOTTwo nuggets of information:Learn How to Use SQL DMVsStudy SQL Server Wait Events and Tuning
25 Optimizing the Database: Oracle Balance I/Os across multiple data files (~2 to 8GB per file).REDO is critical to performance a session/query level.Be aware of how much REDO is being used over time.NOLOGGING will disable, be we rarely use NOLOGGINGTEMP is very complex and used for managing transient data.One TEMP file is adequateIf latency exists on TEMP, consider introducing TEMP file groupsSGA is important, but PGA can be your best friend or your worst enemy with high concurrency.
26 Optimizing the Database: Oracle Oracle DBO can be your friendMust understand optimizer behaviorWillingness to read Cost Execution PlansUsing Wait Events and Cost Execution Plans for tuning initiativesWait events are at a system, session and query levelImportance of Statistics and HistogramsCBO is just guessing without properly set statistics and histograms.CBO is dependent on your data.
27 The subject of the email should be title of this session: Please provide feedback for this session by ingThe subject of the should be title of this session:[INSERT TITLE HERE]