SlideShare a Scribd company logo
1 of 48
APPLICATION
ARCHITECTURE
JUMPSTART
Clint Edmonson
Polaris Solutions
clinted@polarissolutions.com
Platinum Sponsors
Silver Sponsors
Gold Sponsors
Who the heck needs architecture?
ARCHITECTURE
“A unifying or coherent form or structure.”
merriam-webster.com
DESIGN
“Design, at its most fundamental, is about finding solutions.”
Garr Reynolds
THE GOAL OF ARCHITECTURE
Eliminate the things I don’t want to think
about.
Keep complexity at bay!
How do we tackle this complexity?
Abstraction Layering
Partitioning
CONQUERING COMPLEXITY
• Abstraction
• Layering
• Partitioning
• Occam’s Razor
ITERATIVE ARCHITECTURE & DESIGN
Page 41
1. Identify architecture objectives
A. Determine goals based on size, scope, time
• Complete application
• Prototype
• Solving a technical risk
• Exploring potential options
• Building shared, reference models
B. Identify target audience
• Other architects
• Developers & Maintainers
• Testers
• Operations
2. Identify key scenarios
A. Define the solution’s boundaries
B. Identify who will impacted by the solution
C. Discover what valuable activities will be automated
D. Uncover constraints that will limit the solution
E. Identify activities that are most important to the
success of your application
F. Highlight those that are architecturally significant
CONTEXT DIAGRAM
Tailspin Toys
Tailspin Toys is a small brick and mortar model
airplane shop that wants an online store front to
supplement in-store sales.
CONTEXT DIAGRAM
Tailspin Toys
Non-functional Requirements & Constraints
- Web based solution to achieve customer reach
- Support mobile browsers
- Hosted by a third party web hosting provider
- Must integrate with existing inventory database and administrative tools
Tailspin Toys is a small brick and mortar model
airplane shop that wants an online store front to
supplement in-store sales.
CONTEXT DIAGRAM
Tailspin Toys
Non-functional Requirements & Constraints
- Web based solution to achieve customer reach
- Support mobile browsers
- Hosted by a third party web hosting provider
- Must integrate with existing inventory database and administrative tools
Customer
Store Manager
Time
Tailspin Toys is a small brick and mortar model
airplane shop that wants an online store front to
supplement in-store sales.
CONTEXT DIAGRAM
Payment ProcessorTailspin Toys
Non-functional Requirements & Constraints
- Web based solution to achieve customer reach
- Support mobile browsers
- Hosted by a third party web hosting provider
- Must integrate with existing inventory database and administrative tools
Customer
Store Manager
Time
Shop for Toys
- Browse by category
- Browse by price range
- Search by name
- View list of best sellers
- View toy details
- Read reviews of toys
- Add toys to shopping cart
- Add toys to wishlist
- View shopping cart contents
- View other customers' wishlists
- Checkout
Check an order status
Cancel an order
Get a refund on an order
View order history
Receive shipping notifications
Receive special offers and coupons
- "registered" customers only
Rate toys
Write reviews of toys
Process open orders
- View list of open orders
- Fulfill an order (ship & close it)
- Cancel and refund an order
View sales reports
- conversions, abandonments, etc.
Send special offers to "registered"
customers
Manage customer accounts
- Reset passwords
- Delete accounts
Manage inventory
- Manage product categories
- Manage inventory levels
- Place products on back order
Generate monthly sales reports
Send coupons to "infrequent" customers
Tailspin Toys is a small brick and mortar model
airplane shop that wants an online store front to
supplement in-store sales.
3. Create an application overview
A. Determine your application type
• Web
• Mobile
• Rich client
• RIA
• Web service
• Some combination of the above
B. Identify your deployment constraints
C. Determine your relevant technologies
4. Identify key issues
A. Cross-cutting concerns
• Configuration
• Security
• Communication
• Compression
• Encryption
• Logging & instrumentation
• Validation
• Error management
B. Quality attributes
• Run-time performance
• Scalability
• Disaster recovery
5. Define candidate solution(s)
A. Choose an architecturally significant scenario
B. Design a candidate baseline architecture
C. Build out the scenario to prove it out
FUNDAMENTAL DESIGN TOOLS
• Layers
• Assemblies
• Namespaces
LAY(ER)ING IT ALL OUT
• Describe the application at a high level
• Identify major functional units of the design and their
interdependencies
• Each layer represents a logical group of projects,
namespaces, and/or other artifacts
COMMON APPLICATION
ARCHITECTURE
Page 10
CASE STUDY
A naïve approach…
BASELINE LAYERED ARCHITECTURE
Tailspin Backoffice
Admin
Tailspin Backoffice
Admin
Email Server
Tailspin.Core
Payment
Processor
Payment
Processor
Tailspin.Database
Tailspin.Domain
Browser
Tailspin.Web Tailspin.WebJob
Physical deployment
• Visualize the physical structure of a system
• Executables
• Libraries
• Services
• Focus on components of the system, their relationships, interfaces,
and ports
• Highlight the service behavior that they provide and consume
through interfaces
COMPONENT DESIGN
Database Server
Website
Tailspin.Web
Tailspin.Domain Tailspin.Core
Tailspin.WebJob
Tailspin.Database
SendGrid Stripe
PHYSICAL ARCHITECTURE
Azure Data Center
:Website
Azure Load
Balancer
User
:Website
:SQL Azure
Database
:Payment
Processor
:Search Service
...
:Webjob
:SendGrid
https
https
TDS
https
https
TDS
https
https
CASE STUDY
Something more reasonable…
Grouping layers into assemblies
• Prefer fewer, larger assemblies
• Faster load time
• Reduced working set
• Better NGEN optimization
• If several assemblies are always loaded together, consider
combining them into one
• Partition into separate assemblies based on
• Deployment
• Versioning
• Data access
• Security and access control
• Contributions from disparate sources
• Avoid the one dll per namespace anti-pattern!
Rinse, repeat, refactor…
Page 41
ANALYSIS & DESIGN ARTIFACTS
• Sketch
• Blueprint
• Executable
• They are artifacts, not documentation!
• Don’t be afraid to throw them away and draw new ones!
More case studies…
CHARACTERISTICS of a GOOD
ARCHITECTURE
• Form Follows Function
Evolutionary not pre-ordained or predicted
• Functional alignment & partitioning
• One right place
• Keeps complexity in check
• Facilitates/accelerates feature delivery
STUDY OTHERS’ ARCHITECTURES
Open Source Projects
HighScalability.com
Is it easy to understand?
Is it easy to find things?
How would you have done it differently?
LAW OF PARSIMONY
“Reduce everything to its essence so that form
harmonizes with function.”
Chris Kobryn
REFERENCES
• Microsoft Application Architecture Guide 2nd Edition
by Microsoft Patterns & Practices Group
• Microsoft .NET: Architecting Application for the Enterprise
by Dino Esposito & Andrea Saltarello
• Domain Driven Design
by Eric Evans
• Framework Design Guidelines
by Krzysztof Cwalina & Brad Abrams
Q & A
Clint Edmonson
Polaris Solutions
clinted@polarissolutions.com
Stop by our booth and chat!

More Related Content

Viewers also liked

Karol Kalisz, Vitaliy Rudnytskiy: Mobile in IoT Context ? Mobile Applications...
Karol Kalisz, Vitaliy Rudnytskiy: Mobile in IoT Context ? Mobile Applications...Karol Kalisz, Vitaliy Rudnytskiy: Mobile in IoT Context ? Mobile Applications...
Karol Kalisz, Vitaliy Rudnytskiy: Mobile in IoT Context ? Mobile Applications...Mobile Trends
 
SN-Security Architecture for Mobile Computing and IoT
SN-Security Architecture for Mobile Computing and IoTSN-Security Architecture for Mobile Computing and IoT
SN-Security Architecture for Mobile Computing and IoTSukumar Nayak
 
(ENT305) Develop an Enterprise-wide Cloud Adoption Strategy | AWS re:Invent 2014
(ENT305) Develop an Enterprise-wide Cloud Adoption Strategy | AWS re:Invent 2014(ENT305) Develop an Enterprise-wide Cloud Adoption Strategy | AWS re:Invent 2014
(ENT305) Develop an Enterprise-wide Cloud Adoption Strategy | AWS re:Invent 2014Amazon Web Services
 
Security architecture frameworks
Security architecture frameworksSecurity architecture frameworks
Security architecture frameworksJohn Arnold
 
Enterprise Security Architecture for Cyber Security
Enterprise Security Architecture for Cyber SecurityEnterprise Security Architecture for Cyber Security
Enterprise Security Architecture for Cyber SecurityThe Open Group SA
 
Architecture and Development of NFC Applications
Architecture and Development of NFC ApplicationsArchitecture and Development of NFC Applications
Architecture and Development of NFC ApplicationsThomas de Lazzari
 

Viewers also liked (8)

Karol Kalisz, Vitaliy Rudnytskiy: Mobile in IoT Context ? Mobile Applications...
Karol Kalisz, Vitaliy Rudnytskiy: Mobile in IoT Context ? Mobile Applications...Karol Kalisz, Vitaliy Rudnytskiy: Mobile in IoT Context ? Mobile Applications...
Karol Kalisz, Vitaliy Rudnytskiy: Mobile in IoT Context ? Mobile Applications...
 
Enterprise Security in Hybrid Cloud ISACA-SV 2012
Enterprise Security in Hybrid Cloud ISACA-SV 2012Enterprise Security in Hybrid Cloud ISACA-SV 2012
Enterprise Security in Hybrid Cloud ISACA-SV 2012
 
SN-Security Architecture for Mobile Computing and IoT
SN-Security Architecture for Mobile Computing and IoTSN-Security Architecture for Mobile Computing and IoT
SN-Security Architecture for Mobile Computing and IoT
 
(ENT305) Develop an Enterprise-wide Cloud Adoption Strategy | AWS re:Invent 2014
(ENT305) Develop an Enterprise-wide Cloud Adoption Strategy | AWS re:Invent 2014(ENT305) Develop an Enterprise-wide Cloud Adoption Strategy | AWS re:Invent 2014
(ENT305) Develop an Enterprise-wide Cloud Adoption Strategy | AWS re:Invent 2014
 
TOGAF 9 - Security Architecture Ver1 0
TOGAF 9 -  Security Architecture Ver1 0TOGAF 9 -  Security Architecture Ver1 0
TOGAF 9 - Security Architecture Ver1 0
 
Security architecture frameworks
Security architecture frameworksSecurity architecture frameworks
Security architecture frameworks
 
Enterprise Security Architecture for Cyber Security
Enterprise Security Architecture for Cyber SecurityEnterprise Security Architecture for Cyber Security
Enterprise Security Architecture for Cyber Security
 
Architecture and Development of NFC Applications
Architecture and Development of NFC ApplicationsArchitecture and Development of NFC Applications
Architecture and Development of NFC Applications
 

Similar to Application Architecture Jumpstart

Application architecture jumpstart
Application architecture jumpstartApplication architecture jumpstart
Application architecture jumpstartClint Edmonson
 
Application architecture jumpstart
Application architecture jumpstartApplication architecture jumpstart
Application architecture jumpstartClint Edmonson
 
Simplifying & accelerating application development with MongoDB's intelligent...
Simplifying & accelerating application development with MongoDB's intelligent...Simplifying & accelerating application development with MongoDB's intelligent...
Simplifying & accelerating application development with MongoDB's intelligent...Maxime Beugnet
 
Modelling a complex domain with Domain-Driven Design
Modelling a complex domain with Domain-Driven DesignModelling a complex domain with Domain-Driven Design
Modelling a complex domain with Domain-Driven DesignNaeem Sarfraz
 
Salesforce Analytics Cloud - Explained
Salesforce Analytics Cloud - ExplainedSalesforce Analytics Cloud - Explained
Salesforce Analytics Cloud - ExplainedCarl Brundage
 
(Updated) SharePoint & jQuery Guide
(Updated) SharePoint & jQuery Guide(Updated) SharePoint & jQuery Guide
(Updated) SharePoint & jQuery GuideMark Rackley
 
Webinar: The Future of SQL
Webinar: The Future of SQLWebinar: The Future of SQL
Webinar: The Future of SQLCrate.io
 
SQL To NoSQL - Top 6 Questions Before Making The Move
SQL To NoSQL - Top 6 Questions Before Making The MoveSQL To NoSQL - Top 6 Questions Before Making The Move
SQL To NoSQL - Top 6 Questions Before Making The MoveIBM Cloud Data Services
 
From Business Intelligence to Big Data - hack/reduce Dec 2014
From Business Intelligence to Big Data - hack/reduce Dec 2014From Business Intelligence to Big Data - hack/reduce Dec 2014
From Business Intelligence to Big Data - hack/reduce Dec 2014Adam Ferrari
 
Why We Need Architects (and Architecture) on Agile Projects
Why We Need Architects (and Architecture) on Agile ProjectsWhy We Need Architects (and Architecture) on Agile Projects
Why We Need Architects (and Architecture) on Agile ProjectsRebecca Wirfs-Brock
 
Retail Reference Architecture Part 1: Flexible, Searchable, Low-Latency Produ...
Retail Reference Architecture Part 1: Flexible, Searchable, Low-Latency Produ...Retail Reference Architecture Part 1: Flexible, Searchable, Low-Latency Produ...
Retail Reference Architecture Part 1: Flexible, Searchable, Low-Latency Produ...MongoDB
 
Retail Reference Architecture
Retail Reference ArchitectureRetail Reference Architecture
Retail Reference ArchitectureMongoDB
 
Autodesk Knowledge Network: A Knowledge Ecosystem Approach to Integrated Cont...
Autodesk Knowledge Network: A Knowledge Ecosystem Approach to Integrated Cont...Autodesk Knowledge Network: A Knowledge Ecosystem Approach to Integrated Cont...
Autodesk Knowledge Network: A Knowledge Ecosystem Approach to Integrated Cont...Tom Williams
 
Ds03 data analysis
Ds03   data analysisDs03   data analysis
Ds03 data analysisDotNetCampus
 
Unify Your Selling Channels in One Product Catalog Service
Unify Your Selling Channels in One Product Catalog ServiceUnify Your Selling Channels in One Product Catalog Service
Unify Your Selling Channels in One Product Catalog ServiceMongoDB
 
Prepare for Peak Holiday Season with MongoDB
Prepare for Peak Holiday Season with MongoDBPrepare for Peak Holiday Season with MongoDB
Prepare for Peak Holiday Season with MongoDBMongoDB
 
Data Warehouse approaches with Dynamics AX
Data Warehouse  approaches with Dynamics AXData Warehouse  approaches with Dynamics AX
Data Warehouse approaches with Dynamics AXAlvin You
 
SQL Saturday Columbus 2014 Exposing SQL Data with SharePoint
SQL Saturday Columbus 2014 Exposing SQL Data with SharePointSQL Saturday Columbus 2014 Exposing SQL Data with SharePoint
SQL Saturday Columbus 2014 Exposing SQL Data with SharePointScott_Brickey
 
Building a Microservices-based ERP System
Building a Microservices-based ERP SystemBuilding a Microservices-based ERP System
Building a Microservices-based ERP SystemMongoDB
 
SharePoint & jQuery Guide - SPSTC 5/18/2013
SharePoint & jQuery Guide - SPSTC 5/18/2013 SharePoint & jQuery Guide - SPSTC 5/18/2013
SharePoint & jQuery Guide - SPSTC 5/18/2013 Mark Rackley
 

Similar to Application Architecture Jumpstart (20)

Application architecture jumpstart
Application architecture jumpstartApplication architecture jumpstart
Application architecture jumpstart
 
Application architecture jumpstart
Application architecture jumpstartApplication architecture jumpstart
Application architecture jumpstart
 
Simplifying & accelerating application development with MongoDB's intelligent...
Simplifying & accelerating application development with MongoDB's intelligent...Simplifying & accelerating application development with MongoDB's intelligent...
Simplifying & accelerating application development with MongoDB's intelligent...
 
Modelling a complex domain with Domain-Driven Design
Modelling a complex domain with Domain-Driven DesignModelling a complex domain with Domain-Driven Design
Modelling a complex domain with Domain-Driven Design
 
Salesforce Analytics Cloud - Explained
Salesforce Analytics Cloud - ExplainedSalesforce Analytics Cloud - Explained
Salesforce Analytics Cloud - Explained
 
(Updated) SharePoint & jQuery Guide
(Updated) SharePoint & jQuery Guide(Updated) SharePoint & jQuery Guide
(Updated) SharePoint & jQuery Guide
 
Webinar: The Future of SQL
Webinar: The Future of SQLWebinar: The Future of SQL
Webinar: The Future of SQL
 
SQL To NoSQL - Top 6 Questions Before Making The Move
SQL To NoSQL - Top 6 Questions Before Making The MoveSQL To NoSQL - Top 6 Questions Before Making The Move
SQL To NoSQL - Top 6 Questions Before Making The Move
 
From Business Intelligence to Big Data - hack/reduce Dec 2014
From Business Intelligence to Big Data - hack/reduce Dec 2014From Business Intelligence to Big Data - hack/reduce Dec 2014
From Business Intelligence to Big Data - hack/reduce Dec 2014
 
Why We Need Architects (and Architecture) on Agile Projects
Why We Need Architects (and Architecture) on Agile ProjectsWhy We Need Architects (and Architecture) on Agile Projects
Why We Need Architects (and Architecture) on Agile Projects
 
Retail Reference Architecture Part 1: Flexible, Searchable, Low-Latency Produ...
Retail Reference Architecture Part 1: Flexible, Searchable, Low-Latency Produ...Retail Reference Architecture Part 1: Flexible, Searchable, Low-Latency Produ...
Retail Reference Architecture Part 1: Flexible, Searchable, Low-Latency Produ...
 
Retail Reference Architecture
Retail Reference ArchitectureRetail Reference Architecture
Retail Reference Architecture
 
Autodesk Knowledge Network: A Knowledge Ecosystem Approach to Integrated Cont...
Autodesk Knowledge Network: A Knowledge Ecosystem Approach to Integrated Cont...Autodesk Knowledge Network: A Knowledge Ecosystem Approach to Integrated Cont...
Autodesk Knowledge Network: A Knowledge Ecosystem Approach to Integrated Cont...
 
Ds03 data analysis
Ds03   data analysisDs03   data analysis
Ds03 data analysis
 
Unify Your Selling Channels in One Product Catalog Service
Unify Your Selling Channels in One Product Catalog ServiceUnify Your Selling Channels in One Product Catalog Service
Unify Your Selling Channels in One Product Catalog Service
 
Prepare for Peak Holiday Season with MongoDB
Prepare for Peak Holiday Season with MongoDBPrepare for Peak Holiday Season with MongoDB
Prepare for Peak Holiday Season with MongoDB
 
Data Warehouse approaches with Dynamics AX
Data Warehouse  approaches with Dynamics AXData Warehouse  approaches with Dynamics AX
Data Warehouse approaches with Dynamics AX
 
SQL Saturday Columbus 2014 Exposing SQL Data with SharePoint
SQL Saturday Columbus 2014 Exposing SQL Data with SharePointSQL Saturday Columbus 2014 Exposing SQL Data with SharePoint
SQL Saturday Columbus 2014 Exposing SQL Data with SharePoint
 
Building a Microservices-based ERP System
Building a Microservices-based ERP SystemBuilding a Microservices-based ERP System
Building a Microservices-based ERP System
 
SharePoint & jQuery Guide - SPSTC 5/18/2013
SharePoint & jQuery Guide - SPSTC 5/18/2013 SharePoint & jQuery Guide - SPSTC 5/18/2013
SharePoint & jQuery Guide - SPSTC 5/18/2013
 

More from Clint Edmonson

New Product Concept Design.pptx
New Product Concept Design.pptxNew Product Concept Design.pptx
New Product Concept Design.pptxClint Edmonson
 
Lean & Agile Essentials
Lean & Agile EssentialsLean & Agile Essentials
Lean & Agile EssentialsClint Edmonson
 
MICROSOFT BLAZOR - NEXT GENERATION WEB UI OR SILVERLIGHT ALL OVER AGAIN?
MICROSOFT BLAZOR - NEXT GENERATION WEB UI OR SILVERLIGHT ALL OVER AGAIN?MICROSOFT BLAZOR - NEXT GENERATION WEB UI OR SILVERLIGHT ALL OVER AGAIN?
MICROSOFT BLAZOR - NEXT GENERATION WEB UI OR SILVERLIGHT ALL OVER AGAIN?Clint Edmonson
 
Flow, the Universe and Everything
Flow, the Universe and EverythingFlow, the Universe and Everything
Flow, the Universe and EverythingClint Edmonson
 
Code smells and Other Malodorous Software Odors
Code smells and Other Malodorous Software OdorsCode smells and Other Malodorous Software Odors
Code smells and Other Malodorous Software OdorsClint Edmonson
 
Lean & Agile DevOps with VSTS and TFS 2015
Lean & Agile DevOps with VSTS and TFS 2015Lean & Agile DevOps with VSTS and TFS 2015
Lean & Agile DevOps with VSTS and TFS 2015Clint Edmonson
 
Agile Metrics That Matter
Agile Metrics That MatterAgile Metrics That Matter
Agile Metrics That MatterClint Edmonson
 
Advanced oop laws, principles, idioms
Advanced oop laws, principles, idiomsAdvanced oop laws, principles, idioms
Advanced oop laws, principles, idiomsClint Edmonson
 
ADO.NET Entity Framework
ADO.NET Entity FrameworkADO.NET Entity Framework
ADO.NET Entity FrameworkClint Edmonson
 
Windows 8 - The JavaScript Story
Windows 8 - The JavaScript StoryWindows 8 - The JavaScript Story
Windows 8 - The JavaScript StoryClint Edmonson
 
Windows Azure Jumpstart
Windows Azure JumpstartWindows Azure Jumpstart
Windows Azure JumpstartClint Edmonson
 
Introduction to Windows Azure Virtual Machines
Introduction to Windows Azure Virtual MachinesIntroduction to Windows Azure Virtual Machines
Introduction to Windows Azure Virtual MachinesClint Edmonson
 
Peering through the Clouds - Cloud Architectures You Need to Master
Peering through the Clouds - Cloud Architectures You Need to MasterPeering through the Clouds - Cloud Architectures You Need to Master
Peering through the Clouds - Cloud Architectures You Need to MasterClint Edmonson
 
Architecting Scalable Applications in the Cloud
Architecting Scalable Applications in the CloudArchitecting Scalable Applications in the Cloud
Architecting Scalable Applications in the CloudClint Edmonson
 
Windows Azure jumpstart
Windows Azure jumpstartWindows Azure jumpstart
Windows Azure jumpstartClint Edmonson
 
Windows Azure Virtual Machines
Windows Azure Virtual MachinesWindows Azure Virtual Machines
Windows Azure Virtual MachinesClint Edmonson
 
A Force of One - Agile and the Solo Developer
A Force of One - Agile and the Solo DeveloperA Force of One - Agile and the Solo Developer
A Force of One - Agile and the Solo DeveloperClint Edmonson
 
Agile is as Agile Does
Agile is as Agile DoesAgile is as Agile Does
Agile is as Agile DoesClint Edmonson
 
Visual Studio 2010 Ultimate
Visual Studio 2010 UltimateVisual Studio 2010 Ultimate
Visual Studio 2010 UltimateClint Edmonson
 
Visual Studio 2010 - The Good Stuff
Visual Studio 2010 - The Good StuffVisual Studio 2010 - The Good Stuff
Visual Studio 2010 - The Good StuffClint Edmonson
 

More from Clint Edmonson (20)

New Product Concept Design.pptx
New Product Concept Design.pptxNew Product Concept Design.pptx
New Product Concept Design.pptx
 
Lean & Agile Essentials
Lean & Agile EssentialsLean & Agile Essentials
Lean & Agile Essentials
 
MICROSOFT BLAZOR - NEXT GENERATION WEB UI OR SILVERLIGHT ALL OVER AGAIN?
MICROSOFT BLAZOR - NEXT GENERATION WEB UI OR SILVERLIGHT ALL OVER AGAIN?MICROSOFT BLAZOR - NEXT GENERATION WEB UI OR SILVERLIGHT ALL OVER AGAIN?
MICROSOFT BLAZOR - NEXT GENERATION WEB UI OR SILVERLIGHT ALL OVER AGAIN?
 
Flow, the Universe and Everything
Flow, the Universe and EverythingFlow, the Universe and Everything
Flow, the Universe and Everything
 
Code smells and Other Malodorous Software Odors
Code smells and Other Malodorous Software OdorsCode smells and Other Malodorous Software Odors
Code smells and Other Malodorous Software Odors
 
Lean & Agile DevOps with VSTS and TFS 2015
Lean & Agile DevOps with VSTS and TFS 2015Lean & Agile DevOps with VSTS and TFS 2015
Lean & Agile DevOps with VSTS and TFS 2015
 
Agile Metrics That Matter
Agile Metrics That MatterAgile Metrics That Matter
Agile Metrics That Matter
 
Advanced oop laws, principles, idioms
Advanced oop laws, principles, idiomsAdvanced oop laws, principles, idioms
Advanced oop laws, principles, idioms
 
ADO.NET Entity Framework
ADO.NET Entity FrameworkADO.NET Entity Framework
ADO.NET Entity Framework
 
Windows 8 - The JavaScript Story
Windows 8 - The JavaScript StoryWindows 8 - The JavaScript Story
Windows 8 - The JavaScript Story
 
Windows Azure Jumpstart
Windows Azure JumpstartWindows Azure Jumpstart
Windows Azure Jumpstart
 
Introduction to Windows Azure Virtual Machines
Introduction to Windows Azure Virtual MachinesIntroduction to Windows Azure Virtual Machines
Introduction to Windows Azure Virtual Machines
 
Peering through the Clouds - Cloud Architectures You Need to Master
Peering through the Clouds - Cloud Architectures You Need to MasterPeering through the Clouds - Cloud Architectures You Need to Master
Peering through the Clouds - Cloud Architectures You Need to Master
 
Architecting Scalable Applications in the Cloud
Architecting Scalable Applications in the CloudArchitecting Scalable Applications in the Cloud
Architecting Scalable Applications in the Cloud
 
Windows Azure jumpstart
Windows Azure jumpstartWindows Azure jumpstart
Windows Azure jumpstart
 
Windows Azure Virtual Machines
Windows Azure Virtual MachinesWindows Azure Virtual Machines
Windows Azure Virtual Machines
 
A Force of One - Agile and the Solo Developer
A Force of One - Agile and the Solo DeveloperA Force of One - Agile and the Solo Developer
A Force of One - Agile and the Solo Developer
 
Agile is as Agile Does
Agile is as Agile DoesAgile is as Agile Does
Agile is as Agile Does
 
Visual Studio 2010 Ultimate
Visual Studio 2010 UltimateVisual Studio 2010 Ultimate
Visual Studio 2010 Ultimate
 
Visual Studio 2010 - The Good Stuff
Visual Studio 2010 - The Good StuffVisual Studio 2010 - The Good Stuff
Visual Studio 2010 - The Good Stuff
 

Recently uploaded

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 

Recently uploaded (20)

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 

Application Architecture Jumpstart

  • 3.
  • 4. Who the heck needs architecture?
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12. ARCHITECTURE “A unifying or coherent form or structure.” merriam-webster.com
  • 13. DESIGN “Design, at its most fundamental, is about finding solutions.” Garr Reynolds
  • 14. THE GOAL OF ARCHITECTURE Eliminate the things I don’t want to think about. Keep complexity at bay!
  • 15.
  • 16. How do we tackle this complexity?
  • 19. CONQUERING COMPLEXITY • Abstraction • Layering • Partitioning • Occam’s Razor
  • 20. ITERATIVE ARCHITECTURE & DESIGN Page 41
  • 21. 1. Identify architecture objectives A. Determine goals based on size, scope, time • Complete application • Prototype • Solving a technical risk • Exploring potential options • Building shared, reference models B. Identify target audience • Other architects • Developers & Maintainers • Testers • Operations
  • 22. 2. Identify key scenarios A. Define the solution’s boundaries B. Identify who will impacted by the solution C. Discover what valuable activities will be automated D. Uncover constraints that will limit the solution E. Identify activities that are most important to the success of your application F. Highlight those that are architecturally significant
  • 23. CONTEXT DIAGRAM Tailspin Toys Tailspin Toys is a small brick and mortar model airplane shop that wants an online store front to supplement in-store sales.
  • 24. CONTEXT DIAGRAM Tailspin Toys Non-functional Requirements & Constraints - Web based solution to achieve customer reach - Support mobile browsers - Hosted by a third party web hosting provider - Must integrate with existing inventory database and administrative tools Tailspin Toys is a small brick and mortar model airplane shop that wants an online store front to supplement in-store sales.
  • 25. CONTEXT DIAGRAM Tailspin Toys Non-functional Requirements & Constraints - Web based solution to achieve customer reach - Support mobile browsers - Hosted by a third party web hosting provider - Must integrate with existing inventory database and administrative tools Customer Store Manager Time Tailspin Toys is a small brick and mortar model airplane shop that wants an online store front to supplement in-store sales.
  • 26. CONTEXT DIAGRAM Payment ProcessorTailspin Toys Non-functional Requirements & Constraints - Web based solution to achieve customer reach - Support mobile browsers - Hosted by a third party web hosting provider - Must integrate with existing inventory database and administrative tools Customer Store Manager Time Shop for Toys - Browse by category - Browse by price range - Search by name - View list of best sellers - View toy details - Read reviews of toys - Add toys to shopping cart - Add toys to wishlist - View shopping cart contents - View other customers' wishlists - Checkout Check an order status Cancel an order Get a refund on an order View order history Receive shipping notifications Receive special offers and coupons - "registered" customers only Rate toys Write reviews of toys Process open orders - View list of open orders - Fulfill an order (ship & close it) - Cancel and refund an order View sales reports - conversions, abandonments, etc. Send special offers to "registered" customers Manage customer accounts - Reset passwords - Delete accounts Manage inventory - Manage product categories - Manage inventory levels - Place products on back order Generate monthly sales reports Send coupons to "infrequent" customers Tailspin Toys is a small brick and mortar model airplane shop that wants an online store front to supplement in-store sales.
  • 27. 3. Create an application overview A. Determine your application type • Web • Mobile • Rich client • RIA • Web service • Some combination of the above B. Identify your deployment constraints C. Determine your relevant technologies
  • 28. 4. Identify key issues A. Cross-cutting concerns • Configuration • Security • Communication • Compression • Encryption • Logging & instrumentation • Validation • Error management B. Quality attributes • Run-time performance • Scalability • Disaster recovery
  • 29. 5. Define candidate solution(s) A. Choose an architecturally significant scenario B. Design a candidate baseline architecture C. Build out the scenario to prove it out
  • 30. FUNDAMENTAL DESIGN TOOLS • Layers • Assemblies • Namespaces
  • 31. LAY(ER)ING IT ALL OUT • Describe the application at a high level • Identify major functional units of the design and their interdependencies • Each layer represents a logical group of projects, namespaces, and/or other artifacts
  • 33. CASE STUDY A naïve approach…
  • 34. BASELINE LAYERED ARCHITECTURE Tailspin Backoffice Admin Tailspin Backoffice Admin Email Server Tailspin.Core Payment Processor Payment Processor Tailspin.Database Tailspin.Domain Browser Tailspin.Web Tailspin.WebJob
  • 35. Physical deployment • Visualize the physical structure of a system • Executables • Libraries • Services • Focus on components of the system, their relationships, interfaces, and ports • Highlight the service behavior that they provide and consume through interfaces
  • 36. COMPONENT DESIGN Database Server Website Tailspin.Web Tailspin.Domain Tailspin.Core Tailspin.WebJob Tailspin.Database SendGrid Stripe
  • 37. PHYSICAL ARCHITECTURE Azure Data Center :Website Azure Load Balancer User :Website :SQL Azure Database :Payment Processor :Search Service ... :Webjob :SendGrid https https TDS https https TDS https https
  • 38. CASE STUDY Something more reasonable…
  • 39. Grouping layers into assemblies • Prefer fewer, larger assemblies • Faster load time • Reduced working set • Better NGEN optimization • If several assemblies are always loaded together, consider combining them into one • Partition into separate assemblies based on • Deployment • Versioning • Data access • Security and access control • Contributions from disparate sources • Avoid the one dll per namespace anti-pattern!
  • 41. ANALYSIS & DESIGN ARTIFACTS • Sketch • Blueprint • Executable • They are artifacts, not documentation! • Don’t be afraid to throw them away and draw new ones!
  • 43. CHARACTERISTICS of a GOOD ARCHITECTURE • Form Follows Function Evolutionary not pre-ordained or predicted • Functional alignment & partitioning • One right place • Keeps complexity in check • Facilitates/accelerates feature delivery
  • 44. STUDY OTHERS’ ARCHITECTURES Open Source Projects HighScalability.com Is it easy to understand? Is it easy to find things? How would you have done it differently?
  • 45. LAW OF PARSIMONY “Reduce everything to its essence so that form harmonizes with function.” Chris Kobryn
  • 46. REFERENCES • Microsoft Application Architecture Guide 2nd Edition by Microsoft Patterns & Practices Group • Microsoft .NET: Architecting Application for the Enterprise by Dino Esposito & Andrea Saltarello • Domain Driven Design by Eric Evans • Framework Design Guidelines by Krzysztof Cwalina & Brad Abrams
  • 47. Q & A

Editor's Notes

  1. Photo credits: http://www.flickr.com/photos/cogdog/2708223050/ Creative Commons Attribution License
  2. Photo credits: http://www.flickr.com/photos/dullhunk/2859826117/ Creative Commons Attribution License
  3. Photo credits: http://www.flickr.com/photos/rutlo/4094249840/ Creative Commons Attribution License
  4. Photo credits: http://www.flickr.com/photos/annahape-gallery/ Creative Commons Attribution License
  5. Photo credits: http://www.flickr.com/photos/wwarby/2460644803/ Creative Commons Attribution License
  6. Photo credits: http://www.flickr.com/photos/paalia/3582759194/ Creative Commons Attribution License
  7. Photo credits: http://www.flickr.com/photos/paalia/3582759194/ Creative Commons Attribution License
  8. Photo credits: http://www.flickr.com/photos/paalia/3582759194/ Creative Commons Attribution License
  9. Photo credits: http://www.flickr.com/photos/emilysoo/3863285545/ Creative Commons Attribution License
  10. 11/16/2015 5:23 PM