The Enterprise Architecture You Always Wanted
-
Upload
thoughtworks -
Category
Technology
-
view
214 -
download
0
description
Transcript of The Enterprise Architecture You Always Wanted
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�:*"8';)7'*#+4)<"#'
="4">9+;"48')"&/#%*0'&24*"6*'*23"4'
!"&/#%*0'123"4'!"#$%&"'
?@!A1#/)*B'
!%74"89"4�:*"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’