api readiness: visualizing and virtualizing

Post on 18-Jul-2015

394 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

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