SlideShare a Scribd company logo
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

More Related Content

What's hot

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
VMware Tanzu
 
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
Apigee | Google Cloud
 
Advanced Security Extensions in Apigee Edge: JWT, JWE, JWS
Advanced Security Extensions in Apigee Edge: JWT, JWE, JWSAdvanced Security Extensions in Apigee Edge: JWT, JWE, JWS
Advanced Security Extensions in Apigee Edge: JWT, JWE, JWS
Apigee | Google Cloud
 
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
Matt McLarty
 
API Governance
API Governance API Governance
API Governance
Sunil Kuchipudi
 
Definitive Guide to API Management
Definitive Guide to API ManagementDefinitive Guide to API Management
Definitive Guide to API Management
Apigee | Google Cloud
 
API Security Lifecycle
API Security LifecycleAPI Security Lifecycle
API Security Lifecycle
Apigee | Google Cloud
 
How Secure Are Your APIs?
How Secure Are Your APIs?How Secure Are Your APIs?
How Secure Are Your APIs?
Apigee | Google Cloud
 
Apigee Demo: API Platform Overview
Apigee Demo: API Platform OverviewApigee Demo: API Platform Overview
Apigee Demo: API Platform Overview
Apigee | Google Cloud
 
What is an API Gateway?
What is an API Gateway?What is an API Gateway?
What is an API Gateway?
LunchBadger
 
API Gateway report
API Gateway reportAPI Gateway report
API Gateway report
Gleicon Moraes
 
Introducing OpenAPI Version 3.1
Introducing OpenAPI Version 3.1Introducing OpenAPI Version 3.1
Introducing OpenAPI Version 3.1
SmartBear
 
API Management Solution Powerpoint Presentation Slides
API Management Solution Powerpoint Presentation SlidesAPI Management Solution Powerpoint Presentation Slides
API Management Solution Powerpoint Presentation Slides
SlideTeam
 
Deep dive: Monetize your API Programs
Deep dive: Monetize your API ProgramsDeep dive: Monetize your API Programs
Deep dive: Monetize your API Programs
Apigee | Google Cloud
 
API strategy with IBM API connect
API strategy with IBM API connectAPI strategy with IBM API connect
API strategy with IBM API connect
Kellton Tech Solutions Ltd
 
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
 
API Management
API ManagementAPI Management
API Management
Prolifics
 
Efficient API delivery with APIOps
Efficient API delivery with APIOpsEfficient API delivery with APIOps
Efficient API delivery with APIOps
Sven Bernhardt
 
How Netflix Is Solving Authorization Across Their Cloud
How Netflix Is Solving Authorization Across Their CloudHow Netflix Is Solving Authorization Across Their Cloud
How Netflix Is Solving Authorization Across Their Cloud
Torin Sandall
 
The Architecture of an API Platform
The Architecture of an API PlatformThe Architecture of an API Platform
The Architecture of an API Platform
Johannes Ridderstedt
 

What's hot (20)

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
 
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
 
Advanced Security Extensions in Apigee Edge: JWT, JWE, JWS
Advanced Security Extensions in Apigee Edge: JWT, JWE, JWSAdvanced Security Extensions in Apigee Edge: JWT, JWE, JWS
Advanced Security Extensions in Apigee Edge: JWT, JWE, JWS
 
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 Governance
API Governance API Governance
API Governance
 
Definitive Guide to API Management
Definitive Guide to API ManagementDefinitive Guide to API Management
Definitive Guide to API Management
 
API Security Lifecycle
API Security LifecycleAPI Security Lifecycle
API Security Lifecycle
 
How Secure Are Your APIs?
How Secure Are Your APIs?How Secure Are Your APIs?
How Secure Are Your APIs?
 
Apigee Demo: API Platform Overview
Apigee Demo: API Platform OverviewApigee Demo: API Platform Overview
Apigee Demo: API Platform Overview
 
What is an API Gateway?
What is an API Gateway?What is an API Gateway?
What is an API Gateway?
 
API Gateway report
API Gateway reportAPI Gateway report
API Gateway report
 
Introducing OpenAPI Version 3.1
Introducing OpenAPI Version 3.1Introducing OpenAPI Version 3.1
Introducing OpenAPI Version 3.1
 
API Management Solution Powerpoint Presentation Slides
API Management Solution Powerpoint Presentation SlidesAPI Management Solution Powerpoint Presentation Slides
API Management Solution Powerpoint Presentation Slides
 
Deep dive: Monetize your API Programs
Deep dive: Monetize your API ProgramsDeep dive: Monetize your API Programs
Deep dive: Monetize your API Programs
 
API strategy with IBM API connect
API strategy with IBM API connectAPI strategy with IBM API connect
API strategy with IBM API connect
 
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
 
API Management
API ManagementAPI Management
API Management
 
Efficient API delivery with APIOps
Efficient API delivery with APIOpsEfficient API delivery with APIOps
Efficient API delivery with APIOps
 
How Netflix Is Solving Authorization Across Their Cloud
How Netflix Is Solving Authorization Across Their CloudHow Netflix Is Solving Authorization Across Their Cloud
How Netflix Is Solving Authorization Across Their Cloud
 
The Architecture of an API Platform
The Architecture of an API PlatformThe Architecture of an API Platform
The Architecture of an API Platform
 

Viewers also liked

Apigee Products Overview
Apigee Products OverviewApigee Products Overview
Apigee Products Overview
Apigee | Google Cloud
 
Apigee Edge Product Demo
Apigee Edge Product DemoApigee Edge Product Demo
Apigee Edge Product Demo
Apigee | Google Cloud
 
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
Apigee | Google Cloud
 
Webcast: Pragmatic REST: The Next Generation
Webcast: Pragmatic REST: The Next GenerationWebcast: Pragmatic REST: The Next Generation
Webcast: Pragmatic REST: The Next Generation
Apigee | 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 Architecture
Apigee | Google Cloud
 
A Checklist for Every API Call
A Checklist for Every API CallA Checklist for Every API Call
A Checklist for Every API Call
Apigee | 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 Leverage
Apigee | Google Cloud
 
Is Microservices SOA Done Right?
Is Microservices SOA Done Right?Is Microservices SOA Done Right?
Is Microservices SOA Done Right?
Apigee | Google Cloud
 
Adapt or Die: Serverless Microservices
Adapt or Die: Serverless MicroservicesAdapt or Die: Serverless Microservices
Adapt or Die: Serverless Microservices
Apigee | 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 World
Apigee | 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 Success
Apigee | Google Cloud
 
The future-of-netflix-api
The future-of-netflix-apiThe future-of-netflix-api
The future-of-netflix-api
Daniel Jacobson
 
Swagger for-your-api
Swagger for-your-apiSwagger for-your-api
Swagger for-your-api
Tony Tam
 
API Strategy Evolution at Netflix
API Strategy Evolution at NetflixAPI Strategy Evolution at Netflix
API Strategy Evolution at Netflix
Michael 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, apigee
SlashData
 
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 Actions
Apigee | 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 R
Anqi Fu
 

Viewers also liked (20)

Apigee Products Overview
Apigee Products OverviewApigee Products Overview
Apigee Products Overview
 
Apigee Edge Product Demo
Apigee Edge Product DemoApigee Edge Product Demo
Apigee Edge Product Demo
 
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
 

Similar to 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 Microgateway
Apigee | 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 APIs
Apigee | 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.pdf
SkillCertProExams
 
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
 
WEB API Gateway
WEB API GatewayWEB API Gateway
WEB API Gateway
Kumaresh Chandra Baruri
 
APIConnect Security Best Practice
APIConnect Security Best PracticeAPIConnect Security Best Practice
APIConnect Security Best Practice
Shiu-Fun Poon
 
MuleSoft Meetup Virtual_ 2_Charlotte
MuleSoft Meetup Virtual_ 2_CharlotteMuleSoft Meetup Virtual_ 2_Charlotte
MuleSoft Meetup Virtual_ 2_Charlotte
Subhash 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 2018
Amazon Web Services
 
2015 UJUG, Servlet 4.0 portion
2015 UJUG, Servlet 4.0 portion2015 UJUG, Servlet 4.0 portion
2015 UJUG, Servlet 4.0 portion
mnriem
 
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.pptx
Jason452803
 
[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
 
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
AppDynamics
 
Pivotal microservices spring_pcf_skillsmatter.pptx
Pivotal microservices spring_pcf_skillsmatter.pptxPivotal microservices spring_pcf_skillsmatter.pptx
Pivotal microservices spring_pcf_skillsmatter.pptx
Sufyaan Kazi
 
MuleSoft Meetup Charlotte 2019
MuleSoft Meetup Charlotte  2019MuleSoft Meetup Charlotte  2019
MuleSoft Meetup Charlotte 2019
Subhash Patel
 

Similar to 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...
 
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
 
MuleSoft Meetup Charlotte 2019
MuleSoft Meetup Charlotte  2019MuleSoft Meetup Charlotte  2019
MuleSoft Meetup Charlotte 2019
 

More from Apigee | Google Cloud

Magazine Luiza at a glance (1)
Magazine Luiza at a glance (1)Magazine Luiza at a glance (1)
Magazine Luiza at a glance (1)
Apigee | Google Cloud
 
Ticketmaster at a glance
Ticketmaster at a glanceTicketmaster at a glance
Ticketmaster at a glance
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 World
Apigee | 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
 
Apigee Product Roadmap Part 2
Apigee Product Roadmap Part 2Apigee Product Roadmap Part 2
Apigee Product Roadmap Part 2
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 Market
Apigee | Google Cloud
 
Walgreens at a glance
Walgreens at a glanceWalgreens at a glance
Walgreens at a glance
Apigee | Google Cloud
 
Apigee Edge: Intro to Microgateway
Apigee Edge: Intro to MicrogatewayApigee Edge: Intro to Microgateway
Apigee Edge: Intro to Microgateway
Apigee | Google Cloud
 
Managing the Complexity of Microservices Deployments
Managing the Complexity of Microservices DeploymentsManaging the Complexity of Microservices Deployments
Managing the Complexity of Microservices Deployments
Apigee | Google Cloud
 
Pitney Bowes at a glance
Pitney Bowes at a glancePitney Bowes at a glance
Pitney Bowes at a glance
Apigee | 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 Kapoor
Apigee | 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 Brail
Apigee | 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 Jhingran
Apigee | Google Cloud
 
London Adapt or Die: Opening Keynot
London Adapt or Die: Opening KeynotLondon Adapt or Die: Opening Keynot
London Adapt or Die: Opening Keynot
Apigee | Google Cloud
 
London Adapt or Die: Lunch keynote
London Adapt or Die: Lunch keynoteLondon Adapt or Die: Lunch keynote
London Adapt or Die: Lunch keynote
Apigee | 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 kapoor
Apigee | 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 Kapoor
Apigee | Google Cloud
 
London Adapt or Die: Kubernetes, Containers and Cloud - The MoD Story
London Adapt or Die: Kubernetes, Containers and Cloud - The MoD StoryLondon Adapt or Die: Kubernetes, Containers and Cloud - The MoD Story
London Adapt or Die: Kubernetes, Containers and Cloud - The MoD Story
Apigee | Google Cloud
 
London Adapt or Die: Securing your APIs the Right Way!
London Adapt or Die: Securing your APIs the Right Way!London Adapt or Die: Securing your APIs the Right Way!
London Adapt or Die: Securing your APIs the Right Way!
Apigee | Google Cloud
 

More from 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)
 
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
 
London Adapt or Die: Kubernetes, Containers and Cloud - The MoD Story
London Adapt or Die: Kubernetes, Containers and Cloud - The MoD StoryLondon Adapt or Die: Kubernetes, Containers and Cloud - The MoD Story
London Adapt or Die: Kubernetes, Containers and Cloud - The MoD Story
 
London Adapt or Die: Securing your APIs the Right Way!
London Adapt or Die: Securing your APIs the Right Way!London Adapt or Die: Securing your APIs the Right Way!
London Adapt or Die: Securing your APIs the Right Way!
 

Recently uploaded

Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Jay Das
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
Srikant77
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 

Recently uploaded (20)

Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 

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