— Интернет-проект, проблемы роста и развития: ITIL + DevOps.
— Уровни управления серверной инфраструктурой — bootstrap, configuration, deploy.
— Cистемы управления серверной инфраструктурой на примере Chef и Ansible, плюсы и минусы.
— Обратная связь от приложений, Graylog2.
— Как мы деплоим наш геокластер — примеры рецептов Chef и Ansible playbooks.
— Существующие проблемы и планы на будущее.
В своём выступлении я расскажу, как мы развёртываем API 2ГИС и 2ГИС-Онлайн на серверы в Новосибирске, Москве и Амстердаме.
Особый интерес представляет API 2ГИС, так как этот продукт является довольно сложным приложением, с более чем двумя десятками компонентов и приложений: Nginx, Yii, С++, Python, Lua, PostgreSQL, Redis, Node.js и прочее.
2. О чём речь
• Проблемы роста и развития
• Уровни управления инфраструктурой
• Chef и Ansible
• Graylog 2 — как инструмент обратной связи
• Деплой геокластера
• Проблемы и планы на будущее
2
3. Что имеем
• Новосибирск, Москва, Дронтен
• 20 серверов на каждый ДЦ
• 300 человек + 4 администратора
• 30 млн. пользователей
• 1 500 rps на фронтенд в каждый ДЦ
3
18. Плюсы
• Конфигурация как код
• Cookbooks (playbook) — сразу и документация
• Простота, понятность, могущество
• Целостное видение инфраструктуры
• Единая среда development, test и production
18
19. Минусы
• Надо аккуратно писать рецепты
• Агенты, демоны, предварительная настройка
• PULL / PUSH
• Дирижёр для дирижёра
19
20. Graylog 2 — дополняет Chef
• Информация о состоянии системы
• Всё в одном месте от всех компонентов
• Поиск, индексация, агрегация и графики
20
22. p
a
c
k
a
g
e
s = v
a
l
u
e
_
f
o
r
_
p
l
a
t
f
o
r
m
( [
"
r
e
d
h
a
t
"
, "
c
e
n
t
o
s
"
, "
s
c
i
e
n
t
i
f
i
c
"
, "
a
m
a
z
o
n
"
, "
o
r
a
c
l
e
"
] =
> {
"
d
e
f
a
u
l
t
" =
> %
w
(
r
u
b
y
-
d
e
v
e
l c
u
r
l
-
d
e
v
e
l
) }
,
[
"
u
b
u
n
t
u
"
, "
d
e
b
i
a
n
"
] =
> {
"
d
e
f
a
u
l
t
" =
> %
w
(
r
u
b
y
-
d
e
v l
i
b
c
u
r
l
4
-
g
n
u
t
l
s
-
d
e
v
) } )
p
a
c
k
a
g
e
s
.
e
a
c
h d
o |
d
e
v
p
k
g
|
p
a
c
k
a
g
e d
e
v
p
k
g
e
n
d
g
e
m
_
p
a
c
k
a
g
e '
r
a
k
e
'
g
e
m
_
p
a
c
k
a
g
e '
p
a
s
s
e
n
g
e
r
' d
o
a
c
t
i
o
n :
i
n
s
t
a
l
l
v
e
r
s
i
o
n n
o
d
e
[
"
n
g
i
n
x
"
]
[
"
p
a
s
s
e
n
g
e
r
"
]
[
"
v
e
r
s
i
o
n
"
]
g
e
m
_
b
i
n
a
r
y n
o
d
e
[
"
n
g
i
n
x
"
]
[
"
p
a
s
s
e
n
g
e
r
"
]
[
"
g
e
m
_
b
i
n
a
r
y
"
] i
f n
o
d
e
[
"
n
g
i
n
x
"
]
[
"
p
a
s
s
e
n
g
e
r
"
]
[
"
g
e
m
_
b
i
n
a
r
y
"
]
e
n
d
0
1
.
0
2
.
0
3
.
0
4
.
0
5
.
0
6
.
0
7
.
0
8
.
0
9
.
1
0
.
1
1
.
1
2
.
1
3
.
1
4
.
1
5
.
22
23. - h
o
s
t
s
: s
u
p
p
a
l
l
t
a
s
k
s
:
- n
a
m
e
: i
n
s
t
a
l
l
i
n
g l
i
b
r
a
b
b
i
t
m
q
0
a
p
t
: p
k
g
=
l
i
b
r
a
b
b
i
t
m
q
0 s
t
a
t
e
=
i
n
s
t
a
l
l
e
d f
o
r
c
e
=
y
e
s
- n
a
m
e
: i
n
s
t
a
l
l
i
n
g p
h
p
5
-
a
m
q
p
a
p
t
: p
k
g
=
p
h
p
5
-
a
m
q
p s
t
a
t
e
=
i
n
s
t
a
l
l
e
d f
o
r
c
e
=
y
e
s
- n
a
m
e
: r
e
s
t
a
r
t
i
n
g p
h
p
s
e
r
v
i
c
e
: n
a
m
e
=
p
h
p
5
-
f
p
m s
t
a
t
e
=
r
e
s
t
a
r
t
e
d
23
27. Будущее
• Деплоим приложение, а не инфраструктуру (Heroku)
• Private Clouds, автобалансировка нагрузки, сервер сценариев
• Одна кнопка и всё работает
• Облака всё
27