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
0
84
tsuru para quem sabe tsuru
apresentação feita sobre tsuru para quem já tem experiência com tsuru
Andrews Medina
September 08, 2016
Tweet
Share
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
690
Pytfalls
andrewsmedina
1
200
globo.com s2 python
andrewsmedina
5
390
tsuru and docker
andrewsmedina
6
3.6k
pypy - o interpretador mais rapido do velho oeste
andrewsmedina
0
400
fazendo deploys de forma simples e divertida com tsuru
andrewsmedina
3
150
let's go
andrewsmedina
2
310
TDD for Dummies
andrewsmedina
3
380
Other Decks in Technology
See All in Technology
「駆動」って言葉、なんかカッコイイ_Mitz
comucal
PRO
0
130
田舎で20年スクラム(後編):一個人が企業で長期戦アジャイルに挑む意味
chinmo
1
290
「エッジ×分散生成AI」の技術と変わる産業、そしてITの未来
piacerex
0
110
Keynoteから見るAWSの頭の中
nrinetcom
PRO
1
160
AI駆動開発ライフサイクル(AI-DLC)の始め方
ryansbcho79
0
290
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1k
アラフォーおじさん、はじめてre:Inventに行く / A 40-Something Guy’s First re:Invent Adventure
kaminashi
0
210
AWSインフルエンサーへの道 / load of AWS Influencer
whisaiyo
0
250
1万人を変え日本を変える!!多層構造型ふりかえりの大規模組織変革 / 20260108 Kazuki Mori
shift_evolve
PRO
4
520
Master Dataグループ紹介資料
sansan33
PRO
1
4.2k
技術選定、下から見るか?横から見るか?
masakiokuda
0
170
LayerX QA Night#1
koyaman2
0
300
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
990
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
37
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
160
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
6.8k
So, you think you're a good person
axbom
PRO
0
1.9k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
73
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
Highjacked: Video Game Concept Design
rkendrick25
PRO
0
260
Scaling GitHub
holman
464
140k
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?