280 likes | 418 Views
Case Study: One Code Base On Premises and On Line Microsoft Dynamics CRM. David Shutt Software Architect Microsoft Corporation. Case Study: One Code Base Case Study of Bridging On Premises & Online. Vision Analyze and Plan Technology Team Process and Organization Measure.
E N D
Case Study: One Code Base On Premises and On LineMicrosoft Dynamics CRM David Shutt Software Architect Microsoft Corporation
Case Study: One Code BaseCase Study of Bridging On Premises & Online Vision Analyze and Plan Technology Team Process and Organization Measure
Vision: The Power of Choice • Write once • Deploy anywhere • Non goal: On Premises Quirks On Premises CRM Online (Microsoft Hosted) Partner Hosted
Analyze Security: Surface AreaPrior Release Web Client Web UI WebSvc API Biz Logic Outlook Client SQL SQL Reporting Services Excel
Plan: Security: Surface AreaStrategy: wrap non hardened components Web Client SQL Reporting Services Web UI Outlook Client WebSvc API Biz Logic SQL Excel
Analyze ScalePrior Release: Single Tenant Application Server Tenant 1 Application Server Tenant 2 Application Server Tenant 3 Application Server Tenant 4 Application Server Tenant N …
Analyze ScalePrior Release: Single Tenant with Virtualization Application Server Tenants 1-10 Application Server Tenants 11-20 Application Server Tenants 21-30 Application Server Tenants 31-40 Application Server Tenants xx-yy …
Plan ScaleNew Release: Multi Tenant Application Server Tenants 1-200 Application Server Tenants 201-400 Application Server Tenants 401-600 Application Server Tenants 601-800 Application Server Tenants xxx-yyy …
Analyze Provisioning & AvailabilityPrior Release: State in Multiple Places Application Server …Application Server N Tenant UI Tenant UI Tenant code Tenant Code Tenant Registry Tenant Registry Tenant Data Tenant Semantic Meta Data
Plan Provisioning and AvailabilityCentralize State to enable Server Farms Application Server Cached State only …Application Server N Cached State only Tenant Data & Meta Data (UI, code, entity def) SQL
Plan Scale: Multi Tenant Memory CRM V4 Application Server ‘Core’ MetaData Delta #1 Delta #2 Delta N
Process: Agility in TestingChallenge and Best Practices • Complex Test Matrix • Deployment models – On Premises, Online, Partner Hosted • Authentication – AD, Basic, Windows LiveID • Versions of External Dependencies • Server: OS, IIS, .NET CLR, Exchange, SQL Server • Client: OS, Browser, Office/Outlook • Unify Development and Test Infrastructure • Automate Deployment and Testing • Centralize and Dedicate Resources
Process: Extending the Delivery Team • Customer Satisfaction includes operations, sustaining engineering, & support teams • Customer support responsibilities differ across channels Product Dev Sustaining Engineering Support OnPremises Customer OnPremises Partner Product Operations Online Servicing Online Customer Data Center Operations Hosting Partner Business Operations
Measure: Scale Cascading Failures • Alpha @ scale: sudden transition from healthy to cached configuration expired • Q1: Why did configuration polling fail? • A1: Polling thread CPU starved • Q2: Why was CPU usage high? • A2: .NET Garbage Collector • Q3: Why was Garbage Collector so busy? • A3: Finalization Queue very long • Q4: What objects are in the queue?
Measure: ScaleFunctional correctness does not guarantee scale • public void BadScale() • { • // Get thread's windows identity. • WindowsIdentity identity = WindowsIdentity.GetCurrent(true); • if(null != identity) • { • // Do Work with identity • return; • } • else • { • // Invalid user -- throw exception... • } • }
Measure: ScaleCoding Example for Scalability • public void GoodScale() • { • WindowsIdentity identity; • try • { • identity = WindowsIdentity.GetCurrent(true); • // Do work with the identity object. • } • finally • { • identity.Dispose(); • } • }
Measure: ScaleEarly results with improved code • Multi tenant memory at scale, after applying fix to CRM code itself [other code still to do]
Measure: Disk SpaceLesson: Local vs Global Optimization • Online Service provides instant feedback • Noticed during Beta, fixed prior to Release
One Code Base: Lessons • Technology • Build for Online, On Premises as simple case • Be flexible to keep or replace components • Iterate, limit initial scope • Adopt existing Online-ready technology • Process • Plan and Scope before you start • Analyze ROI for work required • Evangelize Architecture and Best Practices within team • Agility - Organizational and Process
Microsoft Dynamics CRM & the Azure Services Platform Azure Services Platform Microsoft SharePoint Services Microsoft Dynamics CRM Online
One Code BaseLinks • Microsoft Dynamics CRM Online • http://crm.dynamics.com • Microsoft Dynamics CRM V4 Performance Whitepapers • http://www.microsoft.com/downloads/details.aspx?FamilyId=5852B14A-394C-4898-8374-CAF5E6479EB0&displaylang=en • PDC BB32: Rapid Business Application Development with Dynamics CRM • PDC BB08: Microsoft Dynamics CRM: Appealing Business Applications
Evals & Recordings Please fill out your evaluation for this session at: This session will be available as a recording at: www.microsoftpdc.com
Q&A Please use the microphones provided
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.