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
tsuru para quem sabe tsuru
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Andrews Medina
September 08, 2016
Technology
91
0
Share
tsuru para quem sabe tsuru
apresentação feita sobre tsuru para quem já tem experiência com tsuru
Andrews Medina
September 08, 2016
More Decks by Andrews Medina
See All by Andrews Medina
Organizando dados juŕidicos em grafos
andrewsmedina
0
110
Clean Code - princípios e práticas para um código sustentável
andrewsmedina
0
700
Pytfalls
andrewsmedina
1
210
globo.com s2 python
andrewsmedina
5
400
tsuru and docker
andrewsmedina
6
3.6k
pypy - o interpretador mais rapido do velho oeste
andrewsmedina
0
410
fazendo deploys de forma simples e divertida com tsuru
andrewsmedina
3
150
let's go
andrewsmedina
2
320
TDD for Dummies
andrewsmedina
3
390
Other Decks in Technology
See All in Technology
MCPで決済に楽にする
mu7889yoon
0
170
ThetaOS - A Mythical Machine comes Alive
aslander
0
230
脳が溶けた話 / Melted Brain
keisuke69
1
1.2k
20260326_AIDD事例紹介_ULSC.pdf
findy_eventslides
0
340
【AWS】CloudTrail LakeとCloudWatch Logs Insightsの使い分け方針
tsurunosd
0
130
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
10
77k
「できない」のアウトプット 同人誌『精神を壊してからの』シリーズ出版を 通して得られたこと
comi190327
3
520
JAWS DAYS 2026でAIの「もやっと」感が解消された話
smt7174
1
120
非同期・イベント駆動処理の分散トレーシングの繋げ方
ichikawaken
1
250
不確実性と戦いながら見積もりを作成するプロセス/mitsumori-process
hirodragon112
1
170
やさしいとこから始めるGitHubリポジトリのセキュリティ
tsubakimoto_s
3
2.1k
Physical AI on AWS リファレンスアーキテクチャ / Physical AI on AWS Reference Architecture
aws_shota
1
290
Featured
See All Featured
Reality Check: Gamification 10 Years Later
codingconduct
0
2.1k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
How GitHub (no longer) Works
holman
316
150k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
160
A better future with KSS
kneath
240
18k
It's Worth the Effort
3n
188
29k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
92
Prompt Engineering for Job Search
mfonobong
0
240
Designing Experiences People Love
moore
143
24k
Documentation Writing (for coders)
carmenintech
77
5.3k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
110
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
310
Transcript
tsuru para quem sabe tsuru
whoami
Objetivo Diminuir o tempo que uma aplicação entra em produção
Premissas • Boas práticas • Simplicidade • Extensibilidade • Escalabilidade
• Multilinguagem • Open source • No vendor lock-in
Premissas
tsuru na globo.com • 767 apps • 1,760 units •
~300 deploys por dia
tsuru na globo.com • globoplay.globo.com • cartolafc.globo.com • ...
Deploy
Deploy docker node tsuru api router
Deploy • Envio do código (push/app-deploy/tsuru-dashboard) • Build (instalação de
dependências, criação imagem, etc) • Start (adiciona units, verifica healthcheck, adiciona rotas) • Remove units antigas
E se algo falhar no processo de deploy? •
Deploy • Envio do código (push/app-deploy/tsuru-dashboard) • Build (instalação de
dependências, criação imagem, etc) • Start (adiciona units, verifica healthcheck, adiciona rotas) • Remove units antigas
E se algo falhar no processo de deploy? • o
deploy é interrompido automaticamente • A aplicação continua no estado em que estava antes do deploy
Deploy • Envio do código (push/app-deploy/tsuru-dashboard) • Build (instalação de
dependências, criação imagem, etc) • Start (adiciona units, verifica healthcheck, adiciona rotas) • Remove units antigas
Deploy • https://docs.tsuru.io/master/using/tsuru.yaml.html#healthcheck
Deploy healthcheck: path: /healthcheck method: GET status: 200 match: .*OKAY.*
allowed_failures: 0 use_in_router: false
Algo errado em produção?
Algo errado em produção? $ tsuru app-deploy-rollback
Algo errado em produção? $ tsuru app-deploy-rollback
Algo errado em produção? $ tsuru app-deploy-rollback
Instabilidades na aplicação?
Acessando uma app docker node router request
Instabilidades na aplicação? healthcheck: path: /healthcheck method: GET status: 200
match: .*OKAY.* allowed_failures: 0 use_in_router: true
Unit = Container Node = VM (com Docker)
Container Scheduling • Lib em Go para clusterização de nós
de Docker • https://github.com/tsuru/docker-cluster • Managed vs Unmanaged Nodes
Container Scheduling • Distribuição de containers • Disponibilidade • Otimização
de recursos
Container Scheduling App1 - 8 units
Container Scheduling App1 - 8 units
Container Scheduling App1 - 8 units App2 - 1 unit
Container Scheduling App1 - 8 units App2 - 1 unit
Managed nodes • Nodes criados com integração com IaaS (aws
/ Cloudstack)
Node auto scaling • Detecta sobrecarga de recursos (units/memoria)
Unit auto scaling • Serviço externo • Baseado em métricas
• Regras definidas pelo usuário
Healing • Managed nodes • Detecta que um nó caiu
e substitui
Healing
Healing
Healing
Healing
• Multi provisioner • Integração com Docker Swarm e Kubernetes
• Suporte a units com file system persistente Futuro
Perguntas?