SlideShare a Scribd company logo
How to seamlessly incorporate CDN
into your application stack
https://flic.kr/p/7F4bHa
Jakub Wądołowski
Principal Systems Engineer at Cognifide
@jwadolowski
• The What
• The Why
• The How
Agenda
What we’re dealing with…
https://flic.kr/p/eE48CR
• Online clothing retailer
• Migration from existing system to the new one
• Mix of AWS and on-premise infrastructure
• Integrations with 3rd-party services
• HTTP routing at different levels
Platform overview (1/2)
• Geographically distributed userbase (EU, US, AU)
• 14 content domains
• CDN is an integral part of the stack
Platform overview (2/2)
How to seamlessly incorporate CDN into your application stack
Content Delivery… what?
https://flic.kr/p/pnEAvJ
• Large distributed system of servers deployed in multiple
data centers across the Internet
• Serve content to end-users with high availability and high
performance
• caching (and invalidation!)
• HTTP routing and rewriting
• traffic filtering (WAF)
• authentication
• …
CDN responsibilities
CDN provider
• Powered by Varnish
• Highly customizable (VCL)
• Pay-as-you-go model
• Quality over quantity
Fastly overview
Fastly customers
How to seamlessly incorporate CDN into your application stack
How to seamlessly incorporate CDN into your application stack
• Terraform is just a half of the story
• Domain-agnostic VCL configuration is stored elsewhere
• Multiple environments
• Fine-grained control what goes deployed where
Is that it?
• Terraform repo
Git repository layout
Logical environment
AWS infrastructure
CDN config
Domain/service specific VCLs
• Terraform repo
• Fastly config repo (default.vcl)
Git repository layout
How to seamlessly incorporate CDN into your application stack
• Terraform repo
• Fastly config repo (default.vcl)
• Jenkins pipeline repo(s)
Git repository layout
Pipelines
Configurations

(YAML)
Library

(custom steps)
Jenkinsfile
cfg.yaml
Custom steps
Custom steps
• Terraform repo
• Fastly config repo (default.vcl)
• Jenkins pipeline repo(s)
• Web server config repo
Git repository layout
How to seamlessly incorporate CDN into your application stack
Let’s put all these things together
https://flic.kr/p/qm4gV8
• Clone Terraform and config repositories
• Map CDN config version to Fastly service
• Transfer VCL to Terraform repo
• Initialize Terraform
• Push CDN changes using Terraform
CDN deployment process
How to seamlessly incorporate CDN into your application stack
• The entire config stored in Git repository
• Configuration contains caching and invalidation rules
• Chef fetches Git repo and adjusts it
Web server deployments
How to seamlessly incorporate CDN into your application stack
Demo!
https://flic.kr/p/gq5UAU
How to seamlessly incorporate CDN into your application stack

More Related Content

PPTX
Présentation cloud services
PDF
Microsoft exchange
PDF
Reliable dedicated server hosting provider
PDF
MongoDB Security Features
PPT
ppt presentation
PPTX
Single page application
PDF
Single page application
PDF
OpenCms Days 2015 OCEE explained
Présentation cloud services
Microsoft exchange
Reliable dedicated server hosting provider
MongoDB Security Features
ppt presentation
Single page application
Single page application
OpenCms Days 2015 OCEE explained

What's hot (20)

PPTX
World Wide Web
PPTX
An overview of BizTalk
PPTX
Node Session - 3
PPTX
Getting Started with Orchestrator and Service Manager
PDF
V mbuddies coordinating live migration of multi tier applications in cloud en...
PDF
Microservices in Go with Go kit
PPTX
Web Forms, or How I Learned to Stop Worrying and Love Web Services
PDF
SCORCH: Tying it All Together
PPTX
High Level Overview of Windows Azure - EPC Group
PPTX
Learn REST API at ASIT
PDF
ColdFusion in Transit action
PPTX
Web server architecture
PPTX
10 ways to trigger runbooks from Orchestrator
PPTX
web programming
PPTX
Koha ILMS
PDF
Creating Content Together - Plone Integration with SMASHDOCs
PPTX
Kubernetes 101
PPTX
eGrove Systems - "SOLR" An Apache Product
PDF
Rubedo roadmap (En)
PDF
Gwt cdi jaxrs_hbraun
World Wide Web
An overview of BizTalk
Node Session - 3
Getting Started with Orchestrator and Service Manager
V mbuddies coordinating live migration of multi tier applications in cloud en...
Microservices in Go with Go kit
Web Forms, or How I Learned to Stop Worrying and Love Web Services
SCORCH: Tying it All Together
High Level Overview of Windows Azure - EPC Group
Learn REST API at ASIT
ColdFusion in Transit action
Web server architecture
10 ways to trigger runbooks from Orchestrator
web programming
Koha ILMS
Creating Content Together - Plone Integration with SMASHDOCs
Kubernetes 101
eGrove Systems - "SOLR" An Apache Product
Rubedo roadmap (En)
Gwt cdi jaxrs_hbraun
Ad

Similar to How to seamlessly incorporate CDN into your application stack (20)

PDF
MNAssociationEnterpriseArchitectsCloudFoundryJuly2017
ODP
Microservices
PDF
Building high performance microservices in finance with Apache Thrift
PPTX
Azure Web App services
PDF
Structure and Opinions - Software Deployments with Cloud Foundry
PPT
WEB-DBMS A quick reference
PPTX
NBU Flex Container Hardware Overview Presentation
PPTX
FICO Open Shift presentation
PDF
The Web, After HTML5
PDF
VMworld 2013: How To Build Your Hybrid Cloud and Consume the Public Cloud
PDF
Maintaining an up to date application stack (in a containerized world)
PPTX
The Right Kind of API – How To Choose Appropriate API Protocols and Data Form...
PDF
Red Hat OpenShift Container Platform Overview
PPTX
Kubernetes Ingress to Service Mesh (and beyond!)
PDF
Varnish extend introduction
PDF
Upgrade your InfoSec, Ops and Dev teams with PCF 1.12
PDF
IoT Physical Servers and Cloud Offerings.pdf
PPT
introduction to Web system
PDF
[AWS에서의 미디어 및 엔터테인먼트] 클라우드에서의 브로드캐스팅 서비스
PPTX
Designing Microservices
MNAssociationEnterpriseArchitectsCloudFoundryJuly2017
Microservices
Building high performance microservices in finance with Apache Thrift
Azure Web App services
Structure and Opinions - Software Deployments with Cloud Foundry
WEB-DBMS A quick reference
NBU Flex Container Hardware Overview Presentation
FICO Open Shift presentation
The Web, After HTML5
VMworld 2013: How To Build Your Hybrid Cloud and Consume the Public Cloud
Maintaining an up to date application stack (in a containerized world)
The Right Kind of API – How To Choose Appropriate API Protocols and Data Form...
Red Hat OpenShift Container Platform Overview
Kubernetes Ingress to Service Mesh (and beyond!)
Varnish extend introduction
Upgrade your InfoSec, Ops and Dev teams with PCF 1.12
IoT Physical Servers and Cloud Offerings.pdf
introduction to Web system
[AWS에서의 미디어 및 엔터테인먼트] 클라우드에서의 브로드캐스팅 서비스
Designing Microservices
Ad

More from Jakub Wadolowski (14)

PDF
Don’t reduce dispatcher testing to an afterthought
PDF
Automated CI with AEM Cloud service
PDF
The curious case of misrendered JSON
PDF
The shift to the edge
PDF
Image optimization at the edge
PDF
The shift to the edge
PDF
Taming content delivery at scale
PDF
Into the nooks and crannies of Boden’s digital transformation
PDF
The underappreciated power of content invalidation
PDF
Taming AEM deployments
PDF
(Re)discover your AEM
PDF
How to stay sane during your Vagrant journey
PDF
When dispatcher caching is not enough... (extended version)
PPTX
When dispatcher caching is not enough...
Don’t reduce dispatcher testing to an afterthought
Automated CI with AEM Cloud service
The curious case of misrendered JSON
The shift to the edge
Image optimization at the edge
The shift to the edge
Taming content delivery at scale
Into the nooks and crannies of Boden’s digital transformation
The underappreciated power of content invalidation
Taming AEM deployments
(Re)discover your AEM
How to stay sane during your Vagrant journey
When dispatcher caching is not enough... (extended version)
When dispatcher caching is not enough...

Recently uploaded (20)

PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PPT
What is a Computer? Input Devices /output devices
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
WOOl fibre morphology and structure.pdf for textiles
PDF
Architecture types and enterprise applications.pdf
PDF
STKI Israel Market Study 2025 version august
PPTX
Chapter 5: Probability Theory and Statistics
PDF
Web App vs Mobile App What Should You Build First.pdf
PPTX
observCloud-Native Containerability and monitoring.pptx
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PDF
August Patch Tuesday
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
Hindi spoken digit analysis for native and non-native speakers
PPT
Module 1.ppt Iot fundamentals and Architecture
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PDF
Getting started with AI Agents and Multi-Agent Systems
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
2021 HotChips TSMC Packaging Technologies for Chiplets and 3D_0819 publish_pu...
PPTX
OMC Textile Division Presentation 2021.pptx
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
What is a Computer? Input Devices /output devices
Group 1 Presentation -Planning and Decision Making .pptx
Programs and apps: productivity, graphics, security and other tools
WOOl fibre morphology and structure.pdf for textiles
Architecture types and enterprise applications.pdf
STKI Israel Market Study 2025 version august
Chapter 5: Probability Theory and Statistics
Web App vs Mobile App What Should You Build First.pdf
observCloud-Native Containerability and monitoring.pptx
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
August Patch Tuesday
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
Hindi spoken digit analysis for native and non-native speakers
Module 1.ppt Iot fundamentals and Architecture
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
Getting started with AI Agents and Multi-Agent Systems
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
2021 HotChips TSMC Packaging Technologies for Chiplets and 3D_0819 publish_pu...
OMC Textile Division Presentation 2021.pptx

How to seamlessly incorporate CDN into your application stack