lessons learned in large http centric systems
play

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


  1. Lessons ¡Learned ¡in ¡Large ¡HTTP-­‑ Centric ¡Systems ¡ Jim ¡Webber ¡ h:p://jimwebber.org ¡ @jimwebber ¡

  2. Today’s ¡Enterprise ¡Architecture ¡

  3. Tomorrow’s ¡Enterprise ¡Architecture ¡ BPM ¡ Services ¡ Business ¡ Business ¡ Business ¡ Service ¡ Service ¡ Service ¡ Data ¡ Data ¡ Data ¡ Data ¡ Data ¡ Service ¡ Service ¡ Service ¡ Service ¡ Service ¡

  4. Nirvana ¡Enterprise ¡Architecture, ¡or… ¡ BPM ¡ Business ¡ Business ¡ Business ¡ Service ¡ Service ¡ Service ¡ Service ¡ ESB ¡ Basic ¡ Basic ¡ Basic ¡ Basic ¡ Basic ¡ Service ¡ Service ¡ Service ¡ Service ¡ Service ¡

  5. ESB ¡-­‑ ¡Erroneous ¡SpagheM ¡Box? ¡ Enterprise ¡Service ¡Bus ¡

  6. ¡ ¡ ¡ ¡ ¡

  7. But ¡we ¡sPll ¡do ¡it. ¡

  8. Why? ¡ Because ¡it’s ¡“less ¡risky” ¡

  9. Why? ¡ Because ¡that’s ¡what ¡the ¡market ¡does ¡

  10. Why? ¡ Because ¡we ¡need ¡the ¡-­‑iliPes ¡

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

  12. Web ¡Scale! ¡

  13. Tradi'onal ¡Enterprise ¡ ¡Security ¡

  14. %*"1-,*( %*"1-,*( End ¡to ¡End ¡Secure ¡ "*%'3",*%( "*%'3",*%( 2'+-,#2( %*,3"-!4( %*,3"-!4( Messaging ¡ &'-$!6!'6&'-$!( -$!*")*5-#"4( -$!*")*5-#"4( .*/(0*"1-,*(2'+-,( .*/(0*"1-,*(2'+-,( )*%%#+*(!"#$%7*"( )*%%#+*(&"',*%%-$+( )*%%#+*(&"',*%%-$+( !"#$%&'"!( !"#$%&'"!( !"&/#%*0'123"4'!"#$%&"' ?@!A1#/)*B' ()*+,-%).'!"&/#%*0'123"4'524*"6*' )"&/#"'&24*"6*' End ¡to ¡End ¡Secure ¡ !%74"89"4&#0:*"8';)7'*#+4)<"#' ConversaPons ¡ !"#$%&"' !"#$%&"' ="4">9+;"48')"&/#%*0'&24*"6*'*23"4' !%74"89"4&#0:*"8';)7'*#+4)<"#' 5+4&"-9"6:%#"')"&/#%*0'&24*"6*'*23"4'

  15. Security ¡Tokens ¡ !"#$%&'()*+,"-)!"%.&#") !"#$%&'()*+,"-)!"%.&#") /0!1*%$2'3) /0!1*%$2'3) !"#$%&'() !"#$%&'() *+,"-) *+,"-) and ¡claims ¡ 657&8) 657&8) 657&8) 657&8) 4+5&#() 657&8) 4+5&#() 657&8) !"#$%&'()*+,"-)!"%.&#") /0!1*%$2'3) !"#$%&'() *+,"-) 657&8) 657&8) 4+5&#() 657&8) !"#$%&'(' !"#$%&')' *+',$-%.$/0'120.0&3$-4' FederaPng ¡access ¡ =.0&3/>' =.0&3/>' ?2"<%.02'@A6AB' C2"<%.02'@A6AB' with ¡tokens ¡ G+',$-%.$/0' D+'E0/'6"F0&' 120.0&3$-4' :0;8043&9' :0;8043&9' 402<%10' 402<%10' 5+'62$&4702'401820'#044$90'

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

  17. (#")*"'+",-".&"' !",-".&"'&#")*"/' 8"++)9"2'!",34':'5' 8"++)9"2'!",34':'3' !"#$%&"' !"#$%&"' 8"++)9"2'!",34':'3';'5' 0&12'!",34'56375' <"+"./2'!",34':'32'0&1'<",-"+*"/' !",-".&"'0&12'56'3' =./'

  18. Bottleneck 2#)*+)&,-*' /0%"*(')110%&),-*' &--#3%*)(-#' No trust Crash Denial of recovery? Service !"#$%&"' !"#$%&"' !"#$%&"' (#)*+)&,-*'&-*(".(' 67+%*"++'&-41-*"*('%*("#)&,-*+' 2#)*+)&,-*'&-*(#-0'4"++)5"+'

  19. Hello ¡World! ¡ <?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>

  20. The ¡Web ¡is ¡an ¡applica'on ¡pla<orm ¡ Verbs ¡ Status ¡codes ¡ Media ¡ Types ¡

  21. 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 ¡

  22. Pla^orm ¡Architecture ¡ Where’s my Bottleneck Nightmare! file gone? Carrier Carrier Integration Shared Carrier Gateway Database Filesystem Carrier Voice to Post Text Processing Algorithms Fix things Shoehorn it up here in that other program

  23. The ¡£10,000,000 ¡ ¡SoluPon ¡ * “Queue” Shared Gateway Database Filesystem Carrier Carrier Carrier Carrier Enterprise Service Bus Voice to Post Text Processing Algorithms * ¡SoluPon ¡does ¡not ¡include ¡actual ¡implementaPon ¡

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

  25. Think ¡ differently! ¡ (or ¡even ¡just ¡stop ¡and ¡think) ¡

  26. Architecture is still important Architecture is still important

  27. Agile ¡EA: ¡PrioriPse ¡Service ¡Delivery ¡ Start by fixing storage Carrier Carrier Integration Shared Carrier Gateway Database Filesystem Carrier Voice to Post Text Processing Algorithms

  28. Storage ¡Manager ¡Project ¡Delivery ¡ Small ¡team ¡ Java ¡solu'on ¡ 3 ¡Week ¡Incep'on ¡ Performance ¡tes'ng ¡ throughout ¡ – See ¡Jones ¡and ¡Kua ¡paper, ¡ 14 ¡itera'ons ¡ Agile ¡2009 ¡ Con'nuously ¡built ¡and ¡ deployed ¡for ¡tes'ng ¡

  29. Web-­‑friendly ¡Architecture ¡ (mostly ¡wallet-­‑friendly ¡too!) ¡ Encapsulates storage detail! Fast! Free! Cacheable! Jboss/Tomcat Optimised Optimised Storage Manager disk access! server config GPFS SAN Spend £ ¡ on the right Infrastructure

  30. Improving ¡Enterprise ¡Architecture ¡ Reduced Scalable! Load Carrier Carrier Integration Storage Carrier Gateway Database Manager Carrier Voice to Post Text Processing Algorithms “She’ll be Just shoehorn right” it in that other program

  31. 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 ¡

  32. What’s ¡wrong ¡with ¡this ¡picture? ¡ Scalable! ! Storage Manager ! Voice to Text Algorithms ! Just shoehorn it in that other program !

  33. What ¡if… ¡ We ¡took ¡our ¡inspiraPon ¡from ¡ successful ¡Web-­‑scale ¡companies? ¡

Recommend


More recommend