34
Visual Studio Team System: Visual Studio Team System: Plan and Design for Deployment Plan and Design for Deployment Marc Ashbrook Marc Ashbrook Princ. Solutions Developer Princ. Solutions Developer Avanade Avanade http://msdn.microsoft.com/teamsystem http://msdn.microsoft.com/teamsystem

Session 1 - Plan and Design for Deployment.ppt

Embed Size (px)

Citation preview

Page 1: Session 1 - Plan and Design for Deployment.ppt

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

Page 2: Session 1 - Plan and Design for Deployment.ppt

Visual Studio 2005Visual Studio 2005“Personalized productivity”“Personalized productivity”

NovicesEnthusiasts

StudentsHobbyists

ConsultantsSolo Professionals

Enterprise DevsArchitects

Testers

Project Managers

Part-TimersVB6 Devs

Web Professionals

Page 3: Session 1 - Plan and Design for Deployment.ppt

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

Page 4: Session 1 - Plan and Design for Deployment.ppt

AgendaAgendaDistributed system challenges & DSIDistributed system challenges & DSIDistributed System DesignersDistributed System DesignersTeam Architect as a platformTeam Architect as a platform

Page 5: Session 1 - Plan and Design for Deployment.ppt

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)

Page 6: Session 1 - Plan and Design for Deployment.ppt

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)

Page 7: Session 1 - Plan and Design for Deployment.ppt

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?

Page 8: Session 1 - Plan and Design for Deployment.ppt

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”

Page 9: Session 1 - Plan and Design for Deployment.ppt

Dynamic Systems InitiativeDynamic Systems InitiativeSystem Definition Model (SDM)System Definition Model (SDM)

Applications

ApplicationHosting

Logical Machines & Network Topology

Hardware

SystemDefinition

Model

Page 10: Session 1 - Plan and Design for Deployment.ppt

Visual Studio Team ArchitectVisual Studio Team ArchitectDistributed System DesignersDistributed System Designers

Application Designer

ApplicationHosting

Applications

Deployment Designer

System DesignerSystem

DefinitionModel

Logical Datacenter Designer

Page 11: Session 1 - Plan and Design for Deployment.ppt

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

Page 12: Session 1 - Plan and Design for Deployment.ppt

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

Page 13: Session 1 - Plan and Design for Deployment.ppt

Application DesignerApplication Designer

Page 14: Session 1 - Plan and Design for Deployment.ppt

Application DesignerApplication DesignerService-Oriented

Architecture model

Port Details editor

Page 15: Session 1 - Plan and Design for Deployment.ppt

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

Page 16: Session 1 - Plan and Design for Deployment.ppt

The “right” information…The “right” information…

Page 17: Session 1 - Plan and Design for Deployment.ppt

The “right” information…The “right” information…

Page 18: Session 1 - Plan and Design for Deployment.ppt

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

Page 19: Session 1 - Plan and Design for Deployment.ppt

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

Page 20: Session 1 - Plan and Design for Deployment.ppt

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.”

Page 21: Session 1 - Plan and Design for Deployment.ppt

Logical Datacenter DesignerLogical Datacenter DesignerSpecifying & Importing SettingsSpecifying & Importing SettingsSpecifying constraintsSpecifying constraintsValidationValidationDeployment ReportDeployment Report

Page 22: Session 1 - Plan and Design for Deployment.ppt

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

Page 23: Session 1 - Plan and Design for Deployment.ppt

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

Page 24: Session 1 - Plan and Design for Deployment.ppt

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

Page 25: Session 1 - Plan and Design for Deployment.ppt

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

Page 26: Session 1 - Plan and Design for Deployment.ppt

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

Page 27: Session 1 - Plan and Design for Deployment.ppt

Review and Refactor CodeReview and Refactor CodeDiagram annotationsDiagram annotationsRename refactoringRename refactoringField encapsulationField encapsulationInterface stub generationInterface stub generationOverride membersOverride members

Page 28: Session 1 - Plan and Design for Deployment.ppt

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

Page 29: Session 1 - Plan and Design for Deployment.ppt

Simple AssociationsSimple Associations

Page 30: Session 1 - Plan and Design for Deployment.ppt

Collection AssociationsCollection Associations

Page 31: Session 1 - Plan and Design for Deployment.ppt

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

Page 32: Session 1 - Plan and Design for Deployment.ppt

Class DiagramClass Diagram

Page 33: Session 1 - Plan and Design for Deployment.ppt

SummarySummaryDistributed system challenges & DSIDistributed system challenges & DSIDistributed System DesignersDistributed System DesignersTeam Architect as a platformTeam Architect as a platform

Page 34: Session 1 - Plan and Design for Deployment.ppt

© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.