7. “SOA: Principles of Service Design underwent
a thorough technical review involving over
60 reviewers from different vendors,
organizations, and professions across North
America, Europe, and Asia. The book has been
formally endorsed by members of major SOA
vendors, including IBM, Microsoft, Oracle,
BEA, and Intel.”
-- Thomas Erl
9. Nirvana Enterprise Architecture, or…
BPM
Service
Business
Service
Business
Service
Business
Service
ESB
Basic
Service
Basic
Service
Basic
Service
Basic
Service
Basic
Service
35. A Case Study
Client
• UK-based telecoms service provider
• Global customers (no easy downtime)
Problem
• Scalability and system resilience issues
• Huge growth curve to from a million to a
billion messages per month
• Costs
38. The £10* Million Solution
“Queue”
Database
Gateway
Carrier
Carrier
Carrier
Carrier
Shared
Filesystem
Enterprise Service Bus
Post
Processing
* Solution does not include actual implementation
Voice to Text
Algorithms
39.
40. ThoughtWorks was given the output from a
previous enterprise consultancy…
…and told to “do that, but cheaper”
44. Agile EA: Prioritise Service Delivery
Start by fixing
storage
Carrier
Carrier
Carrier
Carrier
Gateway
Integration
Database
Shared
Filesystem
Post
Processing
Voice to Text
Algorithms
45.
46.
47.
48.
49. Storage Manager Project Delivery
Small team
Java solution
3 Week Inception
Performance testing
throughout
14 iterations
– See Jones and Kua paper,
Agile 2009
Continuously built and
deployed for testing
50. Web-friendly Architecture
(mostly wallet-friendly too!)
Encapsulates
storage detail!
Fast!
Free!
Cacheable!
Jboss/Tomcat
Optimised disk
access!
Storage Manager
GPFS SAN
Spend £ on the
right
Infrastructure
Optimised server
config
59. Storage Manager Benefits
• Immediate reduced load on integration
database
• Enabled removal of code from systems
• Delivered business value by keeping
customers happy
• “The best software we have ever deployed”
– Operations director
I’ll come back to this
60.
61. What if…
We took our inspiration from
successful Web-scale companies?
66. Grid Project Delivery
Larger team
Java solution
3.5 Week Inception
Performance testing
throughout
18 iterations
Continuously built and
deployed for testing
69. Grid Benefits
•
•
•
•
•
Scalable, resilient platform
Aligned with business goals
Further reduced load on integration database
Set architectural patterns
Deliver business value by processing more
messages at lower cost than ever before
• “The best software we have ever deployed”
– Operations director
Better every time!
73. The Web works
And its economies
of scale eclipse
your vendors’
http://amzn.to/cqBBiq
Notes de l'éditeur
We’re doing SOA, but it’s painful and and risky. Our technology platform eclipses our business imperatives.The technical/organisational benefits hold true, but we want a better way to deliver
Manchester:There are folks that have made this work. Neil Walker (in the room?) has applied Guerrilla SOA style architecture and governance to this model successfully. This is an isolated success story however.
Your very own Minas Tirith!
Just buy more big iron and cluster it.Unthinking!Harder to achieve than “just throwing hardware at it”
Single set of widely adopted protocols and formatsLoosely coupled by defaultApplication model encourages federated caching
WS-Trust for tokensWS-federation for multiparty authentication and authorisation
A more modern French bridge!Architect: Norman Foster, and Englishman
TCP over TCP/IP?Reliable store and forward: think about crash recovery – who’s authoritativeBrokers? Scalability problemsProprietary interconnects? Depends if you can justify the cost!
Status codes: cordinationVerbs: reliabiityMedia types: service contracts!Hypermedia: protocolSemantics and Microformats: a business vocabulary for contracts
Voice to text conversation, thousands of conversions per second globally
High latency in the SLASometimes as much as 20 minutesLow contention problem domain, system highly amenable to parallelisation and horizontal scale outBut nothing actually built to exploit this property
An expensive act of faithThe Bus architecture “just works”No evidenceThe Bus architecture will scaleNo evidence for, much evidence againstThe bus architecture is simpleThe implementation isn’t though!
What if we drew our inspiration from successful Web-scale companies?What are our goals for growth? Reliability?Why not use a different technology?Why deliver incrementally?Guerrilla SOA!Start with scalable storage
Rethink designThink Web not EnterpriseThink about the customers, not just about ITAnd do it quickly because no design is complete without rapid validation through testing and implementation – NO NAVAL GAZING
Carrier gateway can be scaled with enterprise tech like queuesIntegration database too risky to touch, needs replacing in medium term, but in short term less load is goodPost processing out of scope for nowFile system is too slow, too messy, no governance, flakyVoice to text algorithms, no governance, no way to properly scale, no monitoring, no ability to adapt to changing workload
In one iteration, we created a skeletal storage serviceBased on Web standards, just like Amazon’s S3We used open source tools, libraries and operating systems
We put high loads through it, and measured its behaviourWe met out SLA. Easily.
We invested a single iterationWe got data that suggested our architectural approach would workCost of infrastructure, approximately $0We planned and built a system based on this empirical data
Small team4 devs, 1 architect, 1 analyst, 1 QAInceptionArchitecture, story gathering, estimation14 iterationsReporting Weekly showcasesTeam kanbanJava-based solutionBDD’d throughoutDSLs used for functional testing, very cool!Performance testing throughout!Jmeter, integrated into buildContinuously built and deployed for testingNo production surprises
Immediate reduced load on integration databaseHigher system stability/fewer disasters!Enabled removal of code from systemsLess to maintain, fewer places for bugs to hideDelivered business value by keeping customers happyMore messages got through, incidents decreased, carriers much happier
This time around, the technical approach was already understoodOur challenge was to build a larger system, with many more moving parts
Small team9 devs, 1 architect, 1 analyst, 2 QAInceptionArchitecture, story gathering, estimation14 iterationsReporting Weekly showcasesTeam kanbanJava-based solutionBDD’d throughoutBrowser-based testingDSLs used for functional testing, very cool!Performance testing throughout!Jmeter, integrated into buildContinuously built and deployed for testingNo production surprises
Scalable, resilient platformAdd more hardware, scale horizontallyHardware crashes, system continuesAligned with business goalsGrowthExceptional customer experienceLowering costsFurther reduced load on integration databaseHigher system stability/fewer disasters!Set architectural precedent Voice to text algorithms have a stable place to live, no longer shoe-horningA place for everything, and everything in its place
Remember the original cost? Around $25 million, without any implementation
Total cost of this projectAround $2.5 million. Complete, delivered, functioning.Delivering value to the business