SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
AETN Digital Media | Confidential and Proprietary
TEMPLATE ABSTRACTION AND
AUTOMATED DEPLOYMENTS TO FASTLY
A Practical Walkthrough on Real Life Experiences
AETN Digital Media | Confidential and Proprietary
Then ☹
Manual UI Based Implementation
AETN Digital Media | Confidential and Proprietary
30m-1hr x Envs
Manual Process Back Then
• Caching
• Shielding
• Geographical
• Device Detection
• Backends
• Redirects
• Proxies
• Authorization
www.aetv.com
• Caching
• Shielding
• Geographical
• Device Detection
• Backends
• Redirects
• Proxies
• Authorization
www.mylifetime.com
• Caching
• Shielding
• Geographical
• Device Detection
• Backends
• Redirects
• Proxies
• Authorization
www.fyi.tv
• Caching
• Shielding
• Geographical
• Device Detection
• Backends
• Redirects
• Proxies
• Authorization
www.history.com
AETN Digital Media | Confidential and Proprietary
And then we have more sites!
30m-1hr x Env
30m-1hr x Env
30m-1hr x Env
AETN Digital Media | Confidential and Proprietary
Even more URLS added
30m-1hr x Env
30m-1hr x Env
30m-1hr x Env
30m-1hr x Env
30m-1hr x Env
30m-1hr x Env
AETN Digital Media | Confidential and Proprietary
Digging into Legacy Code!
AETN Digital Media | Confidential and Proprietary
Manual Process Back Then!
AETN Digital Media | Confidential and Proprietary
Update (100)
URLS
3 environments
Weeks of
work=
Manual Process Back Then!
AETN Digital Media | Confidential and Proprietary
DevOps Principals
• Collaboration
• Test everything
• Treat Infrastructure as code
• Breakdown the barriers
• Automate everything
• Measure & monitor everything
• Support business and IT agility
• Work as one team end to end
AETN Digital Media | Confidential and Proprietary
And Now ☺
Continuous
Integration
Fastly VCL
Templates APIs
Automated
Testing
EQUALS Awesome!
AETN Digital Media | Confidential and Proprietary
Continuous Integration
Selenium
Automated Process
CI Tool
AETN Digital Media | Confidential and Proprietary
GLOBALFASTLY BOILER PLATE
Sub vcl_recv
Sub vcl_fetch
Sub vcl_hit
Sub vcl_miss
Sub vcl_deliver
Sub vcl_error
Sub vcl_pass
SERVICES
Application URLS
Main.vcl
Backends.vcl
custom.vcl
default.vcl
Fastly Boiler Plate
Sub vcl_recv
call aetn_recv_shield
call aetn_recv_geo
call aetn_recv_cache
aetn.vcl
Template Abstraction
call aetn_recv_device
sub aetn_recv_shield
sub aetn_recv_geo
sub aetn_recv_cache
sub aetn_recv_device
AETN Digital Media | Confidential and Proprietary
Environment Agnostic Implementation
• Separate Service for each Env: {env}-abc.com
• Abstract Env Specific Backends in separate VCLs: {env}-backends.vcl
Backend dev_abc_com {
.first_byte_timeout = 3s;
.connect_timeout = 1s;
.dynamic = true;
.max_connections = 200;
.between_bytes_timeout = 3s;
.share_key = ”COMMONBACKEND";
.port = "443";
.host = ”dev.abc.com";
.probe = {
.url = "/aetn-heartbeat.html";
.interval = 30s;
.timeout = 3s;
.window = 5;
.threshold = 2;
}
}
• Use GITFlow guidelines
• CI Tool reads the config file to deploy to correct env
"environments" : {
"dev" : {
"ref" : "refs/heads",
"servers" : [
{
"id" : ”ABC567defgzThQ"
}
]
},
AETN Digital Media | Confidential and Proprietary
CIDataFlowforManagingEnvAgnostic
CI ToolGitHUB
Config File
(Env to Service Mapping)
Process
qa-backend.vcl
Process
dev-backend.vcl
Process all common files
Process
prod-backend.vcl
Event Payload
Notification to
CI Tool
Process Payload
and identify Event Type
Identify
ENV and
Service ID
QA
FASTLY
Deploy Files and Activate
DEV PROD
Commit VCL
AETN Digital Media | Confidential and Proprietary
DeploymentWorkFlowUsingFastlyAPI
List of Files Modified
Service/
Common
Retrieve the list of Services
Parse the list of services
Retrieve the service and
common files
Fastly Dev Version
(/service/search?name)
Clone New Version
(/service/service_id/version/number/clone)
Deploy Files
(/service/service_id/version/version/vcl/{main})
Activate
(/service/service_id/version/number/activate)
Create Dev Version
(/service/service_id/version/number/clone)
GITHUB
Deployment
Object
Common
Service
No
Yes
AETN Digital Media | Confidential and Proprietary
Update (100)
URLS
3 environments
Weeks of
work=
Automated Process Now!
From
To
Update (100)
URLS
3 environments a few Minutes
=
To
AETN Digital Media | Confidential and Proprietary
Workflow in Action
Update TTL for all sites
AETN Digital Media | Confidential and Proprietary
• Create a feature branch
• GIT Clone Repo
$ git clone https://USERNAME:TOKEN_OR_PASSWORD@github.com/aenetworks/
REPO_NAME.git fastly
Cloning into 'fastly'...
remote: Counting objects: 11441, done.
remote: Compressing objects: 100% (127/127), done.
remote: Total 11441 (delta 71), reused 0 (delta 0), pack-reused 11313
Receiving objects: 100% (11441/11441), 1.67 MiB | 1.17 MiB/s, done.
Resolving deltas: 100% (7939/7939), done.
Checking connectivity... done.
=================================================================================
====================================
WorkflowinAction
$ git checkout -b sd-increase-ttl
Switched to a new branch 'sd-increase-ttl'
=================================================================================
=====================================
if ((beresp.status == 200) && req.url ~ ".(aif|aiff|au|avi|bin|bmp|cab|carb|cct|
cdf|class|css|doc|dcr|dtd|eot|exe|flv|gcf|gff|gif|grv|html|hqx|ico|ini|jpeg|jpg|
js|json|mov|mp3|nc|otf|pct|png|ppc|pws|svg|swa|swf|ttf|txt|vbs|w32|wav|wbmp|wml|
wmlc|wmls|wmlsc|xsd|zip|webp|jxr|hdp|wdp)($|?)" ) {
set beresp.ttl = 36h;
}
=================================================================================
========================================
AETN Digital Media | Confidential and Proprietary
WorkflowinAction
if ((beresp.status == 200) && req.url ~ ".(aif|aiff|au|avi|bin|bmp|cab|carb|cct|
cdf|class|css|doc|dcr|dtd|eot|exe|flv|gcf|gff|gif|grv|html|hqx|ico|ini|jpeg|jpg|
js|json|mov|mp3|nc|otf|pct|png|ppc|pws|svg|swa|swf|ttf|txt|vbs|w32|wav|wbmp|wml|
wmlc|wmls|wmlsc|xsd|zip|webp|jxr|hdp|wdp)($|?)" ) {
set beresp.ttl = 36h;
}
• Modify TTL in any editor
• Dev:
• GIT Commit and Push to Feature Branch
$ git commit -m "Increased the TTL" -a
[sd-increase-ttl f5d4bff] Increased the TTL
1 file changed, 1 insertion(+), 1 deletion(-)
$ git push origin sd-increase-ttl
Counting objects: 6, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 716 bytes | 0 bytes/s, done.
Total 6 (delta 2), reused 0 (delta 0)
To https://USERNAME:TOKEN_OR_PASSWORD@github.com/aenetworks/REPO_NAME.git
* [new branch] sd-increase-ttl -> sd-increase-ttl
wrap
Today at 4:16 PM • 2KB Plain Text snippet • Private snippet shared with you
shift+enter to add a new line
• QA and Prod
• Follow GIT Flow to Create Pull request and release to appropriate Env
AETN Digital Media | Confidential and Proprietary
Thanks!

Más contenido relacionado

La actualidad más candente

Stupid Boot Tricks: using ipxe and chef to get to boot management bliss
Stupid Boot Tricks: using ipxe and chef to get to boot management blissStupid Boot Tricks: using ipxe and chef to get to boot management bliss
Stupid Boot Tricks: using ipxe and chef to get to boot management blissmacslide
 
Altitude NY 2018: Programming the edge workshop
Altitude NY 2018: Programming the edge workshopAltitude NY 2018: Programming the edge workshop
Altitude NY 2018: Programming the edge workshopFastly
 
Securing Prometheus exporters using HashiCorp Vault
Securing Prometheus exporters using HashiCorp VaultSecuring Prometheus exporters using HashiCorp Vault
Securing Prometheus exporters using HashiCorp VaultBram Vogelaar
 
Altitude NY 2018: Leveraging Log Streaming to Build the Best Dashboards, Ever
Altitude NY 2018: Leveraging Log Streaming to Build the Best Dashboards, EverAltitude NY 2018: Leveraging Log Streaming to Build the Best Dashboards, Ever
Altitude NY 2018: Leveraging Log Streaming to Build the Best Dashboards, EverFastly
 
Autoscaling with hashi_corp_nomad
Autoscaling with hashi_corp_nomadAutoscaling with hashi_corp_nomad
Autoscaling with hashi_corp_nomadBram Vogelaar
 
Ruby HTTP clients comparison
Ruby HTTP clients comparisonRuby HTTP clients comparison
Ruby HTTP clients comparisonHiroshi Nakamura
 
Gruntwork Executive Summary
Gruntwork Executive SummaryGruntwork Executive Summary
Gruntwork Executive SummaryYevgeniy Brikman
 
Testing your infrastructure with litmus
Testing your infrastructure with litmusTesting your infrastructure with litmus
Testing your infrastructure with litmusBram Vogelaar
 
Static Typing in Vault
Static Typing in VaultStatic Typing in Vault
Static Typing in VaultGlynnForrest
 
Bootstrapping multidc observability stack
Bootstrapping multidc observability stackBootstrapping multidc observability stack
Bootstrapping multidc observability stackBram Vogelaar
 
bootstrapping containers with confd
bootstrapping containers with confdbootstrapping containers with confd
bootstrapping containers with confdm_richardson
 
Observability with Consul Connect
Observability with Consul ConnectObservability with Consul Connect
Observability with Consul ConnectBram Vogelaar
 
Altitude NY 2018: 132 websites, 1 service: Your local news runs on Fastly
Altitude NY 2018: 132 websites, 1 service: Your local news runs on FastlyAltitude NY 2018: 132 websites, 1 service: Your local news runs on Fastly
Altitude NY 2018: 132 websites, 1 service: Your local news runs on FastlyFastly
 
Creating Reusable Puppet Profiles
Creating Reusable Puppet ProfilesCreating Reusable Puppet Profiles
Creating Reusable Puppet ProfilesBram Vogelaar
 
Composable and streamable Play apps
Composable and streamable Play appsComposable and streamable Play apps
Composable and streamable Play appsYevgeniy Brikman
 
Integrating icinga2 and the HashiCorp suite
Integrating icinga2 and the HashiCorp suiteIntegrating icinga2 and the HashiCorp suite
Integrating icinga2 and the HashiCorp suiteBram Vogelaar
 
A complete guide to Node.js
A complete guide to Node.jsA complete guide to Node.js
A complete guide to Node.jsPrabin Silwal
 
WebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! FrameworkWebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! FrameworkFabio Tiriticco
 

La actualidad más candente (20)

Stupid Boot Tricks: using ipxe and chef to get to boot management bliss
Stupid Boot Tricks: using ipxe and chef to get to boot management blissStupid Boot Tricks: using ipxe and chef to get to boot management bliss
Stupid Boot Tricks: using ipxe and chef to get to boot management bliss
 
Altitude NY 2018: Programming the edge workshop
Altitude NY 2018: Programming the edge workshopAltitude NY 2018: Programming the edge workshop
Altitude NY 2018: Programming the edge workshop
 
Securing Prometheus exporters using HashiCorp Vault
Securing Prometheus exporters using HashiCorp VaultSecuring Prometheus exporters using HashiCorp Vault
Securing Prometheus exporters using HashiCorp Vault
 
Altitude NY 2018: Leveraging Log Streaming to Build the Best Dashboards, Ever
Altitude NY 2018: Leveraging Log Streaming to Build the Best Dashboards, EverAltitude NY 2018: Leveraging Log Streaming to Build the Best Dashboards, Ever
Altitude NY 2018: Leveraging Log Streaming to Build the Best Dashboards, Ever
 
Autoscaling with hashi_corp_nomad
Autoscaling with hashi_corp_nomadAutoscaling with hashi_corp_nomad
Autoscaling with hashi_corp_nomad
 
Ruby HTTP clients comparison
Ruby HTTP clients comparisonRuby HTTP clients comparison
Ruby HTTP clients comparison
 
Gruntwork Executive Summary
Gruntwork Executive SummaryGruntwork Executive Summary
Gruntwork Executive Summary
 
Testing your infrastructure with litmus
Testing your infrastructure with litmusTesting your infrastructure with litmus
Testing your infrastructure with litmus
 
Static Typing in Vault
Static Typing in VaultStatic Typing in Vault
Static Typing in Vault
 
About Node.js
About Node.jsAbout Node.js
About Node.js
 
Bootstrapping multidc observability stack
Bootstrapping multidc observability stackBootstrapping multidc observability stack
Bootstrapping multidc observability stack
 
bootstrapping containers with confd
bootstrapping containers with confdbootstrapping containers with confd
bootstrapping containers with confd
 
Observability with Consul Connect
Observability with Consul ConnectObservability with Consul Connect
Observability with Consul Connect
 
Node.js cluster
Node.js clusterNode.js cluster
Node.js cluster
 
Altitude NY 2018: 132 websites, 1 service: Your local news runs on Fastly
Altitude NY 2018: 132 websites, 1 service: Your local news runs on FastlyAltitude NY 2018: 132 websites, 1 service: Your local news runs on Fastly
Altitude NY 2018: 132 websites, 1 service: Your local news runs on Fastly
 
Creating Reusable Puppet Profiles
Creating Reusable Puppet ProfilesCreating Reusable Puppet Profiles
Creating Reusable Puppet Profiles
 
Composable and streamable Play apps
Composable and streamable Play appsComposable and streamable Play apps
Composable and streamable Play apps
 
Integrating icinga2 and the HashiCorp suite
Integrating icinga2 and the HashiCorp suiteIntegrating icinga2 and the HashiCorp suite
Integrating icinga2 and the HashiCorp suite
 
A complete guide to Node.js
A complete guide to Node.jsA complete guide to Node.js
A complete guide to Node.js
 
WebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! FrameworkWebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! Framework
 

Destacado

Design Patterns on Service Abstraction
Design Patterns on Service Abstraction Design Patterns on Service Abstraction
Design Patterns on Service Abstraction Md. Shafiuzzaman Hira
 
Service design principles and patterns
Service design principles and patternsService design principles and patterns
Service design principles and patternsReturn on Intelligence
 
Making ops life easier
Making ops life easierMaking ops life easier
Making ops life easierFastly
 
Building Customer User Experiences from the Edge
Building Customer User Experiences from the EdgeBuilding Customer User Experiences from the Edge
Building Customer User Experiences from the EdgeFastly
 
Know your resolvers
Know your resolversKnow your resolvers
Know your resolversFastly
 
Next-gen API authentication
Next-gen API authenticationNext-gen API authentication
Next-gen API authenticationFastly
 
Addressing IPv6
Addressing IPv6Addressing IPv6
Addressing IPv6Fastly
 
The perfect support ticket
The perfect support ticketThe perfect support ticket
The perfect support ticketFastly
 
Progressive web apps
Progressive web appsProgressive web apps
Progressive web appsFastly
 
Services Oriented Infrastructure in a Web2.0 World
Services Oriented Infrastructure in a Web2.0 WorldServices Oriented Infrastructure in a Web2.0 World
Services Oriented Infrastructure in a Web2.0 WorldLexumo
 

Destacado (11)

Abstraction
AbstractionAbstraction
Abstraction
 
Design Patterns on Service Abstraction
Design Patterns on Service Abstraction Design Patterns on Service Abstraction
Design Patterns on Service Abstraction
 
Service design principles and patterns
Service design principles and patternsService design principles and patterns
Service design principles and patterns
 
Making ops life easier
Making ops life easierMaking ops life easier
Making ops life easier
 
Building Customer User Experiences from the Edge
Building Customer User Experiences from the EdgeBuilding Customer User Experiences from the Edge
Building Customer User Experiences from the Edge
 
Know your resolvers
Know your resolversKnow your resolvers
Know your resolvers
 
Next-gen API authentication
Next-gen API authenticationNext-gen API authentication
Next-gen API authentication
 
Addressing IPv6
Addressing IPv6Addressing IPv6
Addressing IPv6
 
The perfect support ticket
The perfect support ticketThe perfect support ticket
The perfect support ticket
 
Progressive web apps
Progressive web appsProgressive web apps
Progressive web apps
 
Services Oriented Infrastructure in a Web2.0 World
Services Oriented Infrastructure in a Web2.0 WorldServices Oriented Infrastructure in a Web2.0 World
Services Oriented Infrastructure in a Web2.0 World
 

Similar a VCL template abstraction model and automated deployments to Fastly

Cloud Native: Designing Change-tolerant Software
Cloud Native: Designing Change-tolerant SoftwareCloud Native: Designing Change-tolerant Software
Cloud Native: Designing Change-tolerant Softwarecornelia davis
 
Cloud Native Architectures for Devops
Cloud Native Architectures for DevopsCloud Native Architectures for Devops
Cloud Native Architectures for Devopscornelia davis
 
Cloud Native: Designing Change-tolerant Software
Cloud Native: Designing Change-tolerant SoftwareCloud Native: Designing Change-tolerant Software
Cloud Native: Designing Change-tolerant Softwarecornelia davis
 
Streaming Dataflow with Apache Flink
Streaming Dataflow with Apache Flink Streaming Dataflow with Apache Flink
Streaming Dataflow with Apache Flink huguk
 
AWS re:Invent 2016: Service Integration Delivery and Automation Using Amazon ...
AWS re:Invent 2016: Service Integration Delivery and Automation Using Amazon ...AWS re:Invent 2016: Service Integration Delivery and Automation Using Amazon ...
AWS re:Invent 2016: Service Integration Delivery and Automation Using Amazon ...Amazon Web Services
 
Developing Resilient Cloud Native Apps with Spring Cloud
Developing Resilient Cloud Native Apps with Spring CloudDeveloping Resilient Cloud Native Apps with Spring Cloud
Developing Resilient Cloud Native Apps with Spring CloudDustin Ruehle
 
Atmosphere Conference 2015: Taming the Modern Datacenter
Atmosphere Conference 2015: Taming the Modern DatacenterAtmosphere Conference 2015: Taming the Modern Datacenter
Atmosphere Conference 2015: Taming the Modern DatacenterPROIDEA
 
How do I run microservices in production using Docker.
How do I run microservices in production using Docker.How do I run microservices in production using Docker.
How do I run microservices in production using Docker.Daniël van Gils
 
Planning to Fail #phpne13
Planning to Fail #phpne13Planning to Fail #phpne13
Planning to Fail #phpne13Dave Gardner
 
On-the-fly Visual Category Search in Web-scale Image Collections
On-the-fly Visual Category Search in Web-scale Image CollectionsOn-the-fly Visual Category Search in Web-scale Image Collections
On-the-fly Visual Category Search in Web-scale Image CollectionsKen Chatfield
 
Docker presentasjon java bin
Docker presentasjon java binDocker presentasjon java bin
Docker presentasjon java binOlve Hansen
 
Plane Spotting
Plane SpottingPlane Spotting
Plane SpottingTed Coyle
 
Sadeem cloud native السحابة الطبيعية
Sadeem cloud native السحابة الطبيعيةSadeem cloud native السحابة الطبيعية
Sadeem cloud native السحابة الطبيعيةTaher Boujrida
 
Scala, ECS, Docker: Delayed Execution @Coursera
Scala, ECS, Docker: Delayed Execution @CourseraScala, ECS, Docker: Delayed Execution @Coursera
Scala, ECS, Docker: Delayed Execution @CourseraC4Media
 
How we use and deploy Varnish at Opera
How we use and deploy Varnish at OperaHow we use and deploy Varnish at Opera
How we use and deploy Varnish at OperaCosimo Streppone
 
How netflix manages petabyte scale apache cassandra in the cloud
How netflix manages petabyte scale apache cassandra in the cloudHow netflix manages petabyte scale apache cassandra in the cloud
How netflix manages petabyte scale apache cassandra in the cloudVinay Kumar Chella
 
Chicago DevOps Meetup Nov2019
Chicago DevOps Meetup Nov2019Chicago DevOps Meetup Nov2019
Chicago DevOps Meetup Nov2019Mike Villiger
 
Shipping Code like a keptn: Continuous Delivery & Automated Operations on k8s
Shipping Code like a keptn: Continuous Delivery & Automated Operations on k8sShipping Code like a keptn: Continuous Delivery & Automated Operations on k8s
Shipping Code like a keptn: Continuous Delivery & Automated Operations on k8sAndreas Grabner
 

Similar a VCL template abstraction model and automated deployments to Fastly (20)

Cloud Native: Designing Change-tolerant Software
Cloud Native: Designing Change-tolerant SoftwareCloud Native: Designing Change-tolerant Software
Cloud Native: Designing Change-tolerant Software
 
Cloud Native Architectures for Devops
Cloud Native Architectures for DevopsCloud Native Architectures for Devops
Cloud Native Architectures for Devops
 
Cloud Native: Designing Change-tolerant Software
Cloud Native: Designing Change-tolerant SoftwareCloud Native: Designing Change-tolerant Software
Cloud Native: Designing Change-tolerant Software
 
Streaming Dataflow with Apache Flink
Streaming Dataflow with Apache Flink Streaming Dataflow with Apache Flink
Streaming Dataflow with Apache Flink
 
AWS re:Invent 2016: Service Integration Delivery and Automation Using Amazon ...
AWS re:Invent 2016: Service Integration Delivery and Automation Using Amazon ...AWS re:Invent 2016: Service Integration Delivery and Automation Using Amazon ...
AWS re:Invent 2016: Service Integration Delivery and Automation Using Amazon ...
 
Developing Resilient Cloud Native Apps with Spring Cloud
Developing Resilient Cloud Native Apps with Spring CloudDeveloping Resilient Cloud Native Apps with Spring Cloud
Developing Resilient Cloud Native Apps with Spring Cloud
 
TIAD : Automating the modern datacenter
TIAD : Automating the modern datacenterTIAD : Automating the modern datacenter
TIAD : Automating the modern datacenter
 
Atmosphere Conference 2015: Taming the Modern Datacenter
Atmosphere Conference 2015: Taming the Modern DatacenterAtmosphere Conference 2015: Taming the Modern Datacenter
Atmosphere Conference 2015: Taming the Modern Datacenter
 
How do I run microservices in production using Docker.
How do I run microservices in production using Docker.How do I run microservices in production using Docker.
How do I run microservices in production using Docker.
 
Performance tests - it's a trap
Performance tests - it's a trapPerformance tests - it's a trap
Performance tests - it's a trap
 
Planning to Fail #phpne13
Planning to Fail #phpne13Planning to Fail #phpne13
Planning to Fail #phpne13
 
On-the-fly Visual Category Search in Web-scale Image Collections
On-the-fly Visual Category Search in Web-scale Image CollectionsOn-the-fly Visual Category Search in Web-scale Image Collections
On-the-fly Visual Category Search in Web-scale Image Collections
 
Docker presentasjon java bin
Docker presentasjon java binDocker presentasjon java bin
Docker presentasjon java bin
 
Plane Spotting
Plane SpottingPlane Spotting
Plane Spotting
 
Sadeem cloud native السحابة الطبيعية
Sadeem cloud native السحابة الطبيعيةSadeem cloud native السحابة الطبيعية
Sadeem cloud native السحابة الطبيعية
 
Scala, ECS, Docker: Delayed Execution @Coursera
Scala, ECS, Docker: Delayed Execution @CourseraScala, ECS, Docker: Delayed Execution @Coursera
Scala, ECS, Docker: Delayed Execution @Coursera
 
How we use and deploy Varnish at Opera
How we use and deploy Varnish at OperaHow we use and deploy Varnish at Opera
How we use and deploy Varnish at Opera
 
How netflix manages petabyte scale apache cassandra in the cloud
How netflix manages petabyte scale apache cassandra in the cloudHow netflix manages petabyte scale apache cassandra in the cloud
How netflix manages petabyte scale apache cassandra in the cloud
 
Chicago DevOps Meetup Nov2019
Chicago DevOps Meetup Nov2019Chicago DevOps Meetup Nov2019
Chicago DevOps Meetup Nov2019
 
Shipping Code like a keptn: Continuous Delivery & Automated Operations on k8s
Shipping Code like a keptn: Continuous Delivery & Automated Operations on k8sShipping Code like a keptn: Continuous Delivery & Automated Operations on k8s
Shipping Code like a keptn: Continuous Delivery & Automated Operations on k8s
 

Más de Fastly

Revisiting HTTP/2
Revisiting HTTP/2Revisiting HTTP/2
Revisiting HTTP/2Fastly
 
Altitude San Francisco 2018: Preparing for Video Streaming Events at Scale
Altitude San Francisco 2018: Preparing for Video Streaming Events at ScaleAltitude San Francisco 2018: Preparing for Video Streaming Events at Scale
Altitude San Francisco 2018: Preparing for Video Streaming Events at ScaleFastly
 
Altitude San Francisco 2018: Building the Souther Hemisphere of the Internet
Altitude San Francisco 2018: Building the Souther Hemisphere of the InternetAltitude San Francisco 2018: Building the Souther Hemisphere of the Internet
Altitude San Francisco 2018: Building the Souther Hemisphere of the InternetFastly
 
Altitude San Francisco 2018: The World Cup Stream
Altitude San Francisco 2018: The World Cup StreamAltitude San Francisco 2018: The World Cup Stream
Altitude San Francisco 2018: The World Cup StreamFastly
 
Altitude San Francisco 2018: We Own Our Destiny
Altitude San Francisco 2018: We Own Our DestinyAltitude San Francisco 2018: We Own Our Destiny
Altitude San Francisco 2018: We Own Our DestinyFastly
 
Altitude San Francisco 2018: Scale and Stability at the Edge with 1.4 Billion...
Altitude San Francisco 2018: Scale and Stability at the Edge with 1.4 Billion...Altitude San Francisco 2018: Scale and Stability at the Edge with 1.4 Billion...
Altitude San Francisco 2018: Scale and Stability at the Edge with 1.4 Billion...Fastly
 
Altitude San Francisco 2018: Moving Off the Monolith: A Seamless Migration
Altitude San Francisco 2018: Moving Off the Monolith: A Seamless MigrationAltitude San Francisco 2018: Moving Off the Monolith: A Seamless Migration
Altitude San Francisco 2018: Moving Off the Monolith: A Seamless MigrationFastly
 
Altitude San Francisco 2018: Bringing TLS to GitHub Pages
Altitude San Francisco 2018: Bringing TLS to GitHub PagesAltitude San Francisco 2018: Bringing TLS to GitHub Pages
Altitude San Francisco 2018: Bringing TLS to GitHub PagesFastly
 
Altitude San Francisco 2018: HTTP Invalidation Workshop
Altitude San Francisco 2018: HTTP Invalidation WorkshopAltitude San Francisco 2018: HTTP Invalidation Workshop
Altitude San Francisco 2018: HTTP Invalidation WorkshopFastly
 
Altitude San Francisco 2018: HTTP/2 Tales: Discovery and Woe
Altitude San Francisco 2018: HTTP/2 Tales: Discovery and WoeAltitude San Francisco 2018: HTTP/2 Tales: Discovery and Woe
Altitude San Francisco 2018: HTTP/2 Tales: Discovery and WoeFastly
 
Altitude San Francisco 2018: How Magento moved to the cloud while maintaining...
Altitude San Francisco 2018: How Magento moved to the cloud while maintaining...Altitude San Francisco 2018: How Magento moved to the cloud while maintaining...
Altitude San Francisco 2018: How Magento moved to the cloud while maintaining...Fastly
 
Altitude San Francisco 2018: Scaling Ethereum to 10B requests per day
Altitude San Francisco 2018: Scaling Ethereum to 10B requests per dayAltitude San Francisco 2018: Scaling Ethereum to 10B requests per day
Altitude San Francisco 2018: Scaling Ethereum to 10B requests per dayFastly
 
Altitude San Francisco 2018: Authentication at the Edge
Altitude San Francisco 2018: Authentication at the EdgeAltitude San Francisco 2018: Authentication at the Edge
Altitude San Francisco 2018: Authentication at the EdgeFastly
 
Altitude San Francisco 2018: WebAssembly Tools & Applications
Altitude San Francisco 2018: WebAssembly Tools & ApplicationsAltitude San Francisco 2018: WebAssembly Tools & Applications
Altitude San Francisco 2018: WebAssembly Tools & ApplicationsFastly
 
Altitude San Francisco 2018: Testing with Fastly Workshop
Altitude San Francisco 2018: Testing with Fastly WorkshopAltitude San Francisco 2018: Testing with Fastly Workshop
Altitude San Francisco 2018: Testing with Fastly WorkshopFastly
 
Altitude San Francisco 2018: Fastly Purge Control at the USA TODAY NETWORK
Altitude San Francisco 2018: Fastly Purge Control at the USA TODAY NETWORKAltitude San Francisco 2018: Fastly Purge Control at the USA TODAY NETWORK
Altitude San Francisco 2018: Fastly Purge Control at the USA TODAY NETWORKFastly
 
Altitude San Francisco 2018: WAF Workshop
Altitude San Francisco 2018: WAF WorkshopAltitude San Francisco 2018: WAF Workshop
Altitude San Francisco 2018: WAF WorkshopFastly
 
Altitude San Francisco 2018: Logging at the Edge
Altitude San Francisco 2018: Logging at the Edge Altitude San Francisco 2018: Logging at the Edge
Altitude San Francisco 2018: Logging at the Edge Fastly
 
Altitude San Francisco 2018: Video Workshop Docs
Altitude San Francisco 2018: Video Workshop DocsAltitude San Francisco 2018: Video Workshop Docs
Altitude San Francisco 2018: Video Workshop DocsFastly
 
Altitude San Francisco 2018: Programming the Edge
Altitude San Francisco 2018: Programming the EdgeAltitude San Francisco 2018: Programming the Edge
Altitude San Francisco 2018: Programming the EdgeFastly
 

Más de Fastly (20)

Revisiting HTTP/2
Revisiting HTTP/2Revisiting HTTP/2
Revisiting HTTP/2
 
Altitude San Francisco 2018: Preparing for Video Streaming Events at Scale
Altitude San Francisco 2018: Preparing for Video Streaming Events at ScaleAltitude San Francisco 2018: Preparing for Video Streaming Events at Scale
Altitude San Francisco 2018: Preparing for Video Streaming Events at Scale
 
Altitude San Francisco 2018: Building the Souther Hemisphere of the Internet
Altitude San Francisco 2018: Building the Souther Hemisphere of the InternetAltitude San Francisco 2018: Building the Souther Hemisphere of the Internet
Altitude San Francisco 2018: Building the Souther Hemisphere of the Internet
 
Altitude San Francisco 2018: The World Cup Stream
Altitude San Francisco 2018: The World Cup StreamAltitude San Francisco 2018: The World Cup Stream
Altitude San Francisco 2018: The World Cup Stream
 
Altitude San Francisco 2018: We Own Our Destiny
Altitude San Francisco 2018: We Own Our DestinyAltitude San Francisco 2018: We Own Our Destiny
Altitude San Francisco 2018: We Own Our Destiny
 
Altitude San Francisco 2018: Scale and Stability at the Edge with 1.4 Billion...
Altitude San Francisco 2018: Scale and Stability at the Edge with 1.4 Billion...Altitude San Francisco 2018: Scale and Stability at the Edge with 1.4 Billion...
Altitude San Francisco 2018: Scale and Stability at the Edge with 1.4 Billion...
 
Altitude San Francisco 2018: Moving Off the Monolith: A Seamless Migration
Altitude San Francisco 2018: Moving Off the Monolith: A Seamless MigrationAltitude San Francisco 2018: Moving Off the Monolith: A Seamless Migration
Altitude San Francisco 2018: Moving Off the Monolith: A Seamless Migration
 
Altitude San Francisco 2018: Bringing TLS to GitHub Pages
Altitude San Francisco 2018: Bringing TLS to GitHub PagesAltitude San Francisco 2018: Bringing TLS to GitHub Pages
Altitude San Francisco 2018: Bringing TLS to GitHub Pages
 
Altitude San Francisco 2018: HTTP Invalidation Workshop
Altitude San Francisco 2018: HTTP Invalidation WorkshopAltitude San Francisco 2018: HTTP Invalidation Workshop
Altitude San Francisco 2018: HTTP Invalidation Workshop
 
Altitude San Francisco 2018: HTTP/2 Tales: Discovery and Woe
Altitude San Francisco 2018: HTTP/2 Tales: Discovery and WoeAltitude San Francisco 2018: HTTP/2 Tales: Discovery and Woe
Altitude San Francisco 2018: HTTP/2 Tales: Discovery and Woe
 
Altitude San Francisco 2018: How Magento moved to the cloud while maintaining...
Altitude San Francisco 2018: How Magento moved to the cloud while maintaining...Altitude San Francisco 2018: How Magento moved to the cloud while maintaining...
Altitude San Francisco 2018: How Magento moved to the cloud while maintaining...
 
Altitude San Francisco 2018: Scaling Ethereum to 10B requests per day
Altitude San Francisco 2018: Scaling Ethereum to 10B requests per dayAltitude San Francisco 2018: Scaling Ethereum to 10B requests per day
Altitude San Francisco 2018: Scaling Ethereum to 10B requests per day
 
Altitude San Francisco 2018: Authentication at the Edge
Altitude San Francisco 2018: Authentication at the EdgeAltitude San Francisco 2018: Authentication at the Edge
Altitude San Francisco 2018: Authentication at the Edge
 
Altitude San Francisco 2018: WebAssembly Tools & Applications
Altitude San Francisco 2018: WebAssembly Tools & ApplicationsAltitude San Francisco 2018: WebAssembly Tools & Applications
Altitude San Francisco 2018: WebAssembly Tools & Applications
 
Altitude San Francisco 2018: Testing with Fastly Workshop
Altitude San Francisco 2018: Testing with Fastly WorkshopAltitude San Francisco 2018: Testing with Fastly Workshop
Altitude San Francisco 2018: Testing with Fastly Workshop
 
Altitude San Francisco 2018: Fastly Purge Control at the USA TODAY NETWORK
Altitude San Francisco 2018: Fastly Purge Control at the USA TODAY NETWORKAltitude San Francisco 2018: Fastly Purge Control at the USA TODAY NETWORK
Altitude San Francisco 2018: Fastly Purge Control at the USA TODAY NETWORK
 
Altitude San Francisco 2018: WAF Workshop
Altitude San Francisco 2018: WAF WorkshopAltitude San Francisco 2018: WAF Workshop
Altitude San Francisco 2018: WAF Workshop
 
Altitude San Francisco 2018: Logging at the Edge
Altitude San Francisco 2018: Logging at the Edge Altitude San Francisco 2018: Logging at the Edge
Altitude San Francisco 2018: Logging at the Edge
 
Altitude San Francisco 2018: Video Workshop Docs
Altitude San Francisco 2018: Video Workshop DocsAltitude San Francisco 2018: Video Workshop Docs
Altitude San Francisco 2018: Video Workshop Docs
 
Altitude San Francisco 2018: Programming the Edge
Altitude San Francisco 2018: Programming the EdgeAltitude San Francisco 2018: Programming the Edge
Altitude San Francisco 2018: Programming the Edge
 

Último

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 

Último (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 

VCL template abstraction model and automated deployments to Fastly

  • 1. AETN Digital Media | Confidential and Proprietary TEMPLATE ABSTRACTION AND AUTOMATED DEPLOYMENTS TO FASTLY A Practical Walkthrough on Real Life Experiences
  • 2. AETN Digital Media | Confidential and Proprietary Then ☹ Manual UI Based Implementation
  • 3. AETN Digital Media | Confidential and Proprietary 30m-1hr x Envs Manual Process Back Then • Caching • Shielding • Geographical • Device Detection • Backends • Redirects • Proxies • Authorization www.aetv.com • Caching • Shielding • Geographical • Device Detection • Backends • Redirects • Proxies • Authorization www.mylifetime.com • Caching • Shielding • Geographical • Device Detection • Backends • Redirects • Proxies • Authorization www.fyi.tv • Caching • Shielding • Geographical • Device Detection • Backends • Redirects • Proxies • Authorization www.history.com
  • 4. AETN Digital Media | Confidential and Proprietary And then we have more sites! 30m-1hr x Env 30m-1hr x Env 30m-1hr x Env
  • 5. AETN Digital Media | Confidential and Proprietary Even more URLS added 30m-1hr x Env 30m-1hr x Env 30m-1hr x Env 30m-1hr x Env 30m-1hr x Env 30m-1hr x Env
  • 6. AETN Digital Media | Confidential and Proprietary Digging into Legacy Code!
  • 7. AETN Digital Media | Confidential and Proprietary Manual Process Back Then!
  • 8. AETN Digital Media | Confidential and Proprietary Update (100) URLS 3 environments Weeks of work= Manual Process Back Then!
  • 9. AETN Digital Media | Confidential and Proprietary DevOps Principals • Collaboration • Test everything • Treat Infrastructure as code • Breakdown the barriers • Automate everything • Measure & monitor everything • Support business and IT agility • Work as one team end to end
  • 10. AETN Digital Media | Confidential and Proprietary And Now ☺ Continuous Integration Fastly VCL Templates APIs Automated Testing EQUALS Awesome!
  • 11. AETN Digital Media | Confidential and Proprietary Continuous Integration Selenium Automated Process CI Tool
  • 12. AETN Digital Media | Confidential and Proprietary GLOBALFASTLY BOILER PLATE Sub vcl_recv Sub vcl_fetch Sub vcl_hit Sub vcl_miss Sub vcl_deliver Sub vcl_error Sub vcl_pass SERVICES Application URLS Main.vcl Backends.vcl custom.vcl default.vcl Fastly Boiler Plate Sub vcl_recv call aetn_recv_shield call aetn_recv_geo call aetn_recv_cache aetn.vcl Template Abstraction call aetn_recv_device sub aetn_recv_shield sub aetn_recv_geo sub aetn_recv_cache sub aetn_recv_device
  • 13. AETN Digital Media | Confidential and Proprietary Environment Agnostic Implementation • Separate Service for each Env: {env}-abc.com • Abstract Env Specific Backends in separate VCLs: {env}-backends.vcl Backend dev_abc_com { .first_byte_timeout = 3s; .connect_timeout = 1s; .dynamic = true; .max_connections = 200; .between_bytes_timeout = 3s; .share_key = ”COMMONBACKEND"; .port = "443"; .host = ”dev.abc.com"; .probe = { .url = "/aetn-heartbeat.html"; .interval = 30s; .timeout = 3s; .window = 5; .threshold = 2; } } • Use GITFlow guidelines • CI Tool reads the config file to deploy to correct env "environments" : { "dev" : { "ref" : "refs/heads", "servers" : [ { "id" : ”ABC567defgzThQ" } ] },
  • 14. AETN Digital Media | Confidential and Proprietary CIDataFlowforManagingEnvAgnostic CI ToolGitHUB Config File (Env to Service Mapping) Process qa-backend.vcl Process dev-backend.vcl Process all common files Process prod-backend.vcl Event Payload Notification to CI Tool Process Payload and identify Event Type Identify ENV and Service ID QA FASTLY Deploy Files and Activate DEV PROD Commit VCL
  • 15. AETN Digital Media | Confidential and Proprietary DeploymentWorkFlowUsingFastlyAPI List of Files Modified Service/ Common Retrieve the list of Services Parse the list of services Retrieve the service and common files Fastly Dev Version (/service/search?name) Clone New Version (/service/service_id/version/number/clone) Deploy Files (/service/service_id/version/version/vcl/{main}) Activate (/service/service_id/version/number/activate) Create Dev Version (/service/service_id/version/number/clone) GITHUB Deployment Object Common Service No Yes
  • 16. AETN Digital Media | Confidential and Proprietary Update (100) URLS 3 environments Weeks of work= Automated Process Now! From To Update (100) URLS 3 environments a few Minutes = To
  • 17. AETN Digital Media | Confidential and Proprietary Workflow in Action Update TTL for all sites
  • 18. AETN Digital Media | Confidential and Proprietary • Create a feature branch • GIT Clone Repo $ git clone https://USERNAME:TOKEN_OR_PASSWORD@github.com/aenetworks/ REPO_NAME.git fastly Cloning into 'fastly'... remote: Counting objects: 11441, done. remote: Compressing objects: 100% (127/127), done. remote: Total 11441 (delta 71), reused 0 (delta 0), pack-reused 11313 Receiving objects: 100% (11441/11441), 1.67 MiB | 1.17 MiB/s, done. Resolving deltas: 100% (7939/7939), done. Checking connectivity... done. ================================================================================= ==================================== WorkflowinAction $ git checkout -b sd-increase-ttl Switched to a new branch 'sd-increase-ttl' ================================================================================= ===================================== if ((beresp.status == 200) && req.url ~ ".(aif|aiff|au|avi|bin|bmp|cab|carb|cct| cdf|class|css|doc|dcr|dtd|eot|exe|flv|gcf|gff|gif|grv|html|hqx|ico|ini|jpeg|jpg| js|json|mov|mp3|nc|otf|pct|png|ppc|pws|svg|swa|swf|ttf|txt|vbs|w32|wav|wbmp|wml| wmlc|wmls|wmlsc|xsd|zip|webp|jxr|hdp|wdp)($|?)" ) { set beresp.ttl = 36h; } ================================================================================= ========================================
  • 19. AETN Digital Media | Confidential and Proprietary WorkflowinAction if ((beresp.status == 200) && req.url ~ ".(aif|aiff|au|avi|bin|bmp|cab|carb|cct| cdf|class|css|doc|dcr|dtd|eot|exe|flv|gcf|gff|gif|grv|html|hqx|ico|ini|jpeg|jpg| js|json|mov|mp3|nc|otf|pct|png|ppc|pws|svg|swa|swf|ttf|txt|vbs|w32|wav|wbmp|wml| wmlc|wmls|wmlsc|xsd|zip|webp|jxr|hdp|wdp)($|?)" ) { set beresp.ttl = 36h; } • Modify TTL in any editor • Dev: • GIT Commit and Push to Feature Branch $ git commit -m "Increased the TTL" -a [sd-increase-ttl f5d4bff] Increased the TTL 1 file changed, 1 insertion(+), 1 deletion(-) $ git push origin sd-increase-ttl Counting objects: 6, done. Delta compression using up to 4 threads. Compressing objects: 100% (6/6), done. Writing objects: 100% (6/6), 716 bytes | 0 bytes/s, done. Total 6 (delta 2), reused 0 (delta 0) To https://USERNAME:TOKEN_OR_PASSWORD@github.com/aenetworks/REPO_NAME.git * [new branch] sd-increase-ttl -> sd-increase-ttl wrap Today at 4:16 PM • 2KB Plain Text snippet • Private snippet shared with you shift+enter to add a new line • QA and Prod • Follow GIT Flow to Create Pull request and release to appropriate Env
  • 20. AETN Digital Media | Confidential and Proprietary Thanks!