DEVC19 Building Logical Data Center for use in Visual Studio

advertisement
Visual Studio 2005 Team System:
Tools for Architecture: Designing for
Deployment
Ajay Sudan
Microsoft Corporation
http://msdn.microsoft.com/teamsystem
Visual Studio 2005
“Personalized productivity”
Project Managers
Hobbyists
Students
Enthusiasts
Novices
Web Professionals
VB6 Devs
Part-Timers
Solo Professionals
Testers
Consultants
Architects
Enterprise Devs
Visual Studio
Visual Studio
Visual Studio
Team Architect
Team Developer
Team Test
Application Designer
Dynamic Code Analyzer
Load/Web Testing
Logical Datacenter Designer
Static Code Analyzer
Manual Testing
Deployment Designer
Code Profiler
Test Case Management
Unit Testing
Code Coverage
Class Designer
Visio and UML Modeling
Team Foundation Client (includes CAL)
Visual Studio Professional Edition
Visual Studio
Team Foundation
Version Control
Team Reporting
Integration Services
Team Build
Work Item Tracking
Project Portal
Project Management
Visual Studio Industry Partners
Process and Architecture Guidance
Visual Studio Team System
Agenda



Distributed system challenges & DSI
Distributed System Designers
Team Architect as a platform
Monitoring
Server
Order Processing Server
(with message queue, payment
component, and SMTP)
Active Directory
Domain Controller
(with DNS)
Admin Server
(with Domain
Controller & DNS)
Router/
Firewall
Web Server 1
Web Server 2
100 Mbps
Switch
Web Server 3
Web Server 4
Database
Server 1
Disk
Array
Database
Server 2
Monitoring
Server
Order Processing Server
(with message queue, payment
component, and SMTP)
Active Directory
Domain Controller
(with DNS)
Admin Server
(with Domain
Controller & DNS)
Router/
Firewall
Web Server 1
Web Server 2
100 Mbps
Switch
Web Server 3
Web Server 4
Database
Server 1
Disk
Array
Database
Server 2
Distributed System Challenges
How do I build
applications that will
successfully deploy?
Development
How do I communicate
application requirements
to Operations?
How do I set and
enforce operational
policies?
IT Operations
How do I keep design
documentation up to date
with code?
Dynamic Systems Initiative
Microsoft-led, industry effort to dramatically simplify and automate how
businesses design, deploy, and operate distributed IT systems.
Applications “Designed For
Operations”
Model based development tools
to capture & edit system
knowledge and facilitate
collaboration across IT.
Architect, Dev and Testing Tools
Application Management Packs
“Operationally Aware Platform”
“Model Based Management
Tools”
Fully instrumented platform and
technologies with rich support for
automation and hardware
virtualization
Leverage knowledge in models to
fully automate deployment,
updating, configuration and
monitoring
Instrumentation
Automation
Hardware Virtualization
 Deploy/Update/Configure
 Monitoring and Reporting
System Definition Model (SDM)
Schematization of “services”
Dynamic Systems Initiative
System Definition Model (SDM)
Applications
System
Definition
Model
Application
Hosting
Logical Machines &
Network Topology
Hardware
Visual Studio Team Architect
Distributed System Designers
Application Designer
System
Definition
System
Designer
Model
Applications
Deployment Designer
Logical Datacenter
Designer
Application
Hosting
Problem Space

Customers have communication problems
between

Architects and Developers


Development and Operations


Deployment problems caught too late
Customers recognize value of modeling tools




Developers do not work within architectural guidelines
Visualization of designs
Higher level abstractions simply design and development
Generation `of code and other artifacts can improve
productivity
Modeling tools have poor history of success


Positive: good for documentation
Negative: CASE baggage, round-tripping complexities,
not used for software development
Visual Studio Team Architect
Goals

Reduce the complexity of distributed
system design and development



Enable communication between
architects and developers
Keep system design documents
synchronized with code
Increase predictability of deployment


Enable communication of requirements
between development and operations
Enable validation of system design
against model of target environment
VSTA, DSI, and SDM
Distributed
System Designers
System
Development
Definition
Model
Application and Server
configuration and specification
Operation
“system”
models
Deployment

Models
 Web Services
Constraint
 ASP.Net applications
validation
 IIS
errors
 ExistingSDM
SQL Server
or OLE
Compiler
DB
 Windows Application, …
Dynamic Load of
SDM models
SDM




An XML schema for SDM
 Definitions, Systems,
Resources, EndPoints
Deployment

Communication, Hosting,
Reports
Containment, Delegation
“Deployable
Constraint language
SDM”
Flow Language
SDM Compiler


Designing connected systems
Code first or contract first
Application Designer
Service-Oriented
Architecture model
Port Details editor
Why do we need a logical datacenter?




Because “we know” it works on your
machine…
Because you can’t afford a data center for
every developer
Because it’s expensive to troubleshoot
production problems and re-architect
applications
Because developers don’t understand why it
will break in the deployment environment
The “right” information…
The “right” information…
What is a logical datacenter?

Describes the types of servers and what application types they
can host


Describes what services are on the machine


not wire level encryption
Describes the configuration settings of the server


not firewalls, vlans, switches & routers
Describes application authentication requirements


not what IP routing table is used
Describes communication boundaries


not physical characteristics
Describes what protocols are available


not how many
not the raid configuration
Describes constraints on application configuration

w/o having to page the developer
Communicates the “right” information
Settings

Settings are “configuration” elements
on an application or a run-time hosting
environment

System.web


IIS Meta-base


AccessFlags=Execute
System.Data


Authentication Mode=Forms
Authentication=mixed
Settings can also be user defined

MySetting=Foo
Constraints



Developers express their “requirements” of
the datacenter
Operators express their “requirements” of
the applications
Constraints are authored against
configuration settings and relationships

Hosting constraints


Pre-defined constraint dialogs


Constrain logically-grouped settings, with custom
dialogs for desired value entry.
User-defined constraints


Can I bind or connect these “systems”?
Let a user constrain against any values on any setting
Implicit constraints

Defined by system, not the user—“laws of physics.”





Describing the Logical Datacenter
Specifying & Importing Settings
Specifying constraints
Validation
Deployment Report
Logical Infrastructure
Designer
Services assigned
to logical infrastructure
Architecture validated
against operational
settings and constraints
Extensibility SDK – Beta 2

Support the ability to add new SDM
resources as additional properties on any
logical server or application





Associate with any existing types
Fully Constrainable
Generic Logical Servers and Applications
Prototypes
Support the ability to define new SDM types




New System Definitions
New Endpoints
New relationships
New Constraints
Extensibility SDK – Beta 2

Goal


What you do…







Model and visualize “other aspects” of a distributed system
Add new Application Definitions to the Application Designer
Add new Host Definitions to the Logical Data Center Designer
Model new endpoint types
Create new communication, and hosting relationships
Add custom constraints to new or existing Definitions
Extend existing definitions with new meta-data
What you get…




Integration with existing drag-drop-connect metaphor
Integration with exiting user experience for Settings and
Constraints
Integration with existing validation experience
Integration with existing user experience for Deployment
Validation
Extensibility – How Does it Work?
SDM
SDM
SDK
Docs
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
Visual Studio
2) Customer uses SDK:
•
Architect models product
in SDM definition
•
Dev codes constraints
and managers
•
Install package is created
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…

Extensibility to allow partners to …



Deployment & management




Integrate new SDM types with the design
type environment to control code and
config
Provide the benefit of design-time
validation for 3rd party systems
Test & automated deployments
Integration with System Center
Support for Indigo service framework
Contract designer
Team Architect as a Platform

Customers want their own custom graphical
designers



To work with useful abstractions (models)
integrated with their architecture and software
development processes
Reduces overall IT costs and increases business
agility
It’s too expensive to build these now



They give up the graphical aspect and use XML
They put up with limited customization in UML
tools
They kludge together a combination of the above
Team Architect as a Platform

The V1 mission is



Rapidly create custom graphical
designers for new problem domains
Enable integration of custom graphical
designers with enterprise architecture
and development processes
Foster an ecosystem of partners,
customers and community
How To: Create a New
Designer
Wizard
Creates and configures
VS “MDF Designer”
solution from (a)
template(s)
Define DSL
Object model editor
Structure
Serialization
Constraints
Add code
Body of constraints
Diagram layout
Other enrichments
Notation editor
Notation
Explorer
Properties grid
Validation behaviour
Build
installer for
deployment
F5
Generate
Build
Launch VS Exp on debugging
solution
Debug
Result of Running Wizard
Example: Using the new DSL
A More Complex Example
Class Designer
and
two-way code synch
Summary



Distributed system challenges & DSI
Distributed System Designers
Team Architect as a platform
Questions
Ajay Sudan
Download