Как стать автором
Обновить
45
0.1

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

Отправить сообщение

IOPS — что это такое, и как его считать

Время на прочтение4 мин
Количество просмотров340K
iopsIOPS (количество операций ввода/вывода – от англ. Input/Output Operations Per Second) – один из ключевых параметров при измерении производительности систем хранения данных, жестких дисков (НЖМД), твердотельных диски (SSD) и сетевых хранилища данных (SAN).

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

Значит, для определения IOPS надо знать скорость и размер блока при операции чтения / записи. Параметр IOPS равен скорости, деленной на размер блока при выполнении операции.
Читать дальше →

Переезд проекта с SVN на Git

Время на прочтение8 мин
Количество просмотров72K
image
Много лет подряд в качестве системы контроля версий для большого количества проектов использовали только SVN. Но наступил момент, когда количество разработчиков на одном из проектов заметно увеличилось, проект уже запущен в работу, и нужно как активно разрабатывать параллельно несколько фич, так и фиксить уже имеющиеся баги в оперативном режиме. Единый trunk в SVN не позволяет этого делать, а организация бранчей в нем же превращает жизнь разработчиков в ад. Поэтому было принято решение о переезде этого проекта с SVN на Git.
Читать дальше о том, как это делается от А до Я

Удачная модель ветвления для Git

Время на прочтение10 мин
Количество просмотров1M
Перевод статьи Vincent Driessen: A successful Git branching model

В этой статье я представляю модель разработки, которую использую для всех моих проектов (как рабочих, так и частных) уже в течение года, и которая показала себя с хорошей стороны. Я давно собирался написать о ней, но до сих пор не находил свободного времени. Не буду рассказывать обо всех деталях проекта, коснусь лишь стратегии ветвления и управления релизами.



В качестве инструмента управления версиями всего исходного кода она использует Git.

Читать дальше →

Астериск под реальной нагрузкой – распределённый отказоустоичивый колл-центр на >500 операторов

Время на прочтение10 мин
Количество просмотров20K
Порядка 600 операторов в 4 странах, обрабатывающих звонки клиентов на американские (и немного на российские) номера.
Примерно 200 одновременных разговоров в пиковое время.
Примерно 15 000 звонков в день.
Возможность за несколько минут масштабировать это решение в несколько раз (по нашим прикидкам до ~1000 параллельных звонков, прежде чем начнутся проблемы).

Ну и конечно же, плотная интеграция с внутренними системами (CRM, сопровождение покупок, приоритеты операторов и клиентов и много-много других плюшек).

Кому интересно как это это работает и почему именно так — добро пожаловать
под кат.

Защита для NGINX — NAXSI

Время на прочтение3 мин
Количество просмотров38K

Что такое NAXSI ?


NAXSI = NGINX ANTI XSS & SQL INJECTION
Проще говоря, это файрвол веб-приложений (WAF) для NGINX, помогающий в защите от XSS, SQL-инъекций, CSRF, Local & Remote file inclusions.
Отличительными особенностями его являются быстрота работы и простота настройки. Это делает его хорошей альтернативой например mod_security и апачу.

Зачем нужен NAXSI ?

Очевидно, лучше всего защищаться от вышеперечисленных атак правильно написанным кодом. Но есть ситуации, когда WAF (и в частности naxsi), поможет:
  • Низкое качество кода сайта, при отсутствии возможности/ресурсов все выкинуть и переписать нормально.
  • “Закрытый” код, в котором невозможно исправить ошибки.
  • Неизвестное качество кода в важном для бизнеса участке.


Читать дальше →

Сети для самых маленьких. Часть нулевая. Планирование

Время на прочтение7 мин
Количество просмотров2.1M
Это первая статья из серии «Сети для самых маленьких». Мы с товарищем thegluck долго думали с чего начать: маршрутизация, VLAN'ы, настройка оборудования.
В итоге решили начать с вещи фундаментальной и, можно сказать, самой важной: планирование. Поскольку цикл рассчитан на совсем новичков, то и пройдём весь путь от начала до конца.

Предполагается, что вы, как минимум читали о эталонной модели OSI (то же на англ.), о стеке протоколов TCP/IP (англ.), знаете о типах существующих VLAN’ов (эту статью я настоятельно рекомендую к прочтению), о наиболее популярном сейчас port-based VLAN и о IP адресах (более подробно). Мы понимаем, что для новичков «OSI» и «TCP/IP» — это страшные слова. Но не переживайте, не для того, чтобы запугать вас, мы их используем. Это то, с чем вам придётся встречаться каждый день, поэтому в течение этого цикла мы постараемся раскрыть их смысл и отношение к реальности.

Схема сети

Начнём с постановки задачи. Есть некая фирма, занимающаяся, допустим, производством лифтов, идущих только вверх, и потому называется ООО «Лифт ми ап». Расположены они в старом здании на Арбате, и сгнившие провода, воткнутые в пожжёные и прожжёные коммутаторы времён 10Base-T не ожидают подключения новых серверов по гигабитным карточкам. Итак у них катастрофическая потребность в сетевой инфраструктуре и денег куры не клюют, что даёт вам возможность безграничного выбора. Это чудесный сон любого инженера. А вы вчера выдержали собеседование и в сложной борьбе по праву получили должность сетевого администратора. И теперь вы в ней первый и единственный в своём роде. Поздравляем! Что дальше?
Читать дальше →

Больше нет писем в папке Spam: настройка SMTP-сервера

Время на прочтение3 мин
Количество просмотров69K
Недавно мы настраивали SMTP-сервер для нашего проекта. Вопрос стоял так: что нужно сделать, чтобы письма, отправленные нашим пользователям, не попадали в папку со спамом или попадали туда как можно реже?

Было найдено несколько интересных и полезных статей на эту тему (ссылки в конце статьи), на основе которых и было всё сделано в итоге. Но получив сегодня утром очередную порцию рассылки от достаточно известных русскоязычных ресурсов и увидев, что они пренебрегают описанными правилами, я решил кратко и в одном месте собрать все действия, которых достаточно для решения проблемы. Надеюсь, что после этого количество сайтов, отправляющих почту как надо, возрастет.

Приведенные советы актуальны только если вы используете свой собственный SMTP-сервер. При использовании, например, SMTP сервера Google всё уже сделано за нас. Как правило. В любом случае рекомендую проверить (см. подразделы Как проверить?).
Читать дальше →

Создание терминальной фермы RDS с использованием технологии NLB и публикация RD Web Access на ISA Server 2006

Время на прочтение5 мин
Количество просмотров103K
Итак, мы хотим добиться балансировки нагрузки на наши терминальные сервера, их отказоустойчивость, или же хотим добавить к уже имеющемуся терминальному серверу второй для увеличения производительности сервиса. В моем примере я буду реализовывать следующую схему:

Читать дальше →

Получаем списки mac-адресов на портах управляемых свичей в Zabbix

Время на прочтение19 мин
Количество просмотров55K
В организации, где я работаю, используется довольно большое количество управляемых свичей, разнесенных по нескольким зданиям. Захотелось видеть MAC-адреса на их портах не только с помощью telnet или ssh, а прямо в веб-интерфейсе системы мониторинга Zabbix.
Читать дальше →

NOC: Комплексный подход к управлению сетью

Время на прочтение5 мин
Количество просмотров105K


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

Еще в начале 80-х комитет ISO выделил основные компоненты системы управления сетью. Модель получила название FCAPS. По версии ISO, для успешного управления сетью надо уметь управлять отказами (F), конфигурацией оборудования и сервисов (C ), собирать и обрабатывать статистику по потреблению услуг (A), оценивать производительность (P) и централизованно управлять безопасностью (S). Прошедшие три десятка лет не добавили ничего принципиально нового, и все задачи управления сетью так или иначе прыгают вокруг основных составляющих.

Коммерческие комплексы подобного рода весьма дороги и далеко не безгрешны, а среди open-source систем присутсвовал явный и откровенный пробел, что просто подталкивало на разработку своего велосипеда. В результате обобщения нашего личного опыта по созданию и эксплуатации сетей, после долгих проб и ошибок появилась система NOC
Читать дальше →

Автоматическая кросс-доменная установка высоты Iframe

Время на прочтение4 мин
Количество просмотров36K
Думаю, многие, кто сталкивался в своей работе с iframe, сталкивались и с задачей установки высоты этого самого айфрейма.

Это может быть необходимо, например, когда ты хочешь дать возможность пользователям ставить виджеты с вашего сайта на их сайт, и хочется, чтобы размер контейнера (iframe) виджета соответствовал размерам содержимого этого виджета.

В яндексе можно найти множество решений этой проблемы, но большинство из них обладают одной проблемой: они не поддерживают возможность менять размеры окна когда содержимое iframe и родительский элемент находятся на разных доменах.

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

Читать дальше →

Отмена DST для Exchange-серверов

Время на прочтение7 мин
Количество просмотров3.8K
Итак, речь пойдёт про отмену DST для пользователей почты, расположенной на серверах Exchange, а именно, про обработку календарей для сохранения правильного времени встреч и событий. Да, 30 октября уже скоро, и может показаться, что уже поздно опубликовывать подобный топик, но, во-первых, кто-то из администраторов почтовых систем мог и не задумываться ранее о необходимости подобных действий и у них ещё есть время, чтобы всё исправить, во-вторых, это не последняя отмена DST в нашем мире, а русскоязычные люди есть везде, и в-третьих, до вчерашнего вечера у меня не было, к сожалению, всей необходимой информации для описания этого процесса. (Конечно же, пользователи могут переделать встречи и события вручную, но автоматизированно оно же всегда лучше, быстрее и точнее, не так ли?)

У меня нет ресурсных п/я, поэтому я опускаю описание процесса их обработки. Оригинальное видео команды Exchange, посвящённое в т.ч. и этой проблеме можно просмотреть здесь.

Я не тестировал применимость данной инструкции к Exchange 2007, только к Exchange 2003, но, судя по оригинальным статьям Microsoft, отличий в процедуре нет. Несмотря на то, что на странице Центра справки и поддержки по переходу на летнее и зимнее время обещается выпуск специального обновления для серверов Exchange, его до сих пор нет и поддержка Microsoft сомневается в его выходе до 30 октября.

Я предполагаю, что на ваши серверы Exchange установлен последний доступный Service Pack.
Читать дальше →

Установка nginx + php-fpm + memcache + eaccelerator на FreeBSD

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

Началось всё с того, что я ушёл от firstvds, где уже ничто не спасёт от тормозов. Ушел на ганди.нет, взял одну шару (1 share), которую дали на месяц бесплатно. Кстати, акция эта (This summer, your server is free!) вроде еще не закончилась. ;) И начал на этой шаре проводить зверские эксперименты с установкой разного ПО. Тестировал результаты с помощью siege.

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

Поехали!

Пример использования eAccelerator для нагруженного php-проекта

Время на прочтение3 мин
Количество просмотров4.3K
Наш новый фронтенд-сервер сейчас вполне справляется с нагрузкой и в оптимизации не нуждается (чего нельзя сказать о базе данных), но после того, как я очередной раз посмотрел на его top, мне вдруг стало жалко ожесточённо разнашиваемых дисков, и я решил уделить этому пару минут и поставить eAccelerator.

Вот что получилось

Скрипт создания ярлыков удалённого управления

Время на прочтение4 мин
Количество просмотров19K
Представьте, что у вас есть таблица с названиями и адресами устройств и сервисов и вы можете легко получить из неё множество ярлыков для запуска браузера, putty, удалённого рабочего стола или telnet для управления этими устройствами. На картинке ниже схематично это показано:

Здесь красивая картинка про то, как сухие строчки электронной таблицы становятся чудодейственными ярлыками.
Зачем это вообще нужно? Например к вам на эксплуатацию или обследование попала новая система или вам передали в пользование какую-нибудь тестовую среду. Чтобы не вбивать адреса или не копировать из файла каждый раз при подключении к хостам, можно однажды запустить скрипт и создать все ярлыки разом.
Внутри как раз про такой скрипт.

Ответственность за «комменты»

Время на прочтение6 мин
Количество просмотров13K
В интернете, с его письменным общением на форумах и в блогах, возникает масса спорных ситуаций из-за оставленных там комментариев. Суды из-за них по разным поводам уже и сейчас не редкость, а в будущем их может стать еще больше. Поводы эти бывают самыми разными – чаще всего это защита чести и достоинства, но встречается и экзотика, типа «экстремизма» или нарушения копирайта на оставленный кем-то комментарий.

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

Однако, есть и еще одна причина, по которой копирайтное законодательство в случае с комментариями неприменимо. Дело в том, что обычный, «среднестатистический» форумный комментарий вряд ли может рассматриваться как охраняемое авторским правом произведение. Функция форумной переписки – чисто информационная, за исключением отдельных специфических ситуаций. Правда, определить, что перед нами – «информационный материал» или все-таки творческое произведение, – можно только в каждом конкретном случае. Вдобавок, те проблемы, которые могут возникнуть при «расшаривании» защищенного авторским правом контента – это тема для отдельного разговора. Поэтому сегодня мы их затрагивать не будем, и ограничимся теми случаями, когда авторское право не нарушается.
Читать дальше →

Организация работы с репозиториями

Время на прочтение2 мин
Количество просмотров3K
цели:
— организация непрерывного внедрение нового функционала проекта
— связанная система исправления багов в процессе поддержки проекта
— повышение качества проекта в целом
— атомарность разработки отдельных частей проекта (модули / функции)

Для достижения описанных выше целей необходимо организовать следующую структуру веток:
release
hotfixes (необязательна)
testing
fixes (необязательна)
default
developers branches (условное название)
Читать дальше →

Однострочные программы на Perl

Время на прочтение7 мин
Количество просмотров39K

Введение


Я собираюсь рассказать об однострочных программах на Perl. Если вы овладете однострочным Perl`ом, то можете сэкономить кучу времени (я экономлю).

Цель поста — показать как Perl можно использовать заместо find, grep, awk, sed. В конце поста будет написано зачем это надо.
Читать дальше →

Заедающий граммофон или Как провалить проект по продвижению сайта

Время на прочтение5 мин
Количество просмотров15K
Здравствуйте! Сегодня вашему драгоценному вниманию предлагается немного видоизменённый отрывок из свеженапечатанной книги нашего генерального директора Ивана Севостьянова «Поисковая оптимизация».
image

Мы заранее просим прощения за саркастическую простоту, с которой написаны и книжка, и эта маленькая статья. Может показаться, что мы, как подростки, постоянно расковыриваем свои собственные прыщи. Возможно. Но когда в тысячный раз слышишь от нового клиента старый саундтрек, создаётся ощущение жизни в заедающем граммофоне.
Читать дальше →

Кеширование блоков с помощью nginx

Время на прочтение6 мин
Количество просмотров15K
nginx + SSIМногим разработчикам знакома ситуация когда кешировать страницы сайта, скажем, на 5-10 минут нельзя всего из-за одного небольшого блочка, актуальность которого нужно поддерживать если не в реальном времени, то с временем «старения» не больше 5-10 секунд. При этом посещаемость сайта продолжает расти, растет время генерации страниц и c этим надо что-то делать…
  • Вариант решения 1: Подкрутить то, до чего не доходили руки последнее полгода. Все Вас поймут и передвинут сроки на другие задачи. Вы будете в роли «Супермена» один спасать сайт от непомерной нагрузки, решая проблему «бесплатно» (без доп. вливаний в оборудование). Вам может пригодиться статья «Тюнинг nginx».
     
  • Вариант решения 2: Улучшить техническую базу (докупить мозгов на сервер, улучшить дисковую систему, поставить под БД отдельный сервер). В принципе проблема не решена, а скорее отложена. Теперь у Вас есть время «окопаться» и подготовиться ко второй волне наплыва нагрузки, она будет больше и накроет сильнее.
     
  • Вариант решения 3: Ваш вариант, о котором я, вероятно, узнаю из комментариев.
     
Позвольте предложить и мне проверенное и относительно простое решение на базе одной из старейших технологий в Web-разработке.
Читать дальше →

Информация

В рейтинге
3 450-й
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Backend Developer, Site Reliability Engineer (SRE)
Lead
От 500 000 ₽
PHP
Linux
Laravel
Yii framework
Docker
MySQL
Network administration
Vmware vSphere
Mikrotik
Asterisk