SlideShare ist ein Scribd-Unternehmen logo
1 von 85
Downloaden Sie, um offline zu lesen
1
Crash Course: Foundational Topics in Apigee Edge!
Steve Richardson
Agenda
2
1.
 Anatomy of an API Proxy
 9:30
2.
 Connectivity
 10:30
3.
 API Management
 12:00
4.
 Rate Limiting
 2:30
5.
 Caching
 3:30
6.
 Custom Analytics
 5:00
©2015 Apigee. All Rights Reserved.
Anatomy of an API Proxy
3
Platform Entities
4
©2015 Apigee. All Rights Reserved. 
Organization
Environment
Role
Permission
Permission
API Product
Developer Applications
Developer
Keys/Tokens
Users
Permission
API Proxy
Cache Resource
KVM Resource
Ext Resource
KVM Resource Extension Resource
Companies
Key / Trust Store
VaultTarget Servers
VirtualHost
Vault
API Proxies
5
©2015 Apigee. All Rights Reserved. 
APIProxy
Proxy Endpoints
Target Endpoints
Resources
VH
Policies
Routes
Flows
Preflow
Postflow
Flows
Preflow
Postflow
Policies
Load
Balancer
Target
Server
Java
Javascript
Node.js
Python
XSL
WSDL
FaultRules
FaultRules
Proxy Endpoint
6
©2015 Apigee. All Rights Reserved. 
Proxy Endpoint
Virtual Host Virtual Host
Route Rule
Flows
Route RuleRoute Rule
Virtual Host
PostFlow
Conditional Flow Conditional Flow Conditional Flow
Policy Policy Policy
Preflow
Policy Policy Policy
Policy Policy Policy
Policy Policy Policy
Fault Rules
Default Fault Rule
Proxy Endpoint Example
7
©2015 Apigee. All Rights Reserved.
Virtual Hosts
8
©2015 Apigee. All Rights Reserved. 
Environment: Dev
APIProxy
Virtual Host
Host Alias: dev.apieatery.com
Port:80
Name:http
Virtual Host
Host Alias: dev.apieatery.com
Port:443
Name:https
SSLInfo
Proxy Endpoint: /v1/oauth
Proxy Endpoint: /v1/apieatery
Virtualhost Reference: https
Virtualhost Reference: http
Virtualhost Reference: https
Virtual Hosts
9
©2015 Apigee. All Rights Reserved.
Policy Flows
10
©2015 Apigee. All Rights Reserved.
Policy Flows
Global Flows
11
©2015 Apigee. All Rights Reserved.
Policy Flows
Conditional Flows / Resource
12
©2015 Apigee. All Rights Reserved. 
Post Client
Policies
13
©2015 Apigee. All Rights Reserved.
Route Rules
14
©2015 Apigee. All Rights Reserved. 
Default Routes
No Target
Routes
Conditional
Routes
<RouteRule name="auth">
<Condition>proxy.pathsuffix MatchesPath "/auth"</Condition>
</RouteRule>
<RouteRule name="routeToTestServer">
<Condition>request.header.X-TestServer == "true"</Condition>
<TargetEndpoint>testServer</TargetEndpoint>
</RouteRule>
<RouteRule name="default">
<TargetEndpoint>default</TargetEndpoint>
</RouteRule>
Target Endpoints
15
©2015 Apigee. All Rights Reserved. 
Target Endpoint
Flows
PostFlow
Conditional Flow Conditional Flow Conditional Flow
Policy Policy Policy
Preflow
Policy Policy Policy
Policy Policy Policy
Policy Policy Policy
Load Balancing
Group
Load Balancing
Group
Load Balancing
GroupTarget Server
Target Server
Target Server
Target Server
Target Server
Target Server
Fault Rules
Default Fault Rule
Target Endpoints
16
©2015 Apigee. All Rights Reserved.
Load Balancing
17
©2015 Apigee. All Rights Reserved. 
Environment: Dev
APIProxy
Target Server
Host: dev.internal1.apieatery.com
Port:80
Name:internal1
Target Server
Host: dev.internal2.apieatery.com
Port:443
Name:internal2
SSLInfo
HTTP Target Connection
LoadBalancer:
Algorithm: Round Robin
RetryEnabled: true
Server: internal1
Weight: 1
MaxFailures: 5
isFallback: true
Path: /targetBasePath
HealthMonitor
Server: internal2
Weight: 1
MaxFailures: 5
isFallback: false
Load Balancer
18
©2015 Apigee. All Rights Reserved.
Health Monitor
19
©2015 Apigee. All Rights Reserved. 
HealthMonitor
TCP Monitor
ConnectTimeoutInSec: 1
Port: 80 - Overrides the Target Server setting
HTTP Monitor
isEnabled: True
IntervalInSec: 5
Request:
ConnectTimeoutInSec: 1
SocketReadTimeoutInSec: 1
Port: 80
Verb: GET
Path: /healthcheck
Headers: Header: @Name:Authorization:245ASf4@%#
Payload:
SuccessResponse:
ResponseCode: 200
Headers: Header: @Name:imOk: true
TCP Health Checks
20
©2015 Apigee. All Rights Reserved.
HTTP Health Checks
21
©2015 Apigee. All Rights Reserved.
Fault Rules
22
©2015 Apigee. All Rights Reserved. 
FaultRules
AlwaysEnforce =
true
AlwaysEnforce =
false
Default Fault Rules
FaultRule
Policy Policy Policy
FaultRule
Policy Policy Policy
FaultRule
Policy Policy Policy
PostFlowErrorProcessor
IfAllElseFailsRunThis
Fault Rules
23
©2015 Apigee. All Rights Reserved.
Advanced Endpoint Properties For Proxy
In addition to the standard endpoint configurations there are
some properties to control advanced functionality.

<HTTPProxyConnection>

•  allow.http.method.* - by default all HTTP methods are allowed. To disable a method
you can use this property: <Property name="allow.http.method.POST">false</Property>
•  request.streaming.enabled – if the payload will not be read or updated during the
proxy processing, you can enable to to avoid payload buffer size limits
•  response.streaming.enabled - if the payload will not be read or updated during the
proxy processing, you can enable to to avoid payload buffer size limits
24
©2015 Apigee. All Rights Reserved.
Advanced Endpoint Properties For Target
<HTTPTargetConnection>

•  connect.timeout.millis – this is used to set the connection timeout for backend
connections (in ms). Defaults to 60000 (1 min) and highly recommended to lower
•  io.timeout.millis – this is used to set the response read timeout (waiting for response
from backend). Defaults to 120000 (2 min) and extremely encouraged to reduce to
optimize connection handling in the event that a backend service is degraded.
•  response.streaming.enabled - if the payload will not be read or updated during the
proxy processing, you can enable to to avoid payload buffer size limits
•  success.codes – this property is used to set the response status codes that are
treated as ‘success’. Defaults to 1XX,2XX,3XX. This is a helpful configuration when you
want to access 4XX responses are success to continue response flow processing
25
©2015 Apigee. All Rights Reserved.
Connectivity
26
Getting Setup
Steps

1.  Using a web browser Navigate to apigee.com
2.  Click the Sign In Button
3.  If you do not have an Apigee Account click the Sign Up Link
4.  Fill out form and click the Create Account button
5.  Activate Account by clicking link contained in an email sent to your registered account
6.  Once your account is activated you should be able to login, once logged in you will be
taken to the dashboard page, once their click the button under the API Management
block. 
Note: Activation can sometimes take a couple of minutes to activate.
Welcome to Apigee Edge!!!!!
27
©2015 Apigee. All Rights Reserved.
New API Proxy Options Part 1
New API Proxy Options

•  Backend Service
–  Most common starting point when building a proxy from scratch
–  Backend Service URL field is used to target a specific backend endpoint
•  API Bundle
–  This Option allows you to define an existing API proxy that is bundled in a ZIP file format for
import.
–  Commonly used to import a proxy from one organization to another
•  WSDL
–  This option is used for creating policies that work with an existing web service along with your
new proxy
–  Supports Pass-Thru options
–  Supports Basic Rest too Soap Conversions
28
©2015 Apigee. All Rights Reserved.
New API Proxy Options Part 2
New API Proxy Options

•  No Target
–  This option is used when you service the API directly on the Apigee Platform with no Target
–  Is great for creating API Stubs
•  Node.js
–  Two Options for Node.js (New, Existing)
–  The New option gives you the capability of creating a new API proxy that has a simple Node.js
Hello World Application built into it (there is also an example of a BAAS target too).
–  The Existing option is like the API Bundle option, the only difference is that it only excepts your
entry js file e.g. app.js or server .js
29
©2015 Apigee. All Rights Reserved.
Completing the Form
Lets Complete the Form

• Use Backend Service
– Set the Backend Service URL to:
•  https://apigee-edu-test.apigee.net/v1/apieatery
– In the Name use something unique to you, for instance
yourname_apieatery
– In the Project Base Path: add a path to make it unique I
use /v1/myname/apieatery
30
©2015 Apigee. All Rights Reserved.
Building Target Authentication
Building our Proxy against a target that uses Basic
Authentication requires you to store credentials on the Apigee
Platform. Which poses the question "Were do i store the
credentials?”

1.  Hard Code Them?
2.  Replace Them at Build Time?
3.  Key Value Map?
4.  Node.js Vault?
31
©2015 Apigee. All Rights Reserved.
Hard Coding using Assign Message
32
©2015 Apigee. All Rights Reserved.
Build Time Replacement
33
©2015 Apigee. All Rights Reserved.
Build Time Replacement Part 2
34
©2015 Apigee. All Rights Reserved.
Storing Credentials in a Node.js Access Vault
Step 1: Build Vault and Vault Data Via API
35
©2015 Apigee. All Rights Reserved. 
Step 2: Retrieve Data in Node.js App
Storing Credentials in a Key Value Map
Step 1: Create KVM and KVM Data Via API
36
©2015 Apigee. All Rights Reserved. 
Step 2: Retrieve Data via KVM Policy
Key KVM Policy Configuration Options
•  ExpiryTimeInSecs - This setting is used to expire the cache not the entry
•  InitialEntries - Allows you to pre-define values
37
©2015 Apigee. All Rights Reserved. 
•  Multiple Values - KVM supports multiple values per name, you can access
values using the index attribute of the Get tag
Building Authorization Headers with the Basic Auth Policy
•  Can Encode the two variables into a basic authentication header
•  Can Decode an basic authentication header into two variables
Example
38
©2015 Apigee. All Rights Reserved.
Exercise 1
Exercise to Create a proxy that connects to a basic authenticated backend (i.e. APIEatery
Backend would work)
Step One: Create Proxy
Step Two: Create KVM
Step Three: Access KVM
Step Four: Build Authorization Header
Step Five: Test Server
Step Six (Optional): Create Target Servers
Step Seven (Optional): Configure Target Servers instead of the HTTP Target URL
39
©2015 Apigee. All Rights Reserved.
API Management
40
API Management Eco-System
41
©2015 Apigee. All Rights Reserved. 
Business
Team
API Team
Application
Developers
Products
API
Resources
Keys
Applications
API Product Strategies
42
©2015 Apigee. All Rights Reserved. 
Service
Plan Model
ApiProxy
Model
Business
Model
Ownership
Model
?
API Proxy Model
43
©2015 Apigee. All Rights Reserved. 
API Proxy A Product A
API Proxy B Product B
Quota: 5 rpm
Quota: 10 rpm
The API Proxy Model
is a strategy
centered around
creating a 1 to 1
relationship with your
API proxies and your
products
Business Model
44
©2015 Apigee. All Rights Reserved. 
The Business Model
is a strategy
centered around
creating a
relationship between
a companies
business unit specific
API's and Products
Company
Business Unit A Product A
Business Unit B Product B
API Resource 1
API Resource 2
API Resource 3
API Resource 4
API Resource 5
API Resource 6
API Resource 7
API Resource 8
Ownership Model
45
©2015 Apigee. All Rights Reserved. 
The Ownership
Model is a strategy
that creates a
relationship between
the owner of the API
resource and the
Products
Company
Development Team A Product A
Development Team B Product B
API Resource
API Resource
API Resource
API Resource
API Resource
API Resource
API Resource
API Resource
Service Plan Model
46
©2015 Apigee. All Rights Reserved. 
The Service Plan
Model is Product
strategy that groups
API Resources in a
Product based on a
business model
defined by different
service levels e.g.
Bronze, Silver, and
Gold
Bronze Service Plan Product A
Gold Service Plan Product B
API Resource
API Resource
API Resource
API Resource
API Resource
API Resource
Key Concepts
•  Product to Application is a Many to Many Relationship
•  When a Product is associated with an Application a Key is
generated
•  Products contain configuration used to display information an
control workflow in the Developer Portal
•  You can set custom configuration that can be accessed by
every API that call that is made from an Application associated
with a Product
47
©2015 Apigee. All Rights Reserved.
How Products Manage Access Control
•  By Default Access Control is can be restricted by either the
combination of proxy and path-suffix or each individually
48
©2015 Apigee. All Rights Reserved. 
•  Product resource validation happens
when you validate either an Access
Token or an API key
•  Multiple product validations are done
via a Union of the product definitions
How to extend API Products
•  Products can be extended via custom attributes
49
©2015 Apigee. All Rights Reserved. 
•  Variable flow.resource.name allows
you to validate based on other
information i.e. basepath, verb
Note: If your production environment lives in the
same organization as your make sure you do an
environment check, when validating your keys by
using the flow.resource.name the system no longer
checks the active environment
Demonstration
50
Rate Limiting: Spike Arrest
51
Spike Arrest
52
©2015 Apigee. All Rights Reserved. 
•  SpikeArrest smooth's inflow request
patterns over short intervals to ensure
that demand does not outstrip capacity."

•  SpikeArrest is a technical requirement to
protect the backend as opposed to a
Quota or Rate Limit which is a business
requirement to manage developer
relationships. 

apps
api.yourcompany.com
2,000tps
1,000tps
Spike Arrest and Denial of Service
•  Spike Arrest Policy is often used offset the risk of
DOS attack or a DDOS attack
•  Denial of Service attacks is an attack on your
platform instigated by sending thousands of
requests against your API as a means to either
bring down your platform or expose other
vulnerabilities
•  Spike Arrest monitors the rate at which traffic
comes in, it does not count each request by
putting them in timed buckets.
53
©2015 Apigee. All Rights Reserved.
•  Identifier
–  Mechanism to scope your incoming
traffic
–  Uses a separate rate for each unique Id
•  Message weight
–  Used to give extra weight to conditioned
requests
•  Rate
–  Specifies the rate you want to allow
traffic to come into your API Proxy.
–  Rate is for each Message Processors
–  Rate is formatted with a number and a
unit
–  Unit is defined as ps, pm (per second,
per minute)
Spike Arrest Configuration
54
©2015 Apigee. All Rights Reserved.
Rate Limiting: Quota
55
Quotas
• Use quota to set a defined amount of
requests to an entity
• Quotas us buckets of request per
time units unlike spike arrest which
limits based of the rate of traffic
• Once a quota limit is reached all
request generated by the limited
entity will be rejected
56
©2015 Apigee. All Rights Reserved.
•  Identifier
–  Mechanism to scope your incoming
traffic
–  Uses a separate bucket for each unique
Id
•  Message weight
–  Used to give extra weight to conditioned
requests
•  Allow
–  Specifies the number of requests allowed
for a particular entity
•  Time Unit
–  Month, Day, Week, Minute, Year
•  Interval
–  Frequency of the time unit
Quota Configuration Part 1
57
©2015 Apigee. All Rights Reserved.
Quota Type
Quota type indicates when the quota counter starts counting usage

•  calendar (default if not specified)
–  Quota counting has an explicit start time
–  <StartTime> is specified and quota counting starts at the StartTime and is reset based on the
specified <Interval> and <TimeUnit>
•  rollingwindow
–  Quota uses a rolling window that resets based on the <Interval> and <TimeUnit>
–  The start time is the time the first message is received matching the <Identifier>
–  rollingwindow allows a quota that resets on every interval
•  flexi
–  Start time is dynamic for each <Identifier> based on first message being received
–  Calls can be used until interval has elapsed
–  Quota does not automatically reset at the end of the interval
–  flexi allows access for a specified period of time
Quota type specified in type attribute of Quota root element
58
©2015 Apigee. All Rights Reserved.
Distributed Quotas
•  <Distributed> specifies whether the count is shared among all message processors
(Distributed = true) or maintained separately for each message processor (Distributed =
false)
•  <Synchronous> specifies whether the distributed quota counter is updated
synchronously
•  <AsynchronousConfiguration> specifies how an asynchronous distributed quota is
updated
•  If <PreciseAtSecondsLevel> is set to true, the quota will be enforced with an accuracy
of a second, even if the <TimeUnit> is set at a unit longer than a second
59
©2015 Apigee. All Rights Reserved.
Example
60
©2015 Apigee. All Rights Reserved.
Flow Variables
•  Flow variables are created after a Quota policy executes
– Variables are prefixed with "ratelimit.{policy_name}."
– Examples are:

ratelimit.{policy_name}.available.count (available quota count)

ratelimit.{policy_name}.used.count (used quota count)

ratelimit.{policy_name}.expiry.time (time in ms when quota resets)

ratelimit.{policy_name}.identifier (identifier for the policy)
61
©2015 Apigee. All Rights Reserved.
Setup Quota Via Product
62
©2015 Apigee. All Rights Reserved.
Exercise
• Step One: Add Spike Arrest Policy
• Step Two: Add Quota Policy
• Step Three: Make Quota policy A-Sync
• Step Four: Feed Quota values from Product
63
©2015 Apigee. All Rights Reserved.
Caching
64
© 2014 Apigee Confidential – All Rights Reserved
Performance
–  Reducing Network latency
–  Eliminate redundant request/
response processing
Stability
–  Reduce amount of load to backend
services
Scalability
–  Support higher TPS without adding
additional hardware
Why use Caching?
App Apigee Server
WSetup Quota Via Producthy Use
Caching
66
Performance
 Stability
 Scalability
©2015 Apigee. All Rights Reserved. 
App
Why Use Caching?
67
©2015 Apigee. All Rights Reserved. 
Performance 
–  Reducing Network latency
–  Eliminate redundant request/response processing
Stability
–  Reduce amount of load to backend services
Scalability
–  Support higher TPS without adding additional hardware
App Apigee Server
© 2014 Apigee Confidential – All Rights Reserved
2 different ways to populate/lookup cache data in Apigee
Response Cache
•  caches the entire HTTP response (headers, payload, etc.)
•  can set a different time-to-live for each entry
•  option for honoring HTTP cache headers for dynamic TTL (Expires, Cache-Control)
•  option to support caching of multiple formats based on request ‘Accept’ header
Populate Cache/Lookup Cache
•  full control over caching, store any objects
•  Add/update and read entries using separate policies
Caching Policies
68
© 2014 Apigee Confidential – All Rights Reserved
Distributed caching allows cache entries to be distributed across multiple
Message Processors within a region and across regions.
Distributed Caching
69
Apigee
Cassandra
(L2)
Apigee
Cassandra
(L2)
Apigee
Cassandra
(L2)
Apigee
Cassandra
(L2)
Apigee
Cassandra
(L2)
Apigee
Cassandra
(L2)
Apigee Message
Processor (L1)
Apigee Message
Processor (L1)
Apigee Message
Processor (L1)
Apigee Message
Processor (L1)
Datacenter 1 Datacenter 2
© 2014 Apigee Confidential – All Rights Reserved
Cache Lookup/Populate Sequence
70
Apigee Message
Processor (L1)
Backend
In Memory = true
In Memory = false
In Cassandra = true
In Memory = false
In Cassandra = false
Apigee
Cassandra (L2)
Client
Populate L1
Populate L2
Populate L1
© 2014 Apigee Confidential – All Rights Reserved
Reduces latency and network traffic by avoiding calls to backend and extra
processing.
Cache Key
•  can use multiple key fragments
•  include a unique user identifier if user data is cached
•  scoping affects the cache key
Expiration
•  can specify a time of day or date the cache entry expires
•  Leverage <UseResponseCacheHeaders> configuration so the policy dynamically sets TTL based on backend
response HTTP cache headers.
ResponseCache
71
© 2014 Apigee Confidential – All Rights Reserved
•  Optional conditions for skipping cache lookup or population.
•  Same policy attached to request and response segments
o  When Request segment policy is reached, cache lookup happens
Ø  if cache hit, response is retrieved from cache and processing bypasses backend and other policies
until ResponseCache policy in Response segment
Ø  if cache miss, request processing continues
o  When Response segment policy is reached, cache population happens and response message is stored
ResponseCache (cont’d)
72
© 2014 Apigee Confidential – All Rights Reserved
Optimizes API performance by reducing request or response processing.
•  Can cache any object. Typically used after building custom data
•  Separate policies for cache population vs. lookup
•  Specify a time-to-live
•  Full control of population and lookup of cache via policies
PopulateCache/LookupCache
73
© 2014 Apigee Confidential – All Rights Reserved
Use ResponseCache:
•  when identical requests and their corresponding identical responses are common (cache hits
will be frequent)
•  to reduce unnecessary traffic to backend
•  to reduce latency for common requests
Use PopulateCache/LookupCache:
•  when storing custom data objects (not always backend http response) to store data sets that
have a specific maximum number of entries (vs. key/value maps)
•  to persist data across multiple API transactions
Choosing which caching policy to use…
74
© 2014 Apigee Confidential – All Rights Reserved
The use of caching is only beneficial if requests are being served from
cache. There are key things to ensure your cache solution is obtaining
optimal performance.
•  Ensure your cache key is built in such a way that the only request
parameters used for the key are ones that dictate the client’s response. (e.g.
don’t just use the URI as things like timestamps and other unique items can
end up as part of the key resulting in 0% cache hits.
•  Take advantage of the cache scope. Multiple APIs might utilize the same
cache so set the scope to be ‘organization’ and re-use.
•  Cache Performance dashboard is available in Apigee Analytics to report on
cache hit % and performance gains.
Cache Utilization and Optimization
75
© 2014 Apigee Confidential – All Rights Reserved
Resource configured via UI or management API to define default cache settings.
Cache Resources
76
•  Maximum Elements in Memory – defines the number of objects held in Apigee servers’ memory(L1). This can
be used for tuning as there is a finite limit of server memory vs. unlimited storage in (L2). L2 is defined later.
•  Compression – this setting enables compression on the object to be cached and allows you to define at which
point to start compressing the object based on its size. Useful as small objects or already compressed data may
not benefit from compression, thus poorly utilizing resources.
•  Skip If Element in KB exceeds – option to skip caching an object if it is larger than the size specified. Useful if
objects are large in size and could take up more L1 memory, reducing the # of objects that can be cached
overall.
© 2014 Apigee Confidential – All Rights Reserved
Using the UI
•  Allows you to clear the entries for a complete cache resource
•  Typically used to invalidate all cache entries
Mgmt API
•  Same as UI with the addition of being able to specify a prefix used for cache keys
•  Typically used to invalidate all cache entries
InvalidateCache Policy
•  Allows you build a fully customized API resource to invalidate specific entries
•  Used in implementations to invalidate specific cache entries
Clearing the cache
77
© 2014 Apigee Confidential – All Rights Reserved
Identify Caching within Trace
Major drop in
response times
Not in Cache – all policies and trip to backend
Cache hit – fewer policies, no backend
Custom Analytics
79
80
Template (t) vs. Brand Colors
Apigee Brand Guidelines 7
Color Usage
Consistency of color is necessary to communicate
Apigee’s brand effectively.
The main color palette should be used for all
corporate communications.
A complementary secondary palette that includes
Apigee’s main brand colors, has been created for
supporting content for flexibility in any application.
The tertiary palette is only used sparingly for small
accents on a visual design.
All graphic elements including type, backgrounds,
bars, buttons and icons must be based on one of
these approved color families with consistent hue,
saturation and brightness for all communications.
PMS 1655 C
CMYK: 0/83/100/0
RGB: 252/76/2
HEX: #FF4300
PMS 425 C
CMYK: 0/0/0/80
RGB: 84/88/90
HEX: #54585A
PMS 7482 C
CMYK: 83/14/94/2
RGB: 31/155/80
HEX: #1F9B50
PMS 7662 C
CMYK: 59/90/2/0
RGB: 128/63/149
HEX: #803F95
PMS 2156 C
CMYK: 50/23/19/0
RGB: 134/171/181
HEX: #86ABBC
PMS 577 C
CMYK: 36/15/56/0
RGB: 171/187/135
HEX: #ABBB87
LINK BLUE
RGB: 27/151/209
HEX: #1B97D1
VISITED LINK BLUE
RGB: 6/75/124
HEX: #064B7C
PMS 424C
CMYK: 0/0/0/70
RGB: 109/110/113
HEX: #6D6E71
MED DARK GRAY
RGB: 104/104/104
HEX: #686868
LIGHT GRAY
RGB: 202/202/202
HEX: #CACACA
PRIMARY PALETTE
SECONDARY PALETTE
TERTIARY PALETTE
t
t
t
t
 t
 t
t
 t
 t
 t
cmyk
rgb
brand values
picker
using color picker"
from web
t
81
Which font?
Helvetica Neue Light
Helvetica Neue Bold
Museo (300)
Museo (300) (bolded)
Museo Slab (300)
Museum Slab (300) (bolded)
for titles
Museo Sans (500)
Museum Sans (500) (bolded)
OR Helvetica
OR Arial
ARS Marquette Pro Light
ARS Marquette Pro Light (bolded)
for body
OR Helvetica
OR Arial
(I do not have this font)
USE
from brand guide
82
Need vectors of these elements
Need correct heart
83
Possible new elements
1 2 3
84
Margins
 1.90 top
2.45 bottom
4.50 left & right
85
From I APIs website

Weitere ähnliche Inhalte

Was ist angesagt?

Amazon API Gateway
Amazon API GatewayAmazon API Gateway
Amazon API GatewayMark Bate
 
API Strategy Introduction
API Strategy IntroductionAPI Strategy Introduction
API Strategy IntroductionDoug Gregory
 
MuleSoft's Approach to Driving Customer Outcomes
MuleSoft's Approach to Driving Customer Outcomes MuleSoft's Approach to Driving Customer Outcomes
MuleSoft's Approach to Driving Customer Outcomes MuleSoft
 
I Love APIs 2015 : Zero to Thousands TPS Private Cloud Operations Workshop
I Love APIs 2015 : Zero to Thousands TPS Private Cloud Operations WorkshopI Love APIs 2015 : Zero to Thousands TPS Private Cloud Operations Workshop
I Love APIs 2015 : Zero to Thousands TPS Private Cloud Operations WorkshopApigee | Google Cloud
 
Introduction to Kong API Gateway
Introduction to Kong API GatewayIntroduction to Kong API Gateway
Introduction to Kong API GatewayYohann Ciurlik
 
API Management in Digital Transformation
API Management in Digital TransformationAPI Management in Digital Transformation
API Management in Digital TransformationAditya Thatte
 
Mapping out your API Strategy - 4.20.11 Webinar slides
Mapping out your API Strategy - 4.20.11 Webinar slidesMapping out your API Strategy - 4.20.11 Webinar slides
Mapping out your API Strategy - 4.20.11 Webinar slidesApigee | Google Cloud
 
API as-a-Product with Azure API Management (APIM)
API as-a-Product with Azure API Management (APIM)API as-a-Product with Azure API Management (APIM)
API as-a-Product with Azure API Management (APIM)Bishoy Demian
 
REST API Design & Development
REST API Design & DevelopmentREST API Design & Development
REST API Design & DevelopmentAshok Pundit
 
How to Execute a Successful API Strategy
How to Execute a Successful API StrategyHow to Execute a Successful API Strategy
How to Execute a Successful API StrategyMatt McLarty
 
Api gateway in microservices
Api gateway in microservicesApi gateway in microservices
Api gateway in microservicesKunal Hire
 
AWS July Webinar Series: Overview: Build and Manage your APIs with Amazon API...
AWS July Webinar Series: Overview: Build and Manage your APIs with Amazon API...AWS July Webinar Series: Overview: Build and Manage your APIs with Amazon API...
AWS July Webinar Series: Overview: Build and Manage your APIs with Amazon API...Amazon Web Services
 
API Management Within a Microservices Architecture
API Management Within a Microservices Architecture API Management Within a Microservices Architecture
API Management Within a Microservices Architecture Nadeesha Gamage
 

Was ist angesagt? (20)

Amazon API Gateway
Amazon API GatewayAmazon API Gateway
Amazon API Gateway
 
API Strategy Introduction
API Strategy IntroductionAPI Strategy Introduction
API Strategy Introduction
 
MuleSoft's Approach to Driving Customer Outcomes
MuleSoft's Approach to Driving Customer Outcomes MuleSoft's Approach to Driving Customer Outcomes
MuleSoft's Approach to Driving Customer Outcomes
 
Apigee Edge Product Demo
Apigee Edge Product DemoApigee Edge Product Demo
Apigee Edge Product Demo
 
I Love APIs 2015 : Zero to Thousands TPS Private Cloud Operations Workshop
I Love APIs 2015 : Zero to Thousands TPS Private Cloud Operations WorkshopI Love APIs 2015 : Zero to Thousands TPS Private Cloud Operations Workshop
I Love APIs 2015 : Zero to Thousands TPS Private Cloud Operations Workshop
 
Introduction to Kong API Gateway
Introduction to Kong API GatewayIntroduction to Kong API Gateway
Introduction to Kong API Gateway
 
API Management in Digital Transformation
API Management in Digital TransformationAPI Management in Digital Transformation
API Management in Digital Transformation
 
Mapping out your API Strategy - 4.20.11 Webinar slides
Mapping out your API Strategy - 4.20.11 Webinar slidesMapping out your API Strategy - 4.20.11 Webinar slides
Mapping out your API Strategy - 4.20.11 Webinar slides
 
Amazon API Gateway
Amazon API GatewayAmazon API Gateway
Amazon API Gateway
 
API strategy with IBM API connect
API strategy with IBM API connectAPI strategy with IBM API connect
API strategy with IBM API connect
 
API as-a-Product with Azure API Management (APIM)
API as-a-Product with Azure API Management (APIM)API as-a-Product with Azure API Management (APIM)
API as-a-Product with Azure API Management (APIM)
 
API Governance in the Enterprise
API Governance in the EnterpriseAPI Governance in the Enterprise
API Governance in the Enterprise
 
REST API Design & Development
REST API Design & DevelopmentREST API Design & Development
REST API Design & Development
 
How to Execute a Successful API Strategy
How to Execute a Successful API StrategyHow to Execute a Successful API Strategy
How to Execute a Successful API Strategy
 
Api gateway in microservices
Api gateway in microservicesApi gateway in microservices
Api gateway in microservices
 
Api Gateway
Api GatewayApi Gateway
Api Gateway
 
How Secure Are Your APIs?
How Secure Are Your APIs?How Secure Are Your APIs?
How Secure Are Your APIs?
 
Effective API Design
Effective API DesignEffective API Design
Effective API Design
 
AWS July Webinar Series: Overview: Build and Manage your APIs with Amazon API...
AWS July Webinar Series: Overview: Build and Manage your APIs with Amazon API...AWS July Webinar Series: Overview: Build and Manage your APIs with Amazon API...
AWS July Webinar Series: Overview: Build and Manage your APIs with Amazon API...
 
API Management Within a Microservices Architecture
API Management Within a Microservices Architecture API Management Within a Microservices Architecture
API Management Within a Microservices Architecture
 

Andere mochten auch

Building APIs with Apigee Edge and Microsoft Azure
Building APIs with Apigee Edge and Microsoft AzureBuilding APIs with Apigee Edge and Microsoft Azure
Building APIs with Apigee Edge and Microsoft AzureApigee | Google Cloud
 
Webcast: Pragmatic REST: The Next Generation
Webcast: Pragmatic REST: The Next GenerationWebcast: Pragmatic REST: The Next Generation
Webcast: Pragmatic REST: The Next GenerationApigee | Google Cloud
 
We Built This City - Apigee Edge Architecture
We Built This City - Apigee Edge ArchitectureWe Built This City - Apigee Edge Architecture
We Built This City - Apigee Edge ArchitectureApigee | Google Cloud
 
Mesh the Gears: Mastering the Economics of Digital Leverage
Mesh the Gears: Mastering the Economics of Digital LeverageMesh the Gears: Mastering the Economics of Digital Leverage
Mesh the Gears: Mastering the Economics of Digital LeverageApigee | Google Cloud
 
Adapt or Die: Serverless Microservices
Adapt or Die: Serverless MicroservicesAdapt or Die: Serverless Microservices
Adapt or Die: Serverless MicroservicesApigee | Google Cloud
 
What's Better than Microservices? Serverless Microservices.
What's Better than Microservices? Serverless Microservices.What's Better than Microservices? Serverless Microservices.
What's Better than Microservices? Serverless Microservices.Apigee | Google Cloud
 
Managing Sensitive Information in an API and Microservices World
Managing Sensitive Information in an API and Microservices WorldManaging Sensitive Information in an API and Microservices World
Managing Sensitive Information in an API and Microservices WorldApigee | Google Cloud
 
Microservices Done Right: Key Ingredients for Microservices Success
Microservices Done Right: Key Ingredients for Microservices SuccessMicroservices Done Right: Key Ingredients for Microservices Success
Microservices Done Right: Key Ingredients for Microservices SuccessApigee | Google Cloud
 
The future-of-netflix-api
The future-of-netflix-apiThe future-of-netflix-api
The future-of-netflix-apiDaniel Jacobson
 
Swagger for-your-api
Swagger for-your-apiSwagger for-your-api
Swagger for-your-apiTony Tam
 
API Strategy Evolution at Netflix
API Strategy Evolution at NetflixAPI Strategy Evolution at Netflix
API Strategy Evolution at NetflixMichael Hart
 
Economic models for reinventing telco webcast by vision mobile, apigee
Economic models for reinventing telco   webcast by vision mobile, apigeeEconomic models for reinventing telco   webcast by vision mobile, apigee
Economic models for reinventing telco webcast by vision mobile, apigeeSlashData
 
Apigee centralite io t webinar july 2015 share (2)
Apigee centralite io t webinar july 2015 share (2)Apigee centralite io t webinar july 2015 share (2)
Apigee centralite io t webinar july 2015 share (2)Apigee | Google Cloud
 
Apigee Insights: Data & Context-Driven Actions
Apigee Insights: Data & Context-Driven ActionsApigee Insights: Data & Context-Driven Actions
Apigee Insights: Data & Context-Driven ActionsApigee | Google Cloud
 
Big Data Science with H2O in R
Big Data Science with H2O in RBig Data Science with H2O in R
Big Data Science with H2O in RAnqi Fu
 
Engineering and Autonomy in the Age of Microservices - Nic Benders, New Relic
Engineering and Autonomy in the Age of Microservices - Nic Benders, New RelicEngineering and Autonomy in the Age of Microservices - Nic Benders, New Relic
Engineering and Autonomy in the Age of Microservices - Nic Benders, New RelicAmbassador Labs
 

Andere mochten auch (20)

Apigee Products Overview
Apigee Products OverviewApigee Products Overview
Apigee Products Overview
 
Building APIs with Apigee Edge and Microsoft Azure
Building APIs with Apigee Edge and Microsoft AzureBuilding APIs with Apigee Edge and Microsoft Azure
Building APIs with Apigee Edge and Microsoft Azure
 
Webcast: Pragmatic REST: The Next Generation
Webcast: Pragmatic REST: The Next GenerationWebcast: Pragmatic REST: The Next Generation
Webcast: Pragmatic REST: The Next Generation
 
We Built This City - Apigee Edge Architecture
We Built This City - Apigee Edge ArchitectureWe Built This City - Apigee Edge Architecture
We Built This City - Apigee Edge Architecture
 
A Checklist for Every API Call
A Checklist for Every API CallA Checklist for Every API Call
A Checklist for Every API Call
 
Mesh the Gears: Mastering the Economics of Digital Leverage
Mesh the Gears: Mastering the Economics of Digital LeverageMesh the Gears: Mastering the Economics of Digital Leverage
Mesh the Gears: Mastering the Economics of Digital Leverage
 
Is Microservices SOA Done Right?
Is Microservices SOA Done Right?Is Microservices SOA Done Right?
Is Microservices SOA Done Right?
 
Adapt or Die: Serverless Microservices
Adapt or Die: Serverless MicroservicesAdapt or Die: Serverless Microservices
Adapt or Die: Serverless Microservices
 
What's Better than Microservices? Serverless Microservices.
What's Better than Microservices? Serverless Microservices.What's Better than Microservices? Serverless Microservices.
What's Better than Microservices? Serverless Microservices.
 
Managing Sensitive Information in an API and Microservices World
Managing Sensitive Information in an API and Microservices WorldManaging Sensitive Information in an API and Microservices World
Managing Sensitive Information in an API and Microservices World
 
Microservices Done Right: Key Ingredients for Microservices Success
Microservices Done Right: Key Ingredients for Microservices SuccessMicroservices Done Right: Key Ingredients for Microservices Success
Microservices Done Right: Key Ingredients for Microservices Success
 
The future-of-netflix-api
The future-of-netflix-apiThe future-of-netflix-api
The future-of-netflix-api
 
Swagger for-your-api
Swagger for-your-apiSwagger for-your-api
Swagger for-your-api
 
API Strategy Evolution at Netflix
API Strategy Evolution at NetflixAPI Strategy Evolution at Netflix
API Strategy Evolution at Netflix
 
Economic models for reinventing telco webcast by vision mobile, apigee
Economic models for reinventing telco   webcast by vision mobile, apigeeEconomic models for reinventing telco   webcast by vision mobile, apigee
Economic models for reinventing telco webcast by vision mobile, apigee
 
Apigee centralite io t webinar july 2015 share (2)
Apigee centralite io t webinar july 2015 share (2)Apigee centralite io t webinar july 2015 share (2)
Apigee centralite io t webinar july 2015 share (2)
 
Hadoop Technology
Hadoop TechnologyHadoop Technology
Hadoop Technology
 
Apigee Insights: Data & Context-Driven Actions
Apigee Insights: Data & Context-Driven ActionsApigee Insights: Data & Context-Driven Actions
Apigee Insights: Data & Context-Driven Actions
 
Big Data Science with H2O in R
Big Data Science with H2O in RBig Data Science with H2O in R
Big Data Science with H2O in R
 
Engineering and Autonomy in the Age of Microservices - Nic Benders, New Relic
Engineering and Autonomy in the Age of Microservices - Nic Benders, New RelicEngineering and Autonomy in the Age of Microservices - Nic Benders, New Relic
Engineering and Autonomy in the Age of Microservices - Nic Benders, New Relic
 

Ähnlich wie I Love APIs 2015: Crash Course Foundational Topics in Apigee Edge Workshop

Webcast: Deep-Dive Apigee Edge Microgateway
Webcast: Deep-Dive Apigee Edge MicrogatewayWebcast: Deep-Dive Apigee Edge Microgateway
Webcast: Deep-Dive Apigee Edge MicrogatewayApigee | Google Cloud
 
Amazon CI/CD Practices for Software Development Teams - SRV320 - Atlanta AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Atlanta AWS ...Amazon CI/CD Practices for Software Development Teams - SRV320 - Atlanta AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Atlanta AWS ...Amazon Web Services
 
API Services: Building State-of-the-Art APIs
API Services: Building State-of-the-Art APIsAPI Services: Building State-of-the-Art APIs
API Services: Building State-of-the-Art APIsApigee | Google Cloud
 
Engineering Student MuleSoft Meetup#3 - API Implementation using APIKIT route...
Engineering Student MuleSoft Meetup#3 - API Implementation using APIKIT route...Engineering Student MuleSoft Meetup#3 - API Implementation using APIKIT route...
Engineering Student MuleSoft Meetup#3 - API Implementation using APIKIT route...Jitendra Bafna
 
MuleSoft Certified Platform Architect Exam Dumps 2023.pdf
MuleSoft Certified Platform Architect Exam Dumps 2023.pdfMuleSoft Certified Platform Architect Exam Dumps 2023.pdf
MuleSoft Certified Platform Architect Exam Dumps 2023.pdfSkillCertProExams
 
Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...Amazon Web Services
 
Azure Spring Clean 2024 event - Azure API Management: Architecting for Perfor...
Azure Spring Clean 2024 event - Azure API Management: Architecting for Perfor...Azure Spring Clean 2024 event - Azure API Management: Architecting for Perfor...
Azure Spring Clean 2024 event - Azure API Management: Architecting for Perfor...Hamida Rebai Trabelsi
 
CI/CD Pipeline Security: Advanced Continuous Delivery Best Practices: Securit...
CI/CD Pipeline Security: Advanced Continuous Delivery Best Practices: Securit...CI/CD Pipeline Security: Advanced Continuous Delivery Best Practices: Securit...
CI/CD Pipeline Security: Advanced Continuous Delivery Best Practices: Securit...Amazon Web Services
 
Amazon CI/CD Practices for Software Development Teams - SRV320 - Chicago AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Chicago AWS ...Amazon CI/CD Practices for Software Development Teams - SRV320 - Chicago AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Chicago AWS ...Amazon Web Services
 
APIConnect Security Best Practice
APIConnect Security Best PracticeAPIConnect Security Best Practice
APIConnect Security Best PracticeShiu-Fun Poon
 
MuleSoft Meetup Virtual_ 2_Charlotte
MuleSoft Meetup Virtual_ 2_CharlotteMuleSoft Meetup Virtual_ 2_Charlotte
MuleSoft Meetup Virtual_ 2_CharlotteSubhash Patel
 
Advanced Continuous Delivery Best Practices (DEV317-R1) - AWS re:Invent 2018
Advanced Continuous Delivery Best Practices (DEV317-R1) - AWS re:Invent 2018Advanced Continuous Delivery Best Practices (DEV317-R1) - AWS re:Invent 2018
Advanced Continuous Delivery Best Practices (DEV317-R1) - AWS re:Invent 2018Amazon Web Services
 
2015 UJUG, Servlet 4.0 portion
2015 UJUG, Servlet 4.0 portion2015 UJUG, Servlet 4.0 portion
2015 UJUG, Servlet 4.0 portionmnriem
 
API Governance and GitOps in Hybrid Integration Platform (MuleSoft)
API Governance and GitOps in Hybrid Integration Platform (MuleSoft)API Governance and GitOps in Hybrid Integration Platform (MuleSoft)
API Governance and GitOps in Hybrid Integration Platform (MuleSoft)Sumanth Donthi
 
REST API 20.2 - Appworks Gateway Integration.pptx
REST API 20.2 - Appworks Gateway Integration.pptxREST API 20.2 - Appworks Gateway Integration.pptx
REST API 20.2 - Appworks Gateway Integration.pptxJason452803
 
[Madrid-Meetup Octubre 22] Seguridad fuerte como el vinagre de Jerez. Políti...
[Madrid-Meetup Octubre 22] Seguridad fuerte como el vinagre de Jerez. Políti...[Madrid-Meetup Octubre 22] Seguridad fuerte como el vinagre de Jerez. Políti...
[Madrid-Meetup Octubre 22] Seguridad fuerte como el vinagre de Jerez. Políti...jorgelebrato
 
API Gateway How-To: The Many Ways to Apply the Gateway Pattern
API Gateway How-To: The Many Ways to Apply the Gateway PatternAPI Gateway How-To: The Many Ways to Apply the Gateway Pattern
API Gateway How-To: The Many Ways to Apply the Gateway PatternVMware Tanzu
 
AppSphere 15 - PHP, Node.js and Python Deep Dive
AppSphere 15 - PHP, Node.js and Python Deep DiveAppSphere 15 - PHP, Node.js and Python Deep Dive
AppSphere 15 - PHP, Node.js and Python Deep DiveAppDynamics
 
Pivotal microservices spring_pcf_skillsmatter.pptx
Pivotal microservices spring_pcf_skillsmatter.pptxPivotal microservices spring_pcf_skillsmatter.pptx
Pivotal microservices spring_pcf_skillsmatter.pptxSufyaan Kazi
 

Ähnlich wie I Love APIs 2015: Crash Course Foundational Topics in Apigee Edge Workshop (20)

Webcast: Deep-Dive Apigee Edge Microgateway
Webcast: Deep-Dive Apigee Edge MicrogatewayWebcast: Deep-Dive Apigee Edge Microgateway
Webcast: Deep-Dive Apigee Edge Microgateway
 
Amazon CI/CD Practices for Software Development Teams - SRV320 - Atlanta AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Atlanta AWS ...Amazon CI/CD Practices for Software Development Teams - SRV320 - Atlanta AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Atlanta AWS ...
 
API Services: Building State-of-the-Art APIs
API Services: Building State-of-the-Art APIsAPI Services: Building State-of-the-Art APIs
API Services: Building State-of-the-Art APIs
 
Engineering Student MuleSoft Meetup#3 - API Implementation using APIKIT route...
Engineering Student MuleSoft Meetup#3 - API Implementation using APIKIT route...Engineering Student MuleSoft Meetup#3 - API Implementation using APIKIT route...
Engineering Student MuleSoft Meetup#3 - API Implementation using APIKIT route...
 
MuleSoft Certified Platform Architect Exam Dumps 2023.pdf
MuleSoft Certified Platform Architect Exam Dumps 2023.pdfMuleSoft Certified Platform Architect Exam Dumps 2023.pdf
MuleSoft Certified Platform Architect Exam Dumps 2023.pdf
 
Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...
 
Azure Spring Clean 2024 event - Azure API Management: Architecting for Perfor...
Azure Spring Clean 2024 event - Azure API Management: Architecting for Perfor...Azure Spring Clean 2024 event - Azure API Management: Architecting for Perfor...
Azure Spring Clean 2024 event - Azure API Management: Architecting for Perfor...
 
CI/CD Pipeline Security: Advanced Continuous Delivery Best Practices: Securit...
CI/CD Pipeline Security: Advanced Continuous Delivery Best Practices: Securit...CI/CD Pipeline Security: Advanced Continuous Delivery Best Practices: Securit...
CI/CD Pipeline Security: Advanced Continuous Delivery Best Practices: Securit...
 
Amazon CI/CD Practices for Software Development Teams - SRV320 - Chicago AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Chicago AWS ...Amazon CI/CD Practices for Software Development Teams - SRV320 - Chicago AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Chicago AWS ...
 
WEB API Gateway
WEB API GatewayWEB API Gateway
WEB API Gateway
 
APIConnect Security Best Practice
APIConnect Security Best PracticeAPIConnect Security Best Practice
APIConnect Security Best Practice
 
MuleSoft Meetup Virtual_ 2_Charlotte
MuleSoft Meetup Virtual_ 2_CharlotteMuleSoft Meetup Virtual_ 2_Charlotte
MuleSoft Meetup Virtual_ 2_Charlotte
 
Advanced Continuous Delivery Best Practices (DEV317-R1) - AWS re:Invent 2018
Advanced Continuous Delivery Best Practices (DEV317-R1) - AWS re:Invent 2018Advanced Continuous Delivery Best Practices (DEV317-R1) - AWS re:Invent 2018
Advanced Continuous Delivery Best Practices (DEV317-R1) - AWS re:Invent 2018
 
2015 UJUG, Servlet 4.0 portion
2015 UJUG, Servlet 4.0 portion2015 UJUG, Servlet 4.0 portion
2015 UJUG, Servlet 4.0 portion
 
API Governance and GitOps in Hybrid Integration Platform (MuleSoft)
API Governance and GitOps in Hybrid Integration Platform (MuleSoft)API Governance and GitOps in Hybrid Integration Platform (MuleSoft)
API Governance and GitOps in Hybrid Integration Platform (MuleSoft)
 
REST API 20.2 - Appworks Gateway Integration.pptx
REST API 20.2 - Appworks Gateway Integration.pptxREST API 20.2 - Appworks Gateway Integration.pptx
REST API 20.2 - Appworks Gateway Integration.pptx
 
[Madrid-Meetup Octubre 22] Seguridad fuerte como el vinagre de Jerez. Políti...
[Madrid-Meetup Octubre 22] Seguridad fuerte como el vinagre de Jerez. Políti...[Madrid-Meetup Octubre 22] Seguridad fuerte como el vinagre de Jerez. Políti...
[Madrid-Meetup Octubre 22] Seguridad fuerte como el vinagre de Jerez. Políti...
 
API Gateway How-To: The Many Ways to Apply the Gateway Pattern
API Gateway How-To: The Many Ways to Apply the Gateway PatternAPI Gateway How-To: The Many Ways to Apply the Gateway Pattern
API Gateway How-To: The Many Ways to Apply the Gateway Pattern
 
AppSphere 15 - PHP, Node.js and Python Deep Dive
AppSphere 15 - PHP, Node.js and Python Deep DiveAppSphere 15 - PHP, Node.js and Python Deep Dive
AppSphere 15 - PHP, Node.js and Python Deep Dive
 
Pivotal microservices spring_pcf_skillsmatter.pptx
Pivotal microservices spring_pcf_skillsmatter.pptxPivotal microservices spring_pcf_skillsmatter.pptx
Pivotal microservices spring_pcf_skillsmatter.pptx
 

Mehr von Apigee | Google Cloud

Monetization: Unlock More Value from Your APIs
Monetization: Unlock More Value from Your APIs Monetization: Unlock More Value from Your APIs
Monetization: Unlock More Value from Your APIs Apigee | Google Cloud
 
AccuWeather: Recasting API Experiences in a Developer-First World
AccuWeather: Recasting API Experiences in a Developer-First WorldAccuWeather: Recasting API Experiences in a Developer-First World
AccuWeather: Recasting API Experiences in a Developer-First WorldApigee | Google Cloud
 
Which Application Modernization Pattern Is Right For You?
Which Application Modernization Pattern Is Right For You?Which Application Modernization Pattern Is Right For You?
Which Application Modernization Pattern Is Right For You?Apigee | Google Cloud
 
The Four Transformative Forces of the API Management Market
The Four Transformative Forces of the API Management MarketThe Four Transformative Forces of the API Management Market
The Four Transformative Forces of the API Management MarketApigee | Google Cloud
 
Managing the Complexity of Microservices Deployments
Managing the Complexity of Microservices DeploymentsManaging the Complexity of Microservices Deployments
Managing the Complexity of Microservices DeploymentsApigee | Google Cloud
 
Adapt or Die: Opening Keynote with Chet Kapoor
Adapt or Die: Opening Keynote with Chet KapoorAdapt or Die: Opening Keynote with Chet Kapoor
Adapt or Die: Opening Keynote with Chet KapoorApigee | Google Cloud
 
Adapt or Die: Keynote with Greg Brail
Adapt or Die: Keynote with Greg BrailAdapt or Die: Keynote with Greg Brail
Adapt or Die: Keynote with Greg BrailApigee | Google Cloud
 
Adapt or Die: Keynote with Anant Jhingran
Adapt or Die: Keynote with Anant JhingranAdapt or Die: Keynote with Anant Jhingran
Adapt or Die: Keynote with Anant JhingranApigee | Google Cloud
 
London Adapt or Die: Closing Keynote — Adapt Now!
London Adapt or Die: Closing Keynote — Adapt Now!London Adapt or Die: Closing Keynote — Adapt Now!
London Adapt or Die: Closing Keynote — Adapt Now!Apigee | Google Cloud
 
London adapt or-die opening keynote chet kapoor
London adapt or-die opening keynote chet kapoorLondon adapt or-die opening keynote chet kapoor
London adapt or-die opening keynote chet kapoorApigee | Google Cloud
 
London Adapt or Die: Opening Keynote with Chet Kapoor
London Adapt or Die: Opening Keynote with Chet KapoorLondon Adapt or Die: Opening Keynote with Chet Kapoor
London Adapt or Die: Opening Keynote with Chet KapoorApigee | Google Cloud
 

Mehr von Apigee | Google Cloud (20)

Magazine Luiza at a glance (1)
Magazine Luiza at a glance (1)Magazine Luiza at a glance (1)
Magazine Luiza at a glance (1)
 
Monetization: Unlock More Value from Your APIs
Monetization: Unlock More Value from Your APIs Monetization: Unlock More Value from Your APIs
Monetization: Unlock More Value from Your APIs
 
Apigee Demo: API Platform Overview
Apigee Demo: API Platform OverviewApigee Demo: API Platform Overview
Apigee Demo: API Platform Overview
 
Ticketmaster at a glance
Ticketmaster at a glanceTicketmaster at a glance
Ticketmaster at a glance
 
AccuWeather: Recasting API Experiences in a Developer-First World
AccuWeather: Recasting API Experiences in a Developer-First WorldAccuWeather: Recasting API Experiences in a Developer-First World
AccuWeather: Recasting API Experiences in a Developer-First World
 
Which Application Modernization Pattern Is Right For You?
Which Application Modernization Pattern Is Right For You?Which Application Modernization Pattern Is Right For You?
Which Application Modernization Pattern Is Right For You?
 
Apigee Product Roadmap Part 2
Apigee Product Roadmap Part 2Apigee Product Roadmap Part 2
Apigee Product Roadmap Part 2
 
The Four Transformative Forces of the API Management Market
The Four Transformative Forces of the API Management MarketThe Four Transformative Forces of the API Management Market
The Four Transformative Forces of the API Management Market
 
Walgreens at a glance
Walgreens at a glanceWalgreens at a glance
Walgreens at a glance
 
Apigee Edge: Intro to Microgateway
Apigee Edge: Intro to MicrogatewayApigee Edge: Intro to Microgateway
Apigee Edge: Intro to Microgateway
 
Managing the Complexity of Microservices Deployments
Managing the Complexity of Microservices DeploymentsManaging the Complexity of Microservices Deployments
Managing the Complexity of Microservices Deployments
 
Pitney Bowes at a glance
Pitney Bowes at a glancePitney Bowes at a glance
Pitney Bowes at a glance
 
Adapt or Die: Opening Keynote with Chet Kapoor
Adapt or Die: Opening Keynote with Chet KapoorAdapt or Die: Opening Keynote with Chet Kapoor
Adapt or Die: Opening Keynote with Chet Kapoor
 
Adapt or Die: Keynote with Greg Brail
Adapt or Die: Keynote with Greg BrailAdapt or Die: Keynote with Greg Brail
Adapt or Die: Keynote with Greg Brail
 
Adapt or Die: Keynote with Anant Jhingran
Adapt or Die: Keynote with Anant JhingranAdapt or Die: Keynote with Anant Jhingran
Adapt or Die: Keynote with Anant Jhingran
 
London Adapt or Die: Opening Keynot
London Adapt or Die: Opening KeynotLondon Adapt or Die: Opening Keynot
London Adapt or Die: Opening Keynot
 
London Adapt or Die: Lunch keynote
London Adapt or Die: Lunch keynoteLondon Adapt or Die: Lunch keynote
London Adapt or Die: Lunch keynote
 
London Adapt or Die: Closing Keynote — Adapt Now!
London Adapt or Die: Closing Keynote — Adapt Now!London Adapt or Die: Closing Keynote — Adapt Now!
London Adapt or Die: Closing Keynote — Adapt Now!
 
London adapt or-die opening keynote chet kapoor
London adapt or-die opening keynote chet kapoorLondon adapt or-die opening keynote chet kapoor
London adapt or-die opening keynote chet kapoor
 
London Adapt or Die: Opening Keynote with Chet Kapoor
London Adapt or Die: Opening Keynote with Chet KapoorLondon Adapt or Die: Opening Keynote with Chet Kapoor
London Adapt or Die: Opening Keynote with Chet Kapoor
 

Kürzlich hochgeladen

Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 

Kürzlich hochgeladen (20)

Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 

I Love APIs 2015: Crash Course Foundational Topics in Apigee Edge Workshop

  • 1. 1 Crash Course: Foundational Topics in Apigee Edge! Steve Richardson
  • 2. Agenda 2 1. Anatomy of an API Proxy 9:30 2. Connectivity 10:30 3. API Management 12:00 4. Rate Limiting 2:30 5. Caching 3:30 6. Custom Analytics 5:00 ©2015 Apigee. All Rights Reserved.
  • 3. Anatomy of an API Proxy 3
  • 4. Platform Entities 4 ©2015 Apigee. All Rights Reserved. Organization Environment Role Permission Permission API Product Developer Applications Developer Keys/Tokens Users Permission API Proxy Cache Resource KVM Resource Ext Resource KVM Resource Extension Resource Companies Key / Trust Store VaultTarget Servers VirtualHost Vault
  • 5. API Proxies 5 ©2015 Apigee. All Rights Reserved. APIProxy Proxy Endpoints Target Endpoints Resources VH Policies Routes Flows Preflow Postflow Flows Preflow Postflow Policies Load Balancer Target Server Java Javascript Node.js Python XSL WSDL FaultRules FaultRules
  • 6. Proxy Endpoint 6 ©2015 Apigee. All Rights Reserved. Proxy Endpoint Virtual Host Virtual Host Route Rule Flows Route RuleRoute Rule Virtual Host PostFlow Conditional Flow Conditional Flow Conditional Flow Policy Policy Policy Preflow Policy Policy Policy Policy Policy Policy Policy Policy Policy Fault Rules Default Fault Rule
  • 7. Proxy Endpoint Example 7 ©2015 Apigee. All Rights Reserved.
  • 8. Virtual Hosts 8 ©2015 Apigee. All Rights Reserved. Environment: Dev APIProxy Virtual Host Host Alias: dev.apieatery.com Port:80 Name:http Virtual Host Host Alias: dev.apieatery.com Port:443 Name:https SSLInfo Proxy Endpoint: /v1/oauth Proxy Endpoint: /v1/apieatery Virtualhost Reference: https Virtualhost Reference: http Virtualhost Reference: https
  • 9. Virtual Hosts 9 ©2015 Apigee. All Rights Reserved.
  • 10. Policy Flows 10 ©2015 Apigee. All Rights Reserved.
  • 11. Policy Flows Global Flows 11 ©2015 Apigee. All Rights Reserved.
  • 12. Policy Flows Conditional Flows / Resource 12 ©2015 Apigee. All Rights Reserved. Post Client
  • 13. Policies 13 ©2015 Apigee. All Rights Reserved.
  • 14. Route Rules 14 ©2015 Apigee. All Rights Reserved. Default Routes No Target Routes Conditional Routes <RouteRule name="auth"> <Condition>proxy.pathsuffix MatchesPath "/auth"</Condition> </RouteRule> <RouteRule name="routeToTestServer"> <Condition>request.header.X-TestServer == "true"</Condition> <TargetEndpoint>testServer</TargetEndpoint> </RouteRule> <RouteRule name="default"> <TargetEndpoint>default</TargetEndpoint> </RouteRule>
  • 15. Target Endpoints 15 ©2015 Apigee. All Rights Reserved. Target Endpoint Flows PostFlow Conditional Flow Conditional Flow Conditional Flow Policy Policy Policy Preflow Policy Policy Policy Policy Policy Policy Policy Policy Policy Load Balancing Group Load Balancing Group Load Balancing GroupTarget Server Target Server Target Server Target Server Target Server Target Server Fault Rules Default Fault Rule
  • 16. Target Endpoints 16 ©2015 Apigee. All Rights Reserved.
  • 17. Load Balancing 17 ©2015 Apigee. All Rights Reserved. Environment: Dev APIProxy Target Server Host: dev.internal1.apieatery.com Port:80 Name:internal1 Target Server Host: dev.internal2.apieatery.com Port:443 Name:internal2 SSLInfo HTTP Target Connection LoadBalancer: Algorithm: Round Robin RetryEnabled: true Server: internal1 Weight: 1 MaxFailures: 5 isFallback: true Path: /targetBasePath HealthMonitor Server: internal2 Weight: 1 MaxFailures: 5 isFallback: false
  • 18. Load Balancer 18 ©2015 Apigee. All Rights Reserved.
  • 19. Health Monitor 19 ©2015 Apigee. All Rights Reserved. HealthMonitor TCP Monitor ConnectTimeoutInSec: 1 Port: 80 - Overrides the Target Server setting HTTP Monitor isEnabled: True IntervalInSec: 5 Request: ConnectTimeoutInSec: 1 SocketReadTimeoutInSec: 1 Port: 80 Verb: GET Path: /healthcheck Headers: Header: @Name:Authorization:245ASf4@%# Payload: SuccessResponse: ResponseCode: 200 Headers: Header: @Name:imOk: true
  • 20. TCP Health Checks 20 ©2015 Apigee. All Rights Reserved.
  • 21. HTTP Health Checks 21 ©2015 Apigee. All Rights Reserved.
  • 22. Fault Rules 22 ©2015 Apigee. All Rights Reserved. FaultRules AlwaysEnforce = true AlwaysEnforce = false Default Fault Rules FaultRule Policy Policy Policy FaultRule Policy Policy Policy FaultRule Policy Policy Policy PostFlowErrorProcessor IfAllElseFailsRunThis
  • 23. Fault Rules 23 ©2015 Apigee. All Rights Reserved.
  • 24. Advanced Endpoint Properties For Proxy In addition to the standard endpoint configurations there are some properties to control advanced functionality. <HTTPProxyConnection> •  allow.http.method.* - by default all HTTP methods are allowed. To disable a method you can use this property: <Property name="allow.http.method.POST">false</Property> •  request.streaming.enabled – if the payload will not be read or updated during the proxy processing, you can enable to to avoid payload buffer size limits •  response.streaming.enabled - if the payload will not be read or updated during the proxy processing, you can enable to to avoid payload buffer size limits 24 ©2015 Apigee. All Rights Reserved.
  • 25. Advanced Endpoint Properties For Target <HTTPTargetConnection> •  connect.timeout.millis – this is used to set the connection timeout for backend connections (in ms). Defaults to 60000 (1 min) and highly recommended to lower •  io.timeout.millis – this is used to set the response read timeout (waiting for response from backend). Defaults to 120000 (2 min) and extremely encouraged to reduce to optimize connection handling in the event that a backend service is degraded. •  response.streaming.enabled - if the payload will not be read or updated during the proxy processing, you can enable to to avoid payload buffer size limits •  success.codes – this property is used to set the response status codes that are treated as ‘success’. Defaults to 1XX,2XX,3XX. This is a helpful configuration when you want to access 4XX responses are success to continue response flow processing 25 ©2015 Apigee. All Rights Reserved.
  • 27. Getting Setup Steps 1.  Using a web browser Navigate to apigee.com 2.  Click the Sign In Button 3.  If you do not have an Apigee Account click the Sign Up Link 4.  Fill out form and click the Create Account button 5.  Activate Account by clicking link contained in an email sent to your registered account 6.  Once your account is activated you should be able to login, once logged in you will be taken to the dashboard page, once their click the button under the API Management block. Note: Activation can sometimes take a couple of minutes to activate. Welcome to Apigee Edge!!!!! 27 ©2015 Apigee. All Rights Reserved.
  • 28. New API Proxy Options Part 1 New API Proxy Options •  Backend Service –  Most common starting point when building a proxy from scratch –  Backend Service URL field is used to target a specific backend endpoint •  API Bundle –  This Option allows you to define an existing API proxy that is bundled in a ZIP file format for import. –  Commonly used to import a proxy from one organization to another •  WSDL –  This option is used for creating policies that work with an existing web service along with your new proxy –  Supports Pass-Thru options –  Supports Basic Rest too Soap Conversions 28 ©2015 Apigee. All Rights Reserved.
  • 29. New API Proxy Options Part 2 New API Proxy Options •  No Target –  This option is used when you service the API directly on the Apigee Platform with no Target –  Is great for creating API Stubs •  Node.js –  Two Options for Node.js (New, Existing) –  The New option gives you the capability of creating a new API proxy that has a simple Node.js Hello World Application built into it (there is also an example of a BAAS target too). –  The Existing option is like the API Bundle option, the only difference is that it only excepts your entry js file e.g. app.js or server .js 29 ©2015 Apigee. All Rights Reserved.
  • 30. Completing the Form Lets Complete the Form • Use Backend Service – Set the Backend Service URL to: •  https://apigee-edu-test.apigee.net/v1/apieatery – In the Name use something unique to you, for instance yourname_apieatery – In the Project Base Path: add a path to make it unique I use /v1/myname/apieatery 30 ©2015 Apigee. All Rights Reserved.
  • 31. Building Target Authentication Building our Proxy against a target that uses Basic Authentication requires you to store credentials on the Apigee Platform. Which poses the question "Were do i store the credentials?” 1.  Hard Code Them? 2.  Replace Them at Build Time? 3.  Key Value Map? 4.  Node.js Vault? 31 ©2015 Apigee. All Rights Reserved.
  • 32. Hard Coding using Assign Message 32 ©2015 Apigee. All Rights Reserved.
  • 33. Build Time Replacement 33 ©2015 Apigee. All Rights Reserved.
  • 34. Build Time Replacement Part 2 34 ©2015 Apigee. All Rights Reserved.
  • 35. Storing Credentials in a Node.js Access Vault Step 1: Build Vault and Vault Data Via API 35 ©2015 Apigee. All Rights Reserved. Step 2: Retrieve Data in Node.js App
  • 36. Storing Credentials in a Key Value Map Step 1: Create KVM and KVM Data Via API 36 ©2015 Apigee. All Rights Reserved. Step 2: Retrieve Data via KVM Policy
  • 37. Key KVM Policy Configuration Options •  ExpiryTimeInSecs - This setting is used to expire the cache not the entry •  InitialEntries - Allows you to pre-define values 37 ©2015 Apigee. All Rights Reserved. •  Multiple Values - KVM supports multiple values per name, you can access values using the index attribute of the Get tag
  • 38. Building Authorization Headers with the Basic Auth Policy •  Can Encode the two variables into a basic authentication header •  Can Decode an basic authentication header into two variables Example 38 ©2015 Apigee. All Rights Reserved.
  • 39. Exercise 1 Exercise to Create a proxy that connects to a basic authenticated backend (i.e. APIEatery Backend would work) Step One: Create Proxy Step Two: Create KVM Step Three: Access KVM Step Four: Build Authorization Header Step Five: Test Server Step Six (Optional): Create Target Servers Step Seven (Optional): Configure Target Servers instead of the HTTP Target URL 39 ©2015 Apigee. All Rights Reserved.
  • 41. API Management Eco-System 41 ©2015 Apigee. All Rights Reserved. Business Team API Team Application Developers Products API Resources Keys Applications
  • 42. API Product Strategies 42 ©2015 Apigee. All Rights Reserved. Service Plan Model ApiProxy Model Business Model Ownership Model ?
  • 43. API Proxy Model 43 ©2015 Apigee. All Rights Reserved. API Proxy A Product A API Proxy B Product B Quota: 5 rpm Quota: 10 rpm The API Proxy Model is a strategy centered around creating a 1 to 1 relationship with your API proxies and your products
  • 44. Business Model 44 ©2015 Apigee. All Rights Reserved. The Business Model is a strategy centered around creating a relationship between a companies business unit specific API's and Products Company Business Unit A Product A Business Unit B Product B API Resource 1 API Resource 2 API Resource 3 API Resource 4 API Resource 5 API Resource 6 API Resource 7 API Resource 8
  • 45. Ownership Model 45 ©2015 Apigee. All Rights Reserved. The Ownership Model is a strategy that creates a relationship between the owner of the API resource and the Products Company Development Team A Product A Development Team B Product B API Resource API Resource API Resource API Resource API Resource API Resource API Resource API Resource
  • 46. Service Plan Model 46 ©2015 Apigee. All Rights Reserved. The Service Plan Model is Product strategy that groups API Resources in a Product based on a business model defined by different service levels e.g. Bronze, Silver, and Gold Bronze Service Plan Product A Gold Service Plan Product B API Resource API Resource API Resource API Resource API Resource API Resource
  • 47. Key Concepts •  Product to Application is a Many to Many Relationship •  When a Product is associated with an Application a Key is generated •  Products contain configuration used to display information an control workflow in the Developer Portal •  You can set custom configuration that can be accessed by every API that call that is made from an Application associated with a Product 47 ©2015 Apigee. All Rights Reserved.
  • 48. How Products Manage Access Control •  By Default Access Control is can be restricted by either the combination of proxy and path-suffix or each individually 48 ©2015 Apigee. All Rights Reserved. •  Product resource validation happens when you validate either an Access Token or an API key •  Multiple product validations are done via a Union of the product definitions
  • 49. How to extend API Products •  Products can be extended via custom attributes 49 ©2015 Apigee. All Rights Reserved. •  Variable flow.resource.name allows you to validate based on other information i.e. basepath, verb Note: If your production environment lives in the same organization as your make sure you do an environment check, when validating your keys by using the flow.resource.name the system no longer checks the active environment
  • 51. Rate Limiting: Spike Arrest 51
  • 52. Spike Arrest 52 ©2015 Apigee. All Rights Reserved. •  SpikeArrest smooth's inflow request patterns over short intervals to ensure that demand does not outstrip capacity." •  SpikeArrest is a technical requirement to protect the backend as opposed to a Quota or Rate Limit which is a business requirement to manage developer relationships. apps api.yourcompany.com 2,000tps 1,000tps
  • 53. Spike Arrest and Denial of Service •  Spike Arrest Policy is often used offset the risk of DOS attack or a DDOS attack •  Denial of Service attacks is an attack on your platform instigated by sending thousands of requests against your API as a means to either bring down your platform or expose other vulnerabilities •  Spike Arrest monitors the rate at which traffic comes in, it does not count each request by putting them in timed buckets. 53 ©2015 Apigee. All Rights Reserved.
  • 54. •  Identifier –  Mechanism to scope your incoming traffic –  Uses a separate rate for each unique Id •  Message weight –  Used to give extra weight to conditioned requests •  Rate –  Specifies the rate you want to allow traffic to come into your API Proxy. –  Rate is for each Message Processors –  Rate is formatted with a number and a unit –  Unit is defined as ps, pm (per second, per minute) Spike Arrest Configuration 54 ©2015 Apigee. All Rights Reserved.
  • 56. Quotas • Use quota to set a defined amount of requests to an entity • Quotas us buckets of request per time units unlike spike arrest which limits based of the rate of traffic • Once a quota limit is reached all request generated by the limited entity will be rejected 56 ©2015 Apigee. All Rights Reserved.
  • 57. •  Identifier –  Mechanism to scope your incoming traffic –  Uses a separate bucket for each unique Id •  Message weight –  Used to give extra weight to conditioned requests •  Allow –  Specifies the number of requests allowed for a particular entity •  Time Unit –  Month, Day, Week, Minute, Year •  Interval –  Frequency of the time unit Quota Configuration Part 1 57 ©2015 Apigee. All Rights Reserved.
  • 58. Quota Type Quota type indicates when the quota counter starts counting usage •  calendar (default if not specified) –  Quota counting has an explicit start time –  <StartTime> is specified and quota counting starts at the StartTime and is reset based on the specified <Interval> and <TimeUnit> •  rollingwindow –  Quota uses a rolling window that resets based on the <Interval> and <TimeUnit> –  The start time is the time the first message is received matching the <Identifier> –  rollingwindow allows a quota that resets on every interval •  flexi –  Start time is dynamic for each <Identifier> based on first message being received –  Calls can be used until interval has elapsed –  Quota does not automatically reset at the end of the interval –  flexi allows access for a specified period of time Quota type specified in type attribute of Quota root element 58 ©2015 Apigee. All Rights Reserved.
  • 59. Distributed Quotas •  <Distributed> specifies whether the count is shared among all message processors (Distributed = true) or maintained separately for each message processor (Distributed = false) •  <Synchronous> specifies whether the distributed quota counter is updated synchronously •  <AsynchronousConfiguration> specifies how an asynchronous distributed quota is updated •  If <PreciseAtSecondsLevel> is set to true, the quota will be enforced with an accuracy of a second, even if the <TimeUnit> is set at a unit longer than a second 59 ©2015 Apigee. All Rights Reserved.
  • 60. Example 60 ©2015 Apigee. All Rights Reserved.
  • 61. Flow Variables •  Flow variables are created after a Quota policy executes – Variables are prefixed with "ratelimit.{policy_name}." – Examples are: ratelimit.{policy_name}.available.count (available quota count) ratelimit.{policy_name}.used.count (used quota count) ratelimit.{policy_name}.expiry.time (time in ms when quota resets) ratelimit.{policy_name}.identifier (identifier for the policy) 61 ©2015 Apigee. All Rights Reserved.
  • 62. Setup Quota Via Product 62 ©2015 Apigee. All Rights Reserved.
  • 63. Exercise • Step One: Add Spike Arrest Policy • Step Two: Add Quota Policy • Step Three: Make Quota policy A-Sync • Step Four: Feed Quota values from Product 63 ©2015 Apigee. All Rights Reserved.
  • 65. © 2014 Apigee Confidential – All Rights Reserved Performance –  Reducing Network latency –  Eliminate redundant request/ response processing Stability –  Reduce amount of load to backend services Scalability –  Support higher TPS without adding additional hardware Why use Caching? App Apigee Server
  • 66. WSetup Quota Via Producthy Use Caching 66 Performance Stability Scalability ©2015 Apigee. All Rights Reserved. App
  • 67. Why Use Caching? 67 ©2015 Apigee. All Rights Reserved. Performance –  Reducing Network latency –  Eliminate redundant request/response processing Stability –  Reduce amount of load to backend services Scalability –  Support higher TPS without adding additional hardware App Apigee Server
  • 68. © 2014 Apigee Confidential – All Rights Reserved 2 different ways to populate/lookup cache data in Apigee Response Cache •  caches the entire HTTP response (headers, payload, etc.) •  can set a different time-to-live for each entry •  option for honoring HTTP cache headers for dynamic TTL (Expires, Cache-Control) •  option to support caching of multiple formats based on request ‘Accept’ header Populate Cache/Lookup Cache •  full control over caching, store any objects •  Add/update and read entries using separate policies Caching Policies 68
  • 69. © 2014 Apigee Confidential – All Rights Reserved Distributed caching allows cache entries to be distributed across multiple Message Processors within a region and across regions. Distributed Caching 69 Apigee Cassandra (L2) Apigee Cassandra (L2) Apigee Cassandra (L2) Apigee Cassandra (L2) Apigee Cassandra (L2) Apigee Cassandra (L2) Apigee Message Processor (L1) Apigee Message Processor (L1) Apigee Message Processor (L1) Apigee Message Processor (L1) Datacenter 1 Datacenter 2
  • 70. © 2014 Apigee Confidential – All Rights Reserved Cache Lookup/Populate Sequence 70 Apigee Message Processor (L1) Backend In Memory = true In Memory = false In Cassandra = true In Memory = false In Cassandra = false Apigee Cassandra (L2) Client Populate L1 Populate L2 Populate L1
  • 71. © 2014 Apigee Confidential – All Rights Reserved Reduces latency and network traffic by avoiding calls to backend and extra processing. Cache Key •  can use multiple key fragments •  include a unique user identifier if user data is cached •  scoping affects the cache key Expiration •  can specify a time of day or date the cache entry expires •  Leverage <UseResponseCacheHeaders> configuration so the policy dynamically sets TTL based on backend response HTTP cache headers. ResponseCache 71
  • 72. © 2014 Apigee Confidential – All Rights Reserved •  Optional conditions for skipping cache lookup or population. •  Same policy attached to request and response segments o  When Request segment policy is reached, cache lookup happens Ø  if cache hit, response is retrieved from cache and processing bypasses backend and other policies until ResponseCache policy in Response segment Ø  if cache miss, request processing continues o  When Response segment policy is reached, cache population happens and response message is stored ResponseCache (cont’d) 72
  • 73. © 2014 Apigee Confidential – All Rights Reserved Optimizes API performance by reducing request or response processing. •  Can cache any object. Typically used after building custom data •  Separate policies for cache population vs. lookup •  Specify a time-to-live •  Full control of population and lookup of cache via policies PopulateCache/LookupCache 73
  • 74. © 2014 Apigee Confidential – All Rights Reserved Use ResponseCache: •  when identical requests and their corresponding identical responses are common (cache hits will be frequent) •  to reduce unnecessary traffic to backend •  to reduce latency for common requests Use PopulateCache/LookupCache: •  when storing custom data objects (not always backend http response) to store data sets that have a specific maximum number of entries (vs. key/value maps) •  to persist data across multiple API transactions Choosing which caching policy to use… 74
  • 75. © 2014 Apigee Confidential – All Rights Reserved The use of caching is only beneficial if requests are being served from cache. There are key things to ensure your cache solution is obtaining optimal performance. •  Ensure your cache key is built in such a way that the only request parameters used for the key are ones that dictate the client’s response. (e.g. don’t just use the URI as things like timestamps and other unique items can end up as part of the key resulting in 0% cache hits. •  Take advantage of the cache scope. Multiple APIs might utilize the same cache so set the scope to be ‘organization’ and re-use. •  Cache Performance dashboard is available in Apigee Analytics to report on cache hit % and performance gains. Cache Utilization and Optimization 75
  • 76. © 2014 Apigee Confidential – All Rights Reserved Resource configured via UI or management API to define default cache settings. Cache Resources 76 •  Maximum Elements in Memory – defines the number of objects held in Apigee servers’ memory(L1). This can be used for tuning as there is a finite limit of server memory vs. unlimited storage in (L2). L2 is defined later. •  Compression – this setting enables compression on the object to be cached and allows you to define at which point to start compressing the object based on its size. Useful as small objects or already compressed data may not benefit from compression, thus poorly utilizing resources. •  Skip If Element in KB exceeds – option to skip caching an object if it is larger than the size specified. Useful if objects are large in size and could take up more L1 memory, reducing the # of objects that can be cached overall.
  • 77. © 2014 Apigee Confidential – All Rights Reserved Using the UI •  Allows you to clear the entries for a complete cache resource •  Typically used to invalidate all cache entries Mgmt API •  Same as UI with the addition of being able to specify a prefix used for cache keys •  Typically used to invalidate all cache entries InvalidateCache Policy •  Allows you build a fully customized API resource to invalidate specific entries •  Used in implementations to invalidate specific cache entries Clearing the cache 77
  • 78. © 2014 Apigee Confidential – All Rights Reserved Identify Caching within Trace Major drop in response times Not in Cache – all policies and trip to backend Cache hit – fewer policies, no backend
  • 80. 80 Template (t) vs. Brand Colors Apigee Brand Guidelines 7 Color Usage Consistency of color is necessary to communicate Apigee’s brand effectively. The main color palette should be used for all corporate communications. A complementary secondary palette that includes Apigee’s main brand colors, has been created for supporting content for flexibility in any application. The tertiary palette is only used sparingly for small accents on a visual design. All graphic elements including type, backgrounds, bars, buttons and icons must be based on one of these approved color families with consistent hue, saturation and brightness for all communications. PMS 1655 C CMYK: 0/83/100/0 RGB: 252/76/2 HEX: #FF4300 PMS 425 C CMYK: 0/0/0/80 RGB: 84/88/90 HEX: #54585A PMS 7482 C CMYK: 83/14/94/2 RGB: 31/155/80 HEX: #1F9B50 PMS 7662 C CMYK: 59/90/2/0 RGB: 128/63/149 HEX: #803F95 PMS 2156 C CMYK: 50/23/19/0 RGB: 134/171/181 HEX: #86ABBC PMS 577 C CMYK: 36/15/56/0 RGB: 171/187/135 HEX: #ABBB87 LINK BLUE RGB: 27/151/209 HEX: #1B97D1 VISITED LINK BLUE RGB: 6/75/124 HEX: #064B7C PMS 424C CMYK: 0/0/0/70 RGB: 109/110/113 HEX: #6D6E71 MED DARK GRAY RGB: 104/104/104 HEX: #686868 LIGHT GRAY RGB: 202/202/202 HEX: #CACACA PRIMARY PALETTE SECONDARY PALETTE TERTIARY PALETTE t t t t t t t t t t cmyk rgb brand values picker using color picker" from web t
  • 81. 81 Which font? Helvetica Neue Light Helvetica Neue Bold Museo (300) Museo (300) (bolded) Museo Slab (300) Museum Slab (300) (bolded) for titles Museo Sans (500) Museum Sans (500) (bolded) OR Helvetica OR Arial ARS Marquette Pro Light ARS Marquette Pro Light (bolded) for body OR Helvetica OR Arial (I do not have this font) USE from brand guide
  • 82. 82 Need vectors of these elements Need correct heart
  • 84. 84 Margins 1.90 top 2.45 bottom 4.50 left & right
  • 85. 85 From I APIs website