-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
188 lines (123 loc) · 3.97 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
<!DOCTYPE html>
<html>
<head>
<title>WTM - Varnish</title>
<meta charset="utf-8">
<style>
@import url(https://fonts.googleapis.com/css?family=Yanone+Kaffeesatz);
@import url(https://fonts.googleapis.com/css?family=Droid+Serif:400,700,400italic);
@import url(https://fonts.googleapis.com/css?family=Ubuntu+Mono:400,700,400italic);
body { font-family: 'Droid Serif'; }
h1, h2, h3 {
font-family: 'Yanone Kaffeesatz';
font-weight: normal;
}
.remark-code, .remark-inline-code { font-family: 'Ubuntu Mono'; }
/* Two-column layout */
.left-column {
color: #777;
width: 20%;
height: 92%;
float: left;
}
.left-column h2:last-of-type, .left-column h3:last-child {
color: #000;
}
.right-column {
width: 75%;
float: right;
padding-top: 1em;
}
/* Two-column inside*/
.left-column-inside {
width: 50%;
float: left;
}
.right-column-inside {
width: 50%;
float: right;
}
</style>
</head>
<body>
<textarea id="source">
class: center, middle, inverse
# Varnish: Lidando com milhares de requisições
## Women Techmakers
### Rio, 08/07/2016
---
layout: false
.left-column[
## Quem sou eu
]
.right-column[
.right[![Euzitcha](img/euzitcha.jpeg)]
### .right[Thaíssa Falbo]
### .right[SysAdmin @ Globo.com]
### .right[Estudante de Engenharia da Computação @ PUC-Rio]
### .right[[www.thaissa.eng.br](http://www.thaissa.eng.br)]
]
---
# Site com NGINX
.center[![1](img/1.jpeg)]
---
# Muitos usuários acessando! 😱😱😱
.center[![2](img/2.jpeg)]
---
# Site com NGINX+Varnish
.center[![3](img/3.jpeg)]
---
# Varnish
## Permite guardar conteúdo estático em memória, economizando os servidores em que a aplicação está rodando (backend)
.center[![Varnish Cache](img/varnish-cache.png)]
---
layout: false
# Hit ou Miss?
.left-column-inside[
### Hit: Tenho o conteúdo no cache (não preciso ir no BackEnd)
.center[![Hit](img/hit.jpeg)]
]
.right-column-inside[
### Miss: Não tenho o conteúdo em memória (vou buscar no BackEnd)
.center[![Miss](img/miss.jpeg)]
]
---
# Status Code
## Cada request é entregue com um status code!
### 1xx : Aguenta aí! 🤔
### 2xx : Aqui está! 😀
### 3xx : Vai embora! 👋
### 4xx : VC fez alguma coisa de errado! 🙄
### 5xx : EU fiz alguma coisa de errado! 😰
---
# Problemas!!! OMG!
.center[![4](img/4.jpeg)]
---
## Estamos demorando para detectar os erros (principalmente 503)
## Não sabemos exatamente qual objeto estava gerando estes erros
## Poderíamos detectar o problema antes de um incidente grave!
# Precisamos monitorar a qualidade do conteúdo entregue! 😤
---
# Monitoração: StatsD + Graphite + Grafana + Zabbix
.center[![5](img/5.jpeg)]
---
# Outros problemas
## Os servidores Varnish eram instalados na mão
## Resolvemos isso usando Puppet e Foreman
### Puppet: automatiza o deploy dos servidores seguindo classes que os configuram
### Foreman: gerencia os servidores (definir classes puppet, grupos de servidores que tem configuração em comum)
---
# Próximos passos
## Melhorar a configuração de certificados HTTPS
## Melhorar a amostra de métricas que são enviadas para o Graphite
---
class: center, middle, inverse
# Dúvidas ???
</textarea>
<script src="https://gnab.github.io/remark/downloads/remark-latest.min.js">
</script>
<script>
var slideshow = remark.create();
</script>
</body>
</html>