ARC310 Microsoft Visual Studio 2005 Team Edition for Software Architects: Developing Logical...
-
Upload
john-underwood -
Category
Documents
-
view
214 -
download
0
Transcript of ARC310 Microsoft Visual Studio 2005 Team Edition for Software Architects: Developing Logical...
ARC310ARC310Microsoft Visual Studio 2005 Team Microsoft Visual Studio 2005 Team Edition for Software Architects: Edition for Software Architects: Developing Logical Datacenters Developing Logical Datacenters
Alex ToroneAlex ToroneLead Program ManagerLead Program ManagerEnterprise ToolsEnterprise ToolsMicrosoft CorporationMicrosoft Corporation
Visual Studio Team SystemVisual Studio Team System
Change Management
Work Item Tracking
Reporting
Project Portal
Visual StudioTeam Foundation Server Integration Services
Project Management
Pro
cess
an
d A
rch
itect
ure
Pro
cess
an
d A
rch
itect
ure
G
uid
an
ceG
uid
an
ce
Dynamic Code Analyzer
Visual Studio Team Edition
Software Architects
Static Code Analyzer
Code Profiler
Unit Testing
Code Coverage
Team Explorer (includes Team Foundation Server CAL)
Visual Studio Professional Edition
Load Testing
Manual Testing
Test Case Management
Visual Studio Team Edition
Software DevelopersVisual Studio Team Edition
Software Testers
Vis
ual S
tud
io In
du
stry
V
isu
al S
tud
io In
du
stry
Part
ners
Part
ners
Team Build
Class Designer (in Visual Studio Standard Edition and higher)
Visio for Enterprise Architects (in MSDN Premium Subscription)
Distributed System Designers
Application Designer
System Designer
Logical Datacenter Designer
Deployment Designer
Logical Datacenter Designer
AgendaAgenda
Distributed System Challenges & DSIDistributed System Challenges & DSI
Visual Studio Team Edition for Visual Studio Team Edition for Software Architects (VSTESA) overviewSoftware Architects (VSTESA) overview
Logical Datacenter DesignLogical Datacenter Design
Codify Best Practices and GuidanceCodify Best Practices and Guidance
Looking ForwardLooking Forward
How do I build applications How do I build applications that will successfully deploy?that will successfully deploy?How do I build applications How do I build applications that will successfully deploy?that will successfully deploy?
How do I set and enforce How do I set and enforce operational policies?operational policies?How do I set and enforce How do I set and enforce operational policies?operational policies?
How do I communicate How do I communicate application requirements to application requirements to Operations?Operations?
How do I communicate How do I communicate application requirements to application requirements to Operations?Operations?
How do I keep better informed How do I keep better informed of application requirements?of application requirements?How do I keep better informed How do I keep better informed of application requirements?of application requirements?
How do I communicate a How do I communicate a critical business process to critical business process to IT?IT?
How do I communicate a How do I communicate a critical business process to critical business process to IT?IT?
Dynamic Systems InitiativeDynamic Systems Initiative
Dynamic Systems InitiativeDynamic Systems Initiative
Best Practices & GuidanceBest Practices & Guidance
Applications
ApplicationHosts
Network Topology& OS
Hardware
System Definition Model (SDM):System Definition Model (SDM):A A formalformal model of a complete system model of a complete system
All information pertinent to deployment and operationsAll information pertinent to deployment and operations
Machine-readable, capturing intent of Machine-readable, capturing intent of developers and IT Professionalsdevelopers and IT Professionals
System topologySystem topology
Developer constraintsDeveloper constraints
IT policyIT policy
Installation directivesInstallation directives
Health modelHealth model
Monitoring rulesMonitoring rules
Service Level AgreementsService Level Agreements
ReportsReports
????
Deployment ReportDeployment Report““Models”Models”ASP.NET Web ApplicationsASP.NET Web ApplicationsSystem.WebSystem.WebIIS metabaseIIS metabaseDatabaseDatabaseWindows Application, …Windows Application, …
““Validators”Validators”Rules that codify guidance Rules that codify guidance and best practicesand best practices
Architect “Binds” Systems Architect “Binds” Systems to Logical Datacenters. to Logical Datacenters. Produces Produces errorserrors and and deployment Reportdeployment Report
Distributed Distributed System DesignersSystem Designers
Transforming Knowledge into Actionable InformationTransforming Knowledge into Actionable InformationVSTESA OverviewVSTESA OverviewTransforming Knowledge into Actionable InformationTransforming Knowledge into Actionable InformationVSTESA OverviewVSTESA Overview
““ApplicationApplicationSDM”SDM”
Architects specify application Architects specify application configuration settings and dependenciesconfiguration settings and dependencies
Dynamic Load of SDM Dynamic Load of SDM models;models;
Turning data into informationTurning data into information
Application Application DesignerDesigner
System System DesignerDesigner
Deployment Deployment DesignerDesigner
Logical Logical datacenter datacenter DesignerDesigner
SDMSDM
Architects compose application systems Architects compose application systems and configure for a particular deploymentand configure for a particular deployment
““SystemSystemSDM”SDM”
err
or
err
or
erro
re
rror
ITPros specify target environment ITPros specify target environment configuration and policiesconfiguration and policies
““LogicalLogicalDatacenterDatacenter
SDM”SDM”
““It works on my machine…”It works on my machine…”
IT & software development have separate concerns IT & software development have separate concerns yet their roles are fundamentally co-dependantyet their roles are fundamentally co-dependant
Troubleshooting production problems and re-Troubleshooting production problems and re-architecting applications is expensivearchitecting applications is expensive
Configuration & application dependencies are the root Configuration & application dependencies are the root cause of most deployment and run-time issuescause of most deployment and run-time issues
Physical machines and network; good for IT not Physical machines and network; good for IT not developersdevelopers
To communicate the “right” information in a language To communicate the “right” information in a language both IT and development can understand to increase both IT and development can understand to increase
the predictability of deploymentthe predictability of deployment
Logical Datacenter: MotivationLogical Datacenter: Motivation
The “Right” Information…The “Right” Information…
IISIIS
SQL ServerSQL Server
Enterprise ServicesEnterprise Services
Application ServicesApplication Services System ServicesSystem Services
DCOMDCOM
DTCDTC
Client Network Client Network LibrariesLibraries
DTCDTC
Client Network Client Network LibrariesLibraries
DCOMDCOM
What is a Logical Datacenter?What is a Logical Datacenter?
An abstraction of a part of the physical datacenterAn abstraction of a part of the physical datacenterDescribes the types of application serversDescribes the types of application servers
not how manynot how many
Describes the application server configuration settings Describes the application server configuration settings not the physical characteristics of a machinenot the physical characteristics of a machine
Describes what protocols are availableDescribes what protocols are available not what IP routing scheme is usednot what IP routing scheme is used
Describes communication boundariesDescribes communication boundariesnot firewalls, vlans, switches & routersnot firewalls, vlans, switches & routers
Describes application authentication requirementsDescribes application authentication requirementsnot wire level encryptionnot wire level encryption
Describes constraints on application configurationDescribes constraints on application configurationw/o having to page the developer or read lots of manualsw/o having to page the developer or read lots of manuals
Communicates the “Right” InformationCommunicates the “Right” Information
What is a Setting?What is a Setting?Settings can be “configuration” elements on Settings can be “configuration” elements on an application or an application serveran application or an application server
System.webSystem.webAuthentication Mode=FormsAuthentication Mode=Forms
IIS Meta-baseIIS Meta-baseAccessFlags=ExecuteAccessFlags=Execute
System.DataSystem.DataAuthentication=mixedAuthentication=mixed
Settings can also be user definedSettings can also be user definedMySetting=FooMySetting=Foo
Settings can be grouped as “resources”Settings can be grouped as “resources”Defined and associated with any design elementDefined and associated with any design element
What is a Constraint?What is a Constraint?
A rule expressed and evaluated against A rule expressed and evaluated against model datamodel data
ArchitectsArchitects express application requirements express application requirements
IT ProsIT Pros express operational requirements express operational requirements
Constraint typesConstraint typesHosting and communicationHosting and communication
ImplicitImplicit
Pre-defined common configurationPre-defined common configuration
User-definedUser-defined
ValidatorsValidators evaluate constraints evaluate constraints
Example ConstraintsExample Constraints
Restrict protocol to only SOAP/https Restrict protocol to only SOAP/https over port 443 for web servicesover port 443 for web services
Dissallow webservices on any website Dissallow webservices on any website on any webserver in a zoneon any webserver in a zone
Allow only static content on a websiteAllow only static content on a website
Require asp.net applications to use Require asp.net applications to use SQL Session stateSQL Session state
If forms authentication is used, ensure If forms authentication is used, ensure IIS anonymous is enabledIIS anonymous is enabled
……
Mapping Models to Real ArtifactsMapping Models to Real ArtifactsLogical DatacenterLogical Datacenter
The Logical Server The Logical Server
represents the Globalrepresents the Global
Configuration for the IISConfiguration for the IIS
Web ServerWeb Server
The endpoint represents The endpoint represents
the WebSite for the for thethe WebSite for the for the
IIS Web ServerIIS Web Server
Resources in the S&CEResources in the S&CE
model the IIS meta-basemodel the IIS meta-base
resourcesresources
Settings map to thoseSettings map to those
found in the IIS MMC andfound in the IIS MMC and
more…they are more…they are
constrainable as wellconstrainable as well
Mapping Models to Real ArtifactsMapping Models to Real ArtifactsWeb ApplicationsWeb Applications
WebApplication settings WebApplication settings
(aka VDIR settings) are (aka VDIR settings) are
part of part of
““MyWebApplication” MyWebApplication”
configurationconfiguration
Web.Config settings are Web.Config settings are
ASP.NET settings that areASP.NET settings that are
also part of also part of
““MyWebApplication”MyWebApplication”
WebService EndpointsWebService Endpoints
map to project artifactsmap to project artifacts
Logical Datacenter DesignerLogical Datacenter Designer
Describing the Logical DatacenterDescribing the Logical Datacenter Specifying & Importing SettingsSpecifying & Importing Settings Specifying Application constraintsSpecifying Application constraints PrototypesPrototypes Application Validation and error Application Validation and error resolutionresolution Deployment ReportDeployment Report
Logical Datacenter SummaryLogical Datacenter Summary
Logical Servers represent application Logical Servers represent application server configurationserver configuration
Settings values can be populated in the Settings values can be populated in the editor or importededitor or imported
Constraints are evaluated over SDM Constraints are evaluated over SDM meta-data with built-in “Validators”meta-data with built-in “Validators”
Application validation can occur before Application validation can occur before design is committed to codedesign is committed to code
Model information can be used to script Model information can be used to script deploymentsdeployments
Codify Best Practices and GuidanceCodify Best Practices and Guidance
User defined User defined settingssettingsExamples (security, performance, health, etc)Examples (security, performance, health, etc)Associate them with *any* existing typeAssociate them with *any* existing typeConstrainableConstrainable
User defined User defined ApplicationsApplications and and Logical ServersLogical ServersFully document your systemFully document your systemAdd new hosting relationships to existing models Add new hosting relationships to existing models Extend communication capabilities Extend communication capabilities
User defined User defined “Validators”“Validators”Security best practicesSecurity best practicesService Level AgreementService Level AgreementApplication HealthApplication Health
Extend the experience by adding models through the SDM SDKExtend the experience by adding models through the SDM SDK
Codify Best Practices and GuidanceCodify Best Practices and Guidance
Security Best PracticesSecurity Best Practices can be found in can be found in “Patterns & Practices” documents but …“Patterns & Practices” documents but …
Massive amount of documentation to wade through Massive amount of documentation to wade through
Sometimes not very clear what is expected Sometimes not very clear what is expected
Not flexible enough for different architectures Not flexible enough for different architectures
Can be out of date Can be out of date
Codify best practices with Validators that…Codify best practices with Validators that…provide design time feedback for any best practice provide design time feedback for any best practice violation “executable contract” violation “executable contract”
can be versioned and standardized can be versioned and standardized
can be grouped in relevant resources can be grouped in relevant resources
Security Best PracticesSecurity Best Practices
Hardening TCP against SYN Hardening TCP against SYN flood attackflood attack
AVIcodeAVIcodeHealth Modeling and MonitoringHealth Modeling and Monitoring
AVIcode Intercept Studio AVIcode Intercept Studio integration integration withwith Visual Studio Team System Visual Studio Team System
AVIcode Intercept StudioAVIcode Intercept StudioSimplifies support of enterprise software Simplifies support of enterprise software
applicationsapplications
Provides root cause information for Provides root cause information for application failures and performance application failures and performance degradationdegradation
Non-intrusive monitoring of enterprise Non-intrusive monitoring of enterprise applicationsapplications
Instant feedback to network monitoring, Instant feedback to network monitoring, defect tracking and test management defect tracking and test management systemssystems
VSTE Software Architects VSTE Software Architects IntegrationIntegration
Allows developers to provide operations Allows developers to provide operations personnel with application health personnel with application health
monitoring capabilitiesmonitoring capabilities
ApplicationApplication and and Logical DatacenterLogical Datacenter SDM SDM models to customize & prioritize application models to customize & prioritize application health informationhealth information
Automatic creation of MOM 2005 Automatic creation of MOM 2005 management packs with custom management packs with custom ValidatorsValidators utilizing data captured customized modelsutilizing data captured customized models
VS Team FoundationVS Team FoundationIntegrationIntegration
Streamlines application support and Streamlines application support and provides a foundation for effective provides a foundation for effective incident management processesincident management processes
Automatic creation of new Automatic creation of new work itemswork items for for issues detected in production environmentissues detected in production environment
Correlation of root cause diagnostic Correlation of root cause diagnostic information with related application code and information with related application code and SDM modelsSDM models
Health Modeling & MonitoringHealth Modeling & Monitoring
Define healthmodel
Define applicationinternal and
externaloperational
instrumentation
Generate healthmonitoring
management pack
Monitor applicationhealth
Analyzeoperationalinformation
1. Design1. DesignArchitect defines in Architect defines in AD diagramAD diagram severity for operational severity for operational conditions related to performance, connectivity, security and conditions related to performance, connectivity, security and application failures.application failures.
1. Design1. DesignArchitect defines in Architect defines in AD diagramAD diagram severity for operational severity for operational conditions related to performance, connectivity, security and conditions related to performance, connectivity, security and application failures.application failures.
2. 2. DevelopmentDevelopmentDeveloper Developer defines in defines in AD AD diagramdiagram what what operational operational information has information has to be collectedto be collected
2. 2. DevelopmentDevelopmentDeveloper Developer defines in defines in AD AD diagramdiagram what what operational operational information has information has to be collectedto be collected
3. Release 3. Release managementmanagementInfrastructure engineer Infrastructure engineer defines in defines in LDD LDD diagramdiagram .NET monitoring .NET monitoring environment & generates environment & generates deployment reportdeployment report together with health together with health monitoring management monitoring management pack from DD diagrampack from DD diagram
3. Release 3. Release managementmanagementInfrastructure engineer Infrastructure engineer defines in defines in LDD LDD diagramdiagram .NET monitoring .NET monitoring environment & generates environment & generates deployment reportdeployment report together with health together with health monitoring management monitoring management pack from DD diagrampack from DD diagram
4. Service Monitoring4. Service MonitoringNOC operator monitors the health NOC operator monitors the health of applications within the MOM of applications within the MOM State viewState view
4. Service Monitoring4. Service MonitoringNOC operator monitors the health NOC operator monitors the health of applications within the MOM of applications within the MOM State viewState view
5. Problem 5. Problem managementmanagementSystem System administrators & administrators & application application support support personnel personnel analyze analyze operational operational configuration configuration and related and related issues using issues using Team Team Foundation Foundation Server & SDM Server & SDM modelsmodels
5. Problem 5. Problem managementmanagementSystem System administrators & administrators & application application support support personnel personnel analyze analyze operational operational configuration configuration and related and related issues using issues using Team Team Foundation Foundation Server & SDM Server & SDM modelsmodels
MOFMOF
MSFMSF
AVIcode Intercept Studio & AVIcode Intercept Studio & Visual Studio Team SystemVisual Studio Team System
Visual Studio Team Edition for Visual Studio Team Edition for Software ArchitectsSoftware Architects
Model structure of complex systemsModel structure of complex systemsVisualization and validationVisualization and validation
Knowledge transfer and collaboration Knowledge transfer and collaboration Between architects and developersBetween architects and developersBetween development and operationsBetween development and operations
Improve value of designImprove value of designDesign, code and configuration are synchronizedDesign, code and configuration are synchronized
Improve predictability of deploymentImprove predictability of deploymentDesign validation, unified deployment manifest Design validation, unified deployment manifest
Integrate best practices and guidanceIntegrate best practices and guidance
Looking Forward…Looking Forward…
VS Integration with Deployment & ManagementVS Integration with Deployment & Management
Test deploymentsTest deployments
More on Analysis “Design for… More on Analysis “Design for… Performance, Management, Security, Operations, Performance, Management, Security, Operations, SLASLA
Rich support for distributed system designRich support for distributed system designIndigoIndigo
Deep Extensibility SupportDeep Extensibility Support
ResourcesResources
Visual Studio Team Edition for Software ArchitectsVisual Studio Team Edition for Software Architects: http://lab.msdn.microsoft.com/vs2005/teamsystem/teamcenters/architect/default.aspx
System Definition Model (SDM) SDK System Definition Model (SDM) SDK : http://lab.msdn.microsoft.com/teamsystem/workshop/sdm/default.aspx
Dynamic Systems Initiative (DSI)Dynamic Systems Initiative (DSI): http://www.microsoft.com/windowsserversystem/dsi/default.mspx
Domain Specific Language tools: http://lab.msdn.microsoft.com/vs2005/teamsystem/workshop/dsltools/
Your FeedbackYour Feedbackis Important!is Important!
Please Fill Out a Survey forPlease Fill Out a Survey forThis Session on CommNetThis Session on CommNet
© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.