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
tsuru para quem sabe tsuru
Search
Andrews Medina
September 08, 2016
Technology
120
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
130
Clean Code - princípios e práticas para um código sustentável
andrewsmedina
0
730
Pytfalls
andrewsmedina
1
220
globo.com s2 python
andrewsmedina
5
410
tsuru and docker
andrewsmedina
6
3.6k
pypy - o interpretador mais rapido do velho oeste
andrewsmedina
0
440
fazendo deploys de forma simples e divertida com tsuru
andrewsmedina
3
170
let's go
andrewsmedina
2
330
TDD for Dummies
andrewsmedina
3
400
Other Decks in Technology
See All in Technology
Antigravity SDK for the Java Developer
glaforge
0
190
AI 時代のスタートアップエコシステ厶から考究する技術的負債との向き合い方
m3m0r7
PRO
3
2.6k
AIエージェントの一手は 誰も見ていない - Falco拡張OSS「Prempti」とeBPFで サーバーレス実行基盤を二層防御する
keitah
0
550
サーバーレスをどこまで使う? WebRTC対戦ゲームで選んだVPSとの共存設計
kaidouji85
0
400
EventBridge に「合流」はない ― サーバーレスのワークフローを育てるということ / No Join in EventBridge
yusukeshimizu
2
520
時うどん〜Socket.getifaddrsで学ぶネットワーク編 / Tokiudon: The Socket.getifaddrs Edition
coe401_
4
260
GoのInterface内部構造から学ぶ!最高パフォーマンスを出すコード設計
yappli_developers
1
280
絵ではじめるKubernetesセキュリティ
aoi1
5
710
AIエージェントの自己改善をどう設計するか / How to Design Self-Improvement for AI Agents
22mi
26
17k
開発投資の期待値を上げるプロダクトロードマップづくり ~プロダクトエンジニアが越境して事業を伸ばす~
kekekenta
1
250
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
16
120k
AIエージェント時代のPlatform as a Product —— テックリードがPdMとして回す発見・導入・計測 / Platform as a Product in the AI Agent Era
toshi0607
0
110
Featured
See All Featured
Building an army of robots
kneath
307
46k
[SF Ruby Conf 2025] Rails X
palkan
3
1.4k
Are puppies a ranking factor?
jonoalderson
2
3.9k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
580
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Abbi's Birthday
coloredviolet
4
10k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.5k
Marketing to machines
jonoalderson
1
5.8k
The browser strikes back
jonoalderson
0
1.7k
So, you think you're a good person
axbom
PRO
2
2.2k
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?