SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
© 2020 Akamai1
Set Up a
Development
Environment
in 5 Minutes
A step by step guide to setting up
a development environment with
Akamai Docker
© 2020 Akamai2
© 2020 Akamai3
Introduction
Agenda
1
Akamai Development
Environment Best Practices
2
Demos3
Interactive Quiz4
Q&A5
© 2020 Akamai4
Speakers
Javier Garza
Sr. Developer Advocate
Lukasz Czerpak
Sr. Enterprise Architect
Anthony Hogg
Sr. Enterprise Architect
© 2020 Akamai5
Introduction
© 2020 Akamai6
Akamai at a glance
A global platform
137 countries
1,700 networks
3,900 locations
260,000 servers
Generating
insights
100 million IP
addresses/day
1.3 billion device
interactions/day
7.5 petabytes
processed/day
Accelerating
daily traffic of
40 million hits/second
2+ trillion
deliveries/day
50+ Terabits/second
with 160+
Tbps Peaks
Supported by
7,000+ employees
60+ global offices
8 global 24/7
operations centers
Data Source: Akamai Intelligent Edge Platform. January 2020.
© 2020 Akamai7
Setting up an Akamai Developer Environment
Concepts
Continuous Integration
Automate build and test activities anytime
a user makes a code change
Continuous Delivery
Automate build, test, and release activities
anytime a user makes a code change
Continuous Deployment
Automate build, test, release, and deploy
activities anytime a user makes a code changeCONTINUOUS ANYTHING = AUTOMATION
© 2020 Akamai8
Prerequisites
API
Credentials
© 2020 Akamai9
Why Docker? $ time docker run --rm -it -v $HOME/.edgerc:/root/.edgerc:ro --name
akamai akamai/akamai-docker akamai --version
akamai version 1.1.5
docker run --rm -it -v $HOME/.edgerc:/root/.edgerc:ro --name akamai
akamai 0.04s user 0.02s system 3% cpu 1.464 total
$
Alpine
Node.js
akamai
Python 2
vim
Python 3
HTTPie
go
curl
pip
tree jdk8
nano
jq
bash
terraform openssl
wget
git
libffi
dep
npm
docker
CONTAINER
© 2020 Akamai10
Akamai
Development
Environment
Best Practices
© 2020 Akamai11
● Explained Goal
● Agreed on:
○ Scope
○ who does what
○ how to communicate
○ what technologies to use
(GitHub, Docker Hub)
○ Timelines
○ Next steps
● Assigned action items for next steps
● Integrated TravisCI (monthly build)
● Added:
○ .travis.yml
○ Automation scripts
○ Slack Build notifications
● Discussed Next Steps (image
variants)
● Pushed first image to Docker Hub
● Started with an existing file
● Collaborated to add:
○ Owner info
○ .gitignore
○ Copyright & License
○ Readme
● Enabled Auto-Deploy to Docker Hub
● Assigned action items for next steps
DevOps, Agile and Lean Methodologies
3 people, 3 countries, 3 working sessions
April 15April 9 April 17
AutomationDockerfileInitial Meeting
© 2020 Akamai12
Continuous Deployment Workflow
Dockerfile .travis.yml akamai/akamai-docker Build #12 of
akamai/akamai-docker@master
passed in 12 mins.
© 2020 Akamai13
© 2020 Akamai14
© 2020 Akamai15
© 2020 Akamai16
© 2020 Akamai17
Docker Image Size Optimizations
FROM alpine:3.11 as base
FROM base as builder
ARG AKAMAI_CLI_HOME=/cli
ENV AKAMAI_CLI_HOME=$AKAMAI_CLI_HOME GOROOT=/usr/lib/go GOPATH=/go GO111MODULE=auto PATH=$PATH:$GOBIN
RUN mkdir -p $AKAMAI_CLI_HOME/.akamai-cli
RUN apk add --no-cache docker git bash python2 python2-dev py2-pip python3 python3-dev npm wget jq openssl
openssl-dev curl nodejs build-base libffi libffi-dev vim nano util-linux go dep tree bind-tools
RUN go get -d github.com/akamai/cli && cd $GOPATH/src/github.com/akamai/cli && go mod init && go mod tidy && go
build -o /usr/local/bin/akamai
RUN pip install --upgrade pip && pip3 install --upgrade pip
RUN curl -s https://developer.akamai.com/cli/package-list.json -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS
X 10.10; rv:42.0) Gecko/20100101 Firefox/42.0" | jq '.packages[].name' | sed s/"//g | xargs akamai install --force
RUN go get github.com/spf13/cast && akamai install cli-api-gateway
# https://github.com/akamai/cli-sandbox/issues/24
RUN akamai install sandbox && cd $AKAMAI_CLI_HOME/.akamai-cli/src/cli-sandbox/ && npm run build
RUN cd $AKAMAI_CLI_HOME/.akamai-cli/src/cli-edgeworkers/ && npm run build
WORKDIR /wheels
RUN pip install wheel
RUN pip wheel httpie httpie-edgegrid cffi
FROM base
ARG AKAMAI_CLI_HOME=/cli
© 2020 Akamai18
Docker Image Variants
#####################
# BUILD ARGS
#########
ARG BASE=akamai/base
#####################
# BUILDER
#########
FROM node:alpine as builder
RUN apk add --no-cache git npm 
# install cli-property from git
# (akamai install does not add the --production flag, which increases
# the footprint of the package since devDependencies are installed)
&& git clone --depth 1 https://github.com/akamai/cli-property.git 
&& cd cli-property 
&& npm install --production
#####################
# FINAL
#########
FROM $BASE
RUN apk add --no-cache nodejs 
&& mkdir -p /cli/.akamai-cli/src
COPY --from=builder /cli-property /cli/.akamai-cli/src/cli-property
ENTRYPOINT ["/cli/.akamai-cli/src/cli-property/bin/akamaiProperty"]
...
SHELL
360MB
APPSEC
51 MB
ADAPTIVE
ACCELERATION
40 MB
BASE
5 MB
PROPERTY
66 MB
...
© 2020 Akamai19
Demos
© 2020 Akamai20
Demos
1. Setting up the Development Environment
2. Web Operations
3. Media publishing
4. Security
5. DevOps
© 2020 Akamai21
Setting up the
Akamai Development
Environment
● Provision API Access
● Install Docker Desktop
● Install Akamai Development Environment
Demo
$ docker run -it -v $HOME/.edgerc:/root/.edgerc:ro --name akamai akamai/akamai-docker
Unable to find image 'akamai/akamai-docker:latest' locally
latest: Pulling from akamai/akamai-docker
cbdbe7a5bc2a: Pull complete
61bc2d5ce3bb: Pull complete
9c0484786baa: Pull complete
3f382dfdc1a6: Pull complete
4198704f8a89: Pull complete
accf7413945d: Pull complete
ee5d7f0cd1d3: Pull complete
8a416004e68b: Pull complete
3b4b5269d525: Pull complete
b7a187f231b9: Pull complete
ffc2604dc2ba: Pull complete
5b7a8ab46262: Pull complete
d329d6aeb9f5: Pull complete
f280ab158c66: Pull complete
56c836b880f2: Pull complete
c0f7981b2f07: Pull complete
Digest: sha256:c0ac240cf88f06337902dd13cb1e542af0321392c283f96fdc32c41578970eb7
Status: Downloaded newer image for akamai/akamai-docker:latest
___ __ _
/ | / /______ _____ ___ ____ _(_)
/ /| | / //_/ __ `/ __ `__ / __ `/ /
/ ___ |/ ,< / /_/ / / / / / / /_/ / /
/_/ |_/_/|_|__,_/_/ /_/ /_/__,_/_/
===============================================================
= Welcome to the Akamai Docker Image =
===============================================================
= Project page: =
= https://github.com/akamai/akamai-docker =
===============================================================
Akamai DevOps [~] >>
© 2020 Akamai22
Purging Content
● Understand Content Invalidation
● Purge Content
● Verify purge worked
Demo
$ docker run --rm -it --name akamai akamai/akamai-docker
___ __ _
/ | / /______ _____ ___ ____ _(_)
/ /| | / //_/ __ `/ __ `__ / __ `/ /
/ ___ |/ ,< / /_/ / / / / / / /_/ / /
/_/ |_/_/|_|__,_/_/ /_/ /_/__,_/_/
===============================================================
= Welcome to the Akamai Docker Image =
===============================================================
= Project page: =
= https://github.com/akamai/akamai-docker =
===============================================================
Akamai DevOps [~] >> akamai purge invalidate --tag product --staging
Purging...... [OK]
Purged 2 objects (ETA: 5 seconds)
Purge ID: b60b3da4-94ce-11ea-bb0d-fb1c0dd275d3
Akamai DevOps [~] >>
© 2020 Akamai23
{
"name": "GEO-protection-NL",
"children": [],
"behaviors": [
{
"name": "denyAccess",
"options": {
"reason": "not-NL",
"enabled": true
}
}
],
"criteria": [
{
"name": "path",
"options": {
"matchOperator": "MATCHES_ONE_OF",
"values": [
"/videos/nl/*"
],
"matchCaseSensitive": false
}
},
{
"name": "userLocation",
"options": {
"field": "COUNTRY",
"matchOperator": "IS_NOT_ONE_OF",
"countryValues": [
"NL"
],
"checkIps": "BOTH",
"useOnlyFirstXForwardedForIp": false
}
}
],
"criteriaMustSatisfy": "all"
}
Protect Media Assets
● Download property rules
● Add new functionality
● Activate new version
● Verify functionality
Demo
© 2020 Akamai24
Protecting against
SQL Injection attacks
● Execute SQL Injection attack
● Update and activate security
configuration
● Verify attack is deflected
Demo
© 2020 Akamai25
Akamai-as-code
● Review code in source-control
● Test new code in local sandbox
● Use Jenkins pipeline to build, test and
deploy code to the Akamai staging
network
Demo
© 2020 Akamai26
Let’s Recap
Webinar Resources
Summary Collaborate with us
github.com/akamai/akamai-docker
© 2020 Akamai27
Useful Links
● developer.akamai.com
● github.com/akamai/akamai-docker
● docker.com/get-started
● hub.docker.com/r/akamai/akamai-docker
● youtube.com/akamaideveloper
● https://developer.akamai.com/development-environment-webinar
© 2020 Akamai28

Contenu connexe

Tendances

Cloud APIs and Cloud Frameworks
Cloud APIs and Cloud FrameworksCloud APIs and Cloud Frameworks
Cloud APIs and Cloud FrameworksPraveen Hanchinal
 
Taylor Wicksell and Tom Gianos at SpringOne Platform 2019
Taylor Wicksell and Tom Gianos at SpringOne Platform 2019Taylor Wicksell and Tom Gianos at SpringOne Platform 2019
Taylor Wicksell and Tom Gianos at SpringOne Platform 2019VMware Tanzu
 
AWS Summit - Trends in Advanced Monitoring for AWS environments
AWS Summit - Trends in Advanced Monitoring for AWS environmentsAWS Summit - Trends in Advanced Monitoring for AWS environments
AWS Summit - Trends in Advanced Monitoring for AWS environmentsAndreas Grabner
 
AWS Community Day Bangkok 2019 - Dev Ops Philosophy Increase Productivity
AWS Community Day Bangkok 2019 - Dev Ops Philosophy Increase ProductivityAWS Community Day Bangkok 2019 - Dev Ops Philosophy Increase Productivity
AWS Community Day Bangkok 2019 - Dev Ops Philosophy Increase ProductivityAWS User Group - Thailand
 
AWS Community Day Bangkok 2019 - DevOps Cost Reduction using Jenkins & AWS Sp...
AWS Community Day Bangkok 2019 - DevOps Cost Reduction using Jenkins & AWS Sp...AWS Community Day Bangkok 2019 - DevOps Cost Reduction using Jenkins & AWS Sp...
AWS Community Day Bangkok 2019 - DevOps Cost Reduction using Jenkins & AWS Sp...AWS User Group - Thailand
 
Serverless with Firebase
Serverless with FirebaseServerless with Firebase
Serverless with FirebaseQvik
 
Building Voice Enabled Apps with AWS AppSync, GraphQL, & Amazon Alexa: Mobile...
Building Voice Enabled Apps with AWS AppSync, GraphQL, & Amazon Alexa: Mobile...Building Voice Enabled Apps with AWS AppSync, GraphQL, & Amazon Alexa: Mobile...
Building Voice Enabled Apps with AWS AppSync, GraphQL, & Amazon Alexa: Mobile...Amazon Web Services
 
How and why test Azure Front Door with AWS Lambda & PowerShell? | Osman Sahin...
How and why test Azure Front Door with AWS Lambda & PowerShell? | Osman Sahin...How and why test Azure Front Door with AWS Lambda & PowerShell? | Osman Sahin...
How and why test Azure Front Door with AWS Lambda & PowerShell? | Osman Sahin...UK DevOps Collective
 
Build a Voice Enabled Modern App with GraphQL, AWS AppSync, and Amazon Alexa
Build a Voice Enabled Modern App with GraphQL, AWS AppSync, and Amazon AlexaBuild a Voice Enabled Modern App with GraphQL, AWS AppSync, and Amazon Alexa
Build a Voice Enabled Modern App with GraphQL, AWS AppSync, and Amazon AlexaAmazon Web Services
 
Cloud-based Performance & Web Load Testing
Cloud-based Performance & Web Load TestingCloud-based Performance & Web Load Testing
Cloud-based Performance & Web Load TestingInCycleSoftware
 
Building Mobile Apps with AWS Amplify
Building Mobile Apps with AWS AmplifyBuilding Mobile Apps with AWS Amplify
Building Mobile Apps with AWS AmplifyAmazon Web Services
 
AWS Community Day Bangkok 2019 - Hello ClaudiaJS
AWS Community Day Bangkok 2019 - Hello ClaudiaJSAWS Community Day Bangkok 2019 - Hello ClaudiaJS
AWS Community Day Bangkok 2019 - Hello ClaudiaJSAWS User Group - Thailand
 
Gcp cloud certification training course
Gcp cloud certification training courseGcp cloud certification training course
Gcp cloud certification training coursesrip30
 

Tendances (19)

Fluent 2018: Measuring What Matters
Fluent 2018: Measuring What MattersFluent 2018: Measuring What Matters
Fluent 2018: Measuring What Matters
 
Cloud APIs and Cloud Frameworks
Cloud APIs and Cloud FrameworksCloud APIs and Cloud Frameworks
Cloud APIs and Cloud Frameworks
 
Taylor Wicksell and Tom Gianos at SpringOne Platform 2019
Taylor Wicksell and Tom Gianos at SpringOne Platform 2019Taylor Wicksell and Tom Gianos at SpringOne Platform 2019
Taylor Wicksell and Tom Gianos at SpringOne Platform 2019
 
Community day _aws_ci_cd_v0.2
Community day _aws_ci_cd_v0.2Community day _aws_ci_cd_v0.2
Community day _aws_ci_cd_v0.2
 
AWS Summit - Trends in Advanced Monitoring for AWS environments
AWS Summit - Trends in Advanced Monitoring for AWS environmentsAWS Summit - Trends in Advanced Monitoring for AWS environments
AWS Summit - Trends in Advanced Monitoring for AWS environments
 
Signal r core workshop - netconf
Signal r core workshop - netconf Signal r core workshop - netconf
Signal r core workshop - netconf
 
AWS Community Day Bangkok 2019 - Dev Ops Philosophy Increase Productivity
AWS Community Day Bangkok 2019 - Dev Ops Philosophy Increase ProductivityAWS Community Day Bangkok 2019 - Dev Ops Philosophy Increase Productivity
AWS Community Day Bangkok 2019 - Dev Ops Philosophy Increase Productivity
 
AWS Community Day Bangkok 2019 - DevOps Cost Reduction using Jenkins & AWS Sp...
AWS Community Day Bangkok 2019 - DevOps Cost Reduction using Jenkins & AWS Sp...AWS Community Day Bangkok 2019 - DevOps Cost Reduction using Jenkins & AWS Sp...
AWS Community Day Bangkok 2019 - DevOps Cost Reduction using Jenkins & AWS Sp...
 
Serverless with Firebase
Serverless with FirebaseServerless with Firebase
Serverless with Firebase
 
Building Voice Enabled Apps with AWS AppSync, GraphQL, & Amazon Alexa: Mobile...
Building Voice Enabled Apps with AWS AppSync, GraphQL, & Amazon Alexa: Mobile...Building Voice Enabled Apps with AWS AppSync, GraphQL, & Amazon Alexa: Mobile...
Building Voice Enabled Apps with AWS AppSync, GraphQL, & Amazon Alexa: Mobile...
 
How and why test Azure Front Door with AWS Lambda & PowerShell? | Osman Sahin...
How and why test Azure Front Door with AWS Lambda & PowerShell? | Osman Sahin...How and why test Azure Front Door with AWS Lambda & PowerShell? | Osman Sahin...
How and why test Azure Front Door with AWS Lambda & PowerShell? | Osman Sahin...
 
Past, Present and Future of DevOps Infrastructure
Past, Present and Future of DevOps InfrastructurePast, Present and Future of DevOps Infrastructure
Past, Present and Future of DevOps Infrastructure
 
Build a Voice Enabled Modern App with GraphQL, AWS AppSync, and Amazon Alexa
Build a Voice Enabled Modern App with GraphQL, AWS AppSync, and Amazon AlexaBuild a Voice Enabled Modern App with GraphQL, AWS AppSync, and Amazon Alexa
Build a Voice Enabled Modern App with GraphQL, AWS AppSync, and Amazon Alexa
 
Cloud-based Performance & Web Load Testing
Cloud-based Performance & Web Load TestingCloud-based Performance & Web Load Testing
Cloud-based Performance & Web Load Testing
 
Building Mobile Apps with AWS Amplify
Building Mobile Apps with AWS AmplifyBuilding Mobile Apps with AWS Amplify
Building Mobile Apps with AWS Amplify
 
Introduction to React Native
Introduction to React NativeIntroduction to React Native
Introduction to React Native
 
AWS Community Day Bangkok 2019 - Hello ClaudiaJS
AWS Community Day Bangkok 2019 - Hello ClaudiaJSAWS Community Day Bangkok 2019 - Hello ClaudiaJS
AWS Community Day Bangkok 2019 - Hello ClaudiaJS
 
EVOLVE'15 | Enhance | Norberto Leite | Effectively Scale and Operate AEM with...
EVOLVE'15 | Enhance | Norberto Leite | Effectively Scale and Operate AEM with...EVOLVE'15 | Enhance | Norberto Leite | Effectively Scale and Operate AEM with...
EVOLVE'15 | Enhance | Norberto Leite | Effectively Scale and Operate AEM with...
 
Gcp cloud certification training course
Gcp cloud certification training courseGcp cloud certification training course
Gcp cloud certification training course
 

Similaire à Set up a Development Environment in 5 Minutes

Improve your Java Environment with Docker
Improve your Java Environment with DockerImprove your Java Environment with Docker
Improve your Java Environment with DockerHanoiJUG
 
DevFest 2022 - Cloud Workstation Introduction TaiChung
DevFest 2022 - Cloud Workstation Introduction TaiChungDevFest 2022 - Cloud Workstation Introduction TaiChung
DevFest 2022 - Cloud Workstation Introduction TaiChungKAI CHU CHUNG
 
Docker for developers on mac and windows
Docker for developers on mac and windowsDocker for developers on mac and windows
Docker for developers on mac and windowsDocker, Inc.
 
Using Docker For Development
Using Docker For DevelopmentUsing Docker For Development
Using Docker For DevelopmentLaura Frank Tacho
 
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis OverviewLeo Lorieri
 
Oracle Database 18c Docker.pdf
Oracle Database 18c Docker.pdfOracle Database 18c Docker.pdf
Oracle Database 18c Docker.pdfYossi Nixon
 
Docker for Java Developers
Docker for Java DevelopersDocker for Java Developers
Docker for Java DevelopersNGINX, Inc.
 
DevOps Workflow: A Tutorial on Linux Containers
DevOps Workflow: A Tutorial on Linux ContainersDevOps Workflow: A Tutorial on Linux Containers
DevOps Workflow: A Tutorial on Linux Containersinside-BigData.com
 
GDG-ANDROID-ATHENS Meetup: Build in Docker with Jenkins
GDG-ANDROID-ATHENS Meetup: Build in Docker with Jenkins GDG-ANDROID-ATHENS Meetup: Build in Docker with Jenkins
GDG-ANDROID-ATHENS Meetup: Build in Docker with Jenkins Mando Stam
 
Gitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a proGitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a prosparkfabrik
 
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808Cisco DevNet
 
How to Dockerize your Sitecore module
How to Dockerize your Sitecore moduleHow to Dockerize your Sitecore module
How to Dockerize your Sitecore moduleMihály Árvai
 
Building a production-ready, fully-scalable Docker Swarm using Terraform & Pa...
Building a production-ready, fully-scalable Docker Swarm using Terraform & Pa...Building a production-ready, fully-scalable Docker Swarm using Terraform & Pa...
Building a production-ready, fully-scalable Docker Swarm using Terraform & Pa...Outlyer
 
DCEU 18: Developing with Docker Containers
DCEU 18: Developing with Docker ContainersDCEU 18: Developing with Docker Containers
DCEU 18: Developing with Docker ContainersDocker, Inc.
 
Code and Deploy Angular to the Cloud
Code and Deploy Angular to the CloudCode and Deploy Angular to the Cloud
Code and Deploy Angular to the CloudSimona Cotin
 
The Big Cloud native FaaS Lebowski
The Big Cloud native FaaS LebowskiThe Big Cloud native FaaS Lebowski
The Big Cloud native FaaS LebowskiQAware GmbH
 
CCCEU15 run cloudstack in docker
CCCEU15 run cloudstack in dockerCCCEU15 run cloudstack in docker
CCCEU15 run cloudstack in dockerPierre-Luc Dion
 

Similaire à Set up a Development Environment in 5 Minutes (20)

Improve your Java Environment with Docker
Improve your Java Environment with DockerImprove your Java Environment with Docker
Improve your Java Environment with Docker
 
DevFest 2022 - Cloud Workstation Introduction TaiChung
DevFest 2022 - Cloud Workstation Introduction TaiChungDevFest 2022 - Cloud Workstation Introduction TaiChung
DevFest 2022 - Cloud Workstation Introduction TaiChung
 
Docker for developers on mac and windows
Docker for developers on mac and windowsDocker for developers on mac and windows
Docker for developers on mac and windows
 
Using Docker For Development
Using Docker For DevelopmentUsing Docker For Development
Using Docker For Development
 
Multi Stage Docker Build
Multi Stage Docker Build Multi Stage Docker Build
Multi Stage Docker Build
 
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
 
Oracle Database 18c Docker.pdf
Oracle Database 18c Docker.pdfOracle Database 18c Docker.pdf
Oracle Database 18c Docker.pdf
 
Docker for Java Developers
Docker for Java DevelopersDocker for Java Developers
Docker for Java Developers
 
DevOps Workflow: A Tutorial on Linux Containers
DevOps Workflow: A Tutorial on Linux ContainersDevOps Workflow: A Tutorial on Linux Containers
DevOps Workflow: A Tutorial on Linux Containers
 
GDG-ANDROID-ATHENS Meetup: Build in Docker with Jenkins
GDG-ANDROID-ATHENS Meetup: Build in Docker with Jenkins GDG-ANDROID-ATHENS Meetup: Build in Docker with Jenkins
GDG-ANDROID-ATHENS Meetup: Build in Docker with Jenkins
 
Gitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a proGitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a pro
 
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
 
How to Dockerize your Sitecore module
How to Dockerize your Sitecore moduleHow to Dockerize your Sitecore module
How to Dockerize your Sitecore module
 
Pp docker-swarm-doxlon-28th-march-2017
Pp docker-swarm-doxlon-28th-march-2017Pp docker-swarm-doxlon-28th-march-2017
Pp docker-swarm-doxlon-28th-march-2017
 
Building a production-ready, fully-scalable Docker Swarm using Terraform & Pa...
Building a production-ready, fully-scalable Docker Swarm using Terraform & Pa...Building a production-ready, fully-scalable Docker Swarm using Terraform & Pa...
Building a production-ready, fully-scalable Docker Swarm using Terraform & Pa...
 
DCEU 18: Developing with Docker Containers
DCEU 18: Developing with Docker ContainersDCEU 18: Developing with Docker Containers
DCEU 18: Developing with Docker Containers
 
Code and Deploy Angular to the Cloud
Code and Deploy Angular to the CloudCode and Deploy Angular to the Cloud
Code and Deploy Angular to the Cloud
 
The Big Cloud native FaaS Lebowski
The Big Cloud native FaaS LebowskiThe Big Cloud native FaaS Lebowski
The Big Cloud native FaaS Lebowski
 
Cicd.pdf
Cicd.pdfCicd.pdf
Cicd.pdf
 
CCCEU15 run cloudstack in docker
CCCEU15 run cloudstack in dockerCCCEU15 run cloudstack in docker
CCCEU15 run cloudstack in docker
 

Plus de 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
 
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
 
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 SheetsAkamai Developers & Admins
 
Integrating All Akamai Media Client Solutions with AMP
Integrating All Akamai Media Client Solutions with AMPIntegrating All Akamai Media Client Solutions with AMP
Integrating All Akamai Media Client Solutions with AMPAkamai Developers & Admins
 
Cloud Delivery: The Path from Simple to Sophisticated
Cloud Delivery: The Path from Simple to SophisticatedCloud Delivery: The Path from Simple to Sophisticated
Cloud Delivery: The Path from Simple to SophisticatedAkamai Developers & Admins
 
Making Virtual Reality Real: 4K VR/AR Encoding and Global Delivery
Making Virtual Reality Real: 4K VR/AR Encoding and Global DeliveryMaking Virtual Reality Real: 4K VR/AR Encoding and Global Delivery
Making Virtual Reality Real: 4K VR/AR Encoding and Global DeliveryAkamai Developers & Admins
 
Tracking the Performance of the Web Over Time with the HTTP Archive
Tracking the Performance of the Web Over Time with the HTTP ArchiveTracking the Performance of the Web Over Time with the HTTP Archive
Tracking the Performance of the Web Over Time with the HTTP ArchiveAkamai Developers & Admins
 
Luna and Third Party Tools for Troubleshooting Web Application Issues
Luna and Third Party Tools for Troubleshooting Web Application IssuesLuna and Third Party Tools for Troubleshooting Web Application Issues
Luna and Third Party Tools for Troubleshooting Web Application IssuesAkamai Developers & Admins
 

Plus de Akamai Developers & Admins (20)

Mitigate Security Threats with SIEM
Mitigate Security Threats with SIEMMitigate Security Threats with SIEM
Mitigate Security Threats with SIEM
 
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
 
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
 
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
 
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
 
Integrating All Akamai Media Client Solutions with AMP
Integrating All Akamai Media Client Solutions with AMPIntegrating All Akamai Media Client Solutions with AMP
Integrating All Akamai Media Client Solutions with AMP
 
Cloud Delivery: The Path from Simple to Sophisticated
Cloud Delivery: The Path from Simple to SophisticatedCloud Delivery: The Path from Simple to Sophisticated
Cloud Delivery: The Path from Simple to Sophisticated
 
Making Virtual Reality Real: 4K VR/AR Encoding and Global Delivery
Making Virtual Reality Real: 4K VR/AR Encoding and Global DeliveryMaking Virtual Reality Real: 4K VR/AR Encoding and Global Delivery
Making Virtual Reality Real: 4K VR/AR Encoding and Global Delivery
 
The Road to Ultra Low Latency
The Road to Ultra Low LatencyThe Road to Ultra Low Latency
The Road to Ultra Low Latency
 
Tracking the Performance of the Web Over Time with the HTTP Archive
Tracking the Performance of the Web Over Time with the HTTP ArchiveTracking the Performance of the Web Over Time with the HTTP Archive
Tracking the Performance of the Web Over Time with the HTTP Archive
 
Luna and Third Party Tools for Troubleshooting Web Application Issues
Luna and Third Party Tools for Troubleshooting Web Application IssuesLuna and Third Party Tools for Troubleshooting Web Application Issues
Luna and Third Party Tools for Troubleshooting Web Application Issues
 

Dernier

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 

Dernier (20)

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
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
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 

Set up a Development Environment in 5 Minutes

  • 1. © 2020 Akamai1 Set Up a Development Environment in 5 Minutes A step by step guide to setting up a development environment with Akamai Docker
  • 3. © 2020 Akamai3 Introduction Agenda 1 Akamai Development Environment Best Practices 2 Demos3 Interactive Quiz4 Q&A5
  • 4. © 2020 Akamai4 Speakers Javier Garza Sr. Developer Advocate Lukasz Czerpak Sr. Enterprise Architect Anthony Hogg Sr. Enterprise Architect
  • 6. © 2020 Akamai6 Akamai at a glance A global platform 137 countries 1,700 networks 3,900 locations 260,000 servers Generating insights 100 million IP addresses/day 1.3 billion device interactions/day 7.5 petabytes processed/day Accelerating daily traffic of 40 million hits/second 2+ trillion deliveries/day 50+ Terabits/second with 160+ Tbps Peaks Supported by 7,000+ employees 60+ global offices 8 global 24/7 operations centers Data Source: Akamai Intelligent Edge Platform. January 2020.
  • 7. © 2020 Akamai7 Setting up an Akamai Developer Environment Concepts Continuous Integration Automate build and test activities anytime a user makes a code change Continuous Delivery Automate build, test, and release activities anytime a user makes a code change Continuous Deployment Automate build, test, release, and deploy activities anytime a user makes a code changeCONTINUOUS ANYTHING = AUTOMATION
  • 9. © 2020 Akamai9 Why Docker? $ time docker run --rm -it -v $HOME/.edgerc:/root/.edgerc:ro --name akamai akamai/akamai-docker akamai --version akamai version 1.1.5 docker run --rm -it -v $HOME/.edgerc:/root/.edgerc:ro --name akamai akamai 0.04s user 0.02s system 3% cpu 1.464 total $ Alpine Node.js akamai Python 2 vim Python 3 HTTPie go curl pip tree jdk8 nano jq bash terraform openssl wget git libffi dep npm docker CONTAINER
  • 11. © 2020 Akamai11 ● Explained Goal ● Agreed on: ○ Scope ○ who does what ○ how to communicate ○ what technologies to use (GitHub, Docker Hub) ○ Timelines ○ Next steps ● Assigned action items for next steps ● Integrated TravisCI (monthly build) ● Added: ○ .travis.yml ○ Automation scripts ○ Slack Build notifications ● Discussed Next Steps (image variants) ● Pushed first image to Docker Hub ● Started with an existing file ● Collaborated to add: ○ Owner info ○ .gitignore ○ Copyright & License ○ Readme ● Enabled Auto-Deploy to Docker Hub ● Assigned action items for next steps DevOps, Agile and Lean Methodologies 3 people, 3 countries, 3 working sessions April 15April 9 April 17 AutomationDockerfileInitial Meeting
  • 12. © 2020 Akamai12 Continuous Deployment Workflow Dockerfile .travis.yml akamai/akamai-docker Build #12 of akamai/akamai-docker@master passed in 12 mins.
  • 17. © 2020 Akamai17 Docker Image Size Optimizations FROM alpine:3.11 as base FROM base as builder ARG AKAMAI_CLI_HOME=/cli ENV AKAMAI_CLI_HOME=$AKAMAI_CLI_HOME GOROOT=/usr/lib/go GOPATH=/go GO111MODULE=auto PATH=$PATH:$GOBIN RUN mkdir -p $AKAMAI_CLI_HOME/.akamai-cli RUN apk add --no-cache docker git bash python2 python2-dev py2-pip python3 python3-dev npm wget jq openssl openssl-dev curl nodejs build-base libffi libffi-dev vim nano util-linux go dep tree bind-tools RUN go get -d github.com/akamai/cli && cd $GOPATH/src/github.com/akamai/cli && go mod init && go mod tidy && go build -o /usr/local/bin/akamai RUN pip install --upgrade pip && pip3 install --upgrade pip RUN curl -s https://developer.akamai.com/cli/package-list.json -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:42.0) Gecko/20100101 Firefox/42.0" | jq '.packages[].name' | sed s/"//g | xargs akamai install --force RUN go get github.com/spf13/cast && akamai install cli-api-gateway # https://github.com/akamai/cli-sandbox/issues/24 RUN akamai install sandbox && cd $AKAMAI_CLI_HOME/.akamai-cli/src/cli-sandbox/ && npm run build RUN cd $AKAMAI_CLI_HOME/.akamai-cli/src/cli-edgeworkers/ && npm run build WORKDIR /wheels RUN pip install wheel RUN pip wheel httpie httpie-edgegrid cffi FROM base ARG AKAMAI_CLI_HOME=/cli
  • 18. © 2020 Akamai18 Docker Image Variants ##################### # BUILD ARGS ######### ARG BASE=akamai/base ##################### # BUILDER ######### FROM node:alpine as builder RUN apk add --no-cache git npm # install cli-property from git # (akamai install does not add the --production flag, which increases # the footprint of the package since devDependencies are installed) && git clone --depth 1 https://github.com/akamai/cli-property.git && cd cli-property && npm install --production ##################### # FINAL ######### FROM $BASE RUN apk add --no-cache nodejs && mkdir -p /cli/.akamai-cli/src COPY --from=builder /cli-property /cli/.akamai-cli/src/cli-property ENTRYPOINT ["/cli/.akamai-cli/src/cli-property/bin/akamaiProperty"] ... SHELL 360MB APPSEC 51 MB ADAPTIVE ACCELERATION 40 MB BASE 5 MB PROPERTY 66 MB ...
  • 20. © 2020 Akamai20 Demos 1. Setting up the Development Environment 2. Web Operations 3. Media publishing 4. Security 5. DevOps
  • 21. © 2020 Akamai21 Setting up the Akamai Development Environment ● Provision API Access ● Install Docker Desktop ● Install Akamai Development Environment Demo $ docker run -it -v $HOME/.edgerc:/root/.edgerc:ro --name akamai akamai/akamai-docker Unable to find image 'akamai/akamai-docker:latest' locally latest: Pulling from akamai/akamai-docker cbdbe7a5bc2a: Pull complete 61bc2d5ce3bb: Pull complete 9c0484786baa: Pull complete 3f382dfdc1a6: Pull complete 4198704f8a89: Pull complete accf7413945d: Pull complete ee5d7f0cd1d3: Pull complete 8a416004e68b: Pull complete 3b4b5269d525: Pull complete b7a187f231b9: Pull complete ffc2604dc2ba: Pull complete 5b7a8ab46262: Pull complete d329d6aeb9f5: Pull complete f280ab158c66: Pull complete 56c836b880f2: Pull complete c0f7981b2f07: Pull complete Digest: sha256:c0ac240cf88f06337902dd13cb1e542af0321392c283f96fdc32c41578970eb7 Status: Downloaded newer image for akamai/akamai-docker:latest ___ __ _ / | / /______ _____ ___ ____ _(_) / /| | / //_/ __ `/ __ `__ / __ `/ / / ___ |/ ,< / /_/ / / / / / / /_/ / / /_/ |_/_/|_|__,_/_/ /_/ /_/__,_/_/ =============================================================== = Welcome to the Akamai Docker Image = =============================================================== = Project page: = = https://github.com/akamai/akamai-docker = =============================================================== Akamai DevOps [~] >>
  • 22. © 2020 Akamai22 Purging Content ● Understand Content Invalidation ● Purge Content ● Verify purge worked Demo $ docker run --rm -it --name akamai akamai/akamai-docker ___ __ _ / | / /______ _____ ___ ____ _(_) / /| | / //_/ __ `/ __ `__ / __ `/ / / ___ |/ ,< / /_/ / / / / / / /_/ / / /_/ |_/_/|_|__,_/_/ /_/ /_/__,_/_/ =============================================================== = Welcome to the Akamai Docker Image = =============================================================== = Project page: = = https://github.com/akamai/akamai-docker = =============================================================== Akamai DevOps [~] >> akamai purge invalidate --tag product --staging Purging...... [OK] Purged 2 objects (ETA: 5 seconds) Purge ID: b60b3da4-94ce-11ea-bb0d-fb1c0dd275d3 Akamai DevOps [~] >>
  • 23. © 2020 Akamai23 { "name": "GEO-protection-NL", "children": [], "behaviors": [ { "name": "denyAccess", "options": { "reason": "not-NL", "enabled": true } } ], "criteria": [ { "name": "path", "options": { "matchOperator": "MATCHES_ONE_OF", "values": [ "/videos/nl/*" ], "matchCaseSensitive": false } }, { "name": "userLocation", "options": { "field": "COUNTRY", "matchOperator": "IS_NOT_ONE_OF", "countryValues": [ "NL" ], "checkIps": "BOTH", "useOnlyFirstXForwardedForIp": false } } ], "criteriaMustSatisfy": "all" } Protect Media Assets ● Download property rules ● Add new functionality ● Activate new version ● Verify functionality Demo
  • 24. © 2020 Akamai24 Protecting against SQL Injection attacks ● Execute SQL Injection attack ● Update and activate security configuration ● Verify attack is deflected Demo
  • 25. © 2020 Akamai25 Akamai-as-code ● Review code in source-control ● Test new code in local sandbox ● Use Jenkins pipeline to build, test and deploy code to the Akamai staging network Demo
  • 26. © 2020 Akamai26 Let’s Recap Webinar Resources Summary Collaborate with us github.com/akamai/akamai-docker
  • 27. © 2020 Akamai27 Useful Links ● developer.akamai.com ● github.com/akamai/akamai-docker ● docker.com/get-started ● hub.docker.com/r/akamai/akamai-docker ● youtube.com/akamaideveloper ● https://developer.akamai.com/development-environment-webinar