Upload
datacenters
View
871
Download
3
Embed Size (px)
Citation preview
Visual Studio Team System: Visual Studio Team System: Plan and Design for DeploymentPlan and Design for Deployment
Marc AshbrookMarc AshbrookPrinc. Solutions DeveloperPrinc. Solutions DeveloperAvanadeAvanade
http://msdn.microsoft.com/teamsystemhttp://msdn.microsoft.com/teamsystem
Visual Studio 2005Visual Studio 2005“Personalized productivity”“Personalized productivity”
NovicesEnthusiasts
StudentsHobbyists
ConsultantsSolo Professionals
Enterprise DevsArchitects
Testers
Project Managers
Part-TimersVB6 Devs
Web Professionals
Visual Studio Team Visual Studio Team SystemSystem
Version Control
Work Item Tracking
Team Reporting
Project Portal
Visual StudioTeam Foundation Integration Services
Project Management
Proc
ess
and
Arch
itect
ure
Proc
ess
and
Arch
itect
ure
Guid
ance
Guid
ance
Dynamic Code Analyzer
Visual StudioTeam Architect
Static Code Analyzer
Code Profiler
Unit Testing
Code Coverage
Visio and UML Modeling
Team Foundation Client (includes CAL)
Visual Studio Professional Edition
Load/Web Testing
Manual Testing
Test Case Management
Application Designer
Logical Datacenter Designer
Deployment Designer
Visual StudioTeam Developer
Visual StudioTeam Test
Visu
al S
tudi
o In
dust
ry
Visu
al S
tudi
o In
dust
ry
Partn
ers
Partn
ers
Team Build
Class Designer
AgendaAgendaDistributed system challenges & DSIDistributed system challenges & DSIDistributed System DesignersDistributed System DesignersTeam Architect as a platformTeam Architect as a platform
Monitoring Server
Router/Firewall
100 Mbps Switch
Web Server 4
Web Server 3
Web Server 2
Web Server 1
Order Processing Server (with message queue,
payment component, and SMTP)
Admin Server (with Domain
Controller & DNS)
Database Server 1
Disk Array
Database Server 2
Active Directory Domain Controller
(with DNS)
Monitoring Server
Router/Firewall
100 Mbps Switch
Web Server 4
Web Server 3
Web Server 2
Web Server 1
Order Processing Server (with message queue,
payment component, and SMTP)
Admin Server (with Domain
Controller & DNS)
Database Server 1
Disk Array
Database Server 2
Active Directory Domain Controller
(with DNS)
How do I build How do I build applications that will applications that will successfully deploy?successfully deploy?
DevelopmenDevelopmentt IT OperationsIT Operations
How do I set and How do I set and enforce enforce
operational operational policies?policies?
How do I How do I communicate communicate
application application requirements to requirements to
Operations?Operations?
Distributed System ChallengesDistributed System Challenges
How do I keep design How do I keep design documentation up to documentation up to
date with code?date with code?
Model based development Model based development tools to capture & edit system tools to capture & edit system
knowledge and facilitate knowledge and facilitate collaboration across IT.collaboration across IT.
Leverage knowledge in models Leverage knowledge in models to fully automate deployment, to fully automate deployment,
updating, configuration and updating, configuration and monitoringmonitoring
Fully instrumented platform and Fully instrumented platform and technologies with rich support technologies with rich support for automation and hardware for automation and hardware
virtualizationvirtualization
Dynamic Systems InitiativeDynamic Systems Initiative
Applications Applications “Designed For “Designed For Operations”Operations”
““Operationally Operationally Aware Platform”Aware Platform”
““Model Based Model Based Management Management
Tools”Tools”
InstrumentationAutomationHardware Virtualization
Architect, Dev and Testing ToolsApplication Management Packs
Deploy/Update/Configure Monitoring and Reporting
Microsoft-led, industry effort to dramatically simplify and automate how businesses design, deploy, and operate distributed IT systems.
System Definition Model (SDM)Schematization of “services”
Dynamic Systems InitiativeDynamic Systems InitiativeSystem Definition Model (SDM)System Definition Model (SDM)
Applications
ApplicationHosting
Logical Machines & Network Topology
Hardware
SystemDefinition
Model
Visual Studio Team ArchitectVisual Studio Team ArchitectDistributed System DesignersDistributed System Designers
Application Designer
ApplicationHosting
Applications
Deployment Designer
System DesignerSystem
DefinitionModel
Logical Datacenter Designer
Problem SpaceProblem SpaceCustomers have communication problems Customers have communication problems betweenbetween
Architects and DevelopersArchitects and DevelopersDevelopers do not work within architectural guidelinesDevelopers do not work within architectural guidelines
Development and OperationsDevelopment and OperationsDeployment problems caught too lateDeployment problems caught too late
Customers recognize value of modeling toolsCustomers recognize value of modeling toolsVisualization of designsVisualization of designsHigher level abstractions simply design and Higher level abstractions simply design and developmentdevelopmentGeneration `of code and other artifacts can improve Generation `of code and other artifacts can improve productivityproductivity
Modeling tools have poor history of successModeling tools have poor history of successPositive: good for documentationPositive: good for documentationNegative: CASE baggage, round-tripping complexities, Negative: CASE baggage, round-tripping complexities, not used for software developmentnot used for software development
Visual Studio Team Architect Visual Studio Team Architect GoalsGoals
Reduce the complexity of distributed Reduce the complexity of distributed system design and developmentsystem design and development
Enable communication between Enable communication between architects and developersarchitects and developersKeep system design documents Keep system design documents synchronized with codesynchronized with code
Increase predictability of deploymentIncrease predictability of deploymentEnable communication of requirements Enable communication of requirements between development and operationsbetween development and operationsEnable validation of system design Enable validation of system design against model of target environmentagainst model of target environment
Application DesignerApplication Designer
Application DesignerApplication DesignerService-Oriented
Architecture model
Port Details editor
Why do we need a logical datacenter?Why do we need a logical datacenter?Because “we know” it works on your Because “we know” it works on your machine…machine…Because you can’t afford a data center for Because you can’t afford a data center for every developerevery developerBecause it’s expensive to troubleshoot Because it’s expensive to troubleshoot production problems and re-architect production problems and re-architect applicationsapplicationsBecause developers don’t understand why Because developers don’t understand why it will break in the deployment it will break in the deployment environmentenvironment
The “right” information…The “right” information…
The “right” information…The “right” information…
What is a logical datacenter?What is a logical datacenter?Describes the types of servers and what application types Describes the types of servers and what application types they can hostthey can host
not how manynot how manyDescribes what services are on the machineDescribes what services are on the machine
not physical characteristicsnot physical characteristicsDescribes what protocols are availableDescribes what protocols are available
not what IP routing table is usednot what IP routing table is usedDescribes communication boundariesDescribes communication boundaries
not firewalls, vlans, switches & routersnot firewalls, vlans, switches & routersDescribes application authentication requirementsDescribes application authentication requirements
not wire level encryptionnot wire level encryptionDescribes the configuration settings of the serverDescribes the configuration settings of the server
not the raid configurationnot the raid configurationDescribes constraints on application configurationDescribes constraints on application configuration
w/o having to page the developerw/o having to page the developer
Communicates the “right” informationCommunicates the “right” information
SettingsSettingsSettings are “configuration” elements Settings are “configuration” elements on an application or a run-time on an application or a run-time hosting environmenthosting environment
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
ConstraintsConstraintsDevelopers express their “requirements” Developers express their “requirements” of the datacenterof the datacenterOperators express their “requirements” of Operators express their “requirements” of the applicationsthe applicationsConstraints are authored against Constraints are authored against configuration settings and relationshipsconfiguration settings and relationships
Hosting constraintsHosting constraintsCan I bind or connect these “systems”?Can I bind or connect these “systems”?
Pre-defined constraint dialogsPre-defined constraint dialogsConstrain logically-grouped settings, with custom Constrain logically-grouped settings, with custom dialogs for desired value entry.dialogs for desired value entry.
User-defined constraintsUser-defined constraintsLet a user constrain against any values on any settingLet a user constrain against any values on any setting
Implicit constraintsImplicit constraintsDefined by system, not the user—“laws of physics.”Defined by system, not the user—“laws of physics.”
Logical Datacenter DesignerLogical Datacenter DesignerSpecifying & Importing SettingsSpecifying & Importing SettingsSpecifying constraintsSpecifying constraintsValidationValidationDeployment ReportDeployment Report
What is Class Designer?What is Class Designer?A developer productivity tool to help A developer productivity tool to help you understand, design, and refactor you understand, design, and refactor codecode
Use Class Designer to:Use Class Designer to:Understand existing codeUnderstand existing codeInitial class designInitial class designReview and refactor codeReview and refactor codeDiagrams for documentationDiagrams for documentation
GoalsGoalsMake diagrams relevant throughout Make diagrams relevant throughout the development cyclethe development cycle
Diagram is a view of your codeDiagram is a view of your codeEase of use and approachabilityEase of use and approachability
CLR concepts are first-class citizensCLR concepts are first-class citizensDisplay language-specific terminologyDisplay language-specific terminology
Use Class Diagrams to…Use Class Diagrams to…Understand existing codeUnderstand existing codeInitial class designInitial class designReview and refactor codeReview and refactor codeDiagrams for documentationDiagrams for documentation
Understand Existing CodeUnderstand Existing CodeVisualize inheritance and association Visualize inheritance and association relationshipsrelationshipsFilter informationFilter informationCustomize member viewCustomize member viewVisualize types in referenced Visualize types in referenced assembliesassemblies
Design ClassesDesign ClassesCreate new classes from ToolboxCreate new classes from ToolboxDefine class membersDefine class membersLanguage-specific terminologyLanguage-specific terminologyAutomatic synchronizationAutomatic synchronization
Edit the diagram or edit the codeEdit the diagram or edit the codeDiagram is a view of the codeDiagram is a view of the code
Review and Refactor CodeReview and Refactor CodeDiagram annotationsDiagram annotationsRename refactoringRename refactoringField encapsulationField encapsulationInterface stub generationInterface stub generationOverride membersOverride members
Diagrams for DocumentationDiagrams for DocumentationDiagram tweakingDiagram tweaking
Fine-grained member filteringFine-grained member filteringManual line routingManual line routing
Multiple diagramsMultiple diagramsDiagram file contains only visual Diagram file contains only visual informationinformationDiagram resiliencyDiagram resiliency
Simple AssociationsSimple Associations
Collection AssociationsCollection Associations
Class Designer StrengthsClass Designer Strengths.NET-specific constructs and concepts are .NET-specific constructs and concepts are treated as first-class citizenstreated as first-class citizensQuickly visualize structure of unfamiliar Quickly visualize structure of unfamiliar application in easy to understand class application in easy to understand class diagramdiagramVisualize multiple classes on single Visualize multiple classes on single diagram to help understand relationships diagram to help understand relationships between code structures within an between code structures within an applicationapplication"Trip-less” round-tripping "Trip-less” round-tripping Appealing UI and tight integration with Appealing UI and tight integration with Visual Studio IDEVisual Studio IDE
Class DiagramClass Diagram
SummarySummaryDistributed system challenges & DSIDistributed system challenges & DSIDistributed System DesignersDistributed System DesignersTeam Architect as a platformTeam Architect as a platform
© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.