SlideShare una empresa de Scribd logo
1 de 29
when web services go bad steve loughran hp laboratories March 2002 notes from the field
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],why is it so hard? web service development =
image storage and SVG rendering service ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],+1TB image store for customer photos
constraints ,[object Object],[object Object],basic asset store done: -SQL server IIS/ASP COM/MTS->Win2K/COM+  “real soon now” ,[object Object],[object Object]
SVG into XML-RPC <?xml version=&quot;1.0&quot;?><methodCall version=&quot;1.0&quot;> <methodName>render_svg</methodName> <params> <param><value><string> 110 </string></value></param> <param><value> <string> PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyIgPz4NCjwhRE9DVFlQRSBzdmcgUFVC TElDICItLy9XM0MvL0RURCBTVkcgMjAwMDExMDIvL0VOIg0KICJodHRwOi8vd3d3LnczLm9yZy9U Ui8yMDAwL0NSLVNWRy0yMDAwMTEwMi9EVEQvc3ZnLTIwMDAxMTAyLmR0ZCI+DQo8c3ZnIHdpZHRo PSIxMDI0cHQiIGhlaWdodD0iMTAyNHB0Ij4NCiA8ZyBpZD0icGljdHVyZSIgPjxpbWFnZSB3aWR0 aD0iMTAyNHB0IiBoZWlnaHQ9Ijc2OHB0Ig0KICAgeGxpbms6aHJlZj0iaHR0cDovL3N0ZWx2aW86 ODA4MC9zdW5zZXQuanBnIi8+PC9nPg0KPHRleHQgeD0iMjlwdCIgeT0iODVwdCINCiBzdHlsZT0i Zm9udC1mYW1pbHk6SGVsdmV0aWNhO2ZvbnQtc2l6ZTozNnB0O2ZpbGw6I2QwZDBkMDsiDQo+a2Vp dGggaXMgKG1heWJlKSBzZXh5PC90ZXh0Pg0KPC9zdmc+DQoNCg0K</ string></value> </param> <param><value><int> 72 </int></value></param> </params></methodCall> <?xml version=&quot;1.0&quot; standalone=&quot;no&quot; ?> <!DOCTYPE svg PUBLIC &quot;-//W3C//DTD SVG 20001102//EN&quot; &quot;http://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg-20001102.dtd&quot;> <svg width=&quot;1024pt&quot; height=&quot;768pt&quot;> <g id=&quot;picture&quot; ><image width=“1024pt&quot; height=“768pt&quot; xlink:href=&quot;http://stelvio:8080/sunset.jpg &quot;/></g> <text x=&quot;29pt&quot; y=&quot;85pt&quot; style=&quot;font-family:Helvetica;font-size:36pt;fill:#d0d0d0;“> Having an excellent holiday! </text> </svg>
Response <?xml version=&quot;1.0&quot;?> <methodResponse> <params> <param><value><string>2453</string></value></param> <param><value><string> http://stelvio:8080/hpsvgservlet/fetch?ref=_2_ec5132765b_4553.jpg-110 </string></value> </param> </params> </methodResponse>
what we ended up with ArrowPoint Apache Apache Bluestone x4 Bluestone x4 IIS/ASP IIS/ASP IIS/ASP PDC + DNS file store SQL server SQL server remote renderer store
what worked? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
(nearly) no more WORKSFORME all server-side problems could be replicated ,[object Object],[object Object],[object Object],just integration… networking, client code issues (proxies, wrong URL, authentication)
ANT + JUnit ,[object Object],[object Object],[object Object]
security ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
configuration ,[object Object],[object Object],[object Object],[object Object]
what didn’t work: turning a web site into a web service
what went wrong ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
operations paranoia ,[object Object],[object Object],[object Object],[object Object],effect #1: threat to weekends effect #2: threat to schedule effect #3: we stopped telling them of “issues”
error messages java.io.NoRoute ToHostException if you don’t have Java/C# engineers on the ops team, you get called in for every  message fix #1: “defect” tracking of operations issues, from early days of the app fix #2: always identify the errant system in fault codes
HTTP ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
firefighting ,[object Object],[object Object],[object Object],[object Object]
complexity is the enemy availability is the primary casualty of complexity availability  A(X)  ≝ P(X)  is working 0  ≤ A(X) ≤ 1 service S depends on services  s 1..n A(S) = A(node)*A(s 1  )* A(s 2  )…A(s n  ) redundancy: A(n 1 +n 2 )=A(n 1 )+A(n 2 )-A(n 1 )A(n 2 ) cost of redundancy depends on scalability of service: O(1), O(n), O(n 2 ), O(2 n ) …
a modest proposal: deployment-centric software processes
operations  use cases/ XP stories ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
deployment and operations  test cases ,[object Object],[object Object],[object Object],[object Object],[object Object]
operations  issues  are defects treat all deployment issues as defects to track don’t just fix it once, at it will crop up again.  you  need  regression tests you  need  a repository of defects for easy searching.  or they will phone you at 3am
deploy early  deploy often ,[object Object],[object Object],[object Object],[object Object],[object Object]
instrument with JMX (Java) WMI (.NET) a public  class ServiceManager   implements ServiceManagerMBean  { protected Service _owner; protected int _serviceTransactionCount; protected int _serviceUseCount; protected double _sellThroughDollars; public synchronized  void bookSales(int count, double dollars) { _sellThroughDollars+=dollars; _serviceUseCount+=count; _serviceTransactionCount++; } public Double  getSellThroughDollars() { return new Double(_sellThroughDollars); }
current work SmartFrog   Distributed deployment framework ,[object Object],[object Object],[object Object],www.smartfrog.org
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],HPLabs research
SmartFrog Deployment Engine SmartFrog Node SmartFrog Components Description / Code Repositories RMI RMI Deploy Descriptions SmartFrog Daemon SmartFrog Node SmartFrog Components SmartFrog Daemon SmartFrog Node SmartFrog Components SmartFrog Daemon RMI / (SOAP) ,[object Object],[object Object],[object Object]
summary ,[object Object],[object Object],[object Object],[object Object],[object Object]

Más contenido relacionado

La actualidad más candente

Automated Performance Testing With J Meter And Maven
Automated  Performance  Testing With  J Meter And  MavenAutomated  Performance  Testing With  J Meter And  Maven
Automated Performance Testing With J Meter And Maven
PerconaPerformance
 
Asynchronous programming in .net 4.5 with c#
Asynchronous programming in .net 4.5 with c#Asynchronous programming in .net 4.5 with c#
Asynchronous programming in .net 4.5 with c#
Binu Bhasuran
 
Asynchronous t sql
Asynchronous t sqlAsynchronous t sql
Asynchronous t sql
Remus Rusanu
 
PHP North-East - Automated Deployment
PHP North-East - Automated DeploymentPHP North-East - Automated Deployment
PHP North-East - Automated Deployment
Michael Peacock
 

La actualidad más candente (20)

Automated Performance Testing With J Meter And Maven
Automated  Performance  Testing With  J Meter And  MavenAutomated  Performance  Testing With  J Meter And  Maven
Automated Performance Testing With J Meter And Maven
 
Asynchronous programming in .net 4.5 with c#
Asynchronous programming in .net 4.5 with c#Asynchronous programming in .net 4.5 with c#
Asynchronous programming in .net 4.5 with c#
 
Loadrunner vs Jmeter
Loadrunner vs JmeterLoadrunner vs Jmeter
Loadrunner vs Jmeter
 
C# 5 deep drive into asynchronous programming
C# 5 deep drive into asynchronous programmingC# 5 deep drive into asynchronous programming
C# 5 deep drive into asynchronous programming
 
FreeRTOS basics (Real time Operating System)
FreeRTOS basics (Real time Operating System)FreeRTOS basics (Real time Operating System)
FreeRTOS basics (Real time Operating System)
 
Jmeter
JmeterJmeter
Jmeter
 
Reliability and clock synchronization
Reliability and clock synchronizationReliability and clock synchronization
Reliability and clock synchronization
 
Salt conf15 presentation-william-cannon
Salt conf15 presentation-william-cannonSalt conf15 presentation-william-cannon
Salt conf15 presentation-william-cannon
 
QA. Load Testing
QA. Load TestingQA. Load Testing
QA. Load Testing
 
Load Runner
Load RunnerLoad Runner
Load Runner
 
Load Runner
Load RunnerLoad Runner
Load Runner
 
Asynchronous t sql
Asynchronous t sqlAsynchronous t sql
Asynchronous t sql
 
RTOS CASE STUDY OF CODING FOR SENDING APPLIC...
                                RTOS  CASE STUDY OF CODING FOR SENDING APPLIC...                                RTOS  CASE STUDY OF CODING FOR SENDING APPLIC...
RTOS CASE STUDY OF CODING FOR SENDING APPLIC...
 
PHP North-East - Automated Deployment
PHP North-East - Automated DeploymentPHP North-East - Automated Deployment
PHP North-East - Automated Deployment
 
How to Simplify Load Testing: JMeter and Beyond
How to Simplify Load Testing: JMeter and BeyondHow to Simplify Load Testing: JMeter and Beyond
How to Simplify Load Testing: JMeter and Beyond
 
LoadRunner walkthrough
LoadRunner walkthroughLoadRunner walkthrough
LoadRunner walkthrough
 
Prometheus design and philosophy
Prometheus design and philosophy   Prometheus design and philosophy
Prometheus design and philosophy
 
Async-await best practices in 10 minutes
Async-await best practices in 10 minutesAsync-await best practices in 10 minutes
Async-await best practices in 10 minutes
 
Introduction to Reactive Java
Introduction to Reactive JavaIntroduction to Reactive Java
Introduction to Reactive Java
 
Reactive Java (GeeCON 2014)
Reactive Java (GeeCON 2014)Reactive Java (GeeCON 2014)
Reactive Java (GeeCON 2014)
 

Destacado

HA Hadoop -ApacheCon talk
HA Hadoop -ApacheCon talkHA Hadoop -ApacheCon talk
HA Hadoop -ApacheCon talk
Steve Loughran
 

Destacado (19)

Hadoop & Hep
Hadoop & HepHadoop & Hep
Hadoop & Hep
 
Benchmarking
BenchmarkingBenchmarking
Benchmarking
 
Deploying On EC2
Deploying On EC2Deploying On EC2
Deploying On EC2
 
Beyond Unit Testing
Beyond Unit TestingBeyond Unit Testing
Beyond Unit Testing
 
HA Hadoop -ApacheCon talk
HA Hadoop -ApacheCon talkHA Hadoop -ApacheCon talk
HA Hadoop -ApacheCon talk
 
Help! My Hadoop doesn't work!
Help! My Hadoop doesn't work!Help! My Hadoop doesn't work!
Help! My Hadoop doesn't work!
 
Testing
TestingTesting
Testing
 
The Wondrous Curse of Interoperability
The Wondrous Curse of InteroperabilityThe Wondrous Curse of Interoperability
The Wondrous Curse of Interoperability
 
Hadoop: today and tomorrow
Hadoop: today and tomorrowHadoop: today and tomorrow
Hadoop: today and tomorrow
 
My other computer is a datacentre - 2012 edition
My other computer is a datacentre - 2012 editionMy other computer is a datacentre - 2012 edition
My other computer is a datacentre - 2012 edition
 
Hadoop Futures
Hadoop FuturesHadoop Futures
Hadoop Futures
 
New Roles In The Cloud
New Roles In The CloudNew Roles In The Cloud
New Roles In The Cloud
 
Hadoop and Kerberos: the Madness Beyond the Gate: January 2016 edition
Hadoop and Kerberos: the Madness Beyond the Gate: January 2016 editionHadoop and Kerberos: the Madness Beyond the Gate: January 2016 edition
Hadoop and Kerberos: the Madness Beyond the Gate: January 2016 edition
 
Farming hadoop in_the_cloud
Farming hadoop in_the_cloudFarming hadoop in_the_cloud
Farming hadoop in_the_cloud
 
Spark Summit East 2017: Apache spark and object stores
Spark Summit East 2017: Apache spark and object storesSpark Summit East 2017: Apache spark and object stores
Spark Summit East 2017: Apache spark and object stores
 
Apache Spark and Object Stores
Apache Spark and Object StoresApache Spark and Object Stores
Apache Spark and Object Stores
 
Application Architecture For The Cloud
Application Architecture For The CloudApplication Architecture For The Cloud
Application Architecture For The Cloud
 
Household INFOSEC in a Post-Sony Era
Household INFOSEC in a Post-Sony EraHousehold INFOSEC in a Post-Sony Era
Household INFOSEC in a Post-Sony Era
 
Hadoop gets Groovy
Hadoop gets GroovyHadoop gets Groovy
Hadoop gets Groovy
 

Similar a When Web Services Go Bad

086 Microsoft Application Platform 2009 2010
086 Microsoft Application Platform 2009 2010086 Microsoft Application Platform 2009 2010
086 Microsoft Application Platform 2009 2010
GeneXus
 
10 years in Network Protocol testing L2 L3 L4-L7 Tcl Python Manual and Automa...
10 years in Network Protocol testing L2 L3 L4-L7 Tcl Python Manual and Automa...10 years in Network Protocol testing L2 L3 L4-L7 Tcl Python Manual and Automa...
10 years in Network Protocol testing L2 L3 L4-L7 Tcl Python Manual and Automa...
Mullaiselvan Mohan
 
SAMKUMAR- Sr.Linux SystemAdministrator (1)
SAMKUMAR- Sr.Linux SystemAdministrator (1)SAMKUMAR- Sr.Linux SystemAdministrator (1)
SAMKUMAR- Sr.Linux SystemAdministrator (1)
gandi samkumar
 
Surekha_haoop_exp
Surekha_haoop_expSurekha_haoop_exp
Surekha_haoop_exp
surekhakadi
 
MS Cloud Day - Deploying and monitoring windows azure applications
MS Cloud Day - Deploying and monitoring windows azure applicationsMS Cloud Day - Deploying and monitoring windows azure applications
MS Cloud Day - Deploying and monitoring windows azure applications
Spiffy
 
Taming Deployment With Smart Frog
Taming Deployment With Smart FrogTaming Deployment With Smart Frog
Taming Deployment With Smart Frog
Steve Loughran
 

Similar a When Web Services Go Bad (20)

Open Source XMPP for Cloud Services
Open Source XMPP for Cloud ServicesOpen Source XMPP for Cloud Services
Open Source XMPP for Cloud Services
 
Fault tolerance
Fault toleranceFault tolerance
Fault tolerance
 
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
 
086 Microsoft Application Platform 2009 2010
086 Microsoft Application Platform 2009 2010086 Microsoft Application Platform 2009 2010
086 Microsoft Application Platform 2009 2010
 
How to Configure the CA Workload Automation System Agent agentparm.txt File
How to Configure the CA Workload Automation System Agent agentparm.txt FileHow to Configure the CA Workload Automation System Agent agentparm.txt File
How to Configure the CA Workload Automation System Agent agentparm.txt File
 
North east user group tour
North east user group tourNorth east user group tour
North east user group tour
 
Devfest 2023 - Service Weaver Introduction - Taipei.pdf
Devfest 2023 - Service Weaver Introduction - Taipei.pdfDevfest 2023 - Service Weaver Introduction - Taipei.pdf
Devfest 2023 - Service Weaver Introduction - Taipei.pdf
 
10 years in Network Protocol testing L2 L3 L4-L7 Tcl Python Manual and Automa...
10 years in Network Protocol testing L2 L3 L4-L7 Tcl Python Manual and Automa...10 years in Network Protocol testing L2 L3 L4-L7 Tcl Python Manual and Automa...
10 years in Network Protocol testing L2 L3 L4-L7 Tcl Python Manual and Automa...
 
.net Framework
.net Framework.net Framework
.net Framework
 
SAMKUMAR- Sr.Linux SystemAdministrator (1)
SAMKUMAR- Sr.Linux SystemAdministrator (1)SAMKUMAR- Sr.Linux SystemAdministrator (1)
SAMKUMAR- Sr.Linux SystemAdministrator (1)
 
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh VariaCloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
 
Auto sre with keptn
Auto sre with keptnAuto sre with keptn
Auto sre with keptn
 
Spring and Pivotal Application Service - SpringOne Tour Dallas
Spring and Pivotal Application Service - SpringOne Tour DallasSpring and Pivotal Application Service - SpringOne Tour Dallas
Spring and Pivotal Application Service - SpringOne Tour Dallas
 
Surekha_haoop_exp
Surekha_haoop_expSurekha_haoop_exp
Surekha_haoop_exp
 
NodeJS guide for beginners
NodeJS guide for beginnersNodeJS guide for beginners
NodeJS guide for beginners
 
MS Cloud Day - Deploying and monitoring windows azure applications
MS Cloud Day - Deploying and monitoring windows azure applicationsMS Cloud Day - Deploying and monitoring windows azure applications
MS Cloud Day - Deploying and monitoring windows azure applications
 
Transcend Automation's Kepware OPC Products
Transcend Automation's Kepware OPC ProductsTranscend Automation's Kepware OPC Products
Transcend Automation's Kepware OPC Products
 
IRJET- Real Time Monitoring of Servers with Prometheus and Grafana for High A...
IRJET- Real Time Monitoring of Servers with Prometheus and Grafana for High A...IRJET- Real Time Monitoring of Servers with Prometheus and Grafana for High A...
IRJET- Real Time Monitoring of Servers with Prometheus and Grafana for High A...
 
Azure migration
Azure migrationAzure migration
Azure migration
 
Taming Deployment With Smart Frog
Taming Deployment With Smart FrogTaming Deployment With Smart Frog
Taming Deployment With Smart Frog
 

Más de Steve Loughran

2013 11-19-hoya-status
2013 11-19-hoya-status2013 11-19-hoya-status
2013 11-19-hoya-status
Steve Loughran
 

Más de Steve Loughran (20)

Hadoop Vectored IO
Hadoop Vectored IOHadoop Vectored IO
Hadoop Vectored IO
 
The age of rename() is over
The age of rename() is overThe age of rename() is over
The age of rename() is over
 
What does Rename Do: (detailed version)
What does Rename Do: (detailed version)What does Rename Do: (detailed version)
What does Rename Do: (detailed version)
 
Put is the new rename: San Jose Summit Edition
Put is the new rename: San Jose Summit EditionPut is the new rename: San Jose Summit Edition
Put is the new rename: San Jose Summit Edition
 
@Dissidentbot: dissent will be automated!
@Dissidentbot: dissent will be automated!@Dissidentbot: dissent will be automated!
@Dissidentbot: dissent will be automated!
 
PUT is the new rename()
PUT is the new rename()PUT is the new rename()
PUT is the new rename()
 
Extreme Programming Deployed
Extreme Programming DeployedExtreme Programming Deployed
Extreme Programming Deployed
 
Testing
TestingTesting
Testing
 
I hate mocking
I hate mockingI hate mocking
I hate mocking
 
What does rename() do?
What does rename() do?What does rename() do?
What does rename() do?
 
Dancing Elephants: Working with Object Storage in Apache Spark and Hive
Dancing Elephants: Working with Object Storage in Apache Spark and HiveDancing Elephants: Working with Object Storage in Apache Spark and Hive
Dancing Elephants: Working with Object Storage in Apache Spark and Hive
 
Apache Spark and Object Stores —for London Spark User Group
Apache Spark and Object Stores —for London Spark User GroupApache Spark and Object Stores —for London Spark User Group
Apache Spark and Object Stores —for London Spark User Group
 
Hadoop, Hive, Spark and Object Stores
Hadoop, Hive, Spark and Object StoresHadoop, Hive, Spark and Object Stores
Hadoop, Hive, Spark and Object Stores
 
Hadoop and Kerberos: the Madness Beyond the Gate
Hadoop and Kerberos: the Madness Beyond the GateHadoop and Kerberos: the Madness Beyond the Gate
Hadoop and Kerberos: the Madness Beyond the Gate
 
Slider: Applications on YARN
Slider: Applications on YARNSlider: Applications on YARN
Slider: Applications on YARN
 
YARN Services
YARN ServicesYARN Services
YARN Services
 
Datacentre stack
Datacentre stackDatacentre stack
Datacentre stack
 
Overview of slider project
Overview of slider projectOverview of slider project
Overview of slider project
 
2014 01-02-patching-workflow
2014 01-02-patching-workflow2014 01-02-patching-workflow
2014 01-02-patching-workflow
 
2013 11-19-hoya-status
2013 11-19-hoya-status2013 11-19-hoya-status
2013 11-19-hoya-status
 

Último

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 

When Web Services Go Bad

  • 1. when web services go bad steve loughran hp laboratories March 2002 notes from the field
  • 2.
  • 3.
  • 4.
  • 5. SVG into XML-RPC <?xml version=&quot;1.0&quot;?><methodCall version=&quot;1.0&quot;> <methodName>render_svg</methodName> <params> <param><value><string> 110 </string></value></param> <param><value> <string> PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyIgPz4NCjwhRE9DVFlQRSBzdmcgUFVC TElDICItLy9XM0MvL0RURCBTVkcgMjAwMDExMDIvL0VOIg0KICJodHRwOi8vd3d3LnczLm9yZy9U Ui8yMDAwL0NSLVNWRy0yMDAwMTEwMi9EVEQvc3ZnLTIwMDAxMTAyLmR0ZCI+DQo8c3ZnIHdpZHRo PSIxMDI0cHQiIGhlaWdodD0iMTAyNHB0Ij4NCiA8ZyBpZD0icGljdHVyZSIgPjxpbWFnZSB3aWR0 aD0iMTAyNHB0IiBoZWlnaHQ9Ijc2OHB0Ig0KICAgeGxpbms6aHJlZj0iaHR0cDovL3N0ZWx2aW86 ODA4MC9zdW5zZXQuanBnIi8+PC9nPg0KPHRleHQgeD0iMjlwdCIgeT0iODVwdCINCiBzdHlsZT0i Zm9udC1mYW1pbHk6SGVsdmV0aWNhO2ZvbnQtc2l6ZTozNnB0O2ZpbGw6I2QwZDBkMDsiDQo+a2Vp dGggaXMgKG1heWJlKSBzZXh5PC90ZXh0Pg0KPC9zdmc+DQoNCg0K</ string></value> </param> <param><value><int> 72 </int></value></param> </params></methodCall> <?xml version=&quot;1.0&quot; standalone=&quot;no&quot; ?> <!DOCTYPE svg PUBLIC &quot;-//W3C//DTD SVG 20001102//EN&quot; &quot;http://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg-20001102.dtd&quot;> <svg width=&quot;1024pt&quot; height=&quot;768pt&quot;> <g id=&quot;picture&quot; ><image width=“1024pt&quot; height=“768pt&quot; xlink:href=&quot;http://stelvio:8080/sunset.jpg &quot;/></g> <text x=&quot;29pt&quot; y=&quot;85pt&quot; style=&quot;font-family:Helvetica;font-size:36pt;fill:#d0d0d0;“> Having an excellent holiday! </text> </svg>
  • 6. Response <?xml version=&quot;1.0&quot;?> <methodResponse> <params> <param><value><string>2453</string></value></param> <param><value><string> http://stelvio:8080/hpsvgservlet/fetch?ref=_2_ec5132765b_4553.jpg-110 </string></value> </param> </params> </methodResponse>
  • 7. what we ended up with ArrowPoint Apache Apache Bluestone x4 Bluestone x4 IIS/ASP IIS/ASP IIS/ASP PDC + DNS file store SQL server SQL server remote renderer store
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13. what didn’t work: turning a web site into a web service
  • 14.
  • 15.
  • 16. error messages java.io.NoRoute ToHostException if you don’t have Java/C# engineers on the ops team, you get called in for every message fix #1: “defect” tracking of operations issues, from early days of the app fix #2: always identify the errant system in fault codes
  • 17.
  • 18.
  • 19. complexity is the enemy availability is the primary casualty of complexity availability A(X) ≝ P(X) is working 0 ≤ A(X) ≤ 1 service S depends on services s 1..n A(S) = A(node)*A(s 1 )* A(s 2 )…A(s n ) redundancy: A(n 1 +n 2 )=A(n 1 )+A(n 2 )-A(n 1 )A(n 2 ) cost of redundancy depends on scalability of service: O(1), O(n), O(n 2 ), O(2 n ) …
  • 20. a modest proposal: deployment-centric software processes
  • 21.
  • 22.
  • 23. operations issues are defects treat all deployment issues as defects to track don’t just fix it once, at it will crop up again. you need regression tests you need a repository of defects for easy searching. or they will phone you at 3am
  • 24.
  • 25. instrument with JMX (Java) WMI (.NET) a public class ServiceManager implements ServiceManagerMBean { protected Service _owner; protected int _serviceTransactionCount; protected int _serviceUseCount; protected double _sellThroughDollars; public synchronized void bookSales(int count, double dollars) { _sellThroughDollars+=dollars; _serviceUseCount+=count; _serviceTransactionCount++; } public Double getSellThroughDollars() { return new Double(_sellThroughDollars); }
  • 26.
  • 27.
  • 28.
  • 29.

Notas del editor

  1. 06/10/09 This is meant to conjure up the vision of some late night cable TV show “we take you behind the scenes of colocation sites, finding the worst web services in existence”, interviewing the people using them, managing them, integrating them, before finally catching up with the developer team on their doorsteps, asking them “why did you produce such a nightmare?” If such a show existed, would you be on it? I am going to tell you how to avoid that, without getting the government to give you a new identity under the Developer Relocation Program. Would I be on it? I would have liked to have been on it before the project was over. This is a photo of me 6000 foot up one of the cascade peaks on a technical spring mountaineering weekend, and I was getting voicemail about config problems. It would have been nice to have had a new identity then. As it is I had feign cellphone coverage failure