25
Системный администратор VKontakte. Как? Кирюшкин Антон – старший системный администратор Vkontakte

Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)

  • Upload
    ontico

  • View
    331

  • Download
    4

Embed Size (px)

Citation preview

Page 1: Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)

Системный администратор VKontakte. Как?

Кирюшкин Антон – старший

системный администратор Vkontakte

Page 2: Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)

План доклада• Быстрое распространение файлов• Быстрое выполнение команд• Контроль версий конфигурационных файлов• Быстрое обновление исходных кодов• Доступ на серверы• Хранение алертов• Ваши вопросы

Page 3: Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)

Масштабы VKontakte

• Более 35 тысяч серверов• Менее 10 системных администраторов• Более 2Тбит внешнего трафика

Page 4: Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)

Все технологии открыты

• Все технологии есть в открытом доступе• Ссылки на места дислокации в конце презентации

Page 5: Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)

Быстрое распространение файлов

Page 6: Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)

Способы распространения файлов• почта/диски/флэшки• ssh• rsync• http• torrent• gossip replication

Page 7: Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)

Метод VK – gossip replication• Быстро – распределенное копирование 70 мегабайт на > 10000 серверов за 20

секунд.

• Гибко – возможность раскидывать неограниченное число файлов

• Молодёжно (шутка)

• Отказоустойчиво – копирование файла не зависит от какого-то конкретного сервера

• Атомарно – возможность распространять append в бинлог

Page 8: Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)

Скорость копирования copyfast• Copyfast-server знает о каждом copyfast-engine

• Каждый copyfast-engine знает трех соседей из ближнего и дальнего порядка

• Порядок близости определяется топологией сети

• Топология сети определяется конфигурационным файлом

Page 9: Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)

Гибкость распространения файлов

• Бинлоги и распространение их «хвоста»

• Бинарные файлы или архивы, распространяемые версиями

Page 10: Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)

Быстрое выполнение команд

Page 11: Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)

Copyexec как верный помощник• Движок в двух лицах• Транзакционность• Независимый от интерпретатора• Поддержка масок для распределения команд между

группами серверов• Неизбежность выполнения транзакции• Точки синхронизации

Page 12: Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)

Вечные транзакции в copyexec

• export COLUMNS= ; yes | ./fix-script.sh

Page 13: Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)

Copyexec и контроль версий файлов• Подписываем новый файл версией на мастере• Распространяем файл через Манифест• Распространяем транзакцию на применение новой версии

конфигурационного файла• Записываем на каждом сервере статус и обновляем

список применённых версий каждого файла

Page 14: Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)

Быстрое обновление исходных кодов

Page 15: Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)

Обновление исходных кодов• rsync• git• Docker• filesys-xfs-engine + copyfast

Page 16: Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)

Что такое filesys-xfs-engine• Вся структура каталогов хранится в оперативной памяти• Обновление сводится к синхронизации хвоста бинлога• Добавление файлов через memcached-интерфейс или с

помощью filesys-commit-changes• Получение файлов через memcached-интерфейс или

монтирование бинлога в папку

Page 17: Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)

Доступ на серверы

Page 18: Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)

Масштабы VKontakte

• Более 35 тысяч серверов• Менее 10 системных администраторов• Более 2Тбит трафика• Более 50 разработчиков

Page 19: Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)

Delegate – как способ безопасно выполнять команды на серверах

• Клиент-серверная архитектура• Возможность выполнять конкретную команду на

конкретных серверах• Мы не пускаем пользователя на сервер• Групповые и пользовательские права• Сетевой протокол (TODO: поддержка шифрования)• Поддержка нескольких аргументов для команд• Поддержка очередей выполнения команд

Page 20: Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)

Ограничения Delegate• Запреты должны быть реализованы в скриптах

• Отсутствие транзакций

• Лог пишется в файл, действия пользователей никак не отслеживаются

• Нельзя сделать длительные команды, например tail -f

Page 21: Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)

Сбор алертов

Page 22: Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)

Сбор алертов• Писать в файл на каждом сервере и собирать с помощью

ssh• Писать в файл в разметке и собирать по http• Собирать по snmp• Писать в СУБД, а потом делать SELECT• Писать в logs-engine, а потом делать SELECT

Page 23: Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)

Преимущества logs-engine• rpc- или mc-интерфейс для чтения и записи• Все данные доступные для чтения хранятся в памяти• На диске хранится бинлог за сутки• Можно восстановить события из бинлога• Близкий по схожести формат запросов для чтения

Page 24: Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)

Где можно найти движки• Тут можно найти движки написанные на Си:https://github.com/vk-com/kphp-kdb

• Тут можно найти Delegate:https://github.com/VKCOM/Delegate

Page 25: Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)

СпасибоЕсли у вас есть вопросы:• Вы можете успеть задать их в зале• Вы можете написать мне:- https://vk.com/swood- telegram: @swood