
Course introduction.
Explore the course's four modules: a performance overview, performance variables affecting scalability, load anti-pattern, and system design considerations for scalable performance.
The instructor brings twenty years in the IT industry and sixteen in consulting, including seven on enterprise projects, with roles as a delivery architect, trainer, interviewer, and mentor at Microsoft.
Explore concepts of system performance and scalability in Microsoft Dynamics 365, learn design patterns that cause undesirable load and how dynamic server rules work together to prevent poorly performing systems.
identify the target audiences for dynamics 365 system performance and scalability, including dynamics 365 business analysts who design line-of-business applications and nimocks developers who build back-end plugins, workflows, or integrations.
Explore what performance means and the core variables shaping user experience, and identify common performance issues and factors that lead to poor system performance.
Explore how performance is perceived by users, examining the server, network, and client as three core components in a distributed system like Dynamics 365.
Establish baseline performance by measuring system speed without customization, treat it as the laws of physics for dynamics, and assess relative performance as you add business logic.
Explore the relationship between performance and scalability, emphasizing proactive architectural design, realistic load predictions, and avoiding post go live fixes by building scalable systems aligned with business needs.
Assess performance degradation variables such as data demographics, volume, velocity, and viscosity, and their impact on system load. Explore how concurrency in business processes and user activity affects performance.
Apply the Pareto principle to Dynamics 365 system load to identify the few entities that drive load, and inspect logs to reveal hotspots among accounts, leads, and opportunities in sales.
Explore the elements of performance across the server, network, and client. Compare baseline versus customized performance and examine linear and exponential degradation, data demographics, business automation processes, and concurrency.
Explore how data velocity, data volume, data viscosity, hotspots, data cardinality, and data concurrency influence performance in Microsoft Dynamics 365. Understand how these variables affect load and responsiveness.
Analyze how data volume impacts Dynamics 365 performance, from records per hour and workflows to historical data, high-volume entities like activities, online deployments, and archiving strategies.
Analyze how data viscosity drives system load by examining business automation on entities like accounts and contacts, and differentiate synchronous from asynchronous processing to optimize performance.
Identify hotspots by analyzing which entities carry 80 to 90 percent of user activity, then assess registered workflows and plugins, and compare synchronous versus asynchronous processing to optimize load.
Explore data cardinality in Microsoft Dynamics 365 by distinguishing bounded and unbounded datasets, assess growth rates, and examine how business automations query these sets to safeguard performance.
Explore data concurrency in relational databases, including transactions, record locks, and lock contention. Learn how multiple business automations compete for the same data and how tech leads prevent conflicts.
Explore data velocity, data volume, data viscosity, hotspots, data cardinality, and data concurrency to understand system load, load patterns, and their impact on performance and scalability.
Understand the two process execution modes—synchronous and asynchronous—and how each affects front end and backend servers when running workflows or plug-ins.
Detect unintentional process loops in Microsoft Dynamics 365 by analyzing logs for synchronous and asynchronous loops, and terminate or refactor root causes to prevent deadlocks and resource drain.
Understand the cardinality exposure pattern, where unbounded and temporal entities cause process times to grow with data, and implement archiving to constrain growth and improve performance.
Explore process execution modes and learn patterns that affect performance, including cascade, overload, loop, cardinality exposure, concurrency violation, redundant execution, and data gluttony.
Predict high velocity entity behavior by analyzing lead imports, asynchronous processes, and potential bottlenecks. Manage loads from plug ins and workflows to prevent lock contention and database strain.
External integrations introduce uncertainty in Dynamics 365 deployments; implement a versioned API layer in front of the CRM to throttle, transform, and control performance.
Entity ownership in Dynamics 365 determines security granularity and system load. Avoid making user owned entities unless needed, due to security checks and share overhead, especially for common lookups.
Explore how record sharing drives system slowdowns in Dynamics CRM, enlarging the principal object access table, and how archiving, user ownership choices, and cascade sharing shape scalability.
Explore high velocity entities in business automations, attachment considerations, and external integrations, then compare energy ownership with organization ownership, and assess record sharing and concurrency symptoms in the database.
Thank you for completing the course and supporting my work; connect via dynamics mechanics dot com, Twitter Steven Smith CRM, LinkedIn Stephen Smith CRM, and YouTube bitterly slash mechanics videos.
System performance is a critical non-functional requirement in any application, yet it's seldom taken into account until after it becomes a problem. The worst thing that can happen after investing months in developing a system is for it to fail after being deployed to users. User feedback and politics can be quite brutal when a system fails to meet expectations and the consequences of a poorly performing system can be severe even to the point people lose their jobs. While system performance is often times looked at as an intangible aspect of application development it's based in design patterns and distributed system architecture principles that can be addressed.
In this course, we'll review Dynamics platform internals and take a pragmatic look at design anti-patterns we should avoid and mitigate in enterprise applications. This information which has never been presented to the public outside of Microsoft is derived from system performance research challenges and solutions of real world Microsoft enterprise customers.
In this course you will learn: