the enterprise architecture you always wanted

Post on 07-Sep-2014

214 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

The  Enterprise  Architecture  you  always  wanted  has  been  hiding  in  

plain  sight  since  1991    Jim  Webber  

h<p://jim.webber.name  

Twi<er:  @jimwebber  

Or:  A  Billion  TransacDons  Per  Month  Using  the  Web  for  Enterprise  Heavy  LiLing  

Jim  Webber  h<p://jim.webber.name  

Twi<er:  @jimwebber  

Today’s  Enterprise  Architecture  

“SOA:  Principles  of  Service  Design  underwent    a  thorough  technical  review  involving  over    60  reviewers  from  different  vendors,  organiza3ons,  and  professions  across  North  America,  Europe,  and  Asia.  The  book  has  been  formally  endorsed  by  members  of  major  SOA  vendors,  including  IBM,  MicrosoC,  Oracle,    BEA,  and  Intel.”  

                     -­‐-­‐  Thomas  Erl    

Tomorrow’s  Enterprise  Architecture  

BPM  Services  

Business  Service  

Data  Service  

Business  Service  

Data  Service  

Data  Service  

Business  Service  

Data  Service  

Data  Service  

Nirvana  Enterprise  Architecture,  or…  

BPM  Service  

Business  Service  

Business  Service  

ESB  

Basic  Service  

Basic  Service  

Basic  Service  

Basic  Service  

Basic  Service  

Business  Service  

ESB  -­‐  Erroneous  SpagheU  Box?  

Enterprise  Service  Bus  

         

But  we  sDll  do  it.  

Why?  

Because  it’s  “less  risky”  

Why?  

Because  that’s  what  the  market  does  

Why?  

Because  we  need  the  -­‐iliDes  

So  let’s  talk  about  those  -­‐iliDes  

Web

 Scale!  

Trad

i'on

al  Enterprise    Security  

!"#$%&'"!(

)*%%#+*(&"',*%%-$+(

.*/(0*"1-,*(2'+-,(

"*%'3",*%(

%*,3"-!4(

-$!*")*5-#"4(

%*"1-,*(

!"#$%&'"!(

)*%%#+*(&"',*%%-$+(

.*/(0*"1-,*(2'+-,(

"*%'3",*%(

%*"1-,*(

2'+-,#2(

&'-$!6!'6&'-$!(

)*%%#+*(!"#$%7*"(

%*,3"-!4(

-$!*")*5-#"4(

!"#$%&"' !"#$%&"'

()*+,-%).'!"&/#%*0'123"4'524*"6*'

)"&/#"'&24*"6*'

!%74"89"4&#0:*"8';)7'*#+4)<"#'

="4">9+;"48')"&/#%*0'&24*"6*'*23"4'

!"&/#%*0'123"4'!"#$%&"'

?@!A1#/)*B'

!%74"89"4&#0:*"8';)7'*#+4)<"#'

5+4&"-9"6:%#"')"&/#%*0'&24*"6*'*23"4'

End  to  End  Secure  Messaging  

End  to  End  Secure  ConversaDons  

!"#$%&'(' !"#$%&')'

*+',$-%.$/0'120.0&3$-4'

5+'62$&4702'401820'#044$90'

:0;8043&9'

402<%10'

:0;8043&9'

402<%10'

=.0&3/>'

?2"<%.02'@A6AB'

=.0&3/>'

C2"<%.02'@A6AB'

D+'E0/'6"F0&'G+',$-%.$/0'

120.0&3$-4'

!"#$%&'()*+,"-)!"%.&#")

/0!1*%$2'3)

4+5&#()

!"#$%&'()

*+,"-)

657&8)657&8)657&8)

!"#$%&'()*+,"-)!"%.&#")

/0!1*%$2'3)

4+5&#()

!"#$%&'()

*+,"-)

657&8)657&8)657&8)

!"#$%&'()*+,"-)!"%.&#")

/0!1*%$2'3)

4+5&#()

!"#$%&'()

*+,"-)

657&8)657&8)657&8)

Security  Tokens  and  claims  

FederaDng  access  with  tokens  

…you  wouldn’t  use  it  at  home!  

!"#$%&"' !"#$%&"'

(#")*"'+",-".&"'

!",-".&"'&#")*"/'

0&12'!",34'56375'

8"++)9"2'!",34':'5'

8"++)9"2'!",34':'3'

8"++)9"2'!",34':'3';'5'

<"+"./2'!",34':'32'0&1'<",-"+*"/'

!",-".&"'0&12'56'3'

=./'

!"#$%&"'

(#)*+)&,-*'&-*(".('

!"#$%&"' !"#$%&"'

/0%"*(')110%&),-*'2#)*+)&,-*'

&--#3%*)(-#'

2#)*+)&,-*'&-*(#-0'4"++)5"+'

67+%*"++'&-41-*"*('%*("#)&,-*+'

Bottleneck

No trustCrash recovery?

Denial of Service

<?xml version="1.0" encoding="UTF-8"?> <definitions name="HelloService" targetNamespace="http://www.ecerami.com/wsdl/HelloService.wsdl" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.ecerami.com/wsdl/HelloService.wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<message name="SayHelloRequest"> <part name="firstName" type="xsd:string"/> </message> <message name="SayHelloResponse"> <part name="greeting" type="xsd:string"/> </message>

<portType name="Hello_PortType"> <operation name="sayHello"> <input message="tns:SayHelloRequest"/> <output message="tns:SayHelloResponse"/> </operation> </portType>

<binding name="Hello_Binding" type="tns:Hello_PortType"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="sayHello"> <soap:operation soapAction="sayHello"/> <input> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:helloservice" use="encoded"/> </input> <output> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:helloservice" use="encoded"/> </output> </operation> </binding>

<service name="Hello_Service"> <documentation>WSDL File for HelloService</documentation> <port binding="tns:Hello_Binding" name="Hello_Port"> <soap:address location="http://localhost:8080/soap/servlet/rpcrouter"/> </port> </service> </definitions> Hello  W

orld!  

The  Web  is  a  coordina'on  pla<orm  Status  cod

es   Verbs  

Med

ia  

Type

s  

A  Case  Study  

Client  •  UK-­‐based  telecoms  service  provider  •  Global  customers  (no  easy  downDme)  Problem  •  Scalability  and  system  resilience  issues  •  Huge  growth  curve  to  from  a  million  to  a  billion  messages  per  month  

•  Costs  

Plaaorm  Architecture  

CarrierCarrierCarrierCarrier

Gateway

Voice to Text

Algorithms

Integration Database

Post Processing

Shared Filesystem

Bottleneck Nightmare! Where’s my file gone?

Shoehorn it in that other

program

Fix things up here

The  £10  Million  SoluDon  

CarrierCarrierCarrierCarrier

Gateway

Voice to Text

Algorithms

“Queue”Database

Post Processing

Shared Filesystem

Enterprise Service Bus

*

*  SoluDon  does  not  include  actual  implementaDon  

ThoughtWorks  was  given  the  output  from  a  previous  enterprise  consultancy…  

…and  told  to  “do  that,  but  cheaper”  

Think  differently!  

(or  even  just  stop  and  think)  

Architecture is still important

Agile  EA:  PrioriDse  Service  Delivery  

CarrierCarrierCarrierCarrier

Gateway

Voice to Text

Algorithms

Integration Database

Post Processing

Shared Filesystem

Start by fixing storage

Storage  Manager  Project  Delivery  

Small  team  

3  Week  Incep'on  

14  itera'ons  

Java  solu'on  

Performance  tes'ng  throughout  –  See  Jones  and  Kua  paper,  Agile  2009  

Con'nuously  built  and  deployed  for  tes'ng  

Web-­‐friendly  Architecture  (mostly  wallet-­‐friendly  too!)  

Storage Manager

Jboss/Tomcat

GPFS SAN

Cacheable!

Optimised disk access!

Optimised server config

Free!

Encapsulates storage detail!

Fast!

Spend £ on the right

Infrastructure

What  is  going  on  here?  

What  is  going  on  with  these  peaks?  

Hypothesis  

Directories  are  becoming  full,  slowing  random  access  to  files  

PredicDon  

A  single  directory  will  result  in  linearly  degrading  performance  

Outcome  

Adapt  the  directory  structure  to  take  advantage  of  the  underlying  file  

system  

Improving  Enterprise  Architecture  

CarrierCarrierCarrierCarrier Gateway

Voice to Text

Algorithms

Integration Database

Post Processing

Storage Manager

Reduced Load

Just shoehorn it in that

other program

“She’ll be right”

Scalable!

Storage  Manager  Benefits  

•  Immediate  reduced  load  on  integraDon  database  

•  Enabled  removal  of  code  from  systems  

•  Delivered  business  value  by  keeping  customers  happy  

•  “The  best  soLware  we  have  ever  deployed”  – OperaDons  director   I’ll  come  back  to  this  

What’s  wrong  with  this  picture?  

Voice to Text

Algorithms!

Storage Manager!

Just shoehorn it in that

other program!

Scalable!!

What  if…  

We  took  our  inspiraDon  from  successful  Web-­‐scale  companies?  

What  if…  

And  took  the  Dme  to  understand  our  SLAs?  

What  if…  

And  picked  the  right  technology  soluDon?  

Not  just  the  one  we’re  being  sold?  

What  if…  

We  built  a  scalable  compute  plaaorm?  

Grid  Project  Delivery  

Larger  team  

3.5  Week  Incep'on  

18  itera'ons  

Java  solu'on  

Performance  tes'ng  throughout  

Con'nuously  built  and  deployed  for  tes'ng  

Web-­‐friendly  Architecture  (very  wallet-­‐friendly!)  

Grid Manager

Embedded Jetty

Grid Manager

Embedded Jetty

Grid Manager

Embedded Jetty

Grid Manager

Embedded Jetty

Grid Manager

Embedded Jetty

ASR ASR ASR ASR

Grid Pipeline

ASR ASR ASR ASR

Grid Pipeline

Just HTTP

Fault Tolerant

Fault Tolerant

Just HTTP

Sustainable container for business logic

£0Software

Infrastructure

Improving  Enterprise  Architecture  

CarrierCarrierCarrierCarrier Gateway

Grid

Integration Database

Post Processing

Storage Manager

Massively Reduced Load

“She’ll be right”

Scalable!

Scalable, sustainable!

Scalable Processing Platform

Grid  Benefits  

•  Scalable,  resilient  plaaorm  •  Aligned  with  business  goals  •  Further  reduced  load  on  integraDon  database  •  Set  architectural  pa<erns  •  Deliver  business  value  by  processing  more  messages  at  lower  cost  than  ever  before  

•  “The  best  soLware  we  have  ever  deployed”  – OperaDons  director   Be<er  every  Dme!  

£10,000,000Up-Front Cost of Bus Architecture

£1,000,000Actual Cost of Completed Project

£0Cost of Middleware

The  Web  works  

And  its  economies  of  scale  eclipse  your  vendors’  

top related