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
130
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
73
Developer Experience is User Experience
mbrevoort
1
320
Appbots Lightning Talk
mbrevoort
0
100
Testing and Debugging Slack Apps
mbrevoort
0
1.2k
What's all the noise a-bot?
mbrevoort
0
710
Why Bots, Why Now - OSCON
mbrevoort
1
280
Conversational Slack Bots with Javascript
mbrevoort
0
96
Natural Language Slack bots
mbrevoort
2
340
Thalassa - DenverJS
mbrevoort
1
990
Other Decks in Technology
See All in Technology
アジャイル脅威モデリング#1(脅威モデリングナイト#8)
masakane55
3
160
SRE NEXT CfP チームが語る 聞きたくなるプロポーザルとは / Proposals by the SRE NEXT CfP Team that are sure to be accepted
chaspy
1
570
LLM とプロンプトエンジニアリング/チューターをビルドする / LLM, Prompt Engineering and Building Tutors
ks91
PRO
1
210
DuckDB MCPサーバーを使ってAWSコストを分析させてみた / AWS cost analysis with DuckDB MCP server
masahirokawahara
0
590
MCPを活用した検索システムの作り方/How to implement search systems with MCP #catalks
quiver
3
810
Рекомендации с нуля: как мы в Lamoda превратили главную страницу в ключевую точку входа для персонализированного шоппинга. Данил Комаров, Data Scientist, Lamoda Tech
lamodatech
0
290
はてなの開発20年史と DevOpsの歩み / DevOpsDays Tokyo 2025 Keynote
daiksy
5
1.4k
Cursor AgentによるパーソナルAIアシスタント育成入門―業務のプロンプト化・MCPの活用
os1ma
8
3k
Classmethod AI Talks(CATs) #21 司会進行スライド(2025.04.17) / classmethod-ai-talks-aka-cats_moderator-slides_vol21_2025-04-17
shinyaa31
0
440
大AI時代で輝くために今こそドメインにディープダイブしよう / Deep Dive into Domain in AI-Agent-Era
yuitosato
1
270
LangChainとLangGiraphによるRAG・AIエージェント実践入門「10章 要件定義書生成Alエージェントの開発」輪読会スライド
takaakiinada
0
130
Spring Bootで実装とインフラをこれでもかと分離するための試み
shintanimoto
4
370
Featured
See All Featured
Visualization
eitanlees
146
16k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Writing Fast Ruby
sferik
628
61k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.3k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.1k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
135
33k
Gamification - CAS2011
davidbonilla
81
5.2k
Faster Mobile Websites
deanohume
306
31k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
21k
A Tale of Four Properties
chriscoyier
158
23k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
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