36

Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation
Page 2: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

Visual Studio 2005 Team System: Visual Studio 2005 Team System: Tools for Architecture: Designing for Tools for Architecture: Designing for DeploymentDeployment

Ajay SudanAjay SudanMicrosoft CorporationMicrosoft Corporation

http://msdn.microsoft.com/teamsystemhttp://msdn.microsoft.com/teamsystem

Page 3: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

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

Novices

Enthusiasts

Students

Hobbyists

Consultants

Solo Professionals

Enterprise Devs

Architects

Testers

Project Managers

Part-Timers

VB6 Devs

Web Professionals

Page 4: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

Visual Studio Team SystemVisual Studio Team System

Version Control

Work Item Tracking

Team Reporting

Project Portal

Visual Studio

Team Foundation 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 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 Studio

Team DeveloperVisual Studio

Team Test

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

Page 5: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

AgendaAgenda

Distributed system challenges & DSIDistributed system challenges & DSI Distributed System DesignersDistributed System Designers Team Architect as a platformTeam Architect as a platform

Page 6: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

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: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

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 8: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

How do I build How do I build applications that will applications that will successfully deploy?successfully deploy?

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 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?

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?

How do I keep design How do I keep design documentation up to documentation up to

date with code?date with code?

Page 9: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

Model based development tools Model based development tools to capture & edit system to capture & edit system knowledge and facilitate knowledge and facilitate collaboration across IT.collaboration across IT.

Leverage knowledge in models to Leverage knowledge in models to fully automate deployment, fully automate deployment, updating, configuration and updating, configuration and

monitoringmonitoring

Fully instrumented platform and Fully instrumented platform and technologies with rich support for technologies with rich support for

automation and hardware 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 10: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

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

Applications

ApplicationHosting

Logical Machines & Network Topology

Hardware

SystemDefinition

Model

Page 11: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

Visual Studio Team ArchitectVisual Studio Team ArchitectDistributed System DesignersDistributed System Designers

Application Designer

ApplicationHosting

Applications

Deployment Designer

System Designer

SystemDefinition

Model

Logical Datacenter Designer

Page 12: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

Problem SpaceProblem Space Customers have communication problems Customers have communication problems

betweenbetween Architects and DevelopersArchitects and Developers

Developers do not work within architectural guidelinesDevelopers do not work within architectural guidelines Development and OperationsDevelopment and Operations

Deployment problems caught too lateDeployment problems caught too late

Customers recognize value of modeling toolsCustomers recognize value of modeling tools Visualization of designsVisualization of designs Higher level abstractions simply design and developmentHigher level abstractions simply design and development Generation `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 success

Positive: good for documentationPositive: good for documentation Negative: CASE baggage, round-tripping complexities, Negative: CASE baggage, round-tripping complexities,

not used for software developmentnot used for software development

Page 13: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

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 developers Keep system design documents Keep system design documents

synchronized with codesynchronized with code

Increase predictability of deploymentIncrease predictability of deployment Enable communication of requirements Enable communication of requirements

between development and operationsbetween development and operations Enable validation of system design Enable validation of system design

against model of target environmentagainst model of target environment

Page 14: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

SDMSDM

System System DefinitionDefinition

ModelModelDevelopmentDevelopment OperationOperation

DeploymentDeployment

System System DefinitionDefinition

ModelModelDevelopmentDevelopmentDevelopmentDevelopment OperationOperationOperationOperation

DeploymentDeploymentDeploymentDeployment

ModelsModels Web ServicesWeb Services ASP.Net applicationsASP.Net applications IISIIS Existing SQL Server or OLE Existing SQL Server or OLE

DBDB Windows Application, …Windows Application, …

An XML schema for SDMAn XML schema for SDM Definitions, Systems, Definitions, Systems,

Resources, EndPointsResources, EndPoints Communication, Hosting, Communication, Hosting,

Containment, DelegationContainment, Delegation Constraint languageConstraint language Flow LanguageFlow Language SDM CompilerSDM Compiler

VSTA, DSI, and SDMVSTA, DSI, and SDMVSTA, DSI, and SDMVSTA, DSI, and SDMDistributed Distributed System DesignersSystem Designers

SDM CompilerSDM Compiler

Constraint Constraint validation validation errorserrors

““system”system” modelsmodels

Application and Server Application and Server configuration and specificationconfiguration and specification

““DeployableDeployable SDM”SDM”

Deployment Deployment ReportsReports

Dynamic Load of Dynamic Load of SDM modelsSDM models

Page 15: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

Designing connected systemsDesigning connected systems Code first or contract firstCode first or contract first

Page 16: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

Application DesignerApplication Designer

Service-OrientedArchitecture modelService-Oriented

Architecture model

Port Details editorPort Details editor

Page 17: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

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 developer

Because it’s expensive to troubleshoot Because it’s expensive to troubleshoot production problems and re-architect production problems and re-architect applicationsapplications

Because developers don’t understand why it Because developers don’t understand why it will break in the deployment environmentwill break in the deployment environment

Page 18: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

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

Page 19: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

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

Page 20: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

What is a logical datacenter?What is a logical datacenter?

Describes the types of servers and what application types they Describes the types of servers and what application types they can hostcan host not how manynot how many

Describes what services are on the machineDescribes what services are on the machine not physical characteristicsnot physical characteristics

Describes what protocols are availableDescribes what protocols are available not what IP routing table is usednot what IP routing table is used

Describes communication boundariesDescribes communication boundaries not firewalls, vlans, switches & routersnot firewalls, vlans, switches & routers

Describes application authentication requirementsDescribes application authentication requirements not wire level encryptionnot wire level encryption

Describes the configuration settings of the serverDescribes the configuration settings of the server not the raid configurationnot the raid configuration

Describes 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 21: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

SettingsSettings Settings are “configuration” elements Settings are “configuration” elements

on an application or a run-time hosting on an application or a run-time hosting environmentenvironment System.webSystem.web

Authentication Mode=FormsAuthentication Mode=Forms

IIS Meta-baseIIS Meta-base AccessFlags=ExecuteAccessFlags=Execute

System.DataSystem.Data Authentication=mixedAuthentication=mixed

Settings can also be user definedSettings can also be user defined MySetting=FooMySetting=Foo

Page 22: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

ConstraintsConstraints Developers express their “requirements” of Developers express their “requirements” of

the datacenterthe datacenter Operators express their “requirements” of Operators express their “requirements” of

the applicationsthe applications Constraints are authored against Constraints are authored against

configuration settings and relationshipsconfiguration settings and relationships Hosting constraintsHosting constraints

Can I bind or connect these “systems”?Can I bind or connect these “systems”? Pre-defined constraint dialogsPre-defined constraint dialogs

Constrain 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 constraints Let a user constrain against any values on any settingLet a user constrain against any values on any setting

Implicit constraintsImplicit constraints Defined by system, not the user—“laws of physics.”Defined by system, not the user—“laws of physics.”

Page 23: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

Describing the Logical DatacenterDescribing the Logical Datacenter Specifying & Importing SettingsSpecifying & Importing Settings Specifying constraintsSpecifying constraints ValidationValidation Deployment ReportDeployment Report

Page 24: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

Logical Infrastructure Logical Infrastructure DesignerDesigner

Services assignedto logical infrastructure

Services assignedto logical infrastructure

Architecture validatedagainst operational

settings and constraints

Architecture validatedagainst operational

settings and constraints

Page 25: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

Extensibility SDK – Beta 2Extensibility SDK – Beta 2

Support the ability to add new SDM Support the ability to add new SDM resources as additional properties on any resources as additional properties on any logical server or applicationlogical server or application Associate with any existing typesAssociate with any existing types Fully ConstrainableFully Constrainable Generic Logical Servers and ApplicationsGeneric Logical Servers and Applications PrototypesPrototypes

Support the ability to define new SDM typesSupport the ability to define new SDM types New System DefinitionsNew System Definitions New EndpointsNew Endpoints New relationshipsNew relationships New ConstraintsNew Constraints

Page 26: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

Extensibility SDK – Beta 2Extensibility SDK – Beta 2 GoalGoal

Model and visualize “other aspects” of a distributed systemModel and visualize “other aspects” of a distributed system What you do…What you do…

Add new Application Definitions to the Add new Application Definitions to the Application DesignerApplication Designer Add new Host Definitions to the Add new Host Definitions to the Logical Data Center DesignerLogical Data Center Designer Model Model new endpointnew endpoint types types Create new Create new communicationcommunication, and , and hostinghosting relationships relationships Add custom Add custom constraintsconstraints to new or existing Definitions to new or existing Definitions Extend existing definitions with Extend existing definitions with new meta-datanew meta-data

What you get…What you get… Integration with existing drag-drop-connect metaphorIntegration with existing drag-drop-connect metaphor Integration with exiting user experience for Settings and Integration with exiting user experience for Settings and

ConstraintsConstraints Integration with existing validation experienceIntegration with existing validation experience Integration with existing user experience for Deployment Integration with existing user experience for Deployment

ValidationValidation

Page 27: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

Extensibility – How Does it Work?Extensibility – How Does it Work?

2) Customer uses SDK:• Architect models

product in SDM definition

• Dev codes constraints and managers

• Install package is created

SDMSDM SDK Docs

Visual Studio

1) Customer wants to:• Create or extend SDM

models• Define new settings• Define new constraints• Use new types in Visual

Studio

3) Customer uses VS Extensibility to:

• Install new types• Create rich application

models using new types

• Associate resources with existing definitions

4) Service is visible and available for modeling:

• Integrated modeling experience

• Integrated setting editing experience

• Integrated Validation experience

• New types persisted as SDM

files

Page 28: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

Future releases…Future releases… Extensibility to allow partners to …Extensibility to allow partners to …

Integrate new SDM types with the design Integrate new SDM types with the design type environment to control code and type environment to control code and configconfig

Provide the benefit of design-time Provide the benefit of design-time validation for 3validation for 3rdrd party systems party systems

Deployment & managementDeployment & management Test & automated deploymentsTest & automated deployments Integration with System CenterIntegration with System Center

Support for Indigo service frameworkSupport for Indigo service framework Contract designerContract designer

Page 29: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

Team Architect as a PlatformTeam Architect as a Platform

Customers want their own custom graphical Customers want their own custom graphical designersdesigners To work with useful abstractions (models) To work with useful abstractions (models)

integrated with their architecture and software integrated with their architecture and software development processesdevelopment processes

Reduces overall IT costs and increases business Reduces overall IT costs and increases business agilityagility

It’s too expensive to build these nowIt’s too expensive to build these now They give up the graphical aspect and use XMLThey give up the graphical aspect and use XML They put up with limited customization in UML They put up with limited customization in UML

toolstools They kludge together a combination of the aboveThey kludge together a combination of the above

Page 30: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

Team Architect as a PlatformTeam Architect as a Platform

The V1 mission isThe V1 mission is Rapidly create custom graphical Rapidly create custom graphical

designers for new problem domainsdesigners for new problem domains Enable integration of custom graphical Enable integration of custom graphical

designers with enterprise architecture and designers with enterprise architecture and development processesdevelopment processes

Foster an ecosystem of partners, Foster an ecosystem of partners, customers and communitycustomers and community

Page 31: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

How To: Create a New How To: Create a New DesignerDesigner

WizardCreates and configures

VS “MDF Designer” solution from (a)

template(s)

Define DSL

Object model editorStructure

SerializationConstraints

Notation editorNotationExplorer

Properties gridValidation behaviour

Add codeBody of constraints

Diagram layoutOther enrichments

F5Generate

BuildLaunch VS Exp on debugging

solution

Debug

Build installer for deployment

Page 32: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

Result of Running WizardResult of Running Wizard

Page 33: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

Example: Using the new DSLExample: Using the new DSL

Page 34: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

A More Complex ExampleA More Complex Example

Class Designerand

two-way code synch

Class Designerand

two-way code synch

Page 35: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

SummarySummary

Distributed system challenges & DSIDistributed system challenges & DSI Distributed System DesignersDistributed System Designers Team Architect as a platformTeam Architect as a platform

Page 36: Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation

QuestionsQuestions

Ajay SudanAjay Sudan