api readiness: visualizing and virtualizing
Post on 18-Jul-2015
394 Views
Preview:
TRANSCRIPT
API Readiness:Visualizing and Virtualizing
L O R I N D A B R A N D O N
@ L I N D Y B R A N D O N
S M A R T B E A R S O F T WA R E
Keys to a successful API
documentation
testing
mocking
evangelism
management
monitoring
But how do you get there?
API Readiness
visualize
Service DefinitionsThe best way to visualize your API
DescribingIs not really visualizing
Visualizing: New ideas
Coloring outside the lines
New Ideas
“The best design gets out of the way between the viewer’s brain and the content.”
– Edward Tufte
Visualizing: New ideas
Swagger.ed (credit - @chefarchitect)
Coloring outside the lines
New Ideas
Visualizing: New ideas
Ardoq
Coloring outside the lines
New Ideas
Visualizing: New ideas
LucyBot
Coloring outside the lines
New Ideas
API Readiness
visualize
validate
Functional TestLive up to your own hype
Load TestDon’t let success kill you
Security TestKnow where the dangers are
API Readiness
visualize
validate
virtualize
Why virtualize your APIs?
BootstrapParallel dev and test
Test Design
Virtual API
Generate
from spec or
with tools
Client Development
Integration Development
IsolateTest execution and development
Test Execution
(automated or manual)
Development
Component in
dev or test
3rd party APIs
(virtualized)
Other APIs
(virtualized)
Legacy Systems
(virtualized)
• Simulate (un)expected behavior
• Minimize impact on and usage of external systems
• Assert usage of external components
Performance Test
Solution
under test
Load Test Execution
(automated or manual)3rd party APIs
(virtualized)
Other APIs
(virtualized)
Legacy Systems
(virtualized)
• Simulate (un)expected performance in external systems
• Minimize impact on and usage of external systems
• Triage Performance bottlenecks
Provide Sandbox
Hardware /
Software
Solution
API Virtual API
Evaluate
Integrate
Integration Test
Enable API evolution… Corp
Corp
Web
app
Corp
App +
API
API
API
API
Device
APP
API
Device
IoT
Device
IoT
Device
API
API
API
Three Levels of API Virtualization
Static Mocks
Static responses
• Semantically
correct
• No logic
• Payloads
generated from
schemas or
examples
Code or generated
from metadata
Dynamic Mocks
Dynamic responses
• Based on input
• Re-use input in
output
• Scripting
• Data-driven /
Data-generation
• Simulate state
Assertions on
incoming content
Virtual APIs
Runtime behavior simulation
Runtime management
• Redirect traffic to Virtual
APIs dynamically
• Access control
• Deployment
• Test execution
integration
API Virtualization - do you need it?
• Local development & basic component testing
• Requirement for sandbox environment(s)
• Collaborative evolution & testing of APIs with low number of controlled dependencies
Maybe
• Collaborative evolution & testing of APIs with high number of complex dependencies
Probably
• Need for simulating functional & non-functional behavior in complex distributed solutions
Definitely
API Readiness
visualize
validate
virtualize
monitor
MONITORING
Virtual APIs
Mock Services
Production APIs
Keep production stable
Prevent bottlenecks
Test
DevTestDev
Test
Ongoing development
API Monitoring
visualizevalidatevirtualizemonitor
top related