42
Architectures: the Good, the Bad and the Ugly Miha Kralj Senior Architect Microsoft

IT architectures - the good, the bad and the ugly

Embed Size (px)

Citation preview

Page 1: IT architectures - the good, the bad and the ugly

Architectures:the Good, the Bad and the UglyMiha KraljSenior ArchitectMicrosoft

Page 2: IT architectures - the good, the bad and the ugly

2

Establish Objectives,

BuildCredibility

Trust me,

I’m from Redmond and I know what

I’m doing

Page 3: IT architectures - the good, the bad and the ugly

3

Let’s dig into some

architectures!

Page 4: IT architectures - the good, the bad and the ugly

4

Who is Architect anyway?

Architect is what Architect does.

Page 5: IT architectures - the good, the bad and the ugly

5

Architecting is just an advanced form of hand

waving, right?

Architecture• Structures and relationships, static and dynamic views,

assumptions and rationale• Focus: decomposition and allocation of responsibility,

interface design, assignment to processes and threads

Architecture Guidelines and Policies• Use model and guidelines; policies, mechanisms and design

patterns; frameworks, infrastructure and standards• Focus: guide engineers in creating designs that maintain the integrity of

the architecture

GuidesDevelopers

Architecture Strategy• Architectural vision, principles, styles, concepts and mechanisms• Focus: high-level decisions that will strongly influence the structure of

the system; rules certain structural choices out, and guides selection decisions and tradeoffs among others

Guides Architects

Conceptual Architecture

Logical Architecture

Physical Architecture

Page 6: IT architectures - the good, the bad and the ugly

6

Narrowing the focus

Execution Architecture Process, Component, Deployment View

Logical Architecture Detailed Diagrams, Functional Specs

Conceptual Architecture

Abstract View, Component Break-down

Meta-Architecture Architectural vision, style and principles

Ignoring what can be safely ignored

Page 7: IT architectures - the good, the bad and the ugly

7

Patterns(good stuff)

Anti-patterns

(bad stuff)

PatternsPredictabl

e, recurring events

Page 8: IT architectures - the good, the bad and the ugly

8

Word of Wisdom

Always compliment

women. Nobody really cares if they are well-dressed

or not.

Page 9: IT architectures - the good, the bad and the ugly

9

Analysis Design

Architecting

(What do we do?)

Requirements

Page 10: IT architectures - the good, the bad and the ugly

10

Ctrl-CCtrl-VCtrl-ACtrl-C

Case study:Biztalk for

Office

Ctrl-V

Remember the preference

(aka Notepad Paste)

Page 11: IT architectures - the good, the bad and the ugly

11

Anti-pattern:McKinsey Syndrome

Opposite Anti-pattern:

Obedient Butler

•We know it all, we don’t need to listen…•They don’t know what they really want…•Just a cookie-cutting re-delivery…

Page 12: IT architectures - the good, the bad and the ugly

12

Anti-pattern:Napkin Doodle

Opposite Anti-pattern:Documentation

Overkill

• It was so straight-forward requirement…•We agreed on all req’s during lunch…•Light projects don’t need heavy process…

Page 13: IT architectures - the good, the bad and the ugly

13

Case study:The wall of

painUser LAN

User LAN

Backup LAN

Backup LAN

Mgmt LAN

Mgmt LAN

iLO LAN Heartbeat LAN

Heartbeat LAN

iSCSI SAN

iSCSI SAN

User LAN

User LAN

Page 14: IT architectures - the good, the bad and the ugly

14

Anti-pattern:Measure abuse

Opposite Anti-pattern:

Softie-softie

•Each req must have success metrics…

•If you can’t measure it, it is not there…

•We need binary criteria of achievement…

Page 15: IT architectures - the good, the bad and the ugly

15

Design

RequirementsAnalysis

Page 16: IT architectures - the good, the bad and the ugly

16

Case study:Me-too Flickr!

Enterprise? Cloud??? OMG…

Single user Peer net

Page 17: IT architectures - the good, the bad and the ugly

17

Anti-pattern:Start small, grow

fast

Opposite Anti-pattern:Let’s Go Global

NOW!

•Just for couple of users first…•Prototype, patch-up, deploy…•We’ll add scalability later…

Page 18: IT architectures - the good, the bad and the ugly

18

Anti-pattern:Best-of-breed

Opposite Anti-pattern:

Vendor Lock-in

Page 19: IT architectures - the good, the bad and the ugly

19

Anti-pattern:YAGNI

•I’m sure nobody needs this requirement...•I bet this one is totally irelevant…•Too low on priority list…

Opposite Anti-pattern:Analysis Paralysis

Page 20: IT architectures - the good, the bad and the ugly

20

RequirementsAnalysis Design

Page 21: IT architectures - the good, the bad and the ugly

21

Case study:Document

Management

Page 22: IT architectures - the good, the bad and the ugly

22

Anti-pattern:Reinventing the wheel (aka

NIH)

Opposite Anti-pattern:

Golden Hammer

•We can do it better. Much better...•It would be boring to re-use the old stuff!•I trust my code and my code only.

Page 23: IT architectures - the good, the bad and the ugly

23

Case Study:Sell me

some stuff, baby!

Page 24: IT architectures - the good, the bad and the ugly

24

Anti-pattern:Sales-driven

Design

Opposite Anti-pattern:

Technological Purity

•We sold it, you just implement it…•Trust me, I’m technical too…•Does it work? Shut-up then…

Page 25: IT architectures - the good, the bad and the ugly

25

Anti-pattern:YAFL

Yet Another Fine Layer

Cream

Sponge

Custard

Berries

Sponge

Custard

Berries

Sponge

Custard

Yum!

Architecture is simplicity, not

intellectual violence.

Page 26: IT architectures - the good, the bad and the ugly

26

SQL Server

Project Server 2003

Project Professional

2003

PdsRequest.asp

UsernamePasswordGo wild,

grab data

Case Study:The world is flat

Tier 1

Tier 2

Tier 3Tier 2!

POST http://SERVER/projectserver/logon/pdsrequest.asp

<Request> <GetInitializationData> <Release>1</Release> </GetInitializationData> </Request>

<Reply> <HRESULT>0</HRESULT> <STATUS>0</STATUS> <UserName>mihak</UserName> <GetInitializationData> <GetLoginInformation> <DBType>0</DBType> <DVR>{SQLServer}</DVR> <DB>ProjectServer</DB> <SVR>SERVER</SVR> <ResGlobalID>1</ResGlobalID> <ResGlobalName>resglobal</ResGlobalName> <UserName>MSProjectUser</UserName><Password>P@ssw0rd</Password> <UserNTAccount>SERVER\USER</UserNTAccount> </GetLoginInformation> </Reply>

Page 27: IT architectures - the good, the bad and the ugly

27

Words of Wisdom

Man who eats many prunes gets good run for money.

Page 28: IT architectures - the good, the bad and the ugly

28

Modularity(degrees of freedom)

Supported scenarios:

Page 29: IT architectures - the good, the bad and the ugly

29

Open-ended systems

(specific vs. generic)

1965 2010

100%

0%

Func

tion

Assembler COBOL SQL Web

Application-Specific

General-Purpose

Application Logic

Business Process Logic

Data Logic

Data

Application-Specific: SolutionGeneral-Purpose: Infrastructure

Page 30: IT architectures - the good, the bad and the ugly

30

Wu WeiBuild to grow

WeiBuild to

specifications

Not Make;An engine of Continuous

Transformation

Make;An engine of Immediate

Purpose

Page 31: IT architectures - the good, the bad and the ugly

31

Identifier Format Protocol

Identifier, Format and Protocol

IP Address IP packet IP ProtocolTCP/IP

@ Address RFC 2822 SMTPE-mail

URL HTML httpWeb

URI SOAP envelope

SOAP payload

Ws-*

AddressReference

Name

DocumentMessageContainer

MethodOperation

Process

Back to the Roots

Page 32: IT architectures - the good, the bad and the ugly

32

Middle-out

Architecture

Uncertainty

Uncertainty

SimpleInterface (IFaP)

Generic Solutions

Federated Components

Minimal Spec

Wide range of implementations

Wide range of uses

Page 33: IT architectures - the good, the bad and the ugly

33

Poor-man Application Model

MicrosoftMicrosoft

AppM

odel

AppM

odel

AppM

odel

AppM

odel

AppM

odel

AppM

odel

Atom, RSS, HTTP

Generic AppModel

Page 34: IT architectures - the good, the bad and the ugly

34

Web-Oriented Architecture

(Thin-waist design)

Salesforce.co

m

RESTful operations

10mio calls per day

live.com

Live API

Live-aware apps

Amazon.com

AWS

Thriving ecosystem

Page 35: IT architectures - the good, the bad and the ugly

35

Words of Wisdom

Thin waist will make you

pretty.

Page 36: IT architectures - the good, the bad and the ugly

36

Lines matter more than boxes

RecordsMgmt.

OrderMgmt.

Inv./Shipping

CRM

Current Model

CheckoutProtocol

InventoryProtocol

Data Retention Protocol

CRMProtocol

Future Model

Protocols are inherently stable. Applications are

not.

Page 37: IT architectures - the good, the bad and the ugly

37

Data Code

Gen

eral

Spec

ific

Unstable Stable

InstanceData

Metadata Class

Instance

ImproperDependency

Dependency Inversion

Fold knowledge into data, so program

logic can be stupid and robust

What needs to be easy to understand

and change goes into data

What will be stable goes into code

Data should depend on code.Code should not depend on

data.

Page 38: IT architectures - the good, the bad and the ugly

38

New-age development

"Service"

Gen

eric

Ren

derin

g

Eng

ine

Data

Gen

eric

Pro

cess

Eng

ine

Data

Gen

eric

Rul

e

Eng

ine

Data

Gen

eric

Dat

a

Eng

ine

Data

Parser

Generator

<Rules>e.g., BRML

<Processes>e.g., BPEL

<Views>e.g., XQuery

<UI>e.g., XHTML

"Service"

DataDataData Data

Parser

Generator

<Rules>

<Processes>

<Views>

<UI>

Update

Edit Response

Request

SoftwareMetadata

GenericRule

Engine

GenericProcessEngine

GenericData

Engine

GenericRendering

Engine

Model-Driven Design

Page 39: IT architectures - the good, the bad and the ugly

39

Virtual worlds, virtual rules

Guest OS

App BApp A

Guest OS

app

Owned by Company A

Owned by Company B, executing on the host

Owned by Company C, streamed to the host

Owned by User, running in the Geoplex, streamed to the host

Shared, temporary owned for contracting purposes

Page 40: IT architectures - the good, the bad and the ugly

40

Automation of Application Development

Programmersvs.

Machines

Reaching human limits

When process, platforms, technologies, workforce and governance are defined in advance and rarely met.

Quality

Limited by human nature — you can enter code no faster than you can type. Limited multitasking.

Speed

Cheap (offshored) AD labor is limited by socioeconomic factors.

Cost

Manual Labor

Machines' way of life — virtually unlimited

When process, platforms, technologies, workforce and governance are measured and improved in real time

Unlimited multitasking and variables handling

Machines

What could be cheaper than "software machine" with industrialized production?

Page 41: IT architectures - the good, the bad and the ugly

41

Words of Wisdom

We always need strong hands on the

plow.

Page 42: IT architectures - the good, the bad and the ugly

42

Your next steps

•Today•Start thinking strategically(be an Architect, not an Engineer!)

•Near future•Define principles, policies and guidelines that transcend technologies

•Longer term•Buckle-up – we ain’t see anything yet!