View
218
Download
0
Embed Size (px)
Citation preview
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
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
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
AgendaAgenda
Distributed system challenges & DSIDistributed system challenges & DSI Distributed System DesignersDistributed System Designers Team 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?
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?
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”
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 Designer
SystemDefinition
Model
Logical Datacenter Designer
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
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
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
Designing connected systemsDesigning connected systems Code first or contract firstCode first or contract first
Application DesignerApplication Designer
Service-OrientedArchitecture modelService-Oriented
Architecture model
Port Details editorPort 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 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
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 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
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
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.”
Describing the Logical DatacenterDescribing the Logical Datacenter Specifying & Importing SettingsSpecifying & Importing Settings Specifying constraintsSpecifying constraints ValidationValidation Deployment ReportDeployment Report
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
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
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
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
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
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
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
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
Result of Running WizardResult of Running Wizard
Example: Using the new DSLExample: Using the new DSL
A More Complex ExampleA More Complex Example
Class Designerand
two-way code synch
Class Designerand
two-way code synch
SummarySummary
Distributed system challenges & DSIDistributed system challenges & DSI Distributed System DesignersDistributed System Designers Team Architect as a platformTeam Architect as a platform
QuestionsQuestions
Ajay SudanAjay Sudan