Lessons Learned in Large HTTP- Centric Systems Jim Webber - - PowerPoint PPT Presentation

lessons learned in large http centric systems
SMART_READER_LITE
LIVE PREVIEW

Lessons Learned in Large HTTP- Centric Systems Jim Webber - - PowerPoint PPT Presentation

Lessons Learned in Large HTTP- Centric Systems Jim Webber h:p://jimwebber.org @jimwebber Todays Enterprise Architecture Tomorrows Enterprise Architecture BPM


slide-1
SLIDE 1

Lessons ¡Learned ¡in ¡Large ¡HTTP-­‑ Centric ¡Systems ¡

Jim ¡Webber ¡ h:p://jimwebber.org ¡ @jimwebber ¡

slide-2
SLIDE 2
slide-3
SLIDE 3

Today’s ¡Enterprise ¡Architecture ¡

slide-4
SLIDE 4
slide-5
SLIDE 5

Tomorrow’s ¡Enterprise ¡Architecture ¡

BPM ¡ Services ¡ Business ¡ Service ¡ Data ¡ Service ¡ Business ¡ Service ¡ Data ¡ Service ¡ Data ¡ Service ¡ Business ¡ Service ¡ Data ¡ Service ¡ Data ¡ Service ¡

slide-6
SLIDE 6

Nirvana ¡Enterprise ¡Architecture, ¡or… ¡

BPM ¡ Service ¡ Business ¡ Service ¡ Business ¡ Service ¡ ESB ¡ Basic ¡ Service ¡ Basic ¡ Service ¡ Basic ¡ Service ¡ Basic ¡ Service ¡ Basic ¡ Service ¡ Business ¡ Service ¡

slide-7
SLIDE 7

ESB ¡-­‑ ¡Erroneous ¡SpagheM ¡Box? ¡

Enterprise ¡Service ¡Bus ¡

slide-8
SLIDE 8
slide-9
SLIDE 9

¡ ¡ ¡ ¡ ¡

slide-10
SLIDE 10
slide-11
SLIDE 11

But ¡we ¡sPll ¡do ¡it. ¡

slide-12
SLIDE 12

Why? ¡

Because ¡it’s ¡“less ¡risky” ¡

slide-13
SLIDE 13

Why? ¡

Because ¡that’s ¡what ¡the ¡market ¡does ¡

slide-14
SLIDE 14

Why? ¡

Because ¡we ¡need ¡the ¡-­‑iliPes ¡

slide-15
SLIDE 15

So ¡let’s ¡talk ¡about ¡those ¡-­‑iliPes ¡

slide-16
SLIDE 16
slide-17
SLIDE 17
slide-18
SLIDE 18

Web ¡Scale! ¡

slide-19
SLIDE 19

Tradi'onal ¡Enterprise ¡ ¡Security ¡

slide-20
SLIDE 20 !"#$%&'"!( )*%%#+*(&"',*%%-$+( .*/(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 ¡ ConversaPons ¡

slide-21
SLIDE 21 !"#$%&'(' !"#$%&')' *+',$-%.$/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 ¡ FederaPng ¡access ¡ with ¡tokens ¡

slide-22
SLIDE 22
slide-23
SLIDE 23

…you ¡ wouldn’t ¡ use ¡it ¡at ¡ home! ¡

slide-24
SLIDE 24
slide-25
SLIDE 25

!"#$%&"' !"#$%&"' (#")*"'+",-".&"' !",-".&"'&#")*"/' 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' =./'

slide-26
SLIDE 26
slide-27
SLIDE 27

!"#$%&"' (#)*+)&,-*'&-*(".(' !"#$%&"' !"#$%&"' /0%"*(')110%&),-*' 2#)*+)&,-*' &--#3%*)(-#' 2#)*+)&,-*'&-*(#-0'4"++)5"+' 67+%*"++'&-41-*"*('%*("#)&,-*+'

Bottleneck No trust Crash recovery? Denial of Service

slide-28
SLIDE 28
slide-29
SLIDE 29 <?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 ¡World! ¡

slide-30
SLIDE 30

The ¡Web ¡is ¡an ¡applica'on ¡pla<orm ¡

Status ¡codes ¡ Verbs ¡ Media ¡ Types ¡

slide-31
SLIDE 31

A ¡Case ¡Study ¡

Client ¡

  • UK ¡telecoms ¡service ¡provider ¡
  • Voice ¡messages ¡to ¡text/email ¡
  • Global ¡customers ¡(no ¡easy ¡downPme) ¡

Problem ¡

  • Scalability ¡and ¡system ¡resilience ¡issues ¡
  • Huge ¡growth ¡curve ¡to ¡from ¡a ¡million ¡to ¡a ¡billion ¡

messages ¡per ¡month ¡

  • Costs ¡
slide-32
SLIDE 32

Pla^orm ¡Architecture ¡

Carrier Carrier Carrier Carrier 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

slide-33
SLIDE 33
slide-34
SLIDE 34

The ¡£10,000,000 ¡ ¡SoluPon ¡

Carrier Carrier Carrier Carrier Gateway Voice to Text Algorithms “Queue” Database Post Processing Shared Filesystem Enterprise Service Bus

*

* ¡SoluPon ¡does ¡not ¡include ¡actual ¡implementaPon ¡

slide-35
SLIDE 35
slide-36
SLIDE 36

My ¡team ¡was ¡given ¡the ¡enterprise ¡consultancy ¡ findings… ¡ …and ¡told ¡to ¡“do ¡that, ¡but ¡cheaper” ¡

slide-37
SLIDE 37
slide-38
SLIDE 38

Think ¡ differently! ¡

(or ¡even ¡just ¡stop ¡and ¡think) ¡

slide-39
SLIDE 39

Architecture is still important Architecture is still important

slide-40
SLIDE 40

Agile ¡EA: ¡PrioriPse ¡Service ¡Delivery ¡

Carrier Carrier Carrier Carrier Gateway Voice to Text Algorithms Integration Database Post Processing Shared Filesystem

Start by fixing storage

slide-41
SLIDE 41
slide-42
SLIDE 42
slide-43
SLIDE 43
slide-44
SLIDE 44
slide-45
SLIDE 45

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 ¡

slide-46
SLIDE 46

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

slide-47
SLIDE 47
slide-48
SLIDE 48
slide-49
SLIDE 49

Improving ¡Enterprise ¡Architecture ¡

Carrier Carrier Carrier Carrier Gateway Voice to Text Algorithms Integration Database Post Processing Storage Manager

Reduced Load Just shoehorn it in that

  • ther program

“She’ll be right” Scalable!

slide-50
SLIDE 50

Storage ¡Manager ¡Benefits ¡

  • Immediate ¡reduced ¡load ¡on ¡integraPon ¡

database ¡

  • Enabled ¡removal ¡of ¡code ¡from ¡systems ¡
  • Delivered ¡business ¡value ¡by ¡keeping ¡

customers ¡happy ¡

  • “The ¡best ¡sogware ¡we ¡have ¡ever ¡deployed” ¡

– OperaPons ¡director ¡

I’ll ¡come ¡back ¡to ¡this ¡

slide-51
SLIDE 51

What’s ¡wrong ¡with ¡this ¡picture? ¡

Voice to Text Algorithms! Storage Manager!

Just shoehorn it in that

  • ther program!

Scalable!!

slide-52
SLIDE 52

What ¡if… ¡

We ¡took ¡our ¡inspiraPon ¡from ¡ successful ¡Web-­‑scale ¡companies? ¡

slide-53
SLIDE 53

What ¡if… ¡

And ¡took ¡the ¡Pme ¡to ¡understand ¡our ¡ SLAs? ¡

slide-54
SLIDE 54

What ¡if… ¡

And ¡picked ¡the ¡right ¡technology ¡ soluPon? ¡

Not ¡just ¡the ¡one ¡we’re ¡being ¡sold? ¡

slide-55
SLIDE 55

What ¡if… ¡

We ¡built ¡a ¡scalable ¡compute ¡ pla^orm? ¡

slide-56
SLIDE 56
slide-57
SLIDE 57

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 ¡

slide-58
SLIDE 58

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

£0 ¡

Software Infrastructure

slide-59
SLIDE 59

Improving ¡Enterprise ¡Architecture ¡

Carrier Carrier Carrier Carrier Gateway Grid Integration Database Post Processing Storage Manager

Massively Massively Reduced Load “She’ll be right” Scalable! Scalable, sustainable!

Scalable Processing Platform

slide-60
SLIDE 60

Grid ¡Benefits ¡

  • Scalable, ¡resilient ¡pla^orm ¡
  • Aligned ¡with ¡business ¡goals ¡
  • Further ¡reduced ¡load ¡on ¡integraPon ¡database ¡
  • Set ¡architectural ¡pa:erns ¡
  • Deliver ¡business ¡value ¡by ¡processing ¡more ¡

messages ¡at ¡lower ¡cost ¡than ¡ever ¡before ¡

  • “The ¡best ¡sogware ¡we ¡have ¡ever ¡deployed” ¡

– OperaPons ¡director ¡

Be:er ¡every ¡Pme! ¡

slide-61
SLIDE 61

Let’s ¡do ¡the ¡sums ¡

slide-62
SLIDE 62

£10,000,000

Up-Front Cost of Bus Architecture

slide-63
SLIDE 63

≥ £10,000,001

People Cost for Bus Architecture

http://tech.groups.yahoo.com/group/service-orientated-architecture/message/13905

slide-64
SLIDE 64

~£20,000,000

Big SOA Costs

slide-65
SLIDE 65

£1,000,000

Actual Cost of Completed Project

slide-66
SLIDE 66

£0

Cost of Middleware

slide-67
SLIDE 67

The ¡Web ¡works ¡

And ¡its ¡economies ¡

  • f ¡scale ¡eclipse ¡

your ¡vendors’ ¡