Как стать автором
Обновить
4
Карма
0
Рейтинг
Vlad Naboichenko @Spitekh

Пользователь

  • Подписчики
  • Подписки 1

Система управления Ansible

Блог компании Selectel
Tutorial


Представьте себе, что вам нужно управлять парком серверов, расположенных к тому же в разных географических точках. Каждый из этих серверов требует настройки, регулярного обновления и мониторинга. Конечно, для решения этих задач можно воспользоваться самым простым способом: подключиться к каждому серверу по ssh и внести необходимые изменения. При всей своей простоте этот способ сопряжен с некоторыми трудностями: он чрезвычайно трудоемок, а на выполнение однообразных операций уходит очень много времени.

Чтобы упростить процессы настройки и конфигурирования серверов, можно также писать shell-скрипты. Но и этот способ вряд ли можно назвать совершенным. Скрипты нужно постоянно изменять, подстраивая их под каждую новую задачу. При их написании необходимо учитывать различие операционных систем и версий. Не будем забывать и о том, что отладка скриптов отнимает много усилий и забирает немало времени.

Оптимальным вариантом решения описанных проблем является внедрение системы удаленного управления конфигурацией. В таких системах достаточно лишь описать нужное состояние управляемого узла. Система должна сама определить, что нужно сделать для достижения этого состояния, и осуществит все необходимые действия.

Со всеми сложностями, о которых идет речь выше, мы хорошо знакомы на собственном опыте: у нас имеется 10 точек присутствия с NS-серверами, расположенные в разных точках планеты. На них необходимо регулярно вносить различные изменения: обновлять операционную систему, устанавливать и обновлять различное ПО, изменять конфигурцию и т.п. Мы решили все эти операции автоматизировать и внедрить систему удаленного управления конфигурациями. Изучив имеющиеся решения, мы остановили свой выбор на Ansible.

В этой статье мы бы хотели подробно рассказать о его возможностях этого инструмента управления конфигурациями и поделиться собственным опытом его использования.
Читать дальше →
Всего голосов 50: ↑47 и ↓3 +44
Просмотры 194K
Комментарии 49

6 шагов загрузки Linux на пальцах

Настройка Linux *
Перевод
imageНажмите кнопку включения питания на вашем системнике, и спустя несколько секунд вы увидите окно входа в систему.

Посмею предположить, что каждого интересовало хоть когда-либо то, что происходит за занавесом заставок и загрузочных экранов с момента включения питания компьютера к моменту, когда предлагается войти в систему.

Я предлагаю вам познакомиться со следующими уровнями типичной загрузки Linux:
Читать дальше →
Всего голосов 195: ↑177 и ↓18 +159
Просмотры 163K
Комментарии 87

Настраиваем NGINX для мультиязычных сайтов

Блог компании ruVPN.net Поисковые технологии *
Tutorial

Уже давно считается хорошим тоном отдавать контент сайта на языке, предпочитаемом пользователем. Некоторые сервера определяют язык по месту нахождения пользователя с помощью модулей геолокации, остальные берут настройки браузера. Языковые предпочтения пользователя часто сохраняются в cookie, и затем используются при повторном визите.

Какой метод определения языка пользователя подходит лучше – вопрос достаточно спорный. Мой личный ранг значимости языковой информации (в порядке убывания): cookie, настройки браузера, регион.

Для поисковых систем, социальных сетей и прочих агрегаторов информации важно знать, на каком языке должна быть проиндексирована или загружена страница, например в качестве миниатюры в хронику фейсбука. Это значит, что ссылка должна однозначно указывать на язык.

Распространенные варианты кодирования языковой информации о ресурсе следующие:
  • каждая языковая версия на отдельном субдомене, например en.example.com, ru.example.com
  • язык ресурса указывается в префиксе URI, например example.com/en/, example.com/ru
  • язык ресурса указывается в GET параметре, например example.com?lang=en, example.com?lang=ru

Первый вариант наиболее радикальный, каждая языковая версия сайта рассматривается как отдельный ресурс. Могут возникнуть сложности с SSL сертификатом, необходимо заранее предусмотреть все возможные варианты в SAN DNS Host Name, или заказать сертификат с маской, например *.example.com.

Второй вариант наиболее практичный, выбор языка входит в URI, значит, не будет проблем с индексацией и копированием ссылки.

Третий вариант выглядит менее привычно, требует дополнительной логики при добавлении остальных GET параметров и может смутить пользователя при копировании ссылки. Не самый лучший вариант для публичных ссылок.
image
Я расскажу о реализации второго варианта на базе сервера NGINX. При минимальных изменениях можно применить описанные настройки и для первого варианта.
Читать дальше →
Всего голосов 55: ↑50 и ↓5 +45
Просмотры 24K
Комментарии 22

Перевод выделенного текста с любого языка на русский

Настройка Linux *
Хочу поделиться с вами своим лайфхаком.
В первую очередь он предназначен для людей, которым лень лезть в словарь всякий раз, когда они встречают незнакомое иностранное слово в тексте.

Я хочу рассказать, как получить перевод выделенного текста в виде оповещения рабочего стола.

Читать дальше →
Всего голосов 116: ↑113 и ↓3 +110
Просмотры 56K
Комментарии 89

DNS сервер BIND (теория)

Сетевые технологии *
Основная цель DNS — это отображение доменных имен в IP адреса и наоборот — IP в DNS. В статье я рассмотрю работу DNS сервера BIND (Berkeley Internet Name Domain, ранее: Berkeley Internet Name Daemon), как сАмого (не побоюсь этого слова) распространенного. BIND входит в состав любого дистрибутива UNIX. Основу BIND составляет демон named, который для своей работы использует порт UDP/53 и для некоторых запросов TCP/53.

Основные понятия Domain Name System


Исторически, до появления доменной системы имен роль инструмента разрешения символьных имен в IP выполнял файл /etc/hosts, который и в настоящее время играет далеко не последнюю роль в данном деле. Но с ростом количества хостов в глобальной сети, отслеживать и обслуживать базу имен на всех хостах стало нереально затруднительно. В результате придумали DNS, представляющую собой иерархическую, распределенную систему доменных зон. Давайте рассмотрим структуру Системы Доменных Имён на иллюстрации:
Читать дальше →
Всего голосов 110: ↑102 и ↓8 +94
Просмотры 416K
Комментарии 24

Список профессий для иммиграции в Канаду

Программирование *
Утверждён новый список профессий, подходящих для программы профессиональной иммиграции в Канаду.

Вкратце: программисты вошли!
Читать дальше →
Всего голосов 71: ↑35 и ↓36 -1
Просмотры 59K
Комментарии 71

Чем может грозить точка в конце доменного имени

Информационная безопасность *Разработка веб-сайтов *
Существует такое понятие, как корневой домен, соответственно, в конце каждого домена есть точка. Возможно, вы и не подозреваете, что ваш сайт доступен по доменному имени с точкой в конце (domain.zone.), так как браузеры позволяют обращаться к сайтам, как с точкой в конце домена, так и без неё.
Читать дальше →
Всего голосов 150: ↑130 и ↓20 +110
Просмотры 95K
Комментарии 83

SMS-уведомления от nagios средствами clickatell.com и монитор сайтов на bash

Системное администрирование *
Из песочницы
image

Добрый день, товарищи


Как и всем кто имеет дело с удалёнными системами, мне понадобилось мониторить множество машин и сервисов на них. Пролистав описания и мануалы нескольких программ, остановился на Nagios. Множество статей и примеров по нему и очень богатая настройка оказалось то что нужно. И вот решил поделиться несколькими моментами в реализации и конфигурирование самописного плагина, написанного на Bash и системы оповещения по sms с использованием clickatell.com.
Читать дальше →
Всего голосов 14: ↑11 и ↓3 +8
Просмотры 13K
Комментарии 5

Цукерберг позовет нас жить в Соединенные Штаты Америки

Социальные сети и сообщества


На данный момент в США проживает более 11 миллионов иммигрантов, и их число постоянно растет. При этом часть этих людей гораздо талантливее и умнее коренных граждан. Но реализовать свои возможности в полной мере они не могут — отсутствие гражданства закрывает большинство перспектив.

Марк Цукерберг, Эрик Шмидт, Рейд Хоффман и еще несколько руководителей крупных Интернет-компаний решили, что они должны и могут решить эту проблему. И вот, наряду с Пиратской партией Швеции они решили создать свое политическое движение Fwd.us («forward us»).
Читать дальше →
Всего голосов 75: ↑56 и ↓19 +37
Просмотры 57K
Комментарии 170

Довольно интересная замена стандартного терминала

*nix *


Сообщество разработчиков рабочей среды Enlightenment выпустили в свет новую версию своего эмулятора терминала — Terminology. Подробности под катом
Читать дальше →
Всего голосов 56: ↑40 и ↓16 +24
Просмотры 35K
Комментарии 56

Оперативная реакция на DDoS-атаки

Nginx *
Из песочницы
Один из ресурсов, за которым я присматриваю, вдруг стал неожиданно популярным как у хороших пользователей, так и у плохих. Мощное, в общем-то, железо перестало справляться с нагрузкой. Софт на сервере самый обычный — Linux,Nginx,PHP-FPM(+APC),MySQL, версии — самые последние. На сайтах крутится Drupal и phpBB. Оптимизация на уровне софта (memcached, индексы в базе, где их не хватало) чуть помогла, но кардинально проблему не решила. А проблема — большое количество запросов, к статике, динамике и особенно базе. Поставил следующие лимиты в Nginx:

на соединения
limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn perip 100;

и скорость запросов на динамику (fastcgi_pass на php-fpm)
limit_req_zone $binary_remote_addr zone=dynamic:10m rate=2r/s;
limit_req zone=dynamic burst=10 nodelay;

Сильно полегчало, по логам видно, что в первую зону никто не попадает, зато вторая отрабатывает по полной.

Но плохиши продолжали долбить, и захотелось их отбрасывать раньше — на уровне фаервола, и надолго.

Сначала сам парсил логи, и особо настырных добавлял через iptables в баню. Потом парсил уже по крону каждые 5 минут. Пробовал fail2ban. Когда понял, что плохишей стало очень много, перенёс их в ipset ip hash.

Почти всё хорошо стало, но есть неприятные моменты:
— парсинг/сортировка логов тоже приличное (процессорное) время отнимает
— сервер тупит, если началась новая волна между соседними разборками (логов)

Нужно было придумать как быстро добавлять нарушителей в черный список. Сначала была идея написать/дописать модуль к Nginx + демон, который будет ipset-ы обновлять. Можно и без демона, но тогда придётся запускать Nginx от рута, что не есть красиво. Написать это реально, но понял, что нет столько времени. Ничего похожего не нашёл (может плохо искал?), и придумал вот такой алгоритм.

При привышении лимита, Nginx выбрасывает 503-юю ошибку Service Temporarily Unavailable. Вот я решил на неё и прицепиться!

Для каждого location создаём свою страничку с ошибкой
error_page 503 =429 @blacklist;

И соответствующий именованный location
location @blacklist {
    fastcgi_pass    localhost:1234;
    fastcgi_param   SCRIPT_FILENAME    /data/web/cgi/blacklist.sh;
    include         fastcgi_params;
}

Дальше интересней.
Нам нужна поддержка CGI-скриптов. Ставим, настраиваем, запускаем spawn-fcgi и fcgiwrap. У меня уже было готовое для collectd.

Сам CGI-скрипт
Читать дальше →
Всего голосов 57: ↑50 и ↓7 +43
Просмотры 50K
Комментарии 50

Бесплатные семинары для IT-студентов

Блог компании КРОК
С 2008 года мы проводим курсы для студентов, в основном, МГТУ им. Баумана, МАИ и МИИТа. Сейчас есть и бесплатные семинары, куда может прийти любой желающий, просто показав студенческий билет.

Каждый семинар — это короткий и ёмкий рассказ про то, что делать и как разбираться с данной технологией. Задача — показать, как делать первые шаги в конкретном направлении и предупредить от частых ошибок. Проще говоря — снять порог входа в предметную область. Длительность — полтора-два часа, в конце выдаётся бумажка, которую, возможно, оценит ваш преподаватель или будущий работодатель.

Ниже анонсы ближайших мероприятий. Коротко — вот основные:
  • Архитектура дата-центра
  • Серверные технологии в GNU/Linux
  • Технологии виртуализации
  • Командная разработка ПО
  • Построение нагруженных параллельных систем (HPC)
  • Открытое ПО в комплексных IT-проектах
  • Кто такой ПМ, зачем он нужен и чем отличается от ведущего программиста проекта.

Ну и до кучи — обзор решений для построения центров обработки вызовов на базе продуктов Avaya.

Теперь детали по каждому проекту.
Читать дальше →
Всего голосов 17: ↑17 и ↓0 +17
Просмотры 20K
Комментарии 11

Отчет о седьмой киевской хабравстрече

Блог компании МУК Разработка мобильных приложений *
В субботу состоялась Седьмая Киевская Хабравстреча. Под катом немного о мероприятии, видео, слайдкасты докладов.

image
Читать дальше →
Всего голосов 59: ↑48 и ↓11 +37
Просмотры 18K
Комментарии 12

Я не знаю ООП

Программирование *ООП *
Я не умею программировать на объектно-ориентированных языках. Не научился. После 5 лет промышленного программирования на Java я всё ещё не знаю, как создать хорошую систему в объектно-ориентированном стиле. Просто не понимаю.

Я пытался научиться, честно. Я изучал паттерны, читал код open source проектов, пытался строить в голове стройные концепции, но так и не понял принципы создания качественных объектно-ориентированных программ. Возможно кто-то другой их понял, но не я.

И вот несколько вещей, которые вызывают у меня непонимание.
Читать дальше →
Всего голосов 412: ↑309 и ↓103 +206
Просмотры 528K
Комментарии 870

Опыт спасения кластера Cassandra

NoSQL *
Из песочницы
Мне довелось спасать ушедший в небытие кластер Cassandra. Это был интересный опыт, которым я бы хотел поделиться, ведь в штатной ситуации большинство баз данных работает одинаково, а вот уровень стресса при падении может отличаться очень сильно.

Читать дальше →
Всего голосов 77: ↑75 и ↓2 +73
Просмотры 6.8K
Комментарии 23

Проксируем и спасаем

Nginx *
Tutorial
1 ноября мир изменился и больше никогда не будет таким же как прежде. В российском интернете появилась цензура — общеизвестный уже список запрещенных сайтов. Для одних это важнейшая политическая тема, для других повод изучить технологии шифрования и защиты анонимности, для третьих просто очередной странный закон, который приходится исполнять на бегу. Мы же поговорим о технологическом аспекте.

В данном пособии мы узнаем как быстро и просто сделать рабочее зеркало любого сайта, что позволяет сменить IP и назначить любое доменное имя. Мы даже попробуем спрятать домен в url, после чего можно сохранить локально полную копию сайта. Все упражнения можно сделать на любом виртуальном сервере — лично я использую хостинг Хетцнер и OS Debian. И конечно мы будем использовать лучший веб-сервер всех времен и народов — NGINX!

К этому абзацу пытливый читатель уже приобрел и настроил какой нибудь выделенный сервер или просто запустил Linux на старом компьютере под столом, а так же запустил Nginx последней версии со страничкой «Save me now».
Cкорее кого-нибудь спасем
Всего голосов 73: ↑68 и ↓5 +63
Просмотры 132K
Комментарии 25

Автомасштабирование в Amazon Web Services: EC2 + CloudWatch

Блог компании EPAM Amazon Web Services *
Добрый день!

Настройка автомасштабирования на основе Amazon EC2 это очень интересная задача, которую я когда-то решил и теперь применяю на практике. Существует много возможных вариантов, но я рассмотрю самый простой из них: горизонтальное масштабирование одного сервера под одним балансировщиком.

В качестве инициатора маштабирования будет выступать Cloud Watch. Метрикой будет наша кастомная метрика Load Average.

Итак, начнём-с. Первое, как тру линуксоид, я советую и рекомендую использовать в настройке автоскейлинга утилиты командной строки (Command Line Tools — CLT) по следующим причинам:
  • из CLT можно сделать всё;
  • удобнее копипастить в консоль, чем кликать мышкой.

Читать дальше →
Всего голосов 21: ↑20 и ↓1 +19
Просмотры 14K
Комментарии 17

ELB vs Nginx

Блог компании EPAM Amazon Web Services *
Ещё раз привет!

У меня появилась шикарная задача для исследования, и своими результатами я хочу поделиться с сообществом. Смысл задачи состоит в том, чтоб определить лучший вариант деплоя NGINX в AWS EC2/VPC. Лучший он должен быть с многих сторон, особенно со стороны высоконадёжности (High Availability) и скорости ответа. Особенно важным фактором так же является быстрота обработки SSL запросов, поэтому были проведены тесты на SSL-производительность.

Все инстансы находятся в одной сети VPC, ELB тоже поднимается в этой же сети.

Было рассмотрено несколько вариаций деплоймента, но выбор пал на 2 основные конфигурации, тесты над которыми я и провёл.

Конфигурация 1. ELB



Далее приводятся описания и результаты тестов
Всего голосов 13: ↑9 и ↓4 +5
Просмотры 9.2K
Комментарии 17

NoSQL базы данных: понимаем суть

Высокая производительность *NoSQL *Распределённые системы *
Из песочницы
В последнее время термин “NoSQL” стал очень модным и популярным, активно развиваются и продвигаются всевозможные программные решения под этой вывеской. Синонимом NoSQL стали огромные объемы данных, линейная масштабируемость, кластеры, отказоустойчивость, нереляционность. Однако, мало у кого есть четкое понимание, что же такое NoSQL хранилища, как появился этот термин и какими общими характеристиками они обладают. Попробуем устранить этот пробел.


Читать дальше →
Всего голосов 137: ↑133 и ↓4 +129
Просмотры 469K
Комментарии 75

vmd — консольное приложение для скачивания музыки из vk.com

Я пиарюсь
У вас в vk.com есть любимые музыкальных группы или друзья, с которыми ваши музыкальные вкусы совпадают? У меня да. И хотелось иметь актуальную локальную копию музыки этих групп и друзей, чтобы слушать её, например в машине, телефоне, плейере или где-нибудь ещё. Так родилась идея создания консольного open source приложения vmd (vkontakte music downloader), которое я обещал выложить на github вот в этом посте. Программа мультиплатформенная работает под linux, windows и mac os x. Скачать бинарные сборки под эти ОС можно скачать на домашней странице проекта. Под хабракатом рассказано, как vmd использовать и некоторые технические подробности.
Читать дальше →
Всего голосов 57: ↑41 и ↓16 +25
Просмотры 8.7K
Комментарии 59

Информация

В рейтинге
Не участвует
Откуда
Харьков, Харьковская обл., Украина
Дата рождения
Зарегистрирован
Активность