Is your DNS round-robin setup really round?
Just test!
Take this simple script and test on your own, with python 2 or 3.
Options:
usage: dns_round_robin_test.py [-h] [-c COUNT] [-d DELAY] name positional arguments: name DNS name to test optional arguments: -h, --help show this help message and exit -c COUNT, --count COUNT set total count of resolves -d DELAY, --delay DELAY set delay between resolves in 1/100s of second
Sample run command:
$ ./dns_round_robin_test.py google.com -c 20
Sample output:
================ google.com ================ 20/20 188.43.66.170 [ ||||| 25.0%] 5 188.43.66.187 [ ||||| 25.0%] 5 188.43.66.174 [ |||||||||| 50.0%] 10
Поставить сервер непрерывной интеграции Jenkins на Ubuntu
Дано:
Ubuntu 12.04 LTS (серверная или настольная редакция).
Надо:*
Установить сервер непрерывной интеграции Jenkins.
Решение:
Всё очень просто (см. http://pkg.jenkins-ci.org/debian/):
- Добавляем ключ репозитория Jenkins:
wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
- Добавляем сам репозиторий:
echo "deb http://pkg.jenkins-ci.org/debian binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list
- Обновляем информацию о доступности пакетов программ с учетом нового репозитория:
sudo apt-get update
- Устанавливаем нужное:
sudo apt-get install jenkins jenkins-cli ant openjdk-6-jdk
Сразу после установки у вас будет доступен сервер Jenkins по адресу http://localhost:8080/ .
Замечания:
Дополнительно установлен интерфейс командной строки для управления Jenkins. Его опции доступны по адресу http://localhost:8080/cli .
Пакеты ant и openjdk-6-jdk нужны для непосредственной работы заданий тестирования и сборки, самому Jenkins они не требуются.
Для начала работы желательно сходить в Центр управления плагинами и обновлениями: http://localhost:8080/pluginManager/ .
* Да, я тут лукавлю, ибо цель не в самом сервере НИ, а в том, что он умеет делать, но не всё сразу 😉
2 сервера на Python
Интересные открытия ждут новичков при исследовании функциональности Python интерпретатора и состава библиотек.
SMTP сервер для разработчика
Команда:
python -m smtpd -c DebuggingServer -n
Что делает:
Выводит всё, что приходит по стандартному smtp протоколу на стандартный вывод. Можете перенаправить в файл, можете смотреть так, в терминале. По умолчанию ожидает соединения на порт 8025 (стандартный 25 порт использовать без повышения привилегий нельзя). Для дополнительных опций и возможностей смотрите документацию.
Веб сервер для статики или передачи файлов
Бывает так, что надо посмотреть что-то по http протоколу, т.к. политики браузера не разрешают это через file://. А бывает, что надо что-то большое передать по сети коллеге, что выкладывать на друпбоксы долго, а расшаривать папки муторно (или запрещено файерволами).
Команда:
python -m SimpleHTTPServer
Что делает:
Даёт доступ по http ко всем файлам в текущем каталоге. index.html работает, список файлов при его отсутствии выдаёт. По умолчанию использует 8000 порт (стандартный 80 порт использовать без повышения привилегий нельзя). На стандартный вывод пишутся логи запросов, что также удобно. Для дополнительных опций и возможностей смотрите документацию.
Минута славы
Не минута, конечно, а несколько часов, но всё же не на долго. Это было то время, когда несколько картинок с сайта попали на главную страницу очень популярной теметической соцсети. Это был великий и ужасный хабраэффект!
Так, что же ждёт ресурс проникший на главную Хабра? Готовьтесь к отражению запросов до 1 000 одновременно обращающихся к вам пользователей:
Мда, слава недолговечна…
PS: Очень небольшой VPS выдержал всё это весьма легко. Благодаря nginx, разумеется. Память, диск и процессор практически вообще ничего не почуяли. Ну да, от нескольких статичных картинок-то 🙂 Тем не менее, я как-нить расскажу, как строил свой веб-стек для работы: nginx + fastcgi + php.
Устанавливаем Windows 7 Beta
Я пользуюсь системой Ubuntu Linux. Мне нарвится. Но прогресс товарищей из Редмонда не может не радовать. Попробую посмотреть на Windows 7 Beta.