4. Cloud native apps adoption is exploding
Adoption of Microservices, Containers, Dynamic Orchestration, and DevOps Technologies
“By 2024 production-grade
cloud-native apps will
expand to 70% from 10% of
all apps in 2020”
IDC 2021
2020 2024
All
Apps
Production - grade
cloud native App
4
6. Debugging in this day and age
Command line
debugging
Local
debugging
Logging and
tracing
Remote
debugging
Deploy to
production
blindly
6
7. Command line debugging - it’s great but...
• Limited amount of commands
• Output is not always clear
• Complicated to use
• Requires more investigation
7
8. Local debugging - it’s also great but...
• Production configurations
• Application’s state
• Production’s bugs
8
9. Logging and tracing - it’s still great but...
• Time consuming
• Can you predict your bugs?
• Do you really log every line of code?
• Performance and storage cost
• Maintenance maintenance maintenance
9
10. Remote debugging - again, great but...
• Stopping the app
• Need to know the server intimately
• Impossible in cloud (many servers)
• Security
10
12. Challenges in cloud debugging
• Giving up the control
• High complexity architecture
• Dynamic environment changes
• Access
12
13. Solutions -
APM tools
• Low fidelity data
• Significant learning curve
• Multiple tools to monitor various
aspects of the application
• Consumes more resources, and
drives up costs
13
14. Solutions -
Exception catching
14
• Another tool
• Bugs often do not come from
exceptions
• Can act differently in various
environments
• Not all data is available
(requires deeper investigation)
15. Solutions -
Live debugger
15
• Creating the original state of the
application.
• The code behaves exactly as it
does in production.
• Reproducing bugs
• high-fidelity data wherever your
code is running, even in the cloud
• No performance impact
• Non breaking breakpoint
16. What is Rookout
• Rookout is a platform for live-data collection
and debugging
• Rookout’s non-breaking breakpoints let you
collect any type of data on the fly with no
extra coding, redeployments, or restarts
16