ARC310 Microsoft Visual Studio 2005 Team Edition for Software Architects: Developing Logical Datacenters Alex Torone Lead Program Manager Enterprise Tools Microsoft Corporation
Visual Studio Team System Change ManagementWork Item TrackingReportingProject Portal Visual Studio Team Foundation Server Integration ServicesProject Management Process and Architecture Guidance Dynamic Code Analyzer Visual Studio Team Edition Software Architects Static Code AnalyzerCode ProfilerUnit TestingCode CoverageTeam Explorer (includes Team Foundation Server CAL)Visual Studio Professional EditionLoad TestingManual TestingTest Case Management Visual Studio Team Edition Software Developers Visual Studio Team Edition Software Testers Visual Studio Industry Partners Team BuildClass Designer (in Visual Studio Standard Edition and higher) Visio for Enterprise Architects (in MSDN Premium Subscription) Distributed System Designers Application DesignerSystem DesignerLogical Datacenter DesignerDeployment DesignerLogical Datacenter Designer
Agenda Distributed System Challenges & DSI Visual Studio Team Edition for Software Architects (VSTESA) overview Logical Datacenter Design Codify Best Practices and Guidance Looking Forward
How do I build applications that will successfully deploy? How do I set and enforce operational policies? How do I communicate application requirements to Operations? How do I keep better informed of application requirements? How do I communicate a critical business process to IT?
Dynamic Systems Initiative
Best Practices & Guidance
Applications Application Hosts Network Topology & OS Hardware System Definition Model (SDM): A formal model of a complete system All information pertinent to deployment and operations Machine-readable, capturing intent of developers and IT Professionals System topology Developer constraints IT policy Installation directives Health model Monitoring rules Service Level Agreements Reports ? ?
Deployment Report “Models” ASP.NET Web Applications System.Web IIS metabase Database Windows Application, … “Validators” Rules that codify guidance and best practices Architect “Binds” Systems to Logical Datacenters. Produces errors and deployment Report Distributed System Designers Transforming Knowledge into Actionable Information VSTESA Overview “ Application SDM” Architects specify application configuration settings and dependencies Dynamic Load of SDM models; Turning data into information Application Designer System Designer Deployment Designer Logical datacenter Designer SDM Architects compose application systems and configure for a particular deployment “SystemSDM” error error ITPros specify target environment configuration and policies “LogicalDatacenterSDM”
“It works on my machine…” IT & software development have separate concerns yet their roles are fundamentally co-dependant Troubleshooting production problems and re- architecting applications is expensive Configuration & application dependencies are the root cause of most deployment and run-time issues Physical machines and network; good for IT not developers To communicate the “right” information in a language both IT and development can understand to increase the predictability of deployment Logical Datacenter: Motivation
The “Right” Information… IIS SQL Server Enterprise Services Application Services System Services DCOMDTC Client Network Libraries DTC DCOM
What is a Logical Datacenter? An abstraction of a part of the physical datacenter Describes the types of application servers not how many Describes the application server configuration settings not the physical characteristics of a machine Describes what protocols are available not what IP routing scheme is used not what IP routing scheme is used Describes communication boundaries not firewalls, vlans, switches & routers Describes application authentication requirements not wire level encryption Describes constraints on application configuration w/o having to page the developer or read lots of manuals Communicates the “Right” Information
What is a Setting? Settings can be “configuration” elements on an application or an application server System.web Authentication Mode=Forms IIS Meta-base AccessFlags=ExecuteSystem.DataAuthentication=mixed Settings can also be user defined MySetting=Foo Settings can be grouped as “resources” Defined and associated with any design element
What is a Constraint? A rule expressed and evaluated against model data Architects express application requirements IT Pros express operational requirements Constraint types Hosting and communication Implicit Pre-defined common configuration User-defined Validators evaluate constraints
Example Constraints Restrict protocol to only SOAP/https over port 443 for web services Dissallow webservices on any website on any webserver in a zone Allow only static content on a website Require asp.net applications to use SQL Session state If forms authentication is used, ensure IIS anonymous is enabled …
Mapping Models to Real Artifacts Logical Datacenter The Logical Server represents the Global Configuration for the IIS Configuration for the IIS Web Server Web Server The endpoint represents the WebSite for the for the IIS Web Server IIS Web Server Resources in the S&CE model the IIS meta-base model the IIS meta-base resources resources Settings map to those found in the IIS MMC and found in the IIS MMC and more…they are more…they are constrainable as well
Mapping Models to Real Artifacts Web Applications WebApplication settings (aka VDIR settings) are part of “MyWebApplication”configuration Web.Config settings are ASP.NET settings that are also part of also part of“MyWebApplication” WebService Endpoints map to project artifacts map to project artifacts
Logical Datacenter Designer Describing the Logical Datacenter Describing the Logical Datacenter Specifying & Importing Settings Specifying & Importing Settings Specifying Application constraints Specifying Application constraints Prototypes Prototypes Application Validation and error resolution Application Validation and error resolution Deployment Report Deployment Report
Logical Datacenter Summary Logical Servers represent application server configuration Settings values can be populated in the editor or imported Constraints are evaluated over SDM meta-data with built-in “Validators” Application validation can occur before design is committed to code Model information can be used to script deployments
Codify Best Practices and Guidance User defined settings Examples (security, performance, health, etc) Associate them with *any* existing type Constrainable User defined Applications and Logical Servers Fully document your system Add new hosting relationships to existing models Extend communication capabilities User defined “Validators” Security best practices Service Level Agreement Application Health Extend the experience by adding models through the SDM SDK
Codify Best Practices and Guidance Security Best Practices can be found in “Patterns & Practices” documents but … Massive amount of documentation to wade through Sometimes not very clear what is expected Not flexible enough for different architectures Can be out of date Codify best practices with Validators that… provide design time feedback for any best practice violation “executable contract” can be versioned and standardized can be grouped in relevant resources
Security Best Practices Hardening TCP against SYN flood attack Hardening TCP against SYN flood attack
AVIcode Health Modeling and Monitoring AVIcode Intercept Studio integration with Visual Studio Team System AVIcode Intercept Studio integration with Visual Studio Team System
AVIcode Intercept Studio Simplifies support of enterprise software applications Provides root cause information for application failures and performance degradation Non-intrusive monitoring of enterprise applications Instant feedback to network monitoring, defect tracking and test management systems
VSTE Software Architects Integration Allows developers to provide operations personnel with application health monitoring capabilities Application and Logical Datacenter SDM models to customize & prioritize application health information Automatic creation of MOM 2005 management packs with custom Validators utilizing data captured customized models
VS Team Foundation Integration Streamlines application support and provides a foundation for effective incident management processes Automatic creation of new work items for issues detected in production environment Correlation of root cause diagnostic information with related application code and SDM models
Health Modeling & Monitoring 1. Design Architect defines in AD diagram severity for operational conditions related to performance, connectivity, security and application failures. 2. Development Developer defines in AD diagram what operational information has to be collected 3. Release management Infrastructure engineer defines in LDD diagram.NET monitoring environment & generates deployment report together with health monitoring management pack from DD diagram 4. Service Monitoring NOC operator monitors the health of applications within the MOM State view 5. Problem management System administrators & application support personnel analyze operational configuration and related issues using Team Foundation Server & SDM models MOF MSF
AVIcode Intercept Studio & Visual Studio Team System
Visual Studio Team Edition for Software Architects Model structure of complex systems Visualization and validation Knowledge transfer and collaboration Between architects and developers Between development and operations Improve value of design Design, code and configuration are synchronized Improve predictability of deployment Design validation, unified deployment manifest Integrate best practices and guidance
Looking Forward… VS Integration with Deployment & Management Test deployments More on Analysis “Design for… Performance, Management, Security, Operations, SLA Rich support for distributed system design Indigo Deep Extensibility Support
Resources Visual Studio Team Edition for Software Architects architect/default.aspx Visual Studio Team Edition for Software Architects: architect/default.aspx architect/default.aspx architect/default.aspx System Definition Model (SDM) SDK default.aspx System Definition Model (SDM) SDK : default.aspx default.aspx default.aspx Dynamic Systems Initiative (DSI) Dynamic Systems Initiative (DSI): default.mspx default.mspx dsltools/ dsltools/ Domain Specific Language tools : dsltools/ dsltools/
Your Feedback is Important! Please Fill Out a Survey for This Session on CommNet
© 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.