А гентушники у меня во френдах есть :)?
May. 17th, 2011 04:23 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Требуется помощь зала :) На собеседовании задали вот такие вопросы, даже не знаю, что им и ответить по-серьезному:
1. Какие линуксовые ядерные патчи вы бы посоветовали для высоконагруженного Веб-сервера?
2. Как бы вы организовали контроль версий веб-приложений на Gentoo/PHP для кластера из 500+ узлов, при условии, что на них устанавливается один и тот же код. Как бы вы организавали обновление ОС в таких условиях - локальная или удаленная сборка, перезагрузка узлов которые уже используются в продакшене. Как бы вы спланировали обновления PHP в таких условиях? Объясните ваш выбор.
3. Предоставьте дизайн системы, которая бы позволяла на основе Apache access.log сделать обзор, какие страницы были посещены с определенного IP адреса. Система должна маштабироваться для 500+ узлового веб-кластера. Предоставьте ваши конфигурационные файлы/скрипты и объясните ваше решение и насколько оно маштабируемо.
4. Предоставьте скрипт бекапа базы MySQL, без ее остановки. Размер данных 100+ Гб и в нее постоянно ведется запись, так что приостановка соединений/записи даже на 0.1сек невозможна.
5. Предоставьте скрипт, который изменяет таблицу роутинга таким образом, что весь исходящий трафик с адреса 192.168.10.15 уходит через гейт 192.168.10.254, а весь остальной - через 10.0.0.254.
6. Как бы вы организовали устойчивый к падениям load balancer, способный обрабатывать поток в 500-1000Mbit пакетов SYN/ACK/FIN. Серверы распологаются в разных подсетях. Используйте OpenSource решения. Объясните, насколько маштабируемо такое решение.
1. Какие линуксовые ядерные патчи вы бы посоветовали для высоконагруженного Веб-сервера?
2. Как бы вы организовали контроль версий веб-приложений на Gentoo/PHP для кластера из 500+ узлов, при условии, что на них устанавливается один и тот же код. Как бы вы организавали обновление ОС в таких условиях - локальная или удаленная сборка, перезагрузка узлов которые уже используются в продакшене. Как бы вы спланировали обновления PHP в таких условиях? Объясните ваш выбор.
3. Предоставьте дизайн системы, которая бы позволяла на основе Apache access.log сделать обзор, какие страницы были посещены с определенного IP адреса. Система должна маштабироваться для 500+ узлового веб-кластера. Предоставьте ваши конфигурационные файлы/скрипты и объясните ваше решение и насколько оно маштабируемо.
4. Предоставьте скрипт бекапа базы MySQL, без ее остановки. Размер данных 100+ Гб и в нее постоянно ведется запись, так что приостановка соединений/записи даже на 0.1сек невозможна.
5. Предоставьте скрипт, который изменяет таблицу роутинга таким образом, что весь исходящий трафик с адреса 192.168.10.15 уходит через гейт 192.168.10.254, а весь остальной - через 10.0.0.254.
6. Как бы вы организовали устойчивый к падениям load balancer, способный обрабатывать поток в 500-1000Mbit пакетов SYN/ACK/FIN. Серверы распологаются в разных подсетях. Используйте OpenSource решения. Объясните, насколько маштабируемо такое решение.
no subject
Date: 2011-05-17 06:43 pm (UTC)2. опыта на клайстерах у меня нет, но можно что-нибудь найти на проприитарном рынке для такого решения.
3. опять же из своего опыта ничего посоветовать не могу. Вообще вопросы из разряда:
-вы работали в хайлоаде с 500+ серверами ?
-нет.
-вопросов больше не имею.
а если серьезно, то это задача системного архитектора - реализовать маштабируемый программный продукт. Если админ будет делать на коленке, то можно тупо пройтись удаленно по ссш грепом аля ssh user@host -p pass "grep page.html /var/log/apache/access.log | grep ip | wc -l" просуммировав все эти значения мы получим что хотим. Может есть и готовые решения, но если ты в этом не работал, то врядли знаешь об этом.
пакетный менеджер в генту: emerge
no subject
Date: 2011-05-17 06:51 pm (UTC)Готовые решения почти все коммерческие, да. Splunk вот тчо-то подобное делает, но для логов вообще, без анализа данных. Хотя, можно плагин написать.
А emerge не только для сборки используется? Т.е. можно получить какой-то архив/пакет, которые раскидать по машинам и поставить? Или сказать всем машинам обновить его из репозитария?
no subject
Date: 2011-05-17 09:03 pm (UTC)Алсо, если машины одинаковые то можно собрать бинарник, который потом можно раскидать по сети. Для оных целей существует пакетик quickpkg и нужные переменные для make.conf. Чуть более подробный процесс описания видел, например тут. Там же и описывается процесс забирания готового бинарника емерджем.