Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Zero touch app delivery, auto-scale and load ba...
Search
Vicente De Luca
July 14, 2015
Technology
80
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Zero touch app delivery, auto-scale and load balancing
Vicente De Luca
July 14, 2015
Other Decks in Technology
See All in Technology
Deployment の 先にある AI Agent 基盤 - kagent vNext、Agent Substrate、Hermes から読み解く Agent Runtime の現在地 / k8s-matsuri-2-ai-agent-platform-amsy810
masayaaoyama
4
680
Azure Serverless 2026:Production-ready な AI エージェント基盤 / Azure Serverless 2026: Production-Ready AI Agent Platform
miyake
2
400
Claude Codeを「使うほど育つ」AI秘書にするノウハウ
minorun365
PRO
32
29k
ScotSecure West 2026 - Glasgow
raybugg
0
100
EventBridge に「合流」はない ― サーバーレスのワークフローを育てるということ / No Join in EventBridge
yusukeshimizu
2
340
安心して変更できるWebフロントエンドの作り方
pirosikick
5
2.8k
AIで社員の自主発信に広報目線を組み込む
_mossann_t
0
130
データ界隈LT祭 第1回LT登壇
taromatsui_cccmkhd
2
1.5k
品質と信頼性を地続きにする
grimoh
2
830
技術的負債から考える、AI時代のエンジニアリング投資 — ビズリーチの技術的負債と向き合った経験から、変更し続けられるソフトウェアを考える/ technical-debt-con2026
visional_engineering_and_design
4
3.3k
AIによるクリエイティブ生成を行う上での試行錯誤
plaidtech
PRO
0
160
リアーキテクチャ後の障害ゼロを目指したShadow Testingの取り組み
nihonbuson
PRO
1
160
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
142
7.7k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
420
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.2k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
Six Lessons from altMBA
skipperchong
29
4.5k
The Pragmatic Product Professional
lauravandoore
37
7.4k
A Tale of Four Properties
chriscoyier
163
24k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
Transcript
ZER0 TOUCH App Deployment and Load Balancing Vicente De Luca©
2015 -
[email protected]
1
whoami Vicente De Luca Network Engineer @ Zendesk - Unix
since 90's - IPv6 addicted - RC flying (and crashing) passionate http://nethero.org @zenvdeluca Vicente De Luca© 2015 -
[email protected]
2
Problems Traditional App Deploy - NetOps Vicente De Luca© 2015
-
[email protected]
3
What was wrong? • Ticket asking LB resources • Multiple
teams • Complex and manual process • Prone to human errors • Painful on growing companies Vicente De Luca© 2015 -
[email protected]
4
Solution Vicente De Luca© 2015 -
[email protected]
5
How to solve? • End to end automation • Pain
less migration • Known tool • Not increasing architecture complexity Vicente De Luca© 2015 -
[email protected]
6
HOW? (NetOps tasks) Vicente De Luca© 2015 -
[email protected]
7
Ingredients • Load Balancer ! • Service Discovery ! •
Template Config Render ! Vicente De Luca© 2015 -
[email protected]
8
Load Balancer What we already had F5 BIG-IP Viprion 2400
(http://f5.com/) Why we use it? ASIC Routing / Linux / Partition Alternatives? Haproxy / Keepalived Vicente De Luca© 2015 -
[email protected]
9
Service Discovery Consul (http://consul.io/) Why we use it? Service catalog
/ Distributed Health Checks query via REST or DNS / Agents are clients Alternatives? etcd / zookeeper, but just use consul :) Vicente De Luca© 2015 -
[email protected]
10
Consul How we use it! • Server register itself to
Consul local datacenter cluster • Publish own services with health checks • Maintain a distributed key/value store • lightweight binary that runs inside BIG-IP Vicente De Luca© 2015 -
[email protected]
11
Template Config Rendering What we used? consul-template (https://github.com/hashicorp/consul- template) How
we use it! - lightweight binary that runs inside BIG-IP - Subscribes to Consul services / hc / kv changes - Generate new configuration at change - reload load balancer with new config Vicente De Luca© 2015 -
[email protected]
12
Service Registration Example { "service": { "name": "http", "tags": ["primary"],
"port":80, "check": { "id": "http_check", "name": "HTTP Health Check", "script": "curl -H 'Host=www.mydomain.com' http://localhost", "interval": "5s" } } } Vicente De Luca© 2015 -
[email protected]
13
Service Query Example DNS $ host http.service.consul http.service.consul has address
10.0.1.10 Vicente De Luca© 2015 -
[email protected]
14
Service Query Example HTTP API $ curl localhost:8500/v1/catalog/service/http?pretty { "Node":
"srv1.nethero.org", "Address": "10.0.1.10", "ServiceName": "http", "ServiceTags": [ "primary" ], "ServiceAddress": "10.0.1.10", "ServicePort": 80 } Vicente De Luca© 2015 -
[email protected]
15
Consul Template Config Example consul = "127.0.0.1:8500" retry = "10s"
max_stale = "10m" log_level = "warn" pid_file = "/var/run/consul-template.pid" syslog { enabled = true facility = "user" } template { source = "/etc/consul-templates/production.ctmpl" destination = "/config/partitions/CONSUL/rendered-config" command = "/sbin/zconsul_postrender CONSUL" } Vicente De Luca© 2015 -
[email protected]
16
BIG-IP Consul Template (Golang) {{ range services }}{{ with $serviceMap
:= .}} {{if and (.Tags.Contains "load_balance") }} {{ range service $serviceMap.Name }} {{if and (.Tags.Contains "load_balance") }} ltm node {{ .Node }} { address {{ .Address }} } ltm pool POOL-{{ $serviceMap.Name | toUpper }} { members { {{range service $serviceMap.Name }}{{if and (.Tags.Contains "load_balance") }} {{.Node}}:{{.Port}} { address {{.Address}} } {{end}}{{end}} } monitor /Common/tcp } {{ range service $serviceMap.Name }}{{if (.Tags.Contains "vip") }} ltm virtual VS-{{ $serviceMap.Name | toUpper }}-VIP-{{.Port}} { destination {{.Address}}:{{.Port}} ip-protocol tcp mask 255.255.255.255 pool POOL-{{ $serviceMap.Name | toUpper }} profiles { fastL4 { } } source 0.0.0.0/0 source-address-translation { type automap } } {{ end }}{{end}}{{end}}{{end}}{{end}}{{end}}{{end}} Vicente De Luca© 2015 -
[email protected]
17
BIG-IP Rendered Config example ltm node /CONSUL/docker3.aws1.nethero.org { address 10.0.100.6
} ltm node /CONSUL/docker4.aws1.nethero.org { address 10.0.100.7 } ltm pool /CONSUL/POOL-VOLUNTEER-WEB { members { /CONSUL/docker3.aws1.nethero.org:58358 { address 10.0.100.6 } /CONSUL/docker4.aws1.nethero.org:58358 { address 10.0.100.7 } } monitor /Common/tcp } ltm virtual /CONSUL/VS-VOLUNTEER-WEB-VIP-9080 { destination /CONSUL/10.0.250.10:9080 ip-protocol tcp mask 255.255.255.255 pool /CONSUL/POOL-VOLUNTEER-WEB profiles { /Common/fastL4 { } } source 0.0.0.0/0 source-address-translation { type automap } translate-address enabled translate-port enabled } Vicente De Luca© 2015 -
[email protected]
18
BIG-IP: /var/log/user.log Thu Jul 9 20:50:04 PDT 2015 - [CONSUL]
config sync started Loading configuration... /config/partitions/CONSUL/bigip.conf Saving running configuration... /config/partitions/CONSUL/bigip.conf Thu Jul 9 20:50:06 PDT 2015 - [CONSUL] Virtual Servers loaded from Consul app catalog: /CONSUL/VS-ALPHA-WEB-VIP-6090 (/CONSUL/10.0.250.10:6090) /CONSUL/VS-LEGION-WEB-VIP-9033 (/CONSUL/10.0.250.10:9033) /CONSUL/VS-VOLUNTEER-WEB-VIP-9080 (/CONSUL/10.0.250.10:glrpc) /CONSUL/VS-XPTO-WEB-VIP-6080 (/CONSUL/10.0.250.10:6080) Thu Jul 9 20:50:06 PDT 2015 - [CONSUL] import completed $ curl 10.0.250.10:6080 Hello world% Vicente De Luca© 2015 -
[email protected]
19
Vicente De Luca© 2015 -
[email protected]
20
TL;DR • Consul for Service Discovery • consul-template to render
config and reload BIG-IP partition • F5 BIG-IP as our Load Balancer choice • new partition for each consul template instance Vicente De Luca© 2015 -
[email protected]
21
QUESTIONS? Vicente De Luca© 2015 -
[email protected]
22
THANKS! Vicente De Luca© 2015 -
[email protected]
23