27
API Readiness: Visualizing and Virtualizing LORINDA BRANDON @LINDYBRANDON SMARTBEAR SOFTWARE

API Readiness: Visualizing and Virtualizing

Embed Size (px)

Citation preview

Page 1: API Readiness: Visualizing and Virtualizing

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

Page 2: API Readiness: Visualizing and Virtualizing

Keys to a successful API

documentation

testing

mocking

evangelism

management

monitoring

Page 3: API Readiness: Visualizing and Virtualizing

But how do you get there?

Page 4: API Readiness: Visualizing and Virtualizing

API Readiness

visualize

Page 5: API Readiness: Visualizing and Virtualizing

Service DefinitionsThe best way to visualize your API

Page 6: API Readiness: Visualizing and Virtualizing

DescribingIs not really visualizing

Page 7: API Readiness: Visualizing and Virtualizing

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

Page 8: API Readiness: Visualizing and Virtualizing

Visualizing: New ideas

Swagger.ed (credit - @chefarchitect)

Coloring outside the lines

New Ideas

Page 9: API Readiness: Visualizing and Virtualizing

Visualizing: New ideas

Ardoq

Coloring outside the lines

New Ideas

Page 10: API Readiness: Visualizing and Virtualizing

Visualizing: New ideas

LucyBot

Coloring outside the lines

New Ideas

Page 11: API Readiness: Visualizing and Virtualizing

API Readiness

visualize

validate

Page 12: API Readiness: Visualizing and Virtualizing

Functional TestLive up to your own hype

Page 13: API Readiness: Visualizing and Virtualizing

Load TestDon’t let success kill you

Page 14: API Readiness: Visualizing and Virtualizing

Security TestKnow where the dangers are

Page 15: API Readiness: Visualizing and Virtualizing

API Readiness

visualize

validate

virtualize

Page 16: API Readiness: Visualizing and Virtualizing

Why virtualize your APIs?

Page 17: API Readiness: Visualizing and Virtualizing

BootstrapParallel dev and test

Test Design

Virtual API

Generate

from spec or

with tools

Client Development

Integration Development

Page 18: API Readiness: Visualizing and Virtualizing

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

Page 19: API Readiness: Visualizing and Virtualizing

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

Page 20: API Readiness: Visualizing and Virtualizing

Provide Sandbox

Hardware /

Software

Solution

API Virtual API

Evaluate

Integrate

Integration Test

Page 21: API Readiness: Visualizing and Virtualizing

Enable API evolution… Corp

Corp

Web

app

Corp

App +

API

API

API

API

Device

APP

API

Device

IoT

Device

IoT

Device

API

API

API

Page 22: API Readiness: Visualizing and Virtualizing

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

Page 23: API Readiness: Visualizing and Virtualizing

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

Page 24: API Readiness: Visualizing and Virtualizing

API Readiness

visualize

validate

virtualize

monitor

Page 25: API Readiness: Visualizing and Virtualizing

MONITORING

Virtual APIs

Mock Services

Production APIs

Keep production stable

Prevent bottlenecks

Test

DevTestDev

Test

Ongoing development

API Monitoring

Page 26: API Readiness: Visualizing and Virtualizing

visualizevalidatevirtualizemonitor

Page 27: API Readiness: Visualizing and Virtualizing