SlideShare a Scribd company logo
1 of 42
© AKAMAI - EDGE 2017
PAPI and Promotional Deployment
Mark Van Horn, Director of Software Engineering
© AKAMAI - EDGE 2017
Overview
What is PAPI?
Some PAPI use cases: What can be done today
•Using variables
•New ease of use changes
•A quick word about frozen rule formats
What’s next
•N-stage deployment pipeline
•Bulk updates of configurations
Q & A
© AKAMAI - EDGE 2017
What is PAPI?
The Property Manager API, or PAPI, allows the control of your properties
using a rich API layer instead of the UI.
developer.akamai.com
© AKAMAI - EDGE 2017
Some PAPI Use Cases: What can be done today?
© AKAMAI - EDGE 2017
Using Variables
• Example: Using variables to do geo redirection with a lookup table
• Edit PM JSON for the variable’s new value in your IDE
• Use PAPI to push changes
© AKAMAI - EDGE 2017
Using Variables, cont’d
© AKAMAI - EDGE 2017
Using Variables, cont’d
© AKAMAI - EDGE 2017
New Ease of Use changes released last week
© AKAMAI - EDGE 2017
First, the setup
© AKAMAI - EDGE 2017
Using the auth libraries
© AKAMAI - EDGE 2017
You can stop using data prefixes
© AKAMAI - EDGE 2017
You can choose to ignore contract id, group id
© AKAMAI - EDGE 2017
You can validate without saving
• dryRun=true
• validateMode=fast, validateMode=full (defaults to full)
© AKAMAI - EDGE 2017
Custom behaviors – coming soon!
Work with your account team to turn pieces of advanced metadata into
reusable snippets
(See hands-on lab outside in Dev Zone for more information)
© AKAMAI - EDGE 2017
A Word About Frozen Formats
• What are they?
• Why use them?
© AKAMAI - EDGE 2017
A Word About Frozen Formats, cont’d
© AKAMAI - EDGE 2017
What’s Next? Two projects we are working on now
• N-stage deployment pipeline
• Bulk updates of configurations
to plugin Akamai
into my other
tools
my config
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 info
from Akamai
to program Edge
behavior such as
redirects 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 other teams
to automate tests
against Akamai
diagnostic info
As a DevOps user, I want .. 2017 & Beyond
to automate
propagating
changes between
different
environments
Pipeline Needs
Quick Reactions
& Speed
My Developers
to be
empowered
Automation
© AKAMAI - EDGE 2017
Deployment Pipeline Use Case
Rather than providing yet another API, create an SDK that manages
templates, environments and variables locally in your environment.
The SDK would use PAPI and other APIs to:
• Provision resources
• Manage properties assigned to a Dev Ops pipeline
• Move changes from one environment (property) to another
• Merging environment specific settings into template locally and submit changes
through API
• Activate properties
Akamai Config
Work
Build & Test
Dev & Akamai
Work Promoted
Promote
Development
Work
Akamai
Pipeline
Config
v2
Dev Env QA Env Prod Env
Promote
Akamai
Pipeline
Config
v1
Akamai
Pipeline
Config
v1
Dev & Akamai
Work Promoted
Akamai
Pipeline
Config
v2
Akamai
Pipeline
Config
v2
Future State
© AKAMAI - EDGE 2017
● Project
○ JSON template with variable
place holders
○ Table of variable definitions
● Environments
○ Env specific variable values
Deployment Pipeline - High Level Components
© AKAMAI - EDGE 2017
Create new DevOps project
create_project –p ION -e dev,qa,staging,prod
devopsexample
setting up project in: projects/devopsexample
writing 'projects/devopsexample/environments/dev/hostnames.json’
writing 'projects/devopsexample/environments/dev/settings.json’
writing 'projects/devopsexample/environments/qa/hostnames.json’
writing 'projects/devopsexample/environments/qa/settings.json’
writing 'projects/devopsexample/environments/prod/hostnames.json’
writing 'projects/devopsexample/environments/prod/settings.json’
writing 'projects/devopsexample/templates/master.json’
...
© AKAMAI - EDGE 2017
Fetch Akamai account resources
npm run fetch
Downloading Akamai account resources...
... Product definitions
... Validation rules
... Validation library
... Contract resources
436 kb downloaded
© AKAMAI - EDGE 2017
Project Folder Structure
© AKAMAI - EDGE 2017
variable_definitions.json
{
"defaults": {
"defaultCpcode": 123456,
"defaultOrigin": "origin.devopsexample.akamai.com",
"defaultTTL": "1d"
},
"definitions": {
"defaultCpcode": {
"type": "cpcode"
},
"defaultOrigin": {
"type": "hostname"
},
"defaultTTL": {
"type": "ttl"
}
}
}
© AKAMAI - EDGE 2017
Environment specific files (example: dev)
{
"defaultCpcode": 243543,
"defaultOrigin": "dev-origin.devopsexample.akamai.com",
"defaultTTL": "5s"
}
variables.json
{
"propertyName": "dev.exampledevops.akamai.com",
"latestVersion": 12,
"activeStagingVersion": 11,
"activeProductionVersion": 10
}
settings.json
[
{
"name": "dev.exampledevops.akamai.com",
"cname": "exampledevops.akamai.com.edgesuite.net",
"cnametype": "EDGE_HOSTNAME",
"ipv6": true
},
...
]
hostnames.json
© AKAMAI - EDGE 2017
Templates includes (example: main.json)
{
"name" : "rule tree root",
"children" : [
"#include:compression.json",
"#include:dynamic.json",
"#include:static.json"
],
"behaviors" : [
"#include:origin.json", {
"name" : "cpCode",
"options" : {
"cpCode" : {
"id" : "${env.defaultCpcode}"
}
}
}, {
"name" : "caching",
"options" : {
"behavior" : "no-store"
}
}, {
... more behaviors ...
}
}
variable substitution
template includes
© AKAMAI - EDGE 2017
{
"name" : "origin",
"options" : {
"type" : "customer",
"forwardhostheader" : "requesthostheader",
"cachekeyhostname" : "originhostname",
"compression" : "on",
"tcip_enabled" : "off",
"http_port" : "80",
"hostname" : "${env.defaultOrigin}"
}
}
{
"name" : "Static Content",
"behaviors" : [ {
"name" : "caching",
"options" : {
"behavior" : "max-age",
"mustrevalidate" : "off",
"ttl" : "${env.defaultTTL}"
}
}, {
"name" : "prefetch",
"options" : {
"enabled" : "off"
}
}, {
"name" : "prefetchable",
"options" : {
"enabled" : "on"
}
} ],
"criteria" : [ {
"name" : "fileExtension",
"options" : {
"value" : [ "aif", ..., "wdp" ],
"result" : "true",
"case" : "off"
}
} ],
"criteriaMustSatisfy" : "all"
}
Included behavior
origin.json:
Included rule for static
content:
Templates includes and variables
© AKAMAI - EDGE 2017
Merging
npm run merge:dev
loading 'projects/example/environments/dev/variables.json'
loading 'projects/example/environments/dev/settings.json'
Merging template: 'projects/example/templates/main.json'
Merging template: 'projects/example/templates/compression.json'
Merging template: 'projects/example/templates/dynamic.json'
Merging template: 'projects/example/templates/static.json'
Replacing '${env.defaultTTL}' with: '5s'
Merging template: 'projects/example/templates/origin.json'
Replacing '${env.defaultOrigin}' with: 'dev-origin.devopsexample.akamai.com'
Replacing '${env.defaultCpcode}' with: '243543'
writing 'projects/example/dist/dev.exampledevops.akamai.com.simplified.json'
© AKAMAI - EDGE 2017
Validating
npm run validate:dev
loading 'projects/example/cache/Web_App_Accel.json'
loading 'projects/example/cache/property.json'
loading 'projects/example/environments/dev/settings.json'
loading 'projects/example/environments/dev/hostnames.json'
loading 'projects/example/dist/dev.exampledevops.akamai.com.simplified.json'
validationResults: []
writing 'projects/example/dist/dev.exampledevops.akamai.com.json'
writing 'projects/example/dist/dev.exampledevops.akamai.com.validation.json'
© AKAMAI - EDGE 2017
Promoting
npm run promote:qa
loading 'projects/example/environments/qa/variables.json'
loading 'projects/example/environments/qa/settings.json'
Promoting to 'qa' environment. Checking status...
'dev' has pending changes, cannot promote. Promote to 'dev' first.
© AKAMAI - EDGE 2017
Promoting
npm run promote:dev
loading 'projects/example/environments/dev/variables.json'
loading 'projects/example/environments/dev/settings.json'
Promoting to 'dev' environment. Checking status...
... running merge...
... all merged, saving changes ...
... OK, property 'dev.exampledevops.akamai.com' saved, 25 warnings, activating
...
... activation pending, used FMA route, expected wait time: 5 minutes.
© AKAMAI - EDGE 2017
Bulk Updates of configurations
© AKAMAI - EDGE 2017
Bulk Updates of configurations - Use Case
• Make the same update in many places and/or configurations
• For example, changing the same origin which lives in many behaviors
across many configurations
Our solution: Make “Rule Templates 2.0” a first class citizen.
* Rule templates 1.0 today – what are they?
© AKAMAI - EDGE 2017
Bulk Updates of configurations – How this would work
• Edit a 2.0 rule template
• New endpoints for finding properties using the template
• New endpoints provided for async bulk save/validate
• New endpoints provided for async bulk activate
© AKAMAI - EDGE 2017
Rule Include - Modify gzip Example
Client
PAPI API
Step 1: Modify the template
{
"name" : "Rule Include 1",
"children" : [ ],
"behaviors" : [ {
"name" : "gzipResponse",
"options" : {
"behavior" : "ALWAYS"
} ],
“Criteria” : [ {
"name" : "contentType",
"options" : {
"matchOperator" :"IS_ONE_OF",
..
} ]
..
}
Modified Rule include
{
"name" : "Rule Include 1",
"children" : [ ],
"behaviors" : [ {
"name" : "gzipResponse",
"options" : {
"behavior" : "ALWAYS"
} ],
“Criteria” : [ {
"name" : "contentType",
"options" : {
"matchOperator" :"IS_ONE_OF",
..
} ]
..
}
© AKAMAI - EDGE 2017
Rule include to search for
Rule Include - Modify gzip Example, cont’d
Client
PAPI API - SEARCH
Step 1b: Search configs that use the template
{includeName : “rule include 1”
}
{
configs : [ {
configId : 123,
Version : [“2”]
latestActive: null
latestUnactive: “2”
} , {
configId: 987,
Version : [“3”, “4”]
latestActive: “4”
latestUnactive: “3”
},
..
]
}
Search Results
Database look up
Configs using
template
© AKAMAI - EDGE 2017
Create config based off of version
Rule Include - Modify gzip Example, cont’d
Client PAPI API - Create Version
Step 2: Create new config versions
{
configs : [ {
configId : 123,
version : “2”
} , {
configId: 987,
Version : “3”
},
..
}]
}
{
CreateResultID: 123
configs : [ {
configId : 123,
version : “2”,
results: “success”
} , {
configId: 987,
Version : “3”
Results : “success”
Errors : {.....}
Warnings : {....}
},
..
}]
}
Create results
Database New configs
© AKAMAI - EDGE 2017
save + validate
Rule Include - Modify gzip Example, cont’d
Client
PAPI API - Save Version
Step 3: Save and validate configurations
{
configs : [ {
configId : 123,
version : “2”
} , {
configId: 987,
Version : “3”
},
..
}]
}
{
CreateResultID: 123
configs : [ {
configId : 123,
version : “2”,
results: “in progress validation”
Eta : “5 minutes”
} , {
configId: 987,
Version : “3”
Results : “Fail”
Errors : {.....}
Warnings : {....}
},
..
}]
}
Save + validate results
Expand include
Configs
© AKAMAI - EDGE 2017
Activate
Rule Include - Modify gzip Example, cont’d
Client
PAPI API - Activate
Step 4: Activate configs and check status
{
configs : [ {
configId : 123,
version : “2”
} , {
configId: 987,
Version : “3”
},
..
}]
}
Configs
{
activationResultId: 888
configs : [ {
configId : 123,
version : “1”,
results: “in progress activation”
Eta : “5 minutes”
} , {
configId: 987,
Version : “lastActiveVersion”
Results : “Fail”
Errors : {.....}
Warnings : {....}
},
..
}]
}
Activation results
activationResultId can be used in a results
endpoint to check status since this will be async
© AKAMAI - EDGE 2017
Please take the survey!
akamaidev.io/akamaiascode
© AKAMAI - EDGE 2017

More Related Content

What's hot

Zero Downtime Deployment
Zero Downtime DeploymentZero Downtime Deployment
Zero Downtime DeploymentJoel Dickson
 
Implementing Large Scale Digital Asset Repositories with Adobe Experience Man...
Implementing Large Scale Digital Asset Repositories with Adobe Experience Man...Implementing Large Scale Digital Asset Repositories with Adobe Experience Man...
Implementing Large Scale Digital Asset Repositories with Adobe Experience Man...devang-dsshah
 
Machine Learning - From Notebook to Production with Amazon Sagemaker
Machine Learning - From Notebook to Production with Amazon SagemakerMachine Learning - From Notebook to Production with Amazon Sagemaker
Machine Learning - From Notebook to Production with Amazon SagemakerAmazon Web Services
 
Agoda open stack in a large scale deployment
Agoda open stack in a large scale deploymentAgoda open stack in a large scale deployment
Agoda open stack in a large scale deploymentSharkrit JOBBO
 
ITLCHN 18 - Automation & DevOps - Automic
ITLCHN 18 -  Automation & DevOps - AutomicITLCHN 18 -  Automation & DevOps - Automic
ITLCHN 18 - Automation & DevOps - AutomicIT Expert Club
 
AWS Public Sector Symposium 2014 Canberra | Continuous Integration and Deploy...
AWS Public Sector Symposium 2014 Canberra | Continuous Integration and Deploy...AWS Public Sector Symposium 2014 Canberra | Continuous Integration and Deploy...
AWS Public Sector Symposium 2014 Canberra | Continuous Integration and Deploy...Amazon Web Services
 
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_SingaporeCI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_SingaporeAmazon Web Services
 
Choosing a dev ops paas platform svccd presentation v2 for slideshare
Choosing a dev ops paas platform svccd presentation v2 for slideshareChoosing a dev ops paas platform svccd presentation v2 for slideshare
Choosing a dev ops paas platform svccd presentation v2 for slideshareJohn Mathon
 
Always On - Zero Downtime releases
Always On - Zero Downtime releasesAlways On - Zero Downtime releases
Always On - Zero Downtime releasesAnders Lundsgård
 
Cloud Platform Adoption: Lessons Learned
Cloud Platform Adoption: Lessons LearnedCloud Platform Adoption: Lessons Learned
Cloud Platform Adoption: Lessons LearnedVMware Tanzu
 
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
 
Ten Battle-Tested Tips for Atlassian Connect Add-ons
Ten Battle-Tested Tips for Atlassian Connect Add-onsTen Battle-Tested Tips for Atlassian Connect Add-ons
Ten Battle-Tested Tips for Atlassian Connect Add-onsAtlassian
 
AWS DevDay Cologne - CI/CD for modern applications
AWS DevDay Cologne - CI/CD for modern applicationsAWS DevDay Cologne - CI/CD for modern applications
AWS DevDay Cologne - CI/CD for modern applicationsCobus Bernard
 
Building Enterprise Applications on Google Cloud Platform Cloud Computing Exp...
Building Enterprise Applications on Google Cloud Platform Cloud Computing Exp...Building Enterprise Applications on Google Cloud Platform Cloud Computing Exp...
Building Enterprise Applications on Google Cloud Platform Cloud Computing Exp...Chris Schalk
 
Microservices Architecture for Content Management Systems using AWS Lambda an...
Microservices Architecture for Content Management Systems using AWS Lambda an...Microservices Architecture for Content Management Systems using AWS Lambda an...
Microservices Architecture for Content Management Systems using AWS Lambda an...Mitoc Group
 
Docker in Production: How RightScale Delivers Cloud Applications
Docker in Production: How RightScale Delivers Cloud ApplicationsDocker in Production: How RightScale Delivers Cloud Applications
Docker in Production: How RightScale Delivers Cloud ApplicationsRightScale
 
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-nativeKubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-nativecornelia davis
 
How Bitbucket Pipelines Loads Connect UI Assets Super-fast
How Bitbucket Pipelines Loads Connect UI Assets Super-fastHow Bitbucket Pipelines Loads Connect UI Assets Super-fast
How Bitbucket Pipelines Loads Connect UI Assets Super-fastAtlassian
 
CloudCamp London 3 - Zeus - Owen Garret
CloudCamp London 3 - Zeus - Owen GarretCloudCamp London 3 - Zeus - Owen Garret
CloudCamp London 3 - Zeus - Owen GarretChris Purrington
 

What's hot (20)

Zero Downtime Deployment
Zero Downtime DeploymentZero Downtime Deployment
Zero Downtime Deployment
 
Implementing Large Scale Digital Asset Repositories with Adobe Experience Man...
Implementing Large Scale Digital Asset Repositories with Adobe Experience Man...Implementing Large Scale Digital Asset Repositories with Adobe Experience Man...
Implementing Large Scale Digital Asset Repositories with Adobe Experience Man...
 
Machine Learning - From Notebook to Production with Amazon Sagemaker
Machine Learning - From Notebook to Production with Amazon SagemakerMachine Learning - From Notebook to Production with Amazon Sagemaker
Machine Learning - From Notebook to Production with Amazon Sagemaker
 
Agoda open stack in a large scale deployment
Agoda open stack in a large scale deploymentAgoda open stack in a large scale deployment
Agoda open stack in a large scale deployment
 
ITLCHN 18 - Automation & DevOps - Automic
ITLCHN 18 -  Automation & DevOps - AutomicITLCHN 18 -  Automation & DevOps - Automic
ITLCHN 18 - Automation & DevOps - Automic
 
AWS Public Sector Symposium 2014 Canberra | Continuous Integration and Deploy...
AWS Public Sector Symposium 2014 Canberra | Continuous Integration and Deploy...AWS Public Sector Symposium 2014 Canberra | Continuous Integration and Deploy...
AWS Public Sector Symposium 2014 Canberra | Continuous Integration and Deploy...
 
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_SingaporeCI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
 
Choosing a dev ops paas platform svccd presentation v2 for slideshare
Choosing a dev ops paas platform svccd presentation v2 for slideshareChoosing a dev ops paas platform svccd presentation v2 for slideshare
Choosing a dev ops paas platform svccd presentation v2 for slideshare
 
Always On - Zero Downtime releases
Always On - Zero Downtime releasesAlways On - Zero Downtime releases
Always On - Zero Downtime releases
 
Cloud Platform Adoption: Lessons Learned
Cloud Platform Adoption: Lessons LearnedCloud Platform Adoption: Lessons Learned
Cloud Platform Adoption: Lessons Learned
 
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 ...
 
Ten Battle-Tested Tips for Atlassian Connect Add-ons
Ten Battle-Tested Tips for Atlassian Connect Add-onsTen Battle-Tested Tips for Atlassian Connect Add-ons
Ten Battle-Tested Tips for Atlassian Connect Add-ons
 
AWS DevDay Cologne - CI/CD for modern applications
AWS DevDay Cologne - CI/CD for modern applicationsAWS DevDay Cologne - CI/CD for modern applications
AWS DevDay Cologne - CI/CD for modern applications
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
Building Enterprise Applications on Google Cloud Platform Cloud Computing Exp...
Building Enterprise Applications on Google Cloud Platform Cloud Computing Exp...Building Enterprise Applications on Google Cloud Platform Cloud Computing Exp...
Building Enterprise Applications on Google Cloud Platform Cloud Computing Exp...
 
Microservices Architecture for Content Management Systems using AWS Lambda an...
Microservices Architecture for Content Management Systems using AWS Lambda an...Microservices Architecture for Content Management Systems using AWS Lambda an...
Microservices Architecture for Content Management Systems using AWS Lambda an...
 
Docker in Production: How RightScale Delivers Cloud Applications
Docker in Production: How RightScale Delivers Cloud ApplicationsDocker in Production: How RightScale Delivers Cloud Applications
Docker in Production: How RightScale Delivers Cloud Applications
 
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-nativeKubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
 
How Bitbucket Pipelines Loads Connect UI Assets Super-fast
How Bitbucket Pipelines Loads Connect UI Assets Super-fastHow Bitbucket Pipelines Loads Connect UI Assets Super-fast
How Bitbucket Pipelines Loads Connect UI Assets Super-fast
 
CloudCamp London 3 - Zeus - Owen Garret
CloudCamp London 3 - Zeus - Owen GarretCloudCamp London 3 - Zeus - Owen Garret
CloudCamp London 3 - Zeus - Owen Garret
 

Similar to PAPI and Promotional Deployment

Configs, Configs, Everywhere! (Actually, Let's Simplify All Those Configs)
Configs, Configs, Everywhere! (Actually, Let's Simplify All Those Configs)Configs, Configs, Everywhere! (Actually, Let's Simplify All Those Configs)
Configs, Configs, Everywhere! (Actually, Let's Simplify All Those Configs)Akamai Developers & Admins
 
From Development to Deployment - Use Akamai to Facilitate Workflow Automation
From Development to Deployment - Use Akamai to Facilitate Workflow AutomationFrom Development to Deployment - Use Akamai to Facilitate Workflow Automation
From Development to Deployment - Use Akamai to Facilitate Workflow AutomationAkamai Developers & Admins
 
SAP Teched 2012 Session Tec3438 Automate IaaS SAP deployments
SAP Teched 2012 Session Tec3438 Automate IaaS SAP deploymentsSAP Teched 2012 Session Tec3438 Automate IaaS SAP deployments
SAP Teched 2012 Session Tec3438 Automate IaaS SAP deploymentsChris Kernaghan
 
Perth DevOps Meetup - Introducing the IBM Innovation Lab - 12112015
Perth DevOps Meetup - Introducing the IBM Innovation Lab - 12112015Perth DevOps Meetup - Introducing the IBM Innovation Lab - 12112015
Perth DevOps Meetup - Introducing the IBM Innovation Lab - 12112015Christophe Lucas
 
AWS Summit Singapore Webinar Edition | Move it! Migrating to AWS (Level 200) ...
AWS Summit Singapore Webinar Edition | Move it! Migrating to AWS (Level 200) ...AWS Summit Singapore Webinar Edition | Move it! Migrating to AWS (Level 200) ...
AWS Summit Singapore Webinar Edition | Move it! Migrating to AWS (Level 200) ...Amazon Web Services
 
Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...
Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...
Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...jaxconf
 
Secure DevOps Workflow at Dell with Enterprise Application Access (EAA)
Secure DevOps Workflow at Dell with Enterprise Application Access (EAA)Secure DevOps Workflow at Dell with Enterprise Application Access (EAA)
Secure DevOps Workflow at Dell with Enterprise Application Access (EAA)Akamai Developers & Admins
 
Automating Infrastructure as a Service Deployments and monitoring – TEC213
Automating Infrastructure as a Service Deployments and monitoring – TEC213Automating Infrastructure as a Service Deployments and monitoring – TEC213
Automating Infrastructure as a Service Deployments and monitoring – TEC213Chris Kernaghan
 
App-solute Testing: Making App Testing with Akamai Easy
App-solute Testing: Making App Testing with Akamai EasyApp-solute Testing: Making App Testing with Akamai Easy
App-solute Testing: Making App Testing with Akamai EasyAkamai Developers & Admins
 
API Tips & Tricks - Policy Management and Elastic Deployment
API Tips & Tricks - Policy Management and Elastic DeploymentAPI Tips & Tricks - Policy Management and Elastic Deployment
API Tips & Tricks - Policy Management and Elastic DeploymentAxway
 
AWS Summit Singapore - Secrets to Successful Cloud Migrations
AWS Summit Singapore - Secrets to Successful Cloud MigrationsAWS Summit Singapore - Secrets to Successful Cloud Migrations
AWS Summit Singapore - Secrets to Successful Cloud MigrationsAmazon Web Services
 
Advanced Deployment Best Practices with AWS CodeDeploy (DEV404-R2) - AWS re:I...
Advanced Deployment Best Practices with AWS CodeDeploy (DEV404-R2) - AWS re:I...Advanced Deployment Best Practices with AWS CodeDeploy (DEV404-R2) - AWS re:I...
Advanced Deployment Best Practices with AWS CodeDeploy (DEV404-R2) - AWS re:I...Amazon Web Services
 
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Mack Hardy
 
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
New and cool in OSGi R7 - David Bosschaert & Carsten ZiegelerNew and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegelermfrancis
 
How ancestry used ai and ml for continuous, autonomous cloud optimization a...
How ancestry used ai and ml for continuous, autonomous cloud optimization   a...How ancestry used ai and ml for continuous, autonomous cloud optimization   a...
How ancestry used ai and ml for continuous, autonomous cloud optimization a...SVDevOps
 
Pivotal CloudFoundry on Google cloud platform
Pivotal CloudFoundry on Google cloud platformPivotal CloudFoundry on Google cloud platform
Pivotal CloudFoundry on Google cloud platformRonak Banka
 
Pivotal Platform - December Release A First Look
Pivotal Platform - December Release A First LookPivotal Platform - December Release A First Look
Pivotal Platform - December Release A First LookVMware Tanzu
 

Similar to PAPI and Promotional Deployment (20)

Configs, Configs, Everywhere! (Actually, Let's Simplify All Those Configs)
Configs, Configs, Everywhere! (Actually, Let's Simplify All Those Configs)Configs, Configs, Everywhere! (Actually, Let's Simplify All Those Configs)
Configs, Configs, Everywhere! (Actually, Let's Simplify All Those Configs)
 
From Development to Deployment - Use Akamai to Facilitate Workflow Automation
From Development to Deployment - Use Akamai to Facilitate Workflow AutomationFrom Development to Deployment - Use Akamai to Facilitate Workflow Automation
From Development to Deployment - Use Akamai to Facilitate Workflow Automation
 
S903 palla
S903 pallaS903 palla
S903 palla
 
SAP Teched 2012 Session Tec3438 Automate IaaS SAP deployments
SAP Teched 2012 Session Tec3438 Automate IaaS SAP deploymentsSAP Teched 2012 Session Tec3438 Automate IaaS SAP deployments
SAP Teched 2012 Session Tec3438 Automate IaaS SAP deployments
 
Perth DevOps Meetup - Introducing the IBM Innovation Lab - 12112015
Perth DevOps Meetup - Introducing the IBM Innovation Lab - 12112015Perth DevOps Meetup - Introducing the IBM Innovation Lab - 12112015
Perth DevOps Meetup - Introducing the IBM Innovation Lab - 12112015
 
AWS Summit Singapore Webinar Edition | Move it! Migrating to AWS (Level 200) ...
AWS Summit Singapore Webinar Edition | Move it! Migrating to AWS (Level 200) ...AWS Summit Singapore Webinar Edition | Move it! Migrating to AWS (Level 200) ...
AWS Summit Singapore Webinar Edition | Move it! Migrating to AWS (Level 200) ...
 
Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...
Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...
Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...
 
Secure DevOps Workflow at Dell with Enterprise Application Access (EAA)
Secure DevOps Workflow at Dell with Enterprise Application Access (EAA)Secure DevOps Workflow at Dell with Enterprise Application Access (EAA)
Secure DevOps Workflow at Dell with Enterprise Application Access (EAA)
 
Automating Infrastructure as a Service Deployments and monitoring – TEC213
Automating Infrastructure as a Service Deployments and monitoring – TEC213Automating Infrastructure as a Service Deployments and monitoring – TEC213
Automating Infrastructure as a Service Deployments and monitoring – TEC213
 
App-solute Testing: Making App Testing with Akamai Easy
App-solute Testing: Making App Testing with Akamai EasyApp-solute Testing: Making App Testing with Akamai Easy
App-solute Testing: Making App Testing with Akamai Easy
 
API Tips & Tricks - Policy Management and Elastic Deployment
API Tips & Tricks - Policy Management and Elastic DeploymentAPI Tips & Tricks - Policy Management and Elastic Deployment
API Tips & Tricks - Policy Management and Elastic Deployment
 
Serverless CI/CD on AWS Webinar
Serverless CI/CD on AWS WebinarServerless CI/CD on AWS Webinar
Serverless CI/CD on AWS Webinar
 
AWS Summit Singapore - Secrets to Successful Cloud Migrations
AWS Summit Singapore - Secrets to Successful Cloud MigrationsAWS Summit Singapore - Secrets to Successful Cloud Migrations
AWS Summit Singapore - Secrets to Successful Cloud Migrations
 
Advanced Deployment Best Practices with AWS CodeDeploy (DEV404-R2) - AWS re:I...
Advanced Deployment Best Practices with AWS CodeDeploy (DEV404-R2) - AWS re:I...Advanced Deployment Best Practices with AWS CodeDeploy (DEV404-R2) - AWS re:I...
Advanced Deployment Best Practices with AWS CodeDeploy (DEV404-R2) - AWS re:I...
 
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
 
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
New and cool in OSGi R7 - David Bosschaert & Carsten ZiegelerNew and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
 
GPSTEC307_Too Many Tools
GPSTEC307_Too Many ToolsGPSTEC307_Too Many Tools
GPSTEC307_Too Many Tools
 
How ancestry used ai and ml for continuous, autonomous cloud optimization a...
How ancestry used ai and ml for continuous, autonomous cloud optimization   a...How ancestry used ai and ml for continuous, autonomous cloud optimization   a...
How ancestry used ai and ml for continuous, autonomous cloud optimization a...
 
Pivotal CloudFoundry on Google cloud platform
Pivotal CloudFoundry on Google cloud platformPivotal CloudFoundry on Google cloud platform
Pivotal CloudFoundry on Google cloud platform
 
Pivotal Platform - December Release A First Look
Pivotal Platform - December Release A First LookPivotal Platform - December Release A First Look
Pivotal Platform - December Release A First Look
 

More from 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 scaleAkamai 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 scaleAkamai 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 realAkamai 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 PipelineAkamai 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 TourAkamai 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 FeaturesAkamai Developers & Admins
 
EdgeWorkers: Enabling Autonomous, Developer Friendly Programming at the Edge
EdgeWorkers: Enabling Autonomous, Developer Friendly Programming at the EdgeEdgeWorkers: Enabling Autonomous, Developer Friendly Programming at the Edge
EdgeWorkers: Enabling Autonomous, Developer Friendly Programming at the EdgeAkamai 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.xAkamai 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
 
EdgeWorkers: Enabling Autonomous, Developer Friendly Programming at the Edge
EdgeWorkers: Enabling Autonomous, Developer Friendly Programming at the EdgeEdgeWorkers: Enabling Autonomous, Developer Friendly Programming at the Edge
EdgeWorkers: Enabling Autonomous, Developer Friendly Programming at the Edge
 
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
 

Recently uploaded

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 

Recently uploaded (20)

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 

PAPI and Promotional Deployment

  • 1. © AKAMAI - EDGE 2017 PAPI and Promotional Deployment Mark Van Horn, Director of Software Engineering
  • 2. © AKAMAI - EDGE 2017 Overview What is PAPI? Some PAPI use cases: What can be done today •Using variables •New ease of use changes •A quick word about frozen rule formats What’s next •N-stage deployment pipeline •Bulk updates of configurations Q & A
  • 3. © AKAMAI - EDGE 2017 What is PAPI? The Property Manager API, or PAPI, allows the control of your properties using a rich API layer instead of the UI. developer.akamai.com
  • 4. © AKAMAI - EDGE 2017 Some PAPI Use Cases: What can be done today?
  • 5. © AKAMAI - EDGE 2017 Using Variables • Example: Using variables to do geo redirection with a lookup table • Edit PM JSON for the variable’s new value in your IDE • Use PAPI to push changes
  • 6. © AKAMAI - EDGE 2017 Using Variables, cont’d
  • 7. © AKAMAI - EDGE 2017 Using Variables, cont’d
  • 8. © AKAMAI - EDGE 2017 New Ease of Use changes released last week
  • 9. © AKAMAI - EDGE 2017 First, the setup
  • 10. © AKAMAI - EDGE 2017 Using the auth libraries
  • 11. © AKAMAI - EDGE 2017 You can stop using data prefixes
  • 12. © AKAMAI - EDGE 2017 You can choose to ignore contract id, group id
  • 13. © AKAMAI - EDGE 2017 You can validate without saving • dryRun=true • validateMode=fast, validateMode=full (defaults to full)
  • 14. © AKAMAI - EDGE 2017 Custom behaviors – coming soon! Work with your account team to turn pieces of advanced metadata into reusable snippets (See hands-on lab outside in Dev Zone for more information)
  • 15. © AKAMAI - EDGE 2017 A Word About Frozen Formats • What are they? • Why use them?
  • 16. © AKAMAI - EDGE 2017 A Word About Frozen Formats, cont’d
  • 17. © AKAMAI - EDGE 2017 What’s Next? Two projects we are working on now • N-stage deployment pipeline • Bulk updates of configurations
  • 18. to plugin Akamai into my other tools my config 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 info from Akamai to program Edge behavior such as redirects 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 other teams to automate tests against Akamai diagnostic info As a DevOps user, I want .. 2017 & Beyond to automate propagating changes between different environments Pipeline Needs Quick Reactions & Speed My Developers to be empowered Automation
  • 19. © AKAMAI - EDGE 2017 Deployment Pipeline Use Case Rather than providing yet another API, create an SDK that manages templates, environments and variables locally in your environment. The SDK would use PAPI and other APIs to: • Provision resources • Manage properties assigned to a Dev Ops pipeline • Move changes from one environment (property) to another • Merging environment specific settings into template locally and submit changes through API • Activate properties
  • 20. Akamai Config Work Build & Test Dev & Akamai Work Promoted Promote Development Work Akamai Pipeline Config v2 Dev Env QA Env Prod Env Promote Akamai Pipeline Config v1 Akamai Pipeline Config v1 Dev & Akamai Work Promoted Akamai Pipeline Config v2 Akamai Pipeline Config v2 Future State
  • 21. © AKAMAI - EDGE 2017 ● Project ○ JSON template with variable place holders ○ Table of variable definitions ● Environments ○ Env specific variable values Deployment Pipeline - High Level Components
  • 22. © AKAMAI - EDGE 2017 Create new DevOps project create_project –p ION -e dev,qa,staging,prod devopsexample setting up project in: projects/devopsexample writing 'projects/devopsexample/environments/dev/hostnames.json’ writing 'projects/devopsexample/environments/dev/settings.json’ writing 'projects/devopsexample/environments/qa/hostnames.json’ writing 'projects/devopsexample/environments/qa/settings.json’ writing 'projects/devopsexample/environments/prod/hostnames.json’ writing 'projects/devopsexample/environments/prod/settings.json’ writing 'projects/devopsexample/templates/master.json’ ...
  • 23. © AKAMAI - EDGE 2017 Fetch Akamai account resources npm run fetch Downloading Akamai account resources... ... Product definitions ... Validation rules ... Validation library ... Contract resources 436 kb downloaded
  • 24. © AKAMAI - EDGE 2017 Project Folder Structure
  • 25. © AKAMAI - EDGE 2017 variable_definitions.json { "defaults": { "defaultCpcode": 123456, "defaultOrigin": "origin.devopsexample.akamai.com", "defaultTTL": "1d" }, "definitions": { "defaultCpcode": { "type": "cpcode" }, "defaultOrigin": { "type": "hostname" }, "defaultTTL": { "type": "ttl" } } }
  • 26. © AKAMAI - EDGE 2017 Environment specific files (example: dev) { "defaultCpcode": 243543, "defaultOrigin": "dev-origin.devopsexample.akamai.com", "defaultTTL": "5s" } variables.json { "propertyName": "dev.exampledevops.akamai.com", "latestVersion": 12, "activeStagingVersion": 11, "activeProductionVersion": 10 } settings.json [ { "name": "dev.exampledevops.akamai.com", "cname": "exampledevops.akamai.com.edgesuite.net", "cnametype": "EDGE_HOSTNAME", "ipv6": true }, ... ] hostnames.json
  • 27. © AKAMAI - EDGE 2017 Templates includes (example: main.json) { "name" : "rule tree root", "children" : [ "#include:compression.json", "#include:dynamic.json", "#include:static.json" ], "behaviors" : [ "#include:origin.json", { "name" : "cpCode", "options" : { "cpCode" : { "id" : "${env.defaultCpcode}" } } }, { "name" : "caching", "options" : { "behavior" : "no-store" } }, { ... more behaviors ... } } variable substitution template includes
  • 28. © AKAMAI - EDGE 2017 { "name" : "origin", "options" : { "type" : "customer", "forwardhostheader" : "requesthostheader", "cachekeyhostname" : "originhostname", "compression" : "on", "tcip_enabled" : "off", "http_port" : "80", "hostname" : "${env.defaultOrigin}" } } { "name" : "Static Content", "behaviors" : [ { "name" : "caching", "options" : { "behavior" : "max-age", "mustrevalidate" : "off", "ttl" : "${env.defaultTTL}" } }, { "name" : "prefetch", "options" : { "enabled" : "off" } }, { "name" : "prefetchable", "options" : { "enabled" : "on" } } ], "criteria" : [ { "name" : "fileExtension", "options" : { "value" : [ "aif", ..., "wdp" ], "result" : "true", "case" : "off" } } ], "criteriaMustSatisfy" : "all" } Included behavior origin.json: Included rule for static content: Templates includes and variables
  • 29. © AKAMAI - EDGE 2017 Merging npm run merge:dev loading 'projects/example/environments/dev/variables.json' loading 'projects/example/environments/dev/settings.json' Merging template: 'projects/example/templates/main.json' Merging template: 'projects/example/templates/compression.json' Merging template: 'projects/example/templates/dynamic.json' Merging template: 'projects/example/templates/static.json' Replacing '${env.defaultTTL}' with: '5s' Merging template: 'projects/example/templates/origin.json' Replacing '${env.defaultOrigin}' with: 'dev-origin.devopsexample.akamai.com' Replacing '${env.defaultCpcode}' with: '243543' writing 'projects/example/dist/dev.exampledevops.akamai.com.simplified.json'
  • 30. © AKAMAI - EDGE 2017 Validating npm run validate:dev loading 'projects/example/cache/Web_App_Accel.json' loading 'projects/example/cache/property.json' loading 'projects/example/environments/dev/settings.json' loading 'projects/example/environments/dev/hostnames.json' loading 'projects/example/dist/dev.exampledevops.akamai.com.simplified.json' validationResults: [] writing 'projects/example/dist/dev.exampledevops.akamai.com.json' writing 'projects/example/dist/dev.exampledevops.akamai.com.validation.json'
  • 31. © AKAMAI - EDGE 2017 Promoting npm run promote:qa loading 'projects/example/environments/qa/variables.json' loading 'projects/example/environments/qa/settings.json' Promoting to 'qa' environment. Checking status... 'dev' has pending changes, cannot promote. Promote to 'dev' first.
  • 32. © AKAMAI - EDGE 2017 Promoting npm run promote:dev loading 'projects/example/environments/dev/variables.json' loading 'projects/example/environments/dev/settings.json' Promoting to 'dev' environment. Checking status... ... running merge... ... all merged, saving changes ... ... OK, property 'dev.exampledevops.akamai.com' saved, 25 warnings, activating ... ... activation pending, used FMA route, expected wait time: 5 minutes.
  • 33. © AKAMAI - EDGE 2017 Bulk Updates of configurations
  • 34. © AKAMAI - EDGE 2017 Bulk Updates of configurations - Use Case • Make the same update in many places and/or configurations • For example, changing the same origin which lives in many behaviors across many configurations Our solution: Make “Rule Templates 2.0” a first class citizen. * Rule templates 1.0 today – what are they?
  • 35. © AKAMAI - EDGE 2017 Bulk Updates of configurations – How this would work • Edit a 2.0 rule template • New endpoints for finding properties using the template • New endpoints provided for async bulk save/validate • New endpoints provided for async bulk activate
  • 36. © AKAMAI - EDGE 2017 Rule Include - Modify gzip Example Client PAPI API Step 1: Modify the template { "name" : "Rule Include 1", "children" : [ ], "behaviors" : [ { "name" : "gzipResponse", "options" : { "behavior" : "ALWAYS" } ], “Criteria” : [ { "name" : "contentType", "options" : { "matchOperator" :"IS_ONE_OF", .. } ] .. } Modified Rule include { "name" : "Rule Include 1", "children" : [ ], "behaviors" : [ { "name" : "gzipResponse", "options" : { "behavior" : "ALWAYS" } ], “Criteria” : [ { "name" : "contentType", "options" : { "matchOperator" :"IS_ONE_OF", .. } ] .. }
  • 37. © AKAMAI - EDGE 2017 Rule include to search for Rule Include - Modify gzip Example, cont’d Client PAPI API - SEARCH Step 1b: Search configs that use the template {includeName : “rule include 1” } { configs : [ { configId : 123, Version : [“2”] latestActive: null latestUnactive: “2” } , { configId: 987, Version : [“3”, “4”] latestActive: “4” latestUnactive: “3” }, .. ] } Search Results Database look up Configs using template
  • 38. © AKAMAI - EDGE 2017 Create config based off of version Rule Include - Modify gzip Example, cont’d Client PAPI API - Create Version Step 2: Create new config versions { configs : [ { configId : 123, version : “2” } , { configId: 987, Version : “3” }, .. }] } { CreateResultID: 123 configs : [ { configId : 123, version : “2”, results: “success” } , { configId: 987, Version : “3” Results : “success” Errors : {.....} Warnings : {....} }, .. }] } Create results Database New configs
  • 39. © AKAMAI - EDGE 2017 save + validate Rule Include - Modify gzip Example, cont’d Client PAPI API - Save Version Step 3: Save and validate configurations { configs : [ { configId : 123, version : “2” } , { configId: 987, Version : “3” }, .. }] } { CreateResultID: 123 configs : [ { configId : 123, version : “2”, results: “in progress validation” Eta : “5 minutes” } , { configId: 987, Version : “3” Results : “Fail” Errors : {.....} Warnings : {....} }, .. }] } Save + validate results Expand include Configs
  • 40. © AKAMAI - EDGE 2017 Activate Rule Include - Modify gzip Example, cont’d Client PAPI API - Activate Step 4: Activate configs and check status { configs : [ { configId : 123, version : “2” } , { configId: 987, Version : “3” }, .. }] } Configs { activationResultId: 888 configs : [ { configId : 123, version : “1”, results: “in progress activation” Eta : “5 minutes” } , { configId: 987, Version : “lastActiveVersion” Results : “Fail” Errors : {.....} Warnings : {....} }, .. }] } Activation results activationResultId can be used in a results endpoint to check status since this will be async
  • 41. © AKAMAI - EDGE 2017 Please take the survey! akamaidev.io/akamaiascode
  • 42. © AKAMAI - EDGE 2017