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
Andrews Medina
September 08, 2016
Technology
100
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
120
Clean Code - princípios e práticas para um código sustentável
andrewsmedina
0
720
Pytfalls
andrewsmedina
1
220
globo.com s2 python
andrewsmedina
5
400
tsuru and docker
andrewsmedina
6
3.6k
pypy - o interpretador mais rapido do velho oeste
andrewsmedina
0
420
fazendo deploys de forma simples e divertida com tsuru
andrewsmedina
3
160
let's go
andrewsmedina
2
330
TDD for Dummies
andrewsmedina
3
390
Other Decks in Technology
See All in Technology
ぼっちではじめた登壇が「51名」「241件」の発信に化けた
subroh0508
1
310
GitHub Copilot app最速の発信の裏側
tomokusaba
1
260
MySQL & MySQL HeatWave Report - June 2026
freshdaz
0
130
“詰む”前に仕組みを作れ 〜技術の波に溺れないためのキャッチアップ術〜
takasyou
7
3.9k
Flow 不死:AI 時代 DevOps 的不變本質
cheng_wei_chen
2
520
SteampipeとExcel Power QueryでAWS構成定義書の作成を自動化する
jhashimoto
0
180
自宅LLMの話
jacopen
1
720
PostgreSQL 19 新機能概要 OSC Hokkaido 2026
nori_shinoda
0
250
OTel × Datadog で 「AI活用」を計測し、改善に繋げる
shihochan
2
640
千葉での単身赴任からAWSをやり続け、千葉に戻ってきた話
yama3133
1
120
【セミナー資料】Claude Code をセキュアに使うための考え方と設定の勘どころ / Claude Code Webinar 20260616
masahirokawahara
2
470
技術・能力を向上する原理原則 #きのこセッションa #きのこ2026
bash0c7
0
130
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
42
3.1k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
380
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
480
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
580
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
370
Docker and Python
trallard
47
3.9k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
170
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
430
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
870
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Building AI with AI
inesmontani
PRO
1
1.1k
Darren the Foodie - Storyboard
khoart
PRO
3
3.4k
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?