Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Thalassa - LXJS
Search
Mike Brevoort
October 02, 2013
Technology
1
120
Thalassa - LXJS
Continuous Deployment System
http://www.youtube.com/watch?v=k6QkNt4hZWQ&hd=1
Mike Brevoort
October 02, 2013
Tweet
Share
More Decks by Mike Brevoort
See All by Mike Brevoort
Enterprise Messaging Workflows
mbrevoort
0
69
Developer Experience is User Experience
mbrevoort
1
280
Appbots Lightning Talk
mbrevoort
0
93
Testing and Debugging Slack Apps
mbrevoort
0
1.1k
What's all the noise a-bot?
mbrevoort
0
670
Why Bots, Why Now - OSCON
mbrevoort
1
270
Conversational Slack Bots with Javascript
mbrevoort
0
87
Natural Language Slack bots
mbrevoort
2
310
Thalassa - DenverJS
mbrevoort
1
980
Other Decks in Technology
See All in Technology
隣接領域をBeyondするFinatextのエンジニア組織設計 / beyond-engineering-areas
stajima
1
200
SREの組織類型に応じた リーダシップの考察
kenta_hi
PRO
0
620
コンテナのトラブルシューティング目線から AWS SAW についてしゃべってみる
kazzpapa3
1
120
利きプロセススケジューラ
sat
PRO
4
2.6k
ISUCONに強くなるかもしれない日々の過ごしかた/Findy ISUCON 2024-11-14
fujiwara3
3
230
家具家電付アパートの冷蔵庫をIoT化してみた!
scbc1167
0
140
Deno+JSRでパッケージを作って公開する
askua
0
110
Engineering at LY Corporation
lycorp_recruit_jp
0
260
ライブラリでしかお目にかかれない珍しい実装
mikanichinose
2
330
Fargateを使った研修の話
takesection
0
170
第23回Ques_タイミーにおけるQAチームの在り方 / QA Team in Timee
takeyaqa
0
180
TinyGoを使ったVSCode拡張機能実装
askua
2
200
Featured
See All Featured
Side Projects
sachag
452
42k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
Unsuck your backbone
ammeep
668
57k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
The Language of Interfaces
destraynor
154
24k
Optimising Largest Contentful Paint
csswizardry
33
2.9k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
700
Agile that works and the tools we love
rasmusluckow
327
21k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Ruby is Unlike a Banana
tanoku
96
11k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Transcript
THALASSA A System for Continuous Deployment Mike Brevoort 2 October
2013 @mbrevoort
¡OLÉ!
BACKGROUND
1.21 GIGAWATTS!?
CONTINUOUS DEPLOYMENT
PUSH AND RESTART? http://alt.coxnewsweb.com/cnishared/tools/shared/mediahub/05/22/00/slideshow_1002253082_Irene.JPEG-06e19.JPG
UPGRADE WITH ZERO DOWNTIME http://devopsreactions.tumblr.com/post/61486552902/upgrade-with-zero-downtime
EFFORT(DEPLOY N → ∞ ) = 0 http://supercompleto.files.wordpress.com/2010/03/ushuaia-sea-lion.jpg
HOW?
LOAD BALANCER http://klrc.files.wordpress.com/2009/06/traffic_barrel_monster.jpg
A/B DEPLOYMENTS http://www.flickr.com/photos/madbuster75/1859045541/
THALASSA
THREE NODE.JS MODULES + HAPROXY •Thalassa •Server registry & client
•Aqueduct •API and manages HAProxy process •Crowsnest •Realtime dashboard
THALASSA •Lightweight service registry •Client as node.js module, daemon or
just periodic HTTP •Formerly build on top of @substack’s Seaport •Ping and expire over HTTP •Built on Redis, axon for pub-sub
AQUEDUCT •REST API for HAProxy •Manage HAProxy process (now via
@3rdEden’s HAProxy module) •Dynamically generates config from handlebars.js template •Streams HAProxy live status •Configuration as a CRDT •Enables peering of Aqueduct servers
CROWSNEST •Visualize what’s happening in the system •Streams, streams and
more streams •CRDT, LevelDB, Hapi, AngularJS, Rickshaw
Thalassa Server Aqueduct HAProxy Crowsnest A@1 A@1 A@1 A@1 80
FE streaming stats axon socket BE
Thalassa Server Aqueduct HAProxy Crowsnest A@1 A@1 A@1 80 A@2
A@2 A@2 FE streaming stats axon socket BE
Thalassa Server Aqueduct HAProxy Crowsnest A@1 A@1 A@1 80 A@2
A@2 A@2 FE streaming stats axon socket A@2 BE
Thalassa Server Aqueduct HAProxy Crowsnest A@1 A@1 A@1 80 A@2
A@2 A@2 FE streaming stats axon socket BE
registrations config stats stats config stats Aqueduct Aqueduct config Crowsnest
Server Aqueduct Thalassa Server control stream MUXDEMUX STREAMS
DEMO
commutative data > 9:00 MONDAY AUGUST 26TH
WHERE •https://github.com/PearsonEducation/thalassa npm install thalassa •https://github.com/PearsonEducation/thalassa-aqueduct npm install thalassa-aqueduct •https://github.com/PearsonEducation/thalassa-crowsnest
npm install thalassa-crowsnest
@mbrevoort