SlideShare a Scribd company logo
© AKAMAI - EDGE 2017
Akamai Ideas : EdgeWorkers
Configs as Code: Enabling concurrent development in a developer friendly syntax
© AKAMAI - EDGE 2017
Akamai fits into your DevOps pipeline
PAPI
Akamai Configs as Code
AKAMAI CLI
Simplified API wrappers
FASTER
ACTIVATIONS
DATASTREAM
Real time summarized stats and logs
CUSTOM BEHAVIORS
Reusable custom logic
mPULSE
Real Time Business
Insights
TERRAFORM
PROVIDER
CLOUDTEST
Early continuous load testing
FAST PURGE
Invalidate content in seconds
APIs FOR
EVERYTHING
AKAMAI CLI
CLOUDLETS, ESI , Varnish
Plugin
Smart Logic at the Edge
FAST FALLBACK
Iterate rapidly
SIEM INTEGRATION
Security Insights
EARLY VALIDATION
© AKAMAI - EDGE 2017
to plugin Akamai
into my other tools
my changes &
purges to take
effect immediately
to automate
making the same
change across
100 configs
to unblock self-
serviceability
currently blocked
by advanced
behaviors
my team’s site
health dashboard
to include Akamai
info
to program Edge
behavior with
JavaScript
to test my
development
stream with
Akamai
to automate every
action I take in the
Akamai portal
to control Edge
behavior for my
part of the site
independently
from others
to automate tests
against Akamai
diagnostic info
As a DevOps user, I want .. 2017 & Beyond
to automate
propagating
changes between
different
environments
Pipeline
Projects
Quick Reactions
& Speed
My Developers
to be
empowered
Automation
© AKAMAI - EDGE 2017
to program Edge
behavior such as
redirects with JavaScript
to control Edge behavior
for my part of the site
independently from other
teams
As a DevOps user, I want ..
My Developers
to be
empowered
to test my development
stream with Akamai
© AKAMAI - EDGE 2017
© AKAMAI - EDGE 2017
One Site,
One config,
Multiple teams
© AKAMAI - EDGE 2017
One Site,
One config,
Multiple teams
© AKAMAI - EDGE 2017
How Edge
Logic is
expressed
today:
Propery
Manager
© AKAMAI - EDGE 2017
How Edge
Logic is
expressed
today:
Propery
Manager
© AKAMAI - EDGE 2017
How Edge
Logic is
expressed
today:
Portal API
© AKAMAI - EDGE 2017
How Edge
Logic is
expressed
today:
Portal API
© AKAMAI - EDGE 2017
<esi:choose>
<esi:when test="$(GEO{'country_code'}) == 'FR'">
$set_redirect('/fr/')
</esi:when>
<esi:when test="$(GEO{'country_code'}) == 'DE'">
$set_redirect('/de/')
</esi:when>
</esi:choose>
How Edge
Logic is
expressed
today:
Edge Side
Includes
© AKAMAI - EDGE 2017
<match:request.type value="CLIENT_REQ">
<match:client.edgescape2 value="FR DE" field="COUNTRY_CODE"
result="true" use-headers="all" check-ips="both">
<assign:variable>
<name>PM_4</name>
<value>t</value>
<hidden>on</hidden>
</assign:variable>
</match:client.edgescape2>
</match:request.type>
<match:variable name="PM_4" value="t" result="true">
<comment:note value="Start Feature setVariable"/>
<assign:extract-value>
<location>Edgescape</location>
<location-id>country_code</location-id>
<location-id-prefix-match>off</location-id-prefix-match>
<variable-name>PMUSER_LCASE_COUNTRY</variable-name>
<hidden>off</hidden>
<sensitive>off</sensitive>
</assign:extract-value>
<assign:variable>
<name>PMUSER_LCASE_COUNTRY</name>
<value>%(PMUSER_LCASE_COUNTRY)</value>
<hidden>off</hidden>
<sensitive>off</sensitive>
<transform>
<lower/>
</transform>
</assign:variable>
<comment:note value="End Feature setVariable"/>
<comment:note value="Start Feature redirect"/>
How Edge
Logic is
expressed
today:
Advanced
Metadata
and
Custom
Behaviors
© AKAMAI - EDGE 2017
<match:request.type value="CLIENT_REQ">
<match:client.edgescape2 value="FR DE" field="COUNTRY_CODE"
result="true" use-headers="all" check-ips="both">
<assign:variable>
<name>PM_4</name>
<value>t</value>
<hidden>on</hidden>
</assign:variable>
</match:client.edgescape2>
</match:request.type>
<match:variable name="PM_4" value="t" result="true">
<comment:note value="Start Feature setVariable"/>
<assign:extract-value>
<location>Edgescape</location>
<location-id>country_code</location-id>
<location-id-prefix-match>off</location-id-prefix-match>
<variable-name>PMUSER_LCASE_COUNTRY</variable-name>
<hidden>off</hidden>
<sensitive>off</sensitive>
</assign:extract-value>
<assign:variable>
<name>PMUSER_LCASE_COUNTRY</name>
<value>%(PMUSER_LCASE_COUNTRY)</value>
<hidden>off</hidden>
<sensitive>off</sensitive>
<transform>
<lower/>
</transform>
</assign:variable>
<comment:note value="End Feature setVariable"/>
<comment:note value="Start Feature redirect"/>
<edgeservices:redirect.generate.evict-cached-object>off</edgeservices:redirect.generate.evict-cached-object>
<match:variable name="AK_QUERY" result="false">
<edgeservices:redirect.generate.rule name="pm_redirect">
<response-code>302</response-code>
<select-prefix>/</select-prefix>
<status>on</status>
<destination>=%(AK_SCHEME)://%(AK_HOSTHEADER)https://www.example.com/%(PMUSER_LCASE_COUNTRY)</destination>
</edgeservices:redirect.generate.rule>
</match:variable>
<match:variable name="AK_QUERY">
<edgeservices:redirect.generate.rule name="pm_redirect">
<response-code>302</response-code>
<select-prefix>/</select-prefix>
<status>on</status>
<destination>=%(AK_SCHEME)://%(AK_HOSTHEADER)https://www.example.com/%(PMUSER_LCASE_COUNTRY)?%(AK_QUERY)</destination>
</edgeservices:redirect.generate.rule>
</match:variable>
<comment:note value="End Feature redirect"/>
</match:variable>
<comment:note value="end rule: f2a73abf-19b4-4470-bba1-6d7a8cc5715d"/>
<comment:note value="end rule: default"/>
</match:uri.component>
How Edge
Logic is
expressed
today:
Advanced
Metadata
and
Custom
Behaviors
© AKAMAI - EDGE 2017
Summary: How Edge Logic is expressed today
Property
Manager
PAPI Advanced
Metadata
ESI EdgeWorkers
Can configure all capabilities of the service ✅ ✅ ✅
Can update using automation ✅ ✅ ✅
Can have multiple per site ✅ ✅ ✅
Offers power of a full programming language ✅ ✅
Offers a syntax and programming model that
developers love
✅
© AKAMAI - EDGE 2017
Inspiration
from
Browsers:
Service
Workers
© AKAMAI - EDGE 2017
Service Worker Code To Handle Redirect
self.addEventListener('fetch', function(event) {
if (/EN/.test(event.request.url)) {
fetchEvent.respondWith(new Response('', {
status: 302,
headers: {
'Location': 'https://www.example.com/en'
}
}))
}
});
© AKAMAI - EDGE 2017
Each part of the site can have its own Service Worker
navigator.serviceWorker.register('/blog/sw.js', {scope: '/blog/'});
navigator.serviceWorker.register('/catalog/sw.js', {scope: '/catalog/'});
© AKAMAI - EDGE 2017
Edge
+
Service Workers
=
EdgeWorkers
Edge + Service Workers = EdgeWorkers
© AKAMAI - EDGE 2017
function onClientRequest(request, response) {
var country = request.userLocation.country;
if (/EN|FR/.test(country)) {
response.status = 302;
response.headers['Location'] =
'https://www.example.com/'
+ country.toLowerCase());
}
}
EdgeWorker Example:
Redirect based on user location
© AKAMAI - EDGE 2017
function onClientRequest(request, response) {
if (request.headers['X-Language']) {
request.originServer.hostname = 'origin.example.com';
} else {
request.originServer.hostname = '3rd-party-service.example.com';
}
}
EdgeWorker Example:
Choose Forward Origin Based on the Presence of a Header
© AKAMAI - EDGE 2017
function onClientRequest(request, response) {
if (request.device.isMobile) {
request.originServer.hostname = 'origin-mobile.example.com';
} else if (request.device.isTablet) {
request.originServer.hostname = 'origin-tablet.example.com';
} else {
request.originServer.hostname = 'origin-desktop.example.com';
}
}
EdgeWorker Example:
Access to Edge Device Characteristics
© AKAMAI - EDGE 2017
function onClientResponse(request, response) {
if (response.status == 403) {
response.headers['Set-Cookie'] =
'MyCookie=; Expires=Thu, 01 Jan 1970 00:00:00 GMT';
}
}
EdgeWorker Example:
Remove a cookie
© AKAMAI - EDGE 2017
function onClientRequest(request, response) {
request.maxAge = 604800; // 1 week in seconds
}
EdgeWorker Example:
Set Edge Cacheability
© AKAMAI - EDGE 2017
function getQueryParam(query, paramName) {
var params = query.split('&');
for (var i = 0 ; i < params.length ; i++) {
var nameValue = params[i].split('=');
if (nameValue[0] === paramName) {
return nameValue[1];
}
}
return '';
}
function onClientRequest(request, response) {
var city = getQueryParam(request.query, 'city');
request.cacheKey = request.cacheKey + '/' + city;
}
EdgeWorker Example:
Cache Key Modification Incorporating Request Properties
© AKAMAI - EDGE 2017
Request
OriginServer
UserLocation
Device
Response
Metadata Variables
EdgeWorkers API Overview
function onClientRequest(request, response){
// do something as the request is received
}
function onClientResponse(request, response){
// do something just before the client response is
sent
}
function onOriginRequest(request, response){
// do something just before sending the forward
request
}
function onOriginResponse(request, response){
// do something as the forward response is received
}
Events Objects
© AKAMAI - EDGE 2017
EdgeWorkers augment your Property Manager configuration,
and are updated independently
For requests matching this
pattern
Invoke this EdgeWorker
© AKAMAI - EDGE 2017
Summary: How Edge Logic is expressed
Property
Manager
PAPI Advanced
Metadata
ESI EdgeWorkers
Can configure all capabilities of the service ✅ ✅ ✅
Can update using automation ✅ ✅ ✅
Can have multiple per site ✅ ✅ ✅
Offers power of a full programming language ✅ ✅
Offers a syntax and programming model that
developers love
✅
© AKAMAI - EDGE 2017
Akamai Developer
Points of
PresenceEnables Agile Testing of Akamai Configurations in a Pre-Staging Environment
© AKAMAI - EDGE 2017
When do you test?
Enable rapid and local CDN testing
Origin Address
*in this example the
server is hosted locally
Akamai Config
Name
*for the site you want to
test
N/W & Version Selection
*select any version from staging
or production
● Improve dev team efficiency
● No surprises in production
● Test Caching, WAF rules & IM policies
● Faster feedback via instant logs & quicker
deploy times
© AKAMAI - EDGE 2017
We want your feedback in helping us design this!
akamaidev.io/edgeworkers
● DevZone DevOps Demo Booth
● Craig @ Web and Mobile Perf Kiosk Thurs 10-12:30pm
● sid@akamai.com
Provide Input / Stay Updated
Find / Contact Us
THANK YOU!

More Related Content

What's hot

[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
Ji-Woong Choi
 
Anemina por deficiencia g6 pd (anemia hemolitica) fernanda rafalski y colegas
Anemina por deficiencia g6 pd (anemia hemolitica) fernanda rafalski y colegasAnemina por deficiencia g6 pd (anemia hemolitica) fernanda rafalski y colegas
Anemina por deficiencia g6 pd (anemia hemolitica) fernanda rafalski y colegas
FernandaRafalski
 
API Design- Best Practices
API Design-   Best PracticesAPI Design-   Best Practices
API Design- Best Practices
Prakash Bhandari
 
Dermatitis por contacto
Dermatitis por contactoDermatitis por contacto
Dermatitis por contacto
Denis Ivan Medina Lomeli
 
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
SONG INSEOB
 
고객 중심 서비스 출시를 위한 준비 “온오프라인 고객 데이터 통합” – 김준형 AWS 솔루션즈 아키텍트, 김수진 아모레퍼시픽:: AWS C...
고객 중심 서비스 출시를 위한 준비 “온오프라인 고객 데이터 통합” – 김준형 AWS 솔루션즈 아키텍트, 김수진 아모레퍼시픽:: AWS C...고객 중심 서비스 출시를 위한 준비 “온오프라인 고객 데이터 통합” – 김준형 AWS 솔루션즈 아키텍트, 김수진 아모레퍼시픽:: AWS C...
고객 중심 서비스 출시를 위한 준비 “온오프라인 고객 데이터 통합” – 김준형 AWS 솔루션즈 아키텍트, 김수진 아모레퍼시픽:: AWS C...
Amazon Web Services Korea
 
AxonIQCon22 - Beyond DDD 101 - Zambrovski-Galinski.pptx
AxonIQCon22 - Beyond DDD 101 - Zambrovski-Galinski.pptxAxonIQCon22 - Beyond DDD 101 - Zambrovski-Galinski.pptx
AxonIQCon22 - Beyond DDD 101 - Zambrovski-Galinski.pptx
Jan Galinski
 
Master IAM in the Cloud with SCIM v2.0
Master IAM in the Cloud with SCIM v2.0Master IAM in the Cloud with SCIM v2.0
Master IAM in the Cloud with SCIM v2.0
Kelly Grizzle
 
Psoriasis UP Med
Psoriasis UP MedPsoriasis UP Med
Psoriasis UP Med
Patty Mock
 
Delegating Access to your AWS Environment (SEC303) | AWS re:Invent 2013
Delegating Access to your AWS Environment (SEC303) | AWS re:Invent 2013Delegating Access to your AWS Environment (SEC303) | AWS re:Invent 2013
Delegating Access to your AWS Environment (SEC303) | AWS re:Invent 2013
Amazon Web Services
 
Semiología de Piel
Semiología de PielSemiología de Piel
Semiología de Piel
Dulce Soto
 
Anemia normocitica
Anemia normociticaAnemia normocitica
Anemia normocitica
Andrea Villanueva
 
Atrinet - Lifecycle Service Manager
Atrinet - Lifecycle  Service  Manager                              Atrinet - Lifecycle  Service  Manager
Atrinet - Lifecycle Service Manager
Atrinet - Network Management Solutions
 
AWS를 통한 데이터 분석 및 처리의 새로운 혁신 기법 - 김윤건, AWS사업개발 담당:: AWS Summit Online Korea 2020
AWS를 통한 데이터 분석 및 처리의 새로운 혁신 기법 - 김윤건, AWS사업개발 담당::  AWS Summit Online Korea 2020AWS를 통한 데이터 분석 및 처리의 새로운 혁신 기법 - 김윤건, AWS사업개발 담당::  AWS Summit Online Korea 2020
AWS를 통한 데이터 분석 및 처리의 새로운 혁신 기법 - 김윤건, AWS사업개발 담당:: AWS Summit Online Korea 2020
Amazon Web Services Korea
 
How to Monitoring the SRE Golden Signals (E-Book)
How to Monitoring the SRE Golden Signals (E-Book)How to Monitoring the SRE Golden Signals (E-Book)
How to Monitoring the SRE Golden Signals (E-Book)
Siglos
 
Cinetica del hierro.
Cinetica del hierro.Cinetica del hierro.
Cinetica del hierro.
Zurisadai Flores.
 
Dermatologia capitulo 2 semilogia
Dermatologia capitulo 2 semilogiaDermatologia capitulo 2 semilogia
Dermatologia capitulo 2 semilogia
rozche
 
20150115 AWS BlackBelt - Amazon VPC (Korea)
20150115 AWS BlackBelt - Amazon VPC (Korea)20150115 AWS BlackBelt - Amazon VPC (Korea)
20150115 AWS BlackBelt - Amazon VPC (Korea)
Amazon Web Services Korea
 
Dermatosis bacteriana
Dermatosis bacterianaDermatosis bacteriana
Dermatosis bacteriana
Raul Nvr
 
빅 데이터 분석을 위한 AWS 활용 사례 - 최정욱 솔루션즈 아키텍트:: AWS Cloud Track 1 Intro
빅 데이터 분석을 위한 AWS 활용 사례 - 최정욱 솔루션즈 아키텍트:: AWS Cloud Track 1 Intro빅 데이터 분석을 위한 AWS 활용 사례 - 최정욱 솔루션즈 아키텍트:: AWS Cloud Track 1 Intro
빅 데이터 분석을 위한 AWS 활용 사례 - 최정욱 솔루션즈 아키텍트:: AWS Cloud Track 1 Intro
Amazon Web Services Korea
 

What's hot (20)

[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
 
Anemina por deficiencia g6 pd (anemia hemolitica) fernanda rafalski y colegas
Anemina por deficiencia g6 pd (anemia hemolitica) fernanda rafalski y colegasAnemina por deficiencia g6 pd (anemia hemolitica) fernanda rafalski y colegas
Anemina por deficiencia g6 pd (anemia hemolitica) fernanda rafalski y colegas
 
API Design- Best Practices
API Design-   Best PracticesAPI Design-   Best Practices
API Design- Best Practices
 
Dermatitis por contacto
Dermatitis por contactoDermatitis por contacto
Dermatitis por contacto
 
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
 
고객 중심 서비스 출시를 위한 준비 “온오프라인 고객 데이터 통합” – 김준형 AWS 솔루션즈 아키텍트, 김수진 아모레퍼시픽:: AWS C...
고객 중심 서비스 출시를 위한 준비 “온오프라인 고객 데이터 통합” – 김준형 AWS 솔루션즈 아키텍트, 김수진 아모레퍼시픽:: AWS C...고객 중심 서비스 출시를 위한 준비 “온오프라인 고객 데이터 통합” – 김준형 AWS 솔루션즈 아키텍트, 김수진 아모레퍼시픽:: AWS C...
고객 중심 서비스 출시를 위한 준비 “온오프라인 고객 데이터 통합” – 김준형 AWS 솔루션즈 아키텍트, 김수진 아모레퍼시픽:: AWS C...
 
AxonIQCon22 - Beyond DDD 101 - Zambrovski-Galinski.pptx
AxonIQCon22 - Beyond DDD 101 - Zambrovski-Galinski.pptxAxonIQCon22 - Beyond DDD 101 - Zambrovski-Galinski.pptx
AxonIQCon22 - Beyond DDD 101 - Zambrovski-Galinski.pptx
 
Master IAM in the Cloud with SCIM v2.0
Master IAM in the Cloud with SCIM v2.0Master IAM in the Cloud with SCIM v2.0
Master IAM in the Cloud with SCIM v2.0
 
Psoriasis UP Med
Psoriasis UP MedPsoriasis UP Med
Psoriasis UP Med
 
Delegating Access to your AWS Environment (SEC303) | AWS re:Invent 2013
Delegating Access to your AWS Environment (SEC303) | AWS re:Invent 2013Delegating Access to your AWS Environment (SEC303) | AWS re:Invent 2013
Delegating Access to your AWS Environment (SEC303) | AWS re:Invent 2013
 
Semiología de Piel
Semiología de PielSemiología de Piel
Semiología de Piel
 
Anemia normocitica
Anemia normociticaAnemia normocitica
Anemia normocitica
 
Atrinet - Lifecycle Service Manager
Atrinet - Lifecycle  Service  Manager                              Atrinet - Lifecycle  Service  Manager
Atrinet - Lifecycle Service Manager
 
AWS를 통한 데이터 분석 및 처리의 새로운 혁신 기법 - 김윤건, AWS사업개발 담당:: AWS Summit Online Korea 2020
AWS를 통한 데이터 분석 및 처리의 새로운 혁신 기법 - 김윤건, AWS사업개발 담당::  AWS Summit Online Korea 2020AWS를 통한 데이터 분석 및 처리의 새로운 혁신 기법 - 김윤건, AWS사업개발 담당::  AWS Summit Online Korea 2020
AWS를 통한 데이터 분석 및 처리의 새로운 혁신 기법 - 김윤건, AWS사업개발 담당:: AWS Summit Online Korea 2020
 
How to Monitoring the SRE Golden Signals (E-Book)
How to Monitoring the SRE Golden Signals (E-Book)How to Monitoring the SRE Golden Signals (E-Book)
How to Monitoring the SRE Golden Signals (E-Book)
 
Cinetica del hierro.
Cinetica del hierro.Cinetica del hierro.
Cinetica del hierro.
 
Dermatologia capitulo 2 semilogia
Dermatologia capitulo 2 semilogiaDermatologia capitulo 2 semilogia
Dermatologia capitulo 2 semilogia
 
20150115 AWS BlackBelt - Amazon VPC (Korea)
20150115 AWS BlackBelt - Amazon VPC (Korea)20150115 AWS BlackBelt - Amazon VPC (Korea)
20150115 AWS BlackBelt - Amazon VPC (Korea)
 
Dermatosis bacteriana
Dermatosis bacterianaDermatosis bacteriana
Dermatosis bacteriana
 
빅 데이터 분석을 위한 AWS 활용 사례 - 최정욱 솔루션즈 아키텍트:: AWS Cloud Track 1 Intro
빅 데이터 분석을 위한 AWS 활용 사례 - 최정욱 솔루션즈 아키텍트:: AWS Cloud Track 1 Intro빅 데이터 분석을 위한 AWS 활용 사례 - 최정욱 솔루션즈 아키텍트:: AWS Cloud Track 1 Intro
빅 데이터 분석을 위한 AWS 활용 사례 - 최정욱 솔루션즈 아키텍트:: AWS Cloud Track 1 Intro
 

Similar to EdgeWorkers: Enabling Autonomous, Developer Friendly Programming at the Edge

AtlasCamp 2015: Connect everywhere - Cloud and Server
AtlasCamp 2015: Connect everywhere - Cloud and ServerAtlasCamp 2015: Connect everywhere - Cloud and Server
AtlasCamp 2015: Connect everywhere - Cloud and Server
Atlassian
 
WSO2 Italia Open Break Session #2 - Microgateway
WSO2 Italia Open Break Session #2 - MicrogatewayWSO2 Italia Open Break Session #2 - Microgateway
WSO2 Italia Open Break Session #2 - Microgateway
Profesia Srl, Lynx Group
 
Building Components for Business Apps
Building Components for Business AppsBuilding Components for Business Apps
Building Components for Business Apps
Manuel Carrasco Moñino
 
Camunda BPM 7.2: Tasklist and Javascript Forms SDK (English)
Camunda BPM 7.2: Tasklist and Javascript Forms SDK (English)Camunda BPM 7.2: Tasklist and Javascript Forms SDK (English)
Camunda BPM 7.2: Tasklist and Javascript Forms SDK (English)
camunda services GmbH
 
Marrying angular rails
Marrying angular railsMarrying angular rails
Marrying angular rails
Volker Tietz
 
Angular server side rendering - Strategies & Technics
Angular server side rendering - Strategies & Technics Angular server side rendering - Strategies & Technics
Angular server side rendering - Strategies & Technics
Eliran Eliassy
 
Stripes Framework
Stripes FrameworkStripes Framework
Stripes Framework
Johannes Carlén
 
GoGrid API - Presented at Cloud Connect Event 2010
GoGrid API - Presented at Cloud Connect Event 2010GoGrid API - Presented at Cloud Connect Event 2010
GoGrid API - Presented at Cloud Connect Event 2010
GoGrid Cloud Hosting
 
Jasigsakai12 columbia-customizes-cas
Jasigsakai12 columbia-customizes-casJasigsakai12 columbia-customizes-cas
Jasigsakai12 columbia-customizes-cas
ellentuck
 
Java Web Development with Stripes
Java Web Development with StripesJava Web Development with Stripes
Java Web Development with Stripes
Samuel Santos
 
AngularJS training - Day 1 - Basics: Why, What and basic features of AngularJS
AngularJS training - Day 1 - Basics: Why, What and basic features of AngularJSAngularJS training - Day 1 - Basics: Why, What and basic features of AngularJS
AngularJS training - Day 1 - Basics: Why, What and basic features of AngularJS
murtazahaveliwala
 
Monkey man
Monkey manMonkey man
Monkey man
ShapeBlue
 
Deploying SharePoint @ Cloud
Deploying SharePoint @ CloudDeploying SharePoint @ Cloud
Deploying SharePoint @ Cloud
Juan Andrés Valenzuela
 
Intro to-rails-webperf
Intro to-rails-webperfIntro to-rails-webperf
Intro to-rails-webperf
New Relic
 
Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...
Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...
Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...
Fwdays
 
QConSP 2015 - Dicas de Performance para Aplicações Web
QConSP 2015 - Dicas de Performance para Aplicações WebQConSP 2015 - Dicas de Performance para Aplicações Web
QConSP 2015 - Dicas de Performance para Aplicações Web
Fabio Akita
 
Angular directive filter and routing
Angular directive filter and routingAngular directive filter and routing
Angular directive filter and routing
jagriti srivastava
 
The Art of AngularJS - DeRailed 2014
The Art of AngularJS - DeRailed 2014The Art of AngularJS - DeRailed 2014
The Art of AngularJS - DeRailed 2014
Matt Raible
 
"Progressive Web Apps" by Riza Fahmi (Hacktiv8)
"Progressive Web Apps" by Riza Fahmi	(Hacktiv8)"Progressive Web Apps" by Riza Fahmi	(Hacktiv8)
"Progressive Web Apps" by Riza Fahmi (Hacktiv8)
Tech in Asia ID
 
Progressive Web Apps. What, why and how
Progressive Web Apps. What, why and howProgressive Web Apps. What, why and how
Progressive Web Apps. What, why and how
Riza Fahmi
 

Similar to EdgeWorkers: Enabling Autonomous, Developer Friendly Programming at the Edge (20)

AtlasCamp 2015: Connect everywhere - Cloud and Server
AtlasCamp 2015: Connect everywhere - Cloud and ServerAtlasCamp 2015: Connect everywhere - Cloud and Server
AtlasCamp 2015: Connect everywhere - Cloud and Server
 
WSO2 Italia Open Break Session #2 - Microgateway
WSO2 Italia Open Break Session #2 - MicrogatewayWSO2 Italia Open Break Session #2 - Microgateway
WSO2 Italia Open Break Session #2 - Microgateway
 
Building Components for Business Apps
Building Components for Business AppsBuilding Components for Business Apps
Building Components for Business Apps
 
Camunda BPM 7.2: Tasklist and Javascript Forms SDK (English)
Camunda BPM 7.2: Tasklist and Javascript Forms SDK (English)Camunda BPM 7.2: Tasklist and Javascript Forms SDK (English)
Camunda BPM 7.2: Tasklist and Javascript Forms SDK (English)
 
Marrying angular rails
Marrying angular railsMarrying angular rails
Marrying angular rails
 
Angular server side rendering - Strategies & Technics
Angular server side rendering - Strategies & Technics Angular server side rendering - Strategies & Technics
Angular server side rendering - Strategies & Technics
 
Stripes Framework
Stripes FrameworkStripes Framework
Stripes Framework
 
GoGrid API - Presented at Cloud Connect Event 2010
GoGrid API - Presented at Cloud Connect Event 2010GoGrid API - Presented at Cloud Connect Event 2010
GoGrid API - Presented at Cloud Connect Event 2010
 
Jasigsakai12 columbia-customizes-cas
Jasigsakai12 columbia-customizes-casJasigsakai12 columbia-customizes-cas
Jasigsakai12 columbia-customizes-cas
 
Java Web Development with Stripes
Java Web Development with StripesJava Web Development with Stripes
Java Web Development with Stripes
 
AngularJS training - Day 1 - Basics: Why, What and basic features of AngularJS
AngularJS training - Day 1 - Basics: Why, What and basic features of AngularJSAngularJS training - Day 1 - Basics: Why, What and basic features of AngularJS
AngularJS training - Day 1 - Basics: Why, What and basic features of AngularJS
 
Monkey man
Monkey manMonkey man
Monkey man
 
Deploying SharePoint @ Cloud
Deploying SharePoint @ CloudDeploying SharePoint @ Cloud
Deploying SharePoint @ Cloud
 
Intro to-rails-webperf
Intro to-rails-webperfIntro to-rails-webperf
Intro to-rails-webperf
 
Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...
Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...
Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...
 
QConSP 2015 - Dicas de Performance para Aplicações Web
QConSP 2015 - Dicas de Performance para Aplicações WebQConSP 2015 - Dicas de Performance para Aplicações Web
QConSP 2015 - Dicas de Performance para Aplicações Web
 
Angular directive filter and routing
Angular directive filter and routingAngular directive filter and routing
Angular directive filter and routing
 
The Art of AngularJS - DeRailed 2014
The Art of AngularJS - DeRailed 2014The Art of AngularJS - DeRailed 2014
The Art of AngularJS - DeRailed 2014
 
"Progressive Web Apps" by Riza Fahmi (Hacktiv8)
"Progressive Web Apps" by Riza Fahmi	(Hacktiv8)"Progressive Web Apps" by Riza Fahmi	(Hacktiv8)
"Progressive Web Apps" by Riza Fahmi (Hacktiv8)
 
Progressive Web Apps. What, why and how
Progressive Web Apps. What, why and howProgressive Web Apps. What, why and how
Progressive Web Apps. What, why and how
 

More from Akamai Developers & Admins

Mitigate Security Threats with SIEM
Mitigate Security Threats with SIEMMitigate Security Threats with SIEM
Mitigate Security Threats with SIEM
Akamai Developers & Admins
 
Manage Your Akamai-as-Code with Terraform
Manage Your Akamai-as-Code with TerraformManage Your Akamai-as-Code with Terraform
Manage Your Akamai-as-Code with Terraform
Akamai Developers & Admins
 
Akamai-as-Code with The Washington Post
Akamai-as-Code with The Washington PostAkamai-as-Code with The Washington Post
Akamai-as-Code with The Washington Post
Akamai Developers & Admins
 
Set up a Development Environment in 5 Minutes
Set up a Development Environment in 5 MinutesSet up a Development Environment in 5 Minutes
Set up a Development Environment in 5 Minutes
Akamai Developers & Admins
 
AWS re:invent: The secret to building and delivering amazing apps at scale
AWS re:invent: The secret to building and delivering amazing apps at scaleAWS re:invent: The secret to building and delivering amazing apps at scale
AWS re:invent: The secret to building and delivering amazing apps at scale
Akamai Developers & Admins
 
AWS re:invent talk: The secrets to building and delivering amazing apps at scale
AWS re:invent talk: The secrets to building and delivering amazing apps at scaleAWS re:invent talk: The secrets to building and delivering amazing apps at scale
AWS re:invent talk: The secrets to building and delivering amazing apps at scale
Akamai Developers & Admins
 
10 things you can do at the edge
10 things you can do at the edge10 things you can do at the edge
10 things you can do at the edge
Akamai Developers & Admins
 
How the internet is reshaping our lives
How the internet is reshaping our livesHow the internet is reshaping our lives
How the internet is reshaping our lives
Akamai Developers & Admins
 
Velocity + Fluent 2018: API Performance
Velocity + Fluent 2018: API PerformanceVelocity + Fluent 2018: API Performance
Velocity + Fluent 2018: API Performance
Akamai Developers & Admins
 
Fluent 2018: Measuring What Matters
Fluent 2018: Measuring What MattersFluent 2018: Measuring What Matters
Fluent 2018: Measuring What Matters
Akamai Developers & Admins
 
Fluent 2018: When third parties stop being polite... and start getting real
Fluent 2018: When third parties stop being polite... and start getting realFluent 2018: When third parties stop being polite... and start getting real
Fluent 2018: When third parties stop being polite... and start getting real
Akamai Developers & Admins
 
Integrating Security Controls into the Development and Delivery Pipeline
Integrating Security Controls into the Development and Delivery PipelineIntegrating Security Controls into the Development and Delivery Pipeline
Integrating Security Controls into the Development and Delivery Pipeline
Akamai Developers & Admins
 
Automation at the Edge
Automation at the EdgeAutomation at the Edge
Automation at the Edge
Akamai Developers & Admins
 
Akamai for Dev Ops Current Capabilities - Atlanta DevOps World Tour
Akamai for Dev Ops Current Capabilities - Atlanta DevOps World TourAkamai for Dev Ops Current Capabilities - Atlanta DevOps World Tour
Akamai for Dev Ops Current Capabilities - Atlanta DevOps World Tour
Akamai Developers & Admins
 
Getting Started with User and API Management Features
Getting Started with User and API Management FeaturesGetting Started with User and API Management Features
Getting Started with User and API Management Features
Akamai Developers & Admins
 
Akamai Developer General Session
Akamai Developer General SessionAkamai Developer General Session
Akamai Developer General Session
Akamai Developers & Admins
 
Akamai Admin General Session
Akamai Admin General SessionAkamai Admin General Session
Akamai Admin General Session
Akamai Developers & Admins
 
Optimizing your API to Perform at Scale
Optimizing your API to Perform at ScaleOptimizing your API to Perform at Scale
Optimizing your API to Perform at Scale
Akamai Developers & Admins
 
Provision Your Own Apple TV channel with MSL 4.x
Provision Your Own Apple TV channel with MSL 4.xProvision Your Own Apple TV channel with MSL 4.x
Provision Your Own Apple TV channel with MSL 4.x
Akamai Developers & Admins
 
Managing the IoT OTA via the Akamai OPEN APIs and Google Sheets
Managing the IoT OTA via the Akamai OPEN APIs and Google SheetsManaging the IoT OTA via the Akamai OPEN APIs and Google Sheets
Managing the IoT OTA via the Akamai OPEN APIs and Google Sheets
Akamai Developers & Admins
 

More from Akamai Developers & Admins (20)

Mitigate Security Threats with SIEM
Mitigate Security Threats with SIEMMitigate Security Threats with SIEM
Mitigate Security Threats with SIEM
 
Manage Your Akamai-as-Code with Terraform
Manage Your Akamai-as-Code with TerraformManage Your Akamai-as-Code with Terraform
Manage Your Akamai-as-Code with Terraform
 
Akamai-as-Code with The Washington Post
Akamai-as-Code with The Washington PostAkamai-as-Code with The Washington Post
Akamai-as-Code with The Washington Post
 
Set up a Development Environment in 5 Minutes
Set up a Development Environment in 5 MinutesSet up a Development Environment in 5 Minutes
Set up a Development Environment in 5 Minutes
 
AWS re:invent: The secret to building and delivering amazing apps at scale
AWS re:invent: The secret to building and delivering amazing apps at scaleAWS re:invent: The secret to building and delivering amazing apps at scale
AWS re:invent: The secret to building and delivering amazing apps at scale
 
AWS re:invent talk: The secrets to building and delivering amazing apps at scale
AWS re:invent talk: The secrets to building and delivering amazing apps at scaleAWS re:invent talk: The secrets to building and delivering amazing apps at scale
AWS re:invent talk: The secrets to building and delivering amazing apps at scale
 
10 things you can do at the edge
10 things you can do at the edge10 things you can do at the edge
10 things you can do at the edge
 
How the internet is reshaping our lives
How the internet is reshaping our livesHow the internet is reshaping our lives
How the internet is reshaping our lives
 
Velocity + Fluent 2018: API Performance
Velocity + Fluent 2018: API PerformanceVelocity + Fluent 2018: API Performance
Velocity + Fluent 2018: API Performance
 
Fluent 2018: Measuring What Matters
Fluent 2018: Measuring What MattersFluent 2018: Measuring What Matters
Fluent 2018: Measuring What Matters
 
Fluent 2018: When third parties stop being polite... and start getting real
Fluent 2018: When third parties stop being polite... and start getting realFluent 2018: When third parties stop being polite... and start getting real
Fluent 2018: When third parties stop being polite... and start getting real
 
Integrating Security Controls into the Development and Delivery Pipeline
Integrating Security Controls into the Development and Delivery PipelineIntegrating Security Controls into the Development and Delivery Pipeline
Integrating Security Controls into the Development and Delivery Pipeline
 
Automation at the Edge
Automation at the EdgeAutomation at the Edge
Automation at the Edge
 
Akamai for Dev Ops Current Capabilities - Atlanta DevOps World Tour
Akamai for Dev Ops Current Capabilities - Atlanta DevOps World TourAkamai for Dev Ops Current Capabilities - Atlanta DevOps World Tour
Akamai for Dev Ops Current Capabilities - Atlanta DevOps World Tour
 
Getting Started with User and API Management Features
Getting Started with User and API Management FeaturesGetting Started with User and API Management Features
Getting Started with User and API Management Features
 
Akamai Developer General Session
Akamai Developer General SessionAkamai Developer General Session
Akamai Developer General Session
 
Akamai Admin General Session
Akamai Admin General SessionAkamai Admin General Session
Akamai Admin General Session
 
Optimizing your API to Perform at Scale
Optimizing your API to Perform at ScaleOptimizing your API to Perform at Scale
Optimizing your API to Perform at Scale
 
Provision Your Own Apple TV channel with MSL 4.x
Provision Your Own Apple TV channel with MSL 4.xProvision Your Own Apple TV channel with MSL 4.x
Provision Your Own Apple TV channel with MSL 4.x
 
Managing the IoT OTA via the Akamai OPEN APIs and Google Sheets
Managing the IoT OTA via the Akamai OPEN APIs and Google SheetsManaging the IoT OTA via the Akamai OPEN APIs and Google Sheets
Managing the IoT OTA via the Akamai OPEN APIs and Google Sheets
 

Recently uploaded

Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
saastr
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
LucaBarbaro3
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
HarisZaheer8
 
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Jeffrey Haguewood
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
Wouter Lemaire
 
Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!
GDSC PJATK
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
Dinusha Kumarasiri
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
alexjohnson7307
 

Recently uploaded (20)

Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
 
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
 
Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
 

EdgeWorkers: Enabling Autonomous, Developer Friendly Programming at the Edge

  • 1. © AKAMAI - EDGE 2017 Akamai Ideas : EdgeWorkers Configs as Code: Enabling concurrent development in a developer friendly syntax
  • 2. © AKAMAI - EDGE 2017 Akamai fits into your DevOps pipeline PAPI Akamai Configs as Code AKAMAI CLI Simplified API wrappers FASTER ACTIVATIONS DATASTREAM Real time summarized stats and logs CUSTOM BEHAVIORS Reusable custom logic mPULSE Real Time Business Insights TERRAFORM PROVIDER CLOUDTEST Early continuous load testing FAST PURGE Invalidate content in seconds APIs FOR EVERYTHING AKAMAI CLI CLOUDLETS, ESI , Varnish Plugin Smart Logic at the Edge FAST FALLBACK Iterate rapidly SIEM INTEGRATION Security Insights EARLY VALIDATION
  • 3. © AKAMAI - EDGE 2017 to plugin Akamai into my other tools my changes & purges to take effect immediately to automate making the same change across 100 configs to unblock self- serviceability currently blocked by advanced behaviors my team’s site health dashboard to include Akamai info to program Edge behavior with JavaScript to test my development stream with Akamai to automate every action I take in the Akamai portal to control Edge behavior for my part of the site independently from others to automate tests against Akamai diagnostic info As a DevOps user, I want .. 2017 & Beyond to automate propagating changes between different environments Pipeline Projects Quick Reactions & Speed My Developers to be empowered Automation
  • 4. © AKAMAI - EDGE 2017 to program Edge behavior such as redirects with JavaScript to control Edge behavior for my part of the site independently from other teams As a DevOps user, I want .. My Developers to be empowered to test my development stream with Akamai
  • 5. © AKAMAI - EDGE 2017
  • 6. © AKAMAI - EDGE 2017 One Site, One config, Multiple teams
  • 7. © AKAMAI - EDGE 2017 One Site, One config, Multiple teams
  • 8. © AKAMAI - EDGE 2017 How Edge Logic is expressed today: Propery Manager
  • 9. © AKAMAI - EDGE 2017 How Edge Logic is expressed today: Propery Manager
  • 10. © AKAMAI - EDGE 2017 How Edge Logic is expressed today: Portal API
  • 11. © AKAMAI - EDGE 2017 How Edge Logic is expressed today: Portal API
  • 12. © AKAMAI - EDGE 2017 <esi:choose> <esi:when test="$(GEO{'country_code'}) == 'FR'"> $set_redirect('/fr/') </esi:when> <esi:when test="$(GEO{'country_code'}) == 'DE'"> $set_redirect('/de/') </esi:when> </esi:choose> How Edge Logic is expressed today: Edge Side Includes
  • 13. © AKAMAI - EDGE 2017 <match:request.type value="CLIENT_REQ"> <match:client.edgescape2 value="FR DE" field="COUNTRY_CODE" result="true" use-headers="all" check-ips="both"> <assign:variable> <name>PM_4</name> <value>t</value> <hidden>on</hidden> </assign:variable> </match:client.edgescape2> </match:request.type> <match:variable name="PM_4" value="t" result="true"> <comment:note value="Start Feature setVariable"/> <assign:extract-value> <location>Edgescape</location> <location-id>country_code</location-id> <location-id-prefix-match>off</location-id-prefix-match> <variable-name>PMUSER_LCASE_COUNTRY</variable-name> <hidden>off</hidden> <sensitive>off</sensitive> </assign:extract-value> <assign:variable> <name>PMUSER_LCASE_COUNTRY</name> <value>%(PMUSER_LCASE_COUNTRY)</value> <hidden>off</hidden> <sensitive>off</sensitive> <transform> <lower/> </transform> </assign:variable> <comment:note value="End Feature setVariable"/> <comment:note value="Start Feature redirect"/> How Edge Logic is expressed today: Advanced Metadata and Custom Behaviors
  • 14. © AKAMAI - EDGE 2017 <match:request.type value="CLIENT_REQ"> <match:client.edgescape2 value="FR DE" field="COUNTRY_CODE" result="true" use-headers="all" check-ips="both"> <assign:variable> <name>PM_4</name> <value>t</value> <hidden>on</hidden> </assign:variable> </match:client.edgescape2> </match:request.type> <match:variable name="PM_4" value="t" result="true"> <comment:note value="Start Feature setVariable"/> <assign:extract-value> <location>Edgescape</location> <location-id>country_code</location-id> <location-id-prefix-match>off</location-id-prefix-match> <variable-name>PMUSER_LCASE_COUNTRY</variable-name> <hidden>off</hidden> <sensitive>off</sensitive> </assign:extract-value> <assign:variable> <name>PMUSER_LCASE_COUNTRY</name> <value>%(PMUSER_LCASE_COUNTRY)</value> <hidden>off</hidden> <sensitive>off</sensitive> <transform> <lower/> </transform> </assign:variable> <comment:note value="End Feature setVariable"/> <comment:note value="Start Feature redirect"/> <edgeservices:redirect.generate.evict-cached-object>off</edgeservices:redirect.generate.evict-cached-object> <match:variable name="AK_QUERY" result="false"> <edgeservices:redirect.generate.rule name="pm_redirect"> <response-code>302</response-code> <select-prefix>/</select-prefix> <status>on</status> <destination>=%(AK_SCHEME)://%(AK_HOSTHEADER)https://www.example.com/%(PMUSER_LCASE_COUNTRY)</destination> </edgeservices:redirect.generate.rule> </match:variable> <match:variable name="AK_QUERY"> <edgeservices:redirect.generate.rule name="pm_redirect"> <response-code>302</response-code> <select-prefix>/</select-prefix> <status>on</status> <destination>=%(AK_SCHEME)://%(AK_HOSTHEADER)https://www.example.com/%(PMUSER_LCASE_COUNTRY)?%(AK_QUERY)</destination> </edgeservices:redirect.generate.rule> </match:variable> <comment:note value="End Feature redirect"/> </match:variable> <comment:note value="end rule: f2a73abf-19b4-4470-bba1-6d7a8cc5715d"/> <comment:note value="end rule: default"/> </match:uri.component> How Edge Logic is expressed today: Advanced Metadata and Custom Behaviors
  • 15. © AKAMAI - EDGE 2017 Summary: How Edge Logic is expressed today Property Manager PAPI Advanced Metadata ESI EdgeWorkers Can configure all capabilities of the service ✅ ✅ ✅ Can update using automation ✅ ✅ ✅ Can have multiple per site ✅ ✅ ✅ Offers power of a full programming language ✅ ✅ Offers a syntax and programming model that developers love ✅
  • 16. © AKAMAI - EDGE 2017 Inspiration from Browsers: Service Workers
  • 17. © AKAMAI - EDGE 2017 Service Worker Code To Handle Redirect self.addEventListener('fetch', function(event) { if (/EN/.test(event.request.url)) { fetchEvent.respondWith(new Response('', { status: 302, headers: { 'Location': 'https://www.example.com/en' } })) } });
  • 18. © AKAMAI - EDGE 2017 Each part of the site can have its own Service Worker navigator.serviceWorker.register('/blog/sw.js', {scope: '/blog/'}); navigator.serviceWorker.register('/catalog/sw.js', {scope: '/catalog/'});
  • 19. © AKAMAI - EDGE 2017 Edge + Service Workers = EdgeWorkers Edge + Service Workers = EdgeWorkers
  • 20. © AKAMAI - EDGE 2017 function onClientRequest(request, response) { var country = request.userLocation.country; if (/EN|FR/.test(country)) { response.status = 302; response.headers['Location'] = 'https://www.example.com/' + country.toLowerCase()); } } EdgeWorker Example: Redirect based on user location
  • 21. © AKAMAI - EDGE 2017 function onClientRequest(request, response) { if (request.headers['X-Language']) { request.originServer.hostname = 'origin.example.com'; } else { request.originServer.hostname = '3rd-party-service.example.com'; } } EdgeWorker Example: Choose Forward Origin Based on the Presence of a Header
  • 22. © AKAMAI - EDGE 2017 function onClientRequest(request, response) { if (request.device.isMobile) { request.originServer.hostname = 'origin-mobile.example.com'; } else if (request.device.isTablet) { request.originServer.hostname = 'origin-tablet.example.com'; } else { request.originServer.hostname = 'origin-desktop.example.com'; } } EdgeWorker Example: Access to Edge Device Characteristics
  • 23. © AKAMAI - EDGE 2017 function onClientResponse(request, response) { if (response.status == 403) { response.headers['Set-Cookie'] = 'MyCookie=; Expires=Thu, 01 Jan 1970 00:00:00 GMT'; } } EdgeWorker Example: Remove a cookie
  • 24. © AKAMAI - EDGE 2017 function onClientRequest(request, response) { request.maxAge = 604800; // 1 week in seconds } EdgeWorker Example: Set Edge Cacheability
  • 25. © AKAMAI - EDGE 2017 function getQueryParam(query, paramName) { var params = query.split('&'); for (var i = 0 ; i < params.length ; i++) { var nameValue = params[i].split('='); if (nameValue[0] === paramName) { return nameValue[1]; } } return ''; } function onClientRequest(request, response) { var city = getQueryParam(request.query, 'city'); request.cacheKey = request.cacheKey + '/' + city; } EdgeWorker Example: Cache Key Modification Incorporating Request Properties
  • 26. © AKAMAI - EDGE 2017 Request OriginServer UserLocation Device Response Metadata Variables EdgeWorkers API Overview function onClientRequest(request, response){ // do something as the request is received } function onClientResponse(request, response){ // do something just before the client response is sent } function onOriginRequest(request, response){ // do something just before sending the forward request } function onOriginResponse(request, response){ // do something as the forward response is received } Events Objects
  • 27. © AKAMAI - EDGE 2017 EdgeWorkers augment your Property Manager configuration, and are updated independently For requests matching this pattern Invoke this EdgeWorker
  • 28. © AKAMAI - EDGE 2017 Summary: How Edge Logic is expressed Property Manager PAPI Advanced Metadata ESI EdgeWorkers Can configure all capabilities of the service ✅ ✅ ✅ Can update using automation ✅ ✅ ✅ Can have multiple per site ✅ ✅ ✅ Offers power of a full programming language ✅ ✅ Offers a syntax and programming model that developers love ✅
  • 29. © AKAMAI - EDGE 2017 Akamai Developer Points of PresenceEnables Agile Testing of Akamai Configurations in a Pre-Staging Environment
  • 30. © AKAMAI - EDGE 2017 When do you test?
  • 31. Enable rapid and local CDN testing Origin Address *in this example the server is hosted locally Akamai Config Name *for the site you want to test N/W & Version Selection *select any version from staging or production ● Improve dev team efficiency ● No surprises in production ● Test Caching, WAF rules & IM policies ● Faster feedback via instant logs & quicker deploy times
  • 32. © AKAMAI - EDGE 2017 We want your feedback in helping us design this! akamaidev.io/edgeworkers ● DevZone DevOps Demo Booth ● Craig @ Web and Mobile Perf Kiosk Thurs 10-12:30pm ● sid@akamai.com Provide Input / Stay Updated Find / Contact Us