Architecture Track Architecture Track Session 4Session 4
Designing MicrosoftDesigning Microsoft® ® .NET .NET Applications for Deployment and Applications for Deployment and ManageabilityManageability
AudienceAudience
Application architects, senior Application architects, senior developers, and infrastructure developers, and infrastructure professionalsprofessionals
Responsible for designing, developing, Responsible for designing, developing, and/or managing enterprise systemsand/or managing enterprise systemsInterested in design-time decisions that Interested in design-time decisions that affect deployment and operational affect deployment and operational successsuccessInterested in Microsoft’s technical Interested in Microsoft’s technical position on designing for manageabilityposition on designing for manageabilityInterested in designing applications that Interested in designing applications that deploy easily and are manageable in the deploy easily and are manageable in the production environmentproduction environment
Realistic ExpectationsRealistic Expectations
There are many application design There are many application design considerations related to deployment and considerations related to deployment and operational integrity operational integrity
This session strives to address a small This session strives to address a small subset of key topicssubset of key topics
By no means is it comprehensive in its coverageBy no means is it comprehensive in its coverage
Technical resources are available for many Technical resources are available for many of the areas not covered todayof the areas not covered today
A detailed whitepaper accompanies this trackA detailed whitepaper accompanies this track
Event DVDEvent DVD
MSDN® .NET Architecture CenterMSDN® .NET Architecture Center
patterns and practices Web sitepatterns and practices Web site
Session ObjectivesSession Objectives
Explore techniques for designing Explore techniques for designing applications with features that enable applications with features that enable monitoring and operational monitoring and operational managementmanagement
Discuss deployment recommendations Discuss deployment recommendations for .NET-based applicationsfor .NET-based applications
Describe strategies for managing Describe strategies for managing updates to and administration of updates to and administration of production systemsproduction systems
Session AgendaSession Agenda
Instrumenting ApplicationsInstrumenting Applications
Microsoft Windows Server 2003 Health Microsoft Windows Server 2003 Health MonitoringMonitoring
Deploying .NET-based ApplicationsDeploying .NET-based Applications
Managing Updates and Security Managing Updates and Security PatchesPatches
Remote Systems and Application Remote Systems and Application AdministrationAdministration
Instrumenting ApplicationsInstrumenting Applications
Business RequirementsBusiness Requirements Technical ChallengesTechnical ChallengesProvide a complete “health Provide a complete “health picture” for applicationspicture” for applications
Monitor transactions from start Monitor transactions from start to finish (get the “end-to-end” to finish (get the “end-to-end” picture)picture)
Build reliable applicationsBuild reliable applications
What to logWhat to log
Where to logWhere to log Developers must know each Developers must know each
API (WMI, Event Log, Trace, etc.)API (WMI, Event Log, Trace, etc.)
Minimize performance impactMinimize performance impact
Enterprise Enterprise Instrumentation Instrumentation Framework (EIF)Framework (EIF)
.NET Application
Instrumentation API
Event filtering
WMIEventtrace
Eventlog
Tracelog
Eventlog
WMIsubscriber
Con
fig
ura
tion
Event schema
Application object
Application object
Event source Event source
Trace reader
EIF ArchitectureEIF Architecture
Distributed applicationDistributed application
Application server Application server
Event source
Event source
Event filtering
WMIEventtrace
Eventlog
Tracelog
Eventlog
WMIsubscriber
Tracereader
Event source
Event source
Event filtering
WMIEventtrace
Eventlog
Tracelog
Eventog
WMIsubscribers
Tracereader
Management Server
EIF ArchitectureEIF Architecture
Management suite
Management eventrepository
SQLTrace eventrepository
EIF In CommNetEIF In CommNet
Instrumenting Applications: Instrumenting Applications: RecommendationsRecommendations
Measure against reliability targetsMeasure against reliability targets
Decide which application-specific Decide which application-specific events and metrics to collectevents and metrics to collect
Manage by exceptionManage by exception
Handle errors consistentlyHandle errors consistently
Use EIFUse EIF
Session AgendaSession Agenda
Instrumenting ApplicationsInstrumenting Applications
Windows Server 2003 Health Windows Server 2003 Health MonitoringMonitoring
Deploying .NET-based ApplicationsDeploying .NET-based Applications
Managing Updates and Security Managing Updates and Security PatchesPatches
Remote Systems and Application Remote Systems and Application AdministrationAdministration
Health MonitoringHealth Monitoring
Application and server health definedApplication and server health definedMonitoring terminologyMonitoring terminology
TiersTiersLogical divisionsLogical divisionsCoarse-grain and fine-grain monitoringCoarse-grain and fine-grain monitoring
Monitoring methodologyMonitoring methodologyEstablish the monitoring aimEstablish the monitoring aimDetermine the physical and application Determine the physical and application architecturesarchitecturesIdentify relevant informationIdentify relevant informationCreate a baselineCreate a baselineArtificial stimulus and instrumentationArtificial stimulus and instrumentation
Health MonitoringHealth Monitoring
Monitoring issuesMonitoring issuesMonitoring vs. throughput tradeoffsMonitoring vs. throughput tradeoffs
Remote monitoringRemote monitoring
Monitoring load (10% rule)Monitoring load (10% rule)
Monitoring the common language runtimeMonitoring the common language runtime
Metrics and eventsMetrics and events
Pacing yourself—stage complexity into Pacing yourself—stage complexity into your monitoring implementationyour monitoring implementation
Windows Server 2003 Windows Server 2003 MonitoringMonitoring
Familiar tools: Performance MonitorFamiliar tools: Performance Monitor
Performance Monitor best practicesPerformance Monitor best practicesMonitoring interval: 10-15 minutesMonitoring interval: 10-15 minutes
Log retention and SQLLog retention and SQL
Keep monitoring overhead lowKeep monitoring overhead low
Analyze performance resultsAnalyze performance results
Establish a baselineEstablish a baseline
Define alertsDefine alerts
Management ApplicationsManagement Applications
Application Center 2000Application Center 2000Health Monitor 2.1Health Monitor 2.1
ActionsActionsNon-synchronized monitorsNon-synchronized monitorsSynchronized monitorsSynchronized monitors
Microsoft Operations Manager 2000Microsoft Operations Manager 2000ArchitectureArchitecture
AgentsAgentsConsolidator Agent ManagerConsolidator Agent ManagerData Access ServerData Access ServerMicrosoftMicrosoft®® SQL Server™ Database SQL Server™ Database
Management Pack modulesManagement Pack modules
AgendaAgenda
Instrumenting ApplicationsInstrumenting Applications
Windows Server 2003 Health Windows Server 2003 Health MonitoringMonitoring
Deploying .NET-based ApplicationsDeploying .NET-based Applications
Managing Updates and Managing Updates and Security PatchesSecurity Patches
Remote Systems and Remote Systems and Application AdministrationApplication Administration
Deploying .NET-based Deploying .NET-based ApplicationsApplications
Packaging the applicationPackaging the application
Distributing the application Distributing the application to productionto production
Packaging ApplicationsPackaging ApplicationsChoosing a StrategyChoosing a Strategy
Determining how to package Windows Determining how to package Windows Forms applicationsForms applicationsDetermining how to package Determining how to package Web applicationsWeb applicationsPackaging multitiered applications in Packaging multitiered applications in multiple installersmultiple installersPackaging managed controls in CAB filesPackaging managed controls in CAB filesDetermining how to package Windows Determining how to package Windows service applicationsservice applicationsPackaging components in merge modules Packaging components in merge modules for other developersfor other developers
Distributing ApplicationsDistributing Applications
Distributing Windows installer files for Distributing Windows installer files for user-installed applicationsuser-installed applications
Using software distribution tools to Using software distribution tools to deploy administrator-installed deploy administrator-installed applicationsapplications
Choosing a strategy for distributing Choosing a strategy for distributing your build outputs directlyyour build outputs directly
Using Application Center to deploy Using Application Center to deploy between development, testing, staging, between development, testing, staging, and production environmentsand production environments
Deployment Challenge Deployment Challenge
App1.exApp1.exee
MyCtrl.dMyCtrl.dllll
App2.exApp2.exee
MyCtrl.dMyCtrl.dllll
DLL DLL HellHell
MyCtrl.dlMyCtrl.dlll
MyCtrl.dlMyCtrl.dlll
MyCtrl.dllMyCtrl.dllMyCtrl.dllMyCtrl.dll
Deployment Challenge Deployment Challenge VersioningVersioning
App1.exApp1.exee
App2.exApp2.exee
Global Assembly Global Assembly CacheCache
Windows Forms: Windows Forms: No-Touch DeploymentNo-Touch Deployment
Store application files (exe, dll) on Store application files (exe, dll) on Web server Web server
Users connect to application through Users connect to application through Internet ExplorerInternet Explorer
Necessary files downloaded to client Necessary files downloaded to client
Each additional resource is automatically Each additional resource is automatically downloaded to clientdownloaded to client
Advantage:Advantage: richness of Win32 with richness of Win32 with manageability and maintainability of manageability and maintainability of a Web applicationa Web application
No-Touch DeploymentNo-Touch Deployment
Session AgendaSession Agenda
Instrumenting ApplicationsInstrumenting Applications
Windows Server 2003 Windows Server 2003 Health MonitoringHealth Monitoring
Deploying .NET-based applicationsDeploying .NET-based applications
Managing Updates and Managing Updates and Security PatchesSecurity Patches
Remote Systems and Remote Systems and Application AdministrationApplication Administration
Managing Updates and Managing Updates and Security PatchesSecurity Patches
Policies and proceduresPolicies and proceduresSchedule updates every two weeks during a Schedule updates every two weeks during a planned maintenance windowplanned maintenance window
Determine what updates are valid for each serverDetermine what updates are valid for each server
Pilot deployment for service packs and other Pilot deployment for service packs and other sizeable updatessizeable updates
Schedule one thing at a time—when performing Schedule one thing at a time—when performing updates, do not perform other tasksupdates, do not perform other tasks
Windows updateWindows updatehttp://v4.windowsupdate.microsoft.com/http://v4.windowsupdate.microsoft.com/en/default.aspen/default.asp
Software Update ServicesSoftware Update Services
Replacement for Windows Update CorporateReplacement for Windows Update CorporateRecommended for organizations with Recommended for organizations with 50-500 nodes50-500 nodesSoftware Update Services (SUS) Software Update Services (SUS) componentscomponents
SUS (Server-side)SUS (Server-side)Certificate securityCertificate securitySelective content approvalSelective content approvalContent synchronizationContent synchronizationServer-to-server synchronizationServer-to-server synchronizationUpdate download flexibilityUpdate download flexibilityMulti-language supportMulti-language supportWeb-based administrationWeb-based administrationUpdate status loggingUpdate status logging
Software Update ServicesSoftware Update ServicesSUS components (continued)SUS components (continued)
Windows Automatic UpdatesWindows Automatic UpdatesJust-in-time validationJust-in-time validationBackground downloadsBackground downloadsChained installationChained installationManageabilityManageability
SUS limitationsSUS limitationsDoes not support MicrosoftDoes not support Microsoft® ® Windows NTWindows NT®® 4.0 4.0 updatesupdatesWill not run on a Domain Controller or SBSWill not run on a Domain Controller or SBSWill not deploy Service Packs or application-Will not deploy Service Packs or application-specific updatesspecific updates
Deployment considerationsDeployment considerations
http://www.microsoft.com/windows2000/windowsupdate/sushttp://www.microsoft.com/windows2000/windowsupdate/sus
Systems Management Server 2.0Systems Management Server 2.0
Recommended for organizations with Recommended for organizations with more than 500 PCsmore than 500 PCs
Software Update Services Feature PackSoftware Update Services Feature PackTo be released this yearTo be released this year
Feature pack componentsFeature pack componentsDistributed Software Updates WizardDistributed Software Updates Wizard
Security Update Inventory ToolSecurity Update Inventory Tool
Microsoft Office Inventory Tool for UpdatesMicrosoft Office Inventory Tool for Updates
Elevated-Rights Deployment Wrapper ToolElevated-Rights Deployment Wrapper Tool
Web Reporting ToolWeb Reporting Tool
Update Management ToolsUpdate Management Tools
SUS vs. System Management Server SUS vs. System Management Server (SMS)(SMS)
Organization SizeOrganization SizeSUS: 50-500 PCsSUS: 50-500 PCsSMS: 500+ PCsSMS: 500+ PCs
SMS Provides Enhanced FunctionalitySMS Provides Enhanced FunctionalityMicrosoft Office Update supportMicrosoft Office Update supportGranular client targetingGranular client targetingSite-to-site distributionSite-to-site distributionAdvanced scheduling and reportingAdvanced scheduling and reporting
Microsoft Baseline Security AnalyzerMicrosoft Baseline Security Analyzerhttp://www.microsoft.com/securityhttp://www.microsoft.com/security
AgendaAgenda
Instrumenting ApplicationsInstrumenting Applications
Windows Server 2003 Windows Server 2003 Health MonitoringHealth Monitoring
Deploying .NET-based ApplicationsDeploying .NET-based Applications
Managing Updates and Managing Updates and Security PatchesSecurity Patches
Remote Systems and Remote Systems and Application AdministrationApplication Administration
Remote AdministrationRemote Administration
Remote Desktop for administrationRemote Desktop for administrationTerminal Services revampedTerminal Services revamped
Common clientsCommon clientsMicrosoftMicrosoft Windows XP Remote Desktop Windows XP Remote Desktop ConnectionConnection
Management Console Center (MMC) snap-insManagement Console Center (MMC) snap-ins
Remote AssistanceRemote Assistance
Web interface for Remote Web interface for Remote AdministrationAdministration
Windows Server 2003 Web server onlyWindows Server 2003 Web server only
Remote AdministrationRemote Administration
Windows Server 2003Windows Server 2003 Administration Tools Administration Tools (adminpak.msi)(adminpak.msi)
Windows Server 2003Windows Server 2003
www.microsoft.com/downloadswww.microsoft.com/downloads
Best practicesBest practicesMany tasks on single server—Remote Desktop Many tasks on single server—Remote Desktop for Administrationfor Administration
Similar tasks on many servers—MMC Snap-insSimilar tasks on many servers—MMC Snap-ins
Managing Windows Server 2003 operating Managing Windows Server 2003 operating systems—Windows .NET Administration Tools systems—Windows .NET Administration Tools PackPack
Remote AdministrationRemote Administration
Remote Administration securityRemote Administration securityLimit authorized usersLimit authorized users
Utilize Remote Desktop Users groupUtilize Remote Desktop Users group
Secure Internet-based connectivitySecure Internet-based connectivity
Use .NET Remote Desktop ConnectionUse .NET Remote Desktop Connection\\servername\Tsclient\Win32\Setup.exe\\servername\Tsclient\Win32\Setup.exe
http://www.microsoft.com/http://www.microsoft.com/windowsxp/pro/downloads/rdclientdl.aspwindowsxp/pro/downloads/rdclientdl.asp
Enforce strong passwordsEnforce strong passwords
Keep virus protection up-to-dateKeep virus protection up-to-date
Keep Service Packs and hotfixes currentKeep Service Packs and hotfixes current
Session SummarySession Summary
Use EIF for instrumenting Use EIF for instrumenting .NET applications.NET applications
Use no-touch deployment for Web Use no-touch deployment for Web server-like deployment of Windows server-like deployment of Windows Forms applicationsForms applications
Systems and application monitoring: Systems and application monitoring: start out simplestart out simple
Take advantage of SUSTake advantage of SUS
Important Web ResourcesImportant Web Resources
Microsoft patterns and practicesMicrosoft patterns and practiceshttp://msdn.microsoft.com/practiceshttp://msdn.microsoft.com/practices
MSDN .NET Architecture CenterMSDN .NET Architecture Centerhttp://msdn.microsoft.com/architecturehttp://msdn.microsoft.com/architecture
Visual Studio .NET 2003Visual Studio .NET 2003http://msdn.microsoft.com/vstudiohttp://msdn.microsoft.com/vstudio
Windows Server 2003Windows Server 2003http://www.microsoft.com/windowshttp://www.microsoft.com/windows
© 2003 Microsoft Corporation. All rights reserved.© 2003 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Microsoft, Visual Studio, the Visual Studio logo, Windows, the Windows logo, SQL Server, MSDN, Active Directory, FrontPage, and IntelliMirror are either registered Microsoft, Visual Studio, the Visual Studio logo, Windows, the Windows logo, SQL Server, MSDN, Active Directory, FrontPage, and IntelliMirror are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. The names of actual companies and products mentioned herein may be the trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. The names of actual companies and products mentioned herein may be the
trademarks of their respective owners.trademarks of their respective owners.