SlideShare a Scribd company logo
Building stable applications
with PHP and 3rd
party services
What does a stable application look like?
Behaviour is in line with expectations:
Mainly unaffected by application environment
Mainly unaffected by infrastructure changes
Service quality is acceptable
What promotes application instability?
Application instability is promoted when code is:
Tightly coupled and overly complex / simple
Dependent on 3rd
party code / services
Uncoupled but fails to solve problems
How can we promote application stability?
We can promote application stability by:
Understanding the problems we're solving
Learning from and adapting to failure
Testing against expected outcomes
Applications evolve....
In the beginning, quickly add new features
It started as a blog and now....
Frankencode!
_
q[-_-]p
| | “ | |
|| ||
# #
A challenge for all of us
Balancing pragmatism and perfectionism
Over time we can expect:
Existing bugs found and new bugs introduced
New requirements / enhanced functionality
People will join and leave project teams
New requirements and enhancements....
We can promote application stability by:
Understanding the problems we're solving
Learning from and adapting to failure
Testing against expected outcomes
High level requirement analysis
Who is using this application / feature?
What is the impact of using /not using it?
When it comes to the “how to”....
We have to consider our approach:
Develop custom features from the ground up?
Leverage an existing library or service?
A mixture of the above?
Additional factors should affect the choice....
Consider:
Cost of implementation / maintenance
Cost of failing to implement / maintain
Specific business rules
Available budget
Timeline
Not enough information to make a choice
How can we fill gaps in our understanding?
Rapid prototyping
We can promote application stability by:
Understanding the problems we're solving
Learning from and adapting to failure
Testing against expected outcomes
Make a smaller MVP....
Prove a concept:
Fail fast, review and adapt
Understand challenges
Quick implementation
Remember to stop
Remembering to stop
What are we trying to achieve?
What should the specific outcomes be?
Have we met / Can we meet the outcomes?
We can promote application stability by:
Understanding the problems we're solving
Learning from and adapting to failure
Testing against expected outcomes
Start by writing your test definitions
Live coding demo
When we know the implications we can
make better estimates....
Choosing to leverage a 3rd
party service?
Think carefully and ask questions
Will the application break if the service fails?
What is the impact if the application breaks?
What is the impact if it doesn't break?
Good questions, we need to go deeper....
3rd
party service risk questions
What happens if the service provider:
goes out of business?
deprecates the API we're using?
changes arrangements for API access?
Don't rush in, design expecting failure....
Real world lessons:
Design based on expecting services to fail
Netflix infrastructure on AWS
"The best way to avoid failure is to fail constantly"
Source: http://techblog.netflix.com/2010/12/5-lessons-weve-learned-using-aws.html
Netflix contributing to the community
"we are now proud to announce that the source code for
the founding member of the Simian Army, Chaos
Monkey, is available to the community."
Source: http://techblog.netflix.com/2012/07/chaos-monkey-released-into-wild.html
Netflix Simian Army
"The Simian Army is a suite of tools for keeping your cloud
operating in top form. Chaos Monkey, the first member, is a
resiliency tool that helps ensure that your applications can
tolerate random instance failures"
https://github.com/Netflix/SimianArmy
Closing thoughts and questions
/ Thanks
_ /
q[-_-]p
| | “ | |
|| ||
# #

More Related Content

PPTX
Advanced software testing course
PPTX
PDF
Should you be your own judge?
DOC
Reference_JeremyWiseman_2016
PPTX
Life of a Tester v1
PPTX
Softtesting training
PDF
Offshore tips sharing_2.0
Advanced software testing course
Should you be your own judge?
Reference_JeremyWiseman_2016
Life of a Tester v1
Softtesting training
Offshore tips sharing_2.0

What's hot (18)

PPTX
Background thread
DOCX
Initail Skills Analysis
DOCX
Initial skills analysis
DOCX
Initial+skills+analysis+ (1)
DOCX
Initialskillsanalysis
DOCX
Initial skills analysis
DOCX
Initial skills analysis
DOCX
initial skills analysis
DOCX
Skills-Media
DOCX
Initial Skills Analysis. Scott Appleyard
DOCX
Skills Analysis Sheet
DOCX
Initial skills analysis
DOCX
Initial Skills Analysis
DOCX
Initial skills analysis
DOCX
initial skills analysis
DOCX
Initial skills analysis
DOCX
Initialskillsanalysis
DOCX
Initial skills analysis Adam Gofton
Background thread
Initail Skills Analysis
Initial skills analysis
Initial+skills+analysis+ (1)
Initialskillsanalysis
Initial skills analysis
Initial skills analysis
initial skills analysis
Skills-Media
Initial Skills Analysis. Scott Appleyard
Skills Analysis Sheet
Initial skills analysis
Initial Skills Analysis
Initial skills analysis
initial skills analysis
Initial skills analysis
Initialskillsanalysis
Initial skills analysis Adam Gofton
Ad

Similar to Building stable applications with PHP and 3rd party services (20)

PDF
15-factor-apps.pdf
PPTX
Cloud Architecture & Distributed Systems Trivia
PDF
Evolving to Cloud-Native - Nate Schutta (2/2)
PDF
Evolving to Cloud-Native - Nate Schutta 2/2
PDF
Evolving to Cloud-Native - Anand Rao
PPTX
Design Reviews for Operations - Velocity Europe 2014
PDF
Cloud-Native Fundamentals: An Introduction to 12-Factor Applications
ODP
Building an Open Source AppSec Pipeline
PPTX
Serhiy Kalinets "Embracing architectural challenges in the modern .NET world"
PDF
Introduction to DevOps
PPTX
Developing apps faster
PDF
RedisConf18 - Common Redis Use Cases for Cloud Native Apps and Microservices
PPT
7 Stages of Scaling Web Applications
PDF
Developing PHP Applications Faster
PPTX
JavaOne 2016 "Java, Microservices, Cloud and Containers"
PPTX
Accelerating Innovation and Time-to-Market @ Camp Devops Houston 2015
PPTX
Humans by the hundred
PPTX
Microservices
PDF
Devoxx2017
PDF
From Data Science to Production - deploy, scale, enjoy! / PyData Amsterdam - ...
15-factor-apps.pdf
Cloud Architecture & Distributed Systems Trivia
Evolving to Cloud-Native - Nate Schutta (2/2)
Evolving to Cloud-Native - Nate Schutta 2/2
Evolving to Cloud-Native - Anand Rao
Design Reviews for Operations - Velocity Europe 2014
Cloud-Native Fundamentals: An Introduction to 12-Factor Applications
Building an Open Source AppSec Pipeline
Serhiy Kalinets "Embracing architectural challenges in the modern .NET world"
Introduction to DevOps
Developing apps faster
RedisConf18 - Common Redis Use Cases for Cloud Native Apps and Microservices
7 Stages of Scaling Web Applications
Developing PHP Applications Faster
JavaOne 2016 "Java, Microservices, Cloud and Containers"
Accelerating Innovation and Time-to-Market @ Camp Devops Houston 2015
Humans by the hundred
Microservices
Devoxx2017
From Data Science to Production - deploy, scale, enjoy! / PyData Amsterdam - ...
Ad

Recently uploaded (20)

PPTX
Transform Your Business with a Software ERP System
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PPTX
history of c programming in notes for students .pptx
PPTX
Odoo POS Development Services by CandidRoot Solutions
PPTX
Essential Infomation Tech presentation.pptx
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
Digital Strategies for Manufacturing Companies
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Nekopoi APK 2025 free lastest update
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Understanding Forklifts - TECH EHS Solution
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PPTX
Introduction to Artificial Intelligence
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Transform Your Business with a Software ERP System
Navsoft: AI-Powered Business Solutions & Custom Software Development
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
history of c programming in notes for students .pptx
Odoo POS Development Services by CandidRoot Solutions
Essential Infomation Tech presentation.pptx
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Design an Analysis of Algorithms II-SECS-1021-03
Digital Strategies for Manufacturing Companies
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
VVF-Customer-Presentation2025-Ver1.9.pptx
Odoo Companies in India – Driving Business Transformation.pdf
Nekopoi APK 2025 free lastest update
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Understanding Forklifts - TECH EHS Solution
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Introduction to Artificial Intelligence
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025

Building stable applications with PHP and 3rd party services

  • 1. Building stable applications with PHP and 3rd party services
  • 2. What does a stable application look like?
  • 3. Behaviour is in line with expectations: Mainly unaffected by application environment Mainly unaffected by infrastructure changes Service quality is acceptable
  • 5. Application instability is promoted when code is: Tightly coupled and overly complex / simple Dependent on 3rd party code / services Uncoupled but fails to solve problems
  • 6. How can we promote application stability?
  • 7. We can promote application stability by: Understanding the problems we're solving Learning from and adapting to failure Testing against expected outcomes
  • 9. In the beginning, quickly add new features
  • 10. It started as a blog and now....
  • 12. A challenge for all of us Balancing pragmatism and perfectionism
  • 13. Over time we can expect: Existing bugs found and new bugs introduced New requirements / enhanced functionality People will join and leave project teams
  • 14. New requirements and enhancements....
  • 15. We can promote application stability by: Understanding the problems we're solving Learning from and adapting to failure Testing against expected outcomes
  • 16. High level requirement analysis Who is using this application / feature? What is the impact of using /not using it?
  • 17. When it comes to the “how to”.... We have to consider our approach: Develop custom features from the ground up? Leverage an existing library or service? A mixture of the above?
  • 18. Additional factors should affect the choice.... Consider: Cost of implementation / maintenance Cost of failing to implement / maintain Specific business rules Available budget Timeline
  • 19. Not enough information to make a choice How can we fill gaps in our understanding?
  • 21. We can promote application stability by: Understanding the problems we're solving Learning from and adapting to failure Testing against expected outcomes
  • 22. Make a smaller MVP.... Prove a concept: Fail fast, review and adapt Understand challenges Quick implementation Remember to stop
  • 23. Remembering to stop What are we trying to achieve? What should the specific outcomes be? Have we met / Can we meet the outcomes?
  • 24. We can promote application stability by: Understanding the problems we're solving Learning from and adapting to failure Testing against expected outcomes
  • 25. Start by writing your test definitions Live coding demo
  • 26. When we know the implications we can make better estimates....
  • 27. Choosing to leverage a 3rd party service?
  • 28. Think carefully and ask questions Will the application break if the service fails? What is the impact if the application breaks? What is the impact if it doesn't break?
  • 29. Good questions, we need to go deeper....
  • 30. 3rd party service risk questions What happens if the service provider: goes out of business? deprecates the API we're using? changes arrangements for API access?
  • 31. Don't rush in, design expecting failure....
  • 32. Real world lessons: Design based on expecting services to fail
  • 33. Netflix infrastructure on AWS "The best way to avoid failure is to fail constantly" Source: http://techblog.netflix.com/2010/12/5-lessons-weve-learned-using-aws.html
  • 34. Netflix contributing to the community "we are now proud to announce that the source code for the founding member of the Simian Army, Chaos Monkey, is available to the community." Source: http://techblog.netflix.com/2012/07/chaos-monkey-released-into-wild.html
  • 35. Netflix Simian Army "The Simian Army is a suite of tools for keeping your cloud operating in top form. Chaos Monkey, the first member, is a resiliency tool that helps ensure that your applications can tolerate random instance failures" https://github.com/Netflix/SimianArmy
  • 36. Closing thoughts and questions / Thanks _ / q[-_-]p | | “ | | || || # #