Вышел номер № 7-8 (152-153) июль-август журнала Системный Администратор за 2015 год.
Журнал Системный Администратор июль-август за 2015 год
В номере:

  • Демон BSD на острове пингвинов. Прибавляем и убавляем с LVM
    О том, как изменить размеры дисковых разделов с помощью LVM и средств гипервизора, и о неожиданностях, которые могут подстерегать при выполнении этих, в общем-то, не таких и сложных операций
  • Автоматизация работы ИТ-подразделения с помощью ITSM-системы
    Автоматизация деятельности ИТ-подразделений с использованием систем класса Help Desk и Service Desk уже давно стала обыденным явлением. Давайте попробуем разобраться, как выбрать такую систему
  • Облачная операционная система OpenStack. Часть 4. Сервис блочного хранилища OpenStack. Cinder
    В состав базовых проектов OpenStack входят два принципиально разных сервиса хранения информации. OpenStack Swift – объектное хранилище, подобное Amazon S3. И сервис блочного хранилища OpenStack Cinder, похожий на Amazon EBS. Его и рассмотрим в статье
  • LXD – управляем контейнерами Linux. Знакомимся с альтернативой Docker от разработчиков LXC
    Быстрый рост популярности Docker не мог не привести к появлению альтернативных инструментов. Одним из наиболее заметных является LXD, созданный в Canonical авторами системы виртуализации LXC
  • Функция DNS Policies в Windows Server 2016 Technical Preview
    Одним из интересных нововведений в DNS-сервере, входящем в состав Windows Server 2016 Technical Preview 2, стало появление политик DNS (DNS Policies), позволяющих контролировать обработку запросов в зависимости от параметров клиента – IP-адреса клиента или подсети, IP-адреса интерфейса, принявшего DNS-запрос, домена, протокола (TCP или UDP), типа запроса (A, SRV, TXT…) и времени суток
  • Поучительные истории о резервном копировании
    Автор рассказывает о нескольких реальных случаях ошибок в организации резервного копирования и дает рекомендации, как их избежать
  • Используем Thunderbird вместо Outlook
    О замене MS Exchange на другие решения было сказано уже достаточно много. Попробуем наоборот – использовать Mozilla Thunderbird в качестве клиента самого MS Exchange – и посмотрим, насколько полноценный получается клиент
  • Обзор Advanced Threat Analytics
    Microsoft недавно представила специальное решение для сбора и анализа событий безопасности. Посмотрим его в деле
  • Процедура внедрения антивирусной защиты
    Достаточно часто в момент выбора (а иногда уже и в момент закупки) клиенты интересуются рекомендациями по порядку развертывания антивирусной защиты или этапам замены ранее используемого продукта. В этой статье речь пойдет о том, как правильно организовать процесс
  • Вопросы безопасности систем резервного копирования
    Трудно представить современную развитую ИТ-инфраструктуру без системы резервного копирования. Рассмотрим меры по защите от утечек через нее
  • Белый список ПО
    Разберем процесс аудита используемого программного обеспечения с помощью антивируса Касперского и познакомимся с технологией Whitelist Security Approach
  • Расширяем функциональность 1С:Предприятия Часть 1. Внешние компоненты COM
    В жизни каждого разработчика 1С наступает момент, когда задачи, перед ним
    поставленные, превосходят возможности платформы 1С. Рассмотрим способы, как «преодолеть границу возможного»
  • «1С:Предприятие» вместе с «1С-Битрикс». Часть 9. Заключительные замечания
    Расскажем о realtime-режиме работы интеграции с сайтом, появившемся в составе модуля относительно недавно
  • Опыт секционирования таблиц в Oracle. Часть 1. Создание секционированных таблиц
    Одним из эффективных способов повышения производительности работы баз данных является секционирование таблиц и индексов. Рассмотрим разные методы секционирования и их особенности
  • Вадим Макеев: «Браузер – это один из самых сложных программных комплексов»
    На вопросы «СА» о развитии браузеров и веб-технологий отвечает веб-евангелист и руководитель проекта «Веб-стандарты» компании Opera Software Вадим Макеев
  • Обзор CSS-фреймворков
    Посмотрим на современные CSS-фреймворки и постараемся ответить на типичные вопросы, возникающие при их выборе
  • Готовимся к переходу на PHP 7
    11 июня вышла альфа-версия языка PHP 7, финал запланирован на ноябрь 2015 года. Так что уже сейчас надо готовиться к переменам
  • Как приручить ДРАКОНа?
    ДРАКОН – это визуальный алгоритмический язык программирования и моделирования, представляющий алгоритмы по принципу «взглянул – и сразу понял»
  • 1C:Enterprise Development Tools. Профессиональная IDE для 1С-разработчика
    Возможности платформы «1С:Предприятие» с точки зрения удобства разработки были всегда, мягко говоря, бедными. Конфигуратор сильно уступал профессиональным IDE, а компания «1С» не спешила с обновлениями. Лишь спустя 13 лет она решилась на глобальный пересмотр основного инструмента прикладного программиста
  • TypeScript для PHP-разработчика. Как писать на JavaScript большие приложения и не сойти с ума
    Рекомендации для PHP-разработчиков, нуждающихся в разработке больших сложных веб-приложений на клиентской стороне. Почему TypeScript может оказаться отличным выбором?
  • Дмитрий Завалишин: «Российские специалисты могут покорять вершины, но не любят заниматься «земными» задачами!»
    Тренд времени – импортозамещение. О том, как обстоят дела в отечественной ИТ-отрасли и насколько она конкурентоспособна, нашим читателям рассказывает Дмитрий Завалишин, основатель, совладелец и генеральный директор группы ИТ-компаний DZ Systems
  • Конфигурируемая ОС РВ Embox для встроенных систем
    Embox – операционная система жесткого реального времени, ориентированная на применение во встроенных системах
  • Разработка гипервизоров для обеспечения информационной безопасности
    В этой работе мы представляем проект Севигатор – опыт разработки гипервизора, который обеспечивает конфиденциальность данных приложений в условиях потенциально скомпрометированной ОС
  • СУБД «Ред База Данных» для серверных ОС
    Компанией «Ред Софт» Firebird был доработан по нескольким направлениям, каждое из которых востребовано при реализации крупных проектов как в государственных, так и в коммерческих организациях. Ряд таких доработок интегрирует СУБД «Ред База Данных» с операционной системой
  • Astra Linux Special Edition. Жизненный цикл операционной системы специального назначения
    Модель жизненного цикла ПО, определяемая на основе государственных стандартов, включает процессы и стадии, обеспечивающие выработку требований, разработку, производство и эксплуатацию ПО. Важной особенностью является то, что жизненный цикл ПО – непрерывный, и результаты, получаемые на предыдущих стадиях, служат основой для последующих стадий
  • Ольга Китова: «Информационные технологии – та ось, вокруг которой будет вращаться весь земной шар»
    Кафедра информатики – одна из ведущих в РЭУ им. Г.В. Плеханова. Ольга Китова, доктор экономических наук, доцент, заведующая кафедрой, приглашает читателей журнала «Системный администратор» познакомиться с особенностями и достоинствами образовательного процесса и попробовать свои силы – поступить в знаменитую «Плехановку» и получить самую современную и интересную профессию – специалиста по информационным технологиям
  • Вакансия: JavaScript-разработчик
    Одним из популярнейших языков программирования для веб является JavaScript, который с появлением Web 2.0 обрел «второе рождение». И хотя лидеры в этой области, Mozilla, Google и Microsoft, хотят заменить JavaScript более низкоуровневым стандартизированным языком – WebAssembly, все равно он сохранит свою актуальность для написания исполняемых частей сайтов. Какие же требования предъявляют компании к потенциальным кандидатам – JavaScript-разработчикам?
  • Секреты механизмов подпрограмм: параметры и локальные переменные
    Какие задачи возникают при реализации механизмов подпрограмм в языках высокого уровня (таких, например, как C, C++, Java и им подобных)?
  • Радиоперехват
    120 лет назад, 7 мая 1895 года, на заседании Русского физико-химического общества в Санкт-Петербурге преподаватель физики военно-морского Технического училища Александр Попов сделал доклад на вроде бы отвлеченную тему: «Об отношении металлических порошков к электрическим колебаниям»
  • Принятие решений при администрировании сложных технических проектов
    В статье рассматриваются вопросы применения методов поддержки принятия решений при администрировании и выполнении сложных проектов. Приведены основные типы задач принятия решений. Исследования показали, что эти задачи имеют сложный и многокритериальный характер, при их решении лицо, принимающее решение (руководитель проекта, руководители проектных подразделений, инженеры-разработчики), может допустить ошибки. При выполнении сложных дорогостоящих проектов цена этих ошибок велика и может поставить под вопрос успешность проекта. Приводится пример применения метода последовательных уступок для решения задачи подбора персонала для выполнения проекта
  • Комплекс информационного обеспечения принятия решений при условии априорной неопределенности входных данных
    Важной научной и практической проблемой настоящего времени является решение задач построения различных параметрических и непараметрических систем управления динамическими объектами, в том числе как для принятия решений, так и для динамической реструктуризации [1-7]. Примерами этой проблемы в области науки и технологий являются управление критическими объектами производственных процессов и их испытание, диспетчеризация и выполнение процессов, управление в режиме разделения времени, складская логистика
  • Технологическая основа риск-менеджмента в коммерческом банке
    В статье излагаются результаты разработки методической и информационной инфраструктуры интегрированного риск-менеджмента в коммерческом банке. Анализ проводится на базе методики стресс-тестирования, разработанной в РЭУ им. Г.В. Плеханова. В ее основу положена методика динамического экономико-математического моделирования с применением информационных технологий. Сформированная комбинация методического и инструментального аппарата позволяет проводить динамический сценарный анализ деятельности коммерческого банка в целях выявления потенциальных рисков
  • Выбор значений коэффициента силы встраивания для множественной защитной маркировки растровых изображений
    В статье описывается метод множественной защитной маркировки растровых изображений, позволяющий проверять их целостность и аутентичность после различных искажающих воздействий. Для достижения этой цели в разделенное на блоки защищаемое изображение внедряется маркировка двумя видами цифровых водяных знаков. Приводится методика определения рациональных значений коэффициента силы встраивания защитной маркировки
  • Разработка алгоритма построения адекватной картины растекания токов по поверхности космического аппарата
    В работе предложен алгоритм построения адекватной картины растекания токов по поверхности космического аппарата. Последовательность действий основана на преобразовании выходного файла программы LTSpice IV. Алгоритм был реализован и проверен на структурной электрофизической модели в виде плоскости. Исследование осуществлено в рамках Программы фундаментальных исследований НИУ ВШЭ в 2015 году
  • Грозовые помехи
    Новый экспонат нашего виртуального музея информационных и компьютерных технологий – прибор, впервые продемонстрированный Александром Поповым на заседании Русского физико-химического общества 7 мая 1895 года. Одни считают его первым в истории радиоприемником, другие – одним из первых (подробнее об этом см. статью об истории радио в этом номере журнала). Между тем сам изобретатель если и вел тогда, во время доклада и демонстрации прибора, речь об использовании последнего в качестве средства связи, то бегло – всего одной общей фразой в заключение. А основную часть доклада посвятил конкретному прикладному применению своего изобретения.

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

Это очень мощное кроссплатформенное решение с открытым исходным кодом имеющее простой интерфейс и большое количество возможностей, не уступающий по функциям некоторым коммерческим решениям. C его помощью можем произвести все стандартные операции по обработке видео: редактировать видео (добавлять, вырезать, сохранять и т.п.), применять аудио и видео фильтры, создавать многослойную анимацию, добавлять титры и многое другое. Shotcut поддерживает все типы видео/аудио файлов обеспечиваемый библиотеками ffmpeg и libav, а также основные графические форматы. В качестве источника видео и фильтров может выступать HTML5. Из специфических функций можно отметить захват видео с веб-камер, HDMI, потоков IP, экрана X11 и аудио, и трансляцию потока разными способами (HTTP, HLS, RTMP, RTSP, MMS, UDP). Для обработки OpenGL задействуется GPU, поддерживается multithreading. Готовые наборы настроек, drug’n’drop и многоуровневая история правок заметно упрощают работу с приложением. Возможна автоматизация заданий и пакетное кодирование файлов.

Начинаем работу

В репозитариях пакет не встречается (были попытки добавить в PPA Ubuntu, но сейчас он убран), поэтому для установки необходимо использовать только то что предлагает разработчик. Но это не сложно. На сайте проекта доступны архивы для x86/x64-битных версий Linux (Mint 12+, Ubuntu 12.04+, Debian 7+, Fedora 15+, openSUSE 12+, Arch/Manjaro). Внутри все основные библиотеки необходимые для работы, поэтому достаточно распаковать и щелкнуть по ярлыку ./Shotcut/Shotcut. Для удобства ярлык можно вынести на панель или в меню, в зависимости от используемого рабочего стола это делается по разному, поэтому останавливаться не будем. Если запуск через ярлык не сработает можно запустить из консоли скрипт ./Shotcut/Shotcut.app/shotcut. В этом случае сразу получим и отладочную информацию которая также может быть полезна, если что-то идет не так.
В зависимости от дистрибутива возможно потребуется дополнительно установить ряд библиотек и плагинов (SDL, libexif, JACK и LADSPA), список можно найти на сайте (shotcut.org/bin/view/Shotcut/LinuxDistroPackages). Для Ubuntu/Linux Mint необходимо установить как минимум JACK.

$ sudo apt-get install jackd2

И плагины, которые можно найти при помощи запроса apt-cache search ladspa.
Интерфейс Shotcut написан при помощи Qt5 и его можно назвать классическим, для подобного рода приложений. Хорошо работает в мультимониторных конфигурациях и на планшетниках. Поддерживается управление при помощи Leap Motion устройства.
Понимая процесс можно найти все что нужно, даже при отсутствии локализации. Внешний вид меняется при помощи скинов, а количество и расположение доков можно установить как наиболее удобно. Хотя при первом запуске Shotcut немного сбивает с толку тех кто ранее не работал с этой программой. Так при загрузке будет показано лишь информационное окно Quick Start Guide, а если добавить видео то только основной экран напоминающий видеопроигрыватель, а не редактор. Все остальное (timeline, фильтры, плэйлист, индикатор уровня, регулятор громкости аудио и т.п.) включаются/выключаются в меню View или при помощи кнопок.

При первом запуске внешний вид Shotcut может сбивать с толку

При первом запуске внешний вид Shotcut может сбивать с толку

Также практически все операции можно активировать при помощи горячих клавиш (shotcut.org/bin/view/Shotcut/KeyboardShortcuts). Я бы даже сказал что это наиболее удобный способ работы с программой, так как все кнопки сделаны маленькими. Горячие клавиши позволяют очистить экран от лишних элементов и очень ускоряют процесс, правда после того как уже приноровился.

Горячие клавиши Shotcut

Проиграть — L или пробел (повторное нажатие увеличивает скорость)
Пауза — K или пробел
Проиграть в обратном направлении — J
Установка границ — I и O
Переход к следующему участку — Right или K+L
Переход к пердыдущему участку — Left или K+J
Вперед на секунду — Page Down
Назад на секунду — Page Up
Undo Ctrl+Z
Redo Ctrl+Shift+Z
Fullscreen Ctrl+Shift+F

Playlist

Добавить Shift+C
Удалить Shift+X, Del или Backspace
Вставить Shift+V
Обновить Shift+B
Переместить вверх Ctrl+Up
Переместить вниз Ctrl+Down
Выбрать клип 1 2 3 4 5 6 7 8 9 0

Timeline

Добавить Audio трек Ctrl+U
Добавить Video трек Ctrl+Y
Укоротить трек Ctrl+K
Сделать трек выше Ctrl+L
Выбреть трек выше/ниже — Down/Up
Zoom In =
Zoom Out —
сбросить Zoom 0
Вставить V
Перезаписать B
Разделить S

При запуске будет показана небольшая подсказка по основным операциям. Многие действия интуитивны и их можно выполнить разными способами. В итоге программу очень просто освоить и очень комфортно работать, легко подобрать для себя наиболее удобный алгоритм редактирования. Проект предлагает ряд видеоруководств и FAQ позволяющих получить общее впечатление о работе с Shotcut, но для полного понимания потребуется знание английского.
Добавляем видео в проект, при помощи перетаскивания в основное окно или сразу во вкладку Playlist. Добавить также можно нажав кнопку «+» и указав на файл, удаляются файлы из проекта при помощи клавиши Del или «-«. Порядок следования видео можно изменить, просто захватив и установив в нужное место. В окне просмотра две вкладки: Source — показывает текущее видео и Program — собраны все файлы проекта. В последнем случае начало каждого клипа помечено цифрой 1,2,3 …. Быстро перейти к нужному клипу в Program можно просто щелкнув по нему дважды в окне Playlist или нажав цифру на клавиатуре, после чего курсор установится в начало.
Можно поступать наоборот перетаскивать файл в окно воспроизведения программы, затем как есть или после некоторой обработки (например убрав лишнее), тащить видео его в окно Playlist, после чего в проект добавится новый клип. Вариантов как видим много. Кроме видео в проект можно добавлять изображения и аудиофайлы.
В меню File — Open Other найдем еще несколько интересных пунктов, позволяющих открыть поток, захватить видео (HDMI, Video4linux, экран), аудио (Pulse, JACK и Alsa) и сгенерировать видео (шум, цвет и несколько пресетов). Причем если достаточно мощности можно одновременно захватывать видео с экрана и работать с проектом.
Теперь можно проиграть файлы причем можно увеличить скорость (нажав дважды L) и направление воспроизведения (J) или при помощи мышки. Используя клавиши Page Down/Up можем перемещаться посекундно вперед/назад.
По умолчанию отображается весь трек, но захватив треугольники на временной шкале и сдвинув их при помощи мышки можем ограничить трек определенным участком. Как вариант запустить воспроизведение и в нужных точках нажать клавиши I (In, начало) и O (Out, конец). Перемещаться между началом и концом отмеченного участка можем при помощи клавиш со стрелками Right (или K+L) и Left (или K+J). Выделенный участок можем добавить как новый клип на Playlist, просто перетащив его туда. Или выбрав в меню файла Open As Clip после чего произвести нужные операции, а затем выбрать в меню Update. После чего видео в проекте обновится с произведенными установками.
Все действия в проекте отображаются в панели History, доступна отмена операций.
Нажав в верхнем меню на кнопку I (Properties) можем просмотреть и изменить некоторые свойства файла. Например, если видео имеет несколько дорожек то во вкладке Audio в списке Track их можно поменять или совсем отключить звук (None). Здесь же ползунок Sync позволяет синхронизировать аудио со звуком. Новые установки можно сбросить нажав Reset.
Все добавленные видео отображаются в Playlist, который можно убрать при помощи одноименной кнопки или через меню View. Также все видео к которому недавно обращались в программе вообще, доступно в Recent, поэтому файлы не нужно долго искать. Внизу каждого окна находится еще одна кнопка с изображением трех горизонтальных линий вызывающая меню. Такая кнопка есть во многих настройках, в каждом случае пункты будут разные, поэтому просто следует познакомиться. Обратите внимание что вновь открытые окна (Recent, Playlist и т.д.) появляются в виде вкладок, но захватив их мышкой можно отделить и переместить в любое место, разместив как удобнее. Чтобы закрыть достаточно нажать крестик в правом верхнем углу окна.
Проект можно сохранить для дальнейшего редактирования (в MLT файл).
Также следует ознакомиться с пунктами меню Setting в котором включается использование GPU, JACK, видеорежим, режим деинтерлезинга, интерполяции, включение внешнего монитора, выбирается язык (русского нет) и тема. Многие операции производятся в реальном времени, поэтому наличие современного компьютера очень желательно иначе будет подтормаживать. Но при помощи настроек в Setting можно чуть снять нагрузку с CPU. Например Interpolation установить в Nearest Neighbor.

Использование фильтров

Добавление фильтра в проект происходит очень просто — необходимо перейти во вкладку Filter, если она не открыта, то выбрать View- Filters. В поставке имеется 21 видео (размытие, резкость, инвертирование цвета, зеркалирование, волны, баланс белого, поворот, обрезание кадра) и 9 аудио фильтров (нормализация звука, баланс, mix каналов), которых хватает для большинства домашних видео. Выбираем нужный фильтр в списке, после чего его название появляется в окне. Отметив мышкой мы получим доступ к дополнительным установкам. Например, при настройке баланса белого можем выбрать пресеты, указать цветовую температуру или использовать пипетку, позволяющую выбрать нужный цвет в кадре. Текущие установки сразу можем сохранить в качестве пресета для дальнейшего использования. Нормализация звука также не выглядит сложно, включаем фильтр, будут показаны текущие установки звука, после этого нажимаем Analyse, далее повторяем эту операцию для всех клипов проекта. После этого звук уже не прыгает. Аналогично работает фильтр стабилизации изображения, который может пригодиться когда производилась съемка с рук и изображение «скачет». После его активации появятся ручные настройки (Shakiness, Accuracy и Zoom) и кнопка Analyse (результат проверки будет предложено сохранить в файл). Обратите внимание, что вставка титров тоже реализована как видеофильтр — Text. После его включения появляется поле в котором следует ввести нужный текст, выбрать шрифт, цвет и указать позицию. Последнее можно ввести вручную или воспользоваться пресетами, позволяющими установить текст в нужное место экрана без лишней возни.

Использование фильтра в Shotcut

Чтобы отключить фильтр достаточно снять флажок возле его названия.
Собственно отметив часть видео или собрав все файлы в проект мы можем перекодировать в видео нужного формата или запустить онлайн-трансляцию. Для этого выбираем Encode и в открывшемся окне наиболее подходящую предустановку (из более чем 30). Далее при необходимости можем изменить все возможные установки видео и аудио (формат, кодек, разрешение, битрейт и т.д.), просто вбиваем в поле нужное значение. Если нужно задать значение которого нет, указываем его в Other. Поле Custom позволяет создавать свои предустановки, которые можно сохранить. Далее нажимаем Encode File для кодирования или Stream для трансляции. В последнем случае получим URL по которому можно подключиться к потоку. По окончании обработки щелком по файлу можем вызвать меню из которого перейти в каталог с готовым файлом и просмотреть логи.
Пока мы рассмотрели самый простой процесс редактирования видео (удалить лишнее, использовать эффекты и титры), часто этого достаточно для подготовки домашнего видео. Но Shotcut является нелинейным редактором, поэтому он вполне годится и для более сложных проектов.

Использование Multitrack

Чтобы редактировать видео на нескольких треках необходимо включить timeline. Это можно сделать нажав кнопку на панели или выбрать View — Timeline. После этого добавляем клипы перетаскивая их из основного окна, плэйлиста программы или при помощи файлового менеджера. Если нажать кнопку «+» текущее видео из основного окна будет добавлено на Timeline. Другие кнопки позволяют добавить видео после текущего, заменить текущее видео или вставить видео в текущую позицию (видео на timeline при этом разрывается) или удалить. Если клип кинуть на другое видео расположенное на временной шкале, то в текущее видео в этом месте будет перезаписано новым. Поэтому если нужно вставить кусок, но сохранить первое видео полностью, его нужно сначала разрезать и освободить достаточно места, а затем уже скомпоновать как нужно. Как и в других подобных решениях можем захватить за край клипа (курсор при этом изменит вид) и укоротить или растянуть его до нужных размеров.
Программа умеет автоматически генерировать переход между видео, причем сама операция выполнена интуитивно. Если два видео расположить впритык, то по окончании первого сразу начинается воспроизведение второго. Но захватив мышкой стык и проведя вперед или назад можем создать эффект перехода, о чем скажет появившийся перечеркнутый прямоугольник. Теперь в процессе воспроизведения одно видео плавно заменяется другим. Если оставить между видео небольшое расстояние, то переход будет создан автоматически. Аналогичная ситуация если надвинуть второе видео на первое. В месте пересечения будет автоматически сгенерирован переход. Размеры перехода также можно менять используя мышку и даже отделить, т.к. оно представлено как отдельный клип. Чтобы изменить настройки перехода (вид, перекрытие, аудиомикс) следует его отметить и перейти в окно Properties. Но и это не все. Если навести мышку на стыке двух видео в верхний угол конца или начала клипа, увидим точку. Ловим ее мышкой и не отпуская тянем в сторону клипа (то есть если конец, то влево, если выбрано начало то вправо), на треке появляется тень, а внизу показывается время. Теперь при достижении отмеченного участка первое видео будет постепенно приглушаться, а второе наоборот проявляться.
В самом низу под заголовками расположен ползунок позволяющий растянуть дорожки в ширину. Каждое видео также имеет свое меню в котором его можно удалить, добавить как клип и разрезать (Split at play head, горячая клавиша S). Отрезанный кусок в последствии можем обрабатывать как отдельный клип. Пустое место в дорожке также удаляется через контекстное меню в котором единственный пункт Remove. Вообщем здесь ничего неожиданного.

Настройка перехода между видео

Кнопка Меню позволяет добавить еще аудио и видео дорожку, сделать вид трека больше или меньше (чтобы больше вместилось на экране), убрать/показать аудио. Новая дорожка появляется выше и имеет больший приоритет т.е. видео на нем перекрывает нижние дорожки. Добавляются файлы на нее аналогично, только теперь можем еще перетащить клип с первой дорожки. Если добавлена аудиодорожка, то при перетаскивании на нее клипа, естественно, что останется только аудиочасть, видео в проекте участвовать не будет.
Названия дорожек можем изменить, чтобы легче было ориентироваться. В самом треке видим три буквы: M (Mute) — отключает звук, H (Hide) — по сути отключает дорожку не удаляя ее и С (Composite). В релизе 14.09 улучшена функция композитинга теперь для настройки размера, положения и прозрачности видео или графики, не требуется применение фильтров. Но пока реализовано еще не совсем полно, в настоящее время нет возможности регулировки размера, продолжительности и положения второй дорожки. Работает композитинг очень просто. Переносим на верхнюю дорожку материал который будет перекрывать нижнюю и затем включаем кнопку С. Если это будет прозрачный GIF, SVG или TGA с надписью, получим субтитр. Также можно подготовить второе видео меньшего размера в Quicktime или HTML5, которое затем поместить по верху основного.
Использование композитинга

***

Как видим в Shotcut нет ничего сложного, это удобный простой видеоредактор со всеми необходимыми функциями.

Практически любое современное клиент-серверное приложение не обходится без СУБД и в большинстве организаций обслуживание серверов баз данных лежит исключительно на плечах сисадмина. Штатные инструменты позволяют решить только базовые задачи и их функций не всегда достаточно. Утилиты сторонних разработчиков сделают администрирование MySQL и клонов, очень простым.

Интерфейс администрирования

MySQL и клоны по умолчанию распространяются без графического интерфейса. В самых простых случаях с несколькими базами для управления достаточно командной строки, когда же количество серверов, баз и админов их обслуживающих переваливает за десяток необходимость в GUI становится более очевидной. Oracle предлагает свою разработку — единый инструмент для разработчиков баз данных и администраторов MySQL Workbench(mysql.com/products/workbench) для Windows, Linux, Mac OS X. Это мощная среда с большими возможностями позволяющая визуально проектировать, создавать и управлять базами данных. Доступны все инструменты для настройки серверов, администрирования учетных записей, бэкапа и восстановления, аудита и простого мониторинга состояния. Также с его помощью можно легко выполнить миграцию с других СУБД — MS SQL Server, Sybase ASE, PostreSQL и другие. Возможности к тому же можно расширить при помощи плагинов. Интерфейс не локализован. Функций очень много поэтому некоторое время придется потратить чтобы освоиться, хотя вообщем среда удобная и все понятно. Версия Community (OSS) Edition распространяется по лицензии GNU GPL. Установка проблем не вызывает, доступны пакеты под разные дистрибутивы Linux, Windows и Mac OS X. Для пользователей RedHat/CentOS лучше воспользоваться в EPEL, в Ubuntu APT репозитарием разработчика(dev.mysql.com/downloads/repo/apt).

	$ wget -c http://dev.mysql.com/get/mysql-apt-config_0.2.1-1ubuntu14.04_all.deb
	$ sudo dpkg -i mysql-apt-config_0.2.1-1ubuntu14.04_all.deb
	$ sudo apt-get install mysql-workbench

У MySQL Workbench очень богатые возможности по администрированию MySQL

Очень популярен среди хостеров phpMyAdmin(phpmyadmin.net) позволяющий выполнить в интуитивной среде большинство операций по управлению базами данных, работе с таблицами, индексами, правами доступа, настройка репликации, экспорт информации, бэкап/восстановление, просматривать статистику и так далее. При этом остается возможность непосредственного ввода любых SQL запросов. Поддерживается управление несколькими серверами. Все достаточно интуитивно, и с администрированием может справиться пользователь без особой подготовки, с любого устройства где есть браузер. В Сети множество инструкций и примеров по использованию phpMyAdmin. Установка из репозитария пакетов проблем не вызывает, в качестве веб-сервера можно использовать не только Apache, но и более легкие nginx или lighttpd. Некоторые панели управления хостингом вроде cPanel и Plesk имеют поддержку phpMyAdmin.
phpMyAdmin стандарт среди интерфейсов управления MySQL

Пользователи Windows наверняка оценят HeidiSQL(heidisql.com) поддерживающий управление MySQL, MS SQL и PostgreSQL (пока экспериментально) и распространяемый под OpenSource лицензией. Программа имеет очень удобный интерфейс, поддерживает подключение сразу к нескольким серверам, которые доступны в одном окне, это упрощает операции по экспорту/импорту данных. Доступно создание и редактирование баз, таблиц (и т.д.), управление привилегиями, экспорт таблиц (CSV, HTML, XML, SQL …), поиск, оптимизация, мониторинг. При написании запросов помогает автодополнение. Поддерживается командная строка, возможно подключение по SSH тоннелю. Есть Portable версия, используя Wine его можно запустить и в *nix/Mac OS X.
Для тех кому не подошли описанные продукты в интернет можно найти большое количество аналогов — SQLyog(code.google.com/p/sqlyog), dbForge Studio for MySQL(devart.com/ru/dbforge/mysql/studio), TOra(torasql.com), SQL Buddy(sqlbuddy.com) и другие.

Утилиты мониторинга

Как и любое приложение СУБД требует постоянного наблюдения за своей работой, чтобы в случае проблем легко можно было найти узкое место. Общую информацию о работу MySQL можно получить при помощи стандартного клиента mysqladmin, запросы вроде SLOW QUERY LOG, SHOW PROCCESSLIST, SHOW VARIABLES, SHOW GLOBAL STATUS, и другие редко дают четкую картину информацию, так как медленные запросы есть всегда, но они не обязательно влияют на работу сервиса. Есть еще утилита mysqldumpslow которая анализует данные slow.log и выводит самые частые медленные запросы.
Версия Enterprise предлагает специальный инструмент MySQL Enterprise Monitor, который предоставляет в реальном времени информацию о производительности и доступности всех баз данных MySQL. Кроме того для большинства систем мониторинга, включая OpenSource Nagios, Cacti, Zabbix, Ganglia доступны специальные плагины. Например, Nagios(nagios.com/solutions/mysql-monitoring). Каждый из плагинов должен быть правильно настроен, чтобы представить подробную информацию о том, что происходит в MySQL, а это не редко требует опыта. Разворачивать полноценную систему мониторинга в том случае когда задача только контроль СУБД, не всегда рационально. В этом случае на помощь приходят специализированные инструменты.
К сожалению весьма популярный MyTOP(github.com/jzawodn/mytop) уже более двух лет не развивается (хотя это не значит что его нельзя использовать), но у него есть прекрасная и более функциональная замена. Начиная с версии MySQL 3.23.41 в состав InnoDB входит InnoDB Monitor innotop(code.google.com/p/innotop), некий аналог юниксовского top для этой СУБД выводящая в удобном виде информацию по внутреннему состоянию InnoDB, которая может пригодиться при настройке производительности. Вариантов запуска утилиты много. Самый простой выполнить от имени определенного пользователя без параметров:

	$ innotop -u root -p password

По умолчанию подключение производится к локлаьному серверу, но можно указать любой узел или мониторить сразу несколько серверов. Список всех команд (Shift+клавиша) можно получить нажав клавишу вопроса. Например, Shift+Q выведет список всех текущих запросов. Параметр — write позволяет сохранить данные соединения в файл .innotop/innotop.conf:

	$ innotop --write

Единственное неудобство по указанным утилитам, они показывают информацию в реальном времени, а о сохранении и последующем анализе статистических данных следует позаботиться самому.
Ключи innotop

Появившийся в 2009 году проект mycheckpoint(code.openark.org/forge/mycheckpoint) за несколько лет стал фактически стандартным инструментом решение для мониторинга MySQL. Причина популярности уникальный подход — для хранения и запроса используется база данных, в которую (одна операция INSERT) собираются данные о метриках мониторинга, статистики и переменных MySQL, информации об ОС Linux (состояние ОЗУ и swap, нагрузка и т.п.). Также в базу попадают результаты пользовательских запросов. Собранную информацию легко просмотреть при помощи простых SELECT запросов. При этом администратор получает наглядные графики (на основе Google Chart API), отчеты и метрики, которые генерируются на лету. Для вывода HTML отчетов может использоваться собственный веб-сервер. Также могут быть настроены предупреждения отсылаемые по email. Возможен мониторинг удаленной системы и нескольких серверов.
Написан на Python, поэтому установка сложностей не вызывает. Разработчики предлагают deb, rpm и tar.gz пакет и сырцы.
В Ubuntu следует ввести следующие команды:

	$ sudo apt-get install python-mysqldb
	$ wget -с https://mycheckpoint.googlecode.com/files/mycheckpoint-231-1.deb
	$ sudo dpkg -i mycheckpoint-231-1.deb

После чего потребуется создать базу данных для хранения информации:

	$ mysql -uroot -ppassword
	mysql> CREATE DATABASE mycheckpoint;
	mysql> GRANT ALL PRIVILEGES ON mycheckpoint.* TO 'user'@'localhost' IDENTIFIED BY 'password';

Для сбора и вывода данных используется утилита mycheckpoint, которую можно запускать вручную или через cron. Параметры подключения к MySQL и SMTP серверу указываются также в командной строке:

	$ mycheckpoint --user=user --password=password --host=server --port=3306

Или записываются в конфигурационный файл (по умолчанию /etc/mycheckpoint.cnf)

*/5 * * * * mycheckpoint --defaults-file=/root/mycheckpoint.cnf

Теперь можем просматривать собранную информацию и генерировать отчеты при помощи SQL запросов.

	$ mysql mycheckpoint -e "SELECT html FROM sv_report_html_brief" --silent --raw > ./checkpoint_report.html

Еще один полезный инструмент позволяющий контролировать, анализировать и при необходимости изменять обмен данными между MySQL сервером и клиентским приложением, называется MySQL Proxy(dev.mysql.com/downloads/mysql-proxy). Возможности у программы очень большие. Работает как под Windows, так и под *nix системами. Установка проблем не вызывает, в настройках необходимо указать порт MySQL (по умолчанию 3306) и PHP (строка mysql.default_port в php.ini). Все запросы формируются на языке Lua, документация здесь хорошо помогает.

Аудит MySQL

Одной из проблем связанных с эксплуатацией любого программного продукта является его неправильная настройка. После установки присутствуют лишние демонстрационные учетные записи, тестовые базы, сами пользователи могут использовать простые пароли, которые легко подобрать. Решить эти проблемы можно лишь при помощи постоянного аудита, который к тому же будет обязателен если производится обработка конфиденциальных/персональных данных (кредитные карты, медицинские записи, и т.д.), требуется создать среду соответствующую стандартам безопасности (SOX, HIPAA и т.д.), при расследовании инцидентов, устранении неполадок и т.д. После установки следует обязательно использовать mysql_secure_installation который обеспечивает минимальный набор позволяющих произвести коррекцию общих настроек безопасности.
Далее уже следует использовать инструменты и скрипты о которых ниже.
Задача аудита упрощается тем, что разработчики MySQL предлагают соответствующий API. Правда в MySQL плагин audit_log доступен только для версии Enterprise(dev.mysql.com/doc/refman/5.5/en/audit-log-plugin.html). Разработчики Percona Server предлагают GPL альтернативу(percona.com/doc/percona-server/5.5/management/audit_log_plugin.html) данному модулю, которую подходит для аудита MySQL и клонов. Две других альтернативы McAfee MySQL Audit Plugin(github.com/mcafee/mysql-audit) и MariaDB Audit Plugin for MySQL(mariadb.com/kb/en/mariadb-audit-plugin-117-release-notes) также справляются со своей задачей и позволяют производить аудит MariaDB, MySQL и Percona Server, но используют свой собственный формат журнала аудита, отличающийся от стандартного MySQL. Это потребует чуть больших первоначальных настроек. Применение плагинов простым назвать нельзя и подробно освещено в документации, которую все равно требуется прочитать, поэтому останавливаться не будем.
Кроме того Патриком Карлссоном (Patrik Karlsson) представлен(seclists.org/nmap-dev/2011/q2/att-814/mysql-audit.nse) набор тестов для сетевого сканера nmap, позволяющий протестировать сервер на наличие основных проблем безопасности. В Ubuntu после установки настройки хранятся в каталоге /usr/share/nmap/nselib/data и nmap/script, для проверки сервера необходимо указать параметры подключения и учетную запись.

	$ nmap -p 3306 1.1.1.1 --script mysql-audit --script-args 	"mysql-audit.filename='/usr/share/nmap/nselib/data/mysql- 	cis.audit' ,mysql-audit.username='root',mysql- 	audit.password='password'"

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

Percona Toolkit for MySQL

Штатные инструменты поставляемые с MySQL предоставляют лишь базовые возможности по администрированию, в результате многие операции приходится выполнять вручную. Это может быть проблемой, ведь уследить за всем очень сложно и часто потребуется определенный опыт, да и легко допустить ошибку. Пакет Percona Toolkit for MySQL(percona.com/software/percona-toolkit) собрал наработки двух проектов Maatkit и Aspersa и предоставляет скрипты позволяющие производить многие рутинные операции администрирования: проверить состояние репликации, аудит, собирать информацию, оптимизировать запросы, произвести тюнинг сервера, архивировать/восстанавливать данные и многое другое. Всего более 4000 тестов и настроек. Пакет доступен для основных дистрибутивов Linux (в Ubuntu пакет percona-toolkit). После установки получим 32 утилиты, имя которых начинается с pt-*, назначение часто понятно из названия. При запуске можно задавать различные фильтры и форматировать вывод. Поэтому документацию почитать все равно придется так как каждая утилита имеет большое количество параметров. Например, скрипт pt-summary выведет всю информацию по серверу собранную /proc/cpuinfo, /proc/meminfo, mount, df и другими утилитами, pt-show-grants — покажет все права пользователей СУБД, pt-query-digest позволяет строить отчеты основанные на анализе логов, обработанных сервером запросов, а также информации собранной processlist и tcpdump. Например, просмотр медленных запросов двумя способами:

	$ pt-query-digest slow.log
	$ pt-query-digest --user=user --password=password --processlist --host=example.org

Получаем данные о привилегиях с pt-show-grants

Еще один популярный пакет Openark Kit(code.openark.org/forge/openark-kit) предлагает 14 утилит позволяющих провести тестирование СУБД: проверка установок, проверять пароли (пустые, одинаковые, слабые), блокировать аккаунты, прерывать запросы, фильтровать записи в журнале, выводить статус репликации, исправлять кодировки, и многое другое. Распространяется по лицензии BSD. Написан на Python и требует python-mysqldb. Для установки предлагается deb и rpm пакеты и сырцы, процесс стандартный и проблем не вызывает.
Самый популярный скрипт комплекта oak-security-audit предназначенный для периодического аудита аккаунтов, паролей, привилегий и прочих настроек сервера.
В общем случае его можно запустить без параметров. По умолчанию используется режим наибольшего уровня контроля системы (соотвествует —audit-level=strict):

	$ oak-security-audit --socket=/var/run/mysqld/mysqld.sock --user=user --password=password

В результате получим отчет, все что не помечено как Passed, требует пристального внимания.
По умолчанию утилиты из Openark Kit (включая и mycheckpoint о котором выше, того же разработчика) используют по умолчанию для подключения к СУБД сокет /var/run/mysqld/mysql.sock (в это вшито в сам скрипт) в Ubuntu файл называется mysqld.sock. Чтобы не задавать каждый раз путь можно использовать заранее подкготовленный файл с настройками подключения и указывать при помощи —defaults-file. Как вариант изменить настройки MySQL в my.cnf. Править скрипты неудобно, так как при обновлении они работать не будут.
Следующий скрипт oak-block-account очень популярен у разного рода хостеров, для временного отключения доступа к СУБД. Дело в том что стандартный механизм СУБД не позволяет отключать временно аккаунт (что-то вроде REVOKE login ON *.*) т.е. если учетная запись есть, пользователь всегда может подключаться к базе данных. Можно конечно использовать что-то вроде:

	mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'USER'@'%';

Но в случае восстановления прав, придется помнить все настройки. И главное если посмотреть права при помощи:

	mysql> SHOW GRANTS FOR 'USER';
	GRANT USAGE ON *.* TO 'USER'@'%' IDENTIFIED BY PASSWORD .....

Мы убедимся, что такая команда не сбрасывает USAGE. Использование REVOKE USAGE фактически означает DROP USER. Проще изменить логин и пароль, но восстановление может быть проблемой. Вообщем возни и рисков много. В случае использования oak-block-account, учетная запись остается неизменной, ей просто задается временный пароль, поэтому подключиться с этой учетной записью нельзя.

	$ oak-block-account --block --account-user=USER --account-host=example.org

Дополнительный параметр —kill, позволить сразу сбросить все активные подключения. Восстановить работоспособность учетки также просто. Смотрим список аккаунтов и их статус:

	$ oak-block-account --list

И включаем учетную запись:

	$ oak-block-account --release --account-user=USER --account-host=example.org

Другие скрипты из Openark Kit позволяют упростить некоторые операции. Например oak-chunk-update дает возможность выполнить большие операции UPDATE/DELETE без длительных блокировок, разбив задачу на небольшие куски. Скрипт oak-show-replication-status выводит состояние репликации, oak-kill-slow-queries — удалить выполняющиеся запросы выполняющиеся уже долго время, oak-repeat-query — выполняет запрос пока не выполняется определенное условие (количество итераций, время).

Вывод oak-security-audit

Тюнинг MySQL

Оптимизация настроек очень тонкий процесс, ведь нужно на основании собранной статистики изменить только то что действительно повлияет на производительность. Самым известным инструментом для MySQL является Perl скрипт [mysqltuner](mysqltuner.com), который доступен в репозитариях большинства дистрибутивов Linux. Он читает текущие настройки сервера и установки MySQL, после чего выдает рекомендации (только рекомендации) по их изменению. Если установка производилась при помощи пакетов то достаточно ввести имя скрипта, иначе следует вызывать указывая интерпретатор:

	$ perl mysqltuner.pl

Далее будут запрошены логин и пароль администратора, после чего мы получим метрики системы и рекомендации. Кроме этого mysqltuner показывает информацию о индексах в таблицах и фрагментации, которые также влияют на скорость работы сервера. В случае необходимости получим рекомендации произвести перестановку индексов и дефрагментацию. Для более точно работы рекомендуется запускать скрипт после как минимум 24 часа аптайма.
Оригинальный скрипт написан под *nix, но на Codeplex(mysqltuner.codeplex.com) доступна адаптирована для Win.
Альтернативой можно назвать MySQL Performance Tuning Primer Script(day32.com/MySQL/tuning-primer.sh), который выдает не сколько наглядную информацию, но зато больше «разговорчивый» о проблемах.

Запускаем mysqltuner

Вывод

Это конечно далеко не все must have инструменты, которые должны быть под рукой у администратора баз данных. Но это наверное тот необходимый минимум которые следует изучить, кроме того в процессе знакомства начинаешь больше понимать в механизмах заложенных в MySQL.

Журнал системный администратор Украина купить

В номере:

  • Клонирование системы с помощью FOG. Открытый инструмент для клонирования проприетарных ОС
    Необходимость развертывания на множестве машин ОС с одинаковыми настройками и набором приложений – явление нередкое. Для автоматизации этой задачи существуют полнофункциональные свободные решения, подходящие и для клонирования проприетарных систем.
  • Телефон как тонкий клиент – возможно ли это?
    Тонкие клиенты давно используются в инфраструктурах многих компаний и все больше набирают популярность. А можно ли использовать IP-телефон на базе Android в качестве тонкого клиента?
  • Облачная операционная система OpenStack. Часть 3. Сервис хранения образов OpenStack Image Service
    Сервис Glance отвечает за ведение каталога, регистрацию и доставку образов виртуальных машин. Как правило, эти образы выполняют функции шаблонов и требуют дополнительной настройки после запуска виртуальной машины.
  • Проектирование отказоустойчивых систем. Часть 3. До и после внедрения
    Завершающая публикация из цикла статей, в которых шла речь о внедрении и передаче в эксплуатацию отказоустойчивых ИТ-систем.
  • Проект FOSSIL. Инструмент коллективной работы над проектами
    Если нужно быстро развернуть системы контроля версий, отслеживания ошибок и Wiki, можно воспользоваться FOSSIL.
  • Аутентификация в системах VDI
    Инфраструктура виртуальных рабочих столов (Virtual Desktop Infrastructure, VDI) сегодня является мощным инструментом для снижения эксплуатационных расходов и экономии на лицензиях для необходимого программного обеспечения.
  • Если к вам пришел…
    Предположим, вы (или сотрудник вашей компании) увидели на экране требование выкупа за возврат в целости и сохранности данных, зашифрованных троянцем-шифровальщиком (энкодером). Что делать?
  • Боремся с вирусами в ручном режиме
    Что делать, если даже самый лучший антивирус не смог защитить и вирус активно орудует на компьютере?
  • Active Directory и безопасности. Часть 9. Аудит службы каталога Active Directory
    Обеспечение безопасности службы каталога Active Directory требует решения целого комплекса задач. В этой статье продолжим разговор и рассмотрим задачу, связанную с аудитом службы каталога Active Directory.
  • «Помогите, зашифровались файлы». Как противостоять троянцам-вымогателям
    Учитывая актуальность угрозы, думаем, читателям «Системного администратора» будет интересно узнать больше о проблемах шифровальщиков, о том, как с ними можно бороться и что делать, если файлы уже зашифрованы.
  • Перспективные протоколы маршрутизации
    Как будут развиваться протоколы динамической маршрутизации? Что нас ждет в этом направлении через несколько лет?
  • Причины неэффективности SQL-запросов в Oracle. Оптимизация производительности SQL-запросов
    Перед разработчиками SQL-запросов нередко встает вопрос выявления причин длительной работы запросов. В статье предлагается определенная систематизация причин таких запросов, рекомендации по их предупреждению и устранению.
  • «1С:Предприятие» вместе с «1С-Битрикс». Часть 8. Типовые проблемы и методы их решения
    Проект интеграции подразумевает решение вопросов «на границе» между системами, поэтому к таким проблемам надо быть готовым.

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

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

Использование вместо пароля — хэша ситуацию не меняет, так как мощности современных компьютеров позволяют быстро вычислить пароль на основе хэша. Поэтому нужно защищаться. Вариантов несколько. Самый простой — использовать стандартные механизмы позволяющие шифровать SMTP/POP3/IMAP трафик. Такая функция сегодня поддерживается всеми серверами — Postfix, Sendmail, Dovecot, Courier, Cyrus и другими. Альтернативный или дополнительный шаг —шифрование писем на стороне клиента — при помощи PGP/GPG или S/MIME. Хотя он и не так прозрачен для пользователя и требует определенного обучения и дисциплины. Еще один способ VPN. Но все эти способы в той или иной мере требуют внесения изменений в текущую конфигурацию сети или почтовых программ.

Есть перестройки невозможны или не желательны на помощь приходят специальные шлюзы автоматически шифрующие исходящий почтовый трафик. Среди OpenSource проектов популярен CipherMail Email Encryption Gateway (до июня 2014 — Djigzo Email Encryption Gateway) обеспечивающий шифрование при помощи S/MIME, OpenPGP, защиту PDF и управление при помощи веб-интерфейса. Дополнительный модуль DLP (Data Leak Prevention) позволяет предотвратить выход за пределы организации конфиденциальной информации: номера кредитных карт, банковских счетов, больших списков адресов электронной почты и многое другое. Шлюз можно установить на большинстве Unix систем поддерживающих Java 6/7 и Postfix. В качестве клиента выступает аналогичный сервер или любая программа поддерживающая S/MIME. Проектом предлагаются клиентские приложения для BlackBerry и Android используемые для отправки и получения шифрованных сообщений через CipherMail и проверки S/MIME подписи. Вложения в виде PDF файлов автоматически закрываются паролем. Отправитель сообщает пароль получателю любым другим способом (есть функция автоматической отправки SMS). Поддерживается совместная работа с практически любыми центрами сертификации (EJBCA, Microsoft CA) или внешними вроде Verisign или Comodo. Процессом шифрования управляют политики, настраиваемые для доменов и отдельных учетных записей. Также Djigzo может автоматически добавлять к сообщениям электронную подпись, позволяющую получателю удостовериться, что письмо отправлено именно этим корреспондентом. Поддерживается и технология DKIM (DomainKeys Identified Mail).
Для установки предлагаются пакеты для Ubuntu/Debian, RedHat/CentOS, openSUSE, а также исходные тексты и образы на базе Ubuntu Linux 14.04 LTS готовые для с предустановленным CipherMail для виртуальных машин VMware, Hyper-V (логин/пароль — sa/sa). Весь процесс развертывания и настройки подробно расписан в документации. В Ubuntu 14.04 LTS процесс выглядит так:

$ sudo apt-get install postgresql postfix openjdk-7-jre openjdk-7-jre-headless tzdata-java ant ant-optional mktemp wget libsasl2-modules symlinks tomcat6

При настройке Postfix выбираем «No Configuration».

Скачиваем deb пакеты с сайта проекта и устанавливаем:

$ sudo dpkg -i ./djigzo_2.8.6-2_all.deb ./djigzo-web_2.8.6-2_all.deb 
$ sudo apt-get -f install

По ходу будут созданы все необходимые каталоги, учетные данные и БД, подправлен /etc/sudoers. В каталоге /etc/postfix появится два шаблона конфигурационных файла, которыми следует оригинальные:

$ cd /etc/postfix
$ sudo mv djigzo-main.cf main.cf
$ sudo mv djigzo-master.cf master.cf

Для отсылки и приема сообщений используется Postfix, который должен переправлять все что проходит через него на 10025 порт, где данные обрабатываются CipherMail. В поставке уже есть готовые файлы, которыми подменяем оригинальные:

$ sudo cp /etc/postfix/djigzo-main.cf /etc/postfix/main.cf
$ sudo cp /etc/postfix/djigzo-master.cf /etc/postfix/ master.cf
$ sudo newaliases
$ sudo service postfix restart

Осталось настроить веб-интерфейс, для этого нужно просто указать Tomcat где искать файлы:

$ sudo nano /etc/default/tomcat6
 
JAVA_OPTS="$JAVA_OPTS -Ddjigzo-web.home=/usr/share/djigzo-web"
JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true -Xmx128M"
TOMCAT6_SECURITY=no

Во время установки генерируется сертификат, необходимо изменить владельца:

$ sudo chown tomcat6:djigzo /usr/share/djigzo-web/ssl/sslCertificate.p12

Используя заготовки, добавляем HTTPS коннектор к Tomcat:

$ sudo cp /usr/share/djigzo-web/conf/tomcat/server-T6.xml \
/etc/tomcat6/server.xml

И прописываем путь к файлу для запуска CipherMail :

 
$ sudo nano /etc/tomcat6/Catalina/localhost/djigzo.xml
 
<context docBase="/usr/share/djigzo-web/djigzo.war" unpackWAR="false"></context>

Перезапускаем сервер:

$ sudo service tomcat6 restart

Набираем в браузере https://localhost:8443/djigzo, принимаем сертификат, для регистрации вводим логин — admin, пароль — admin.
Веб-интерфейс CipherMail сложным назвать нельзя. Пункты меню позволяют добавить домен, пользователя (в терминах CipherMail , на самом деле здесь вводится почтовый адрес), управлять сертификатами, загружать списки отзыва сертификатов (CRL), просматривать очереди и прочие параметры.

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

Из чего выбирать?

Решения для балансировки сетевой нагрузки, только на первый взгляд выглядят одинаково. На самом деле в процессе участвуют множество технологий и алгоритмов, поэтому найти два одинаковых можно даже и не пробовать. Кроме очевидного — поддержка определенных протоколов (например, только HTTP или любые), есть и множество других параметров.
Так системы балансировки нагрузки могут перенаправлять трафик клиентов на избранный сервер несколькими способами. Самые популярные: трансляция сетевых адресов (Network Address Translation) и шлюз TCP (TCP gateway). В первом случае балансировщик на лету подменяет в пакете IP адреса, чем скрывает IP сервера от клиента и наоборот. Если же IP-клиента нужно конечному приложению для статистики или любых других операций, его обычно сохраняют в HTTP заголовке X-Forwarded-for. При использовании другого протокола следует убедиться что подобная возможность реализована. В случае TCP gateway балансировщик умеет управлять трафиком на L4 (транспортом) уровне и даже на уровне приложения (L7). Для этого он устанавливает соединение и смотрит внутрь пакета. Обычно клиент и приложение обмениваются информацией через балансировщик. Но в последнее время становится все более популярной конфигурация сервера с прямым возвратом (Direct Server Return, DSR) когда ответ от сервера идет к клиенту напрямую, а не через устройство балансировки. Использование DSR уменьшает нагрузку на балансировщик, но не позволяет использовать куки, и расшифровывать SSL. Данный способ на порядок быстрее чем использование NAT балансировки и позволяет сервисам видеть реальные IP адреса клиентов.
Также в системах можно встретить разные методы балансировки. Разберемся с назначениям некоторых из них. В настройках продуктов они могут иметь отличные названия или свои особенности в реализации, но часто их суть одна.
Самый простой Round Robin DNS — это специальный DNS сервер содержащий несколько «А» записей и опционально их вес, и выдающий при запросе клиентов различные IP адреса. Минусы очевидны. Он абсолютно не владеет информацией о текущей загрузке и состоянии бэкэндов, не учитывает предыдущие подключения клиентов (немного сглаживает ситуацию DNS кэш).
Есть аналогичный по названию алгоритм но реализован средствами самого балансировщика — Round Robin. Все клиенты равномерно распределяются по бэкэндам, и обычно какие либо другие параметры не учитываются. Алгоритм распределения по весу (Round Robin Weighted) учитывает значение параметра Weight указанного для каждого сервера. Проставив больший вес для более мощного сервера мы сможем направить к нему больше клиентов. Несколько иначе работает распределение по приоритету. В этом алгоритме работает только сервер с большим приоритетом, остальные подключаются, как правило, только в случае его отказа. Этот вариант позволяет строить кластер с одним активным узлом (активный — пассивный), например когда второй сервер выполняет другую роль и только подстраховывает первый. Least Connection (Least Session) — соединение принимает сервер обслуживающий наименьшее количество соединений (сессий), но соединения могут быть разные (пользователь активен или пассивен) и соответственно давать разную нагрузку на сервер. А вот алгоритм Least Bandwidth учитывает действительную загрузку на сеть.
Hash: sticky client – клиент привязывается к одному серверу, для этого в специальную таблицу помещается хеш-строка указывающая на его IP. Возможны варианты. Клиент всегда идет к одному серверу, а в случае его выхода подключение невозможно. Или когда не отвечает «родной» он соединяется с другими системами.
Доступность бэкэндов определяется двумя: активный (keepalives, балансировщик сам опрашивает сервера) и пассивный (In-Band, контролируются текущие соединения, ответы сервиса).

BalanceNG

Проект номер один в списке — BalanceNG (inlab.de/balanceng), представляет дальнейшее развитие идей заложенных в OpenSource решении [Balance] (inlab.de/balance.html), но распространяемое уже под двойной лицензией (коммерческой и бесплатной Free Basic License). По условиям последней можно подключать один виртуальный сервер и два узла, чего с учетом возможностей достаточно чтобы без проблем справиться со средней, а иногда и большой нагрузкой. Представляет собой решение для балансировки IP нагрузки поддерживающее IPv6, предлагает несколько методов управления выбора бэкэнда (Round Robin, Random, Weighted Random, Least Session, Least Bandwidth, Hash, Agent и Randomized Agent).
В продукте использован оригинальный движок работающий на Layer 2 (Ethernet), балансировка ведется на основе IP-адреса клиента, без учета привязки к портам т. е. Это может быть любой сервис. Поддерживает DNS GSLB (Global Server Load-Balancing) и конфигурацию сервера с прямым возвратом Direct Server Return (DSR). Содержит настраиваемый агент проверки UDP, поддерживает VRRP для установки высоко доступных конфигураций на многих узлах. Встроенные механизмы позволяют произвести захват и сохранение пакетов при помощи pcap для дальнейшего исследования. Предусмотрено несколько вариантов проверки работоспособности конечных систем: агент, ping, TCP Open, скрипт и другие инструменты вроде wget.
Возможно резервирование балансировщика с репликацией NAT состояний между основным и резервным узлам, Клиент при переподключении подключается к тому же серверу. Для сохранения сессии используется IP-адрес клиента и порт назначения. Поддерживается Linux bonding. Все таблицы хранятся в ОЗУ, но требования невелики, для 4 миллионов сессий достаточно 512 Мб памяти.
Может работать в Linux (с использованием сокета API PF_PACKET) и SPARC/Intel Solaris (STREAMS/DLPI API). Для установки предлагается rpm (Red Hat RHEL6/CentOS) и deb (Debian/Ubuntu) пакеты и тарбал для остальных дистрибутивов. Также доступен готовый образ для виртуальной машины (на базе Ubuntu 8.04), что позволяет быстро развернуть нужную функциональность. Во время закачки будут показаны все пароли для входа. Агент (bngagent) поставляется с открытым исходным кодом и поддерживает Linux, Solaris, Mac OS-X, HP-UX и другие.
Какой либо интерфейс для настройки не предусмотрен, все установки производятся при помощи конфигурационного файла /etc/bng.conf. В принципе сложным его назвать нельзя, особенно учитывая что на сайте проекта доступно более десятка готовых примеров, часто нужно лишь выбрать наиболее подходящий и отредактировать под себя.

Конфигурационный файл BalanceNG

Конфигурационный файл BalanceNG

HAProxy

[HAProxy] (haproxy.1wt.eu) балансировщик нагрузки и прокси-сервер уровня приложений Layer7 для TCP и HTTP. Собственно проект начинался, как очень простой HTTP-прокси Webroute, но постепенно оброс новыми возможностями. Особенностью HAProxy является использование для регулирования соединений cookie и контента, для встраивает cookie и проверяет содержимое пакета при подключении. Анализ пакетов на Layer7 позволяет фильтровать несанкционированный трафик и протоколы. Проверяя HTTP запрос при помощи регулярных выражений можно задать любые правила для выбора сервера, например реализуя ACL и геолокацию. В случае необходимости обработки IP клиента на конечном сервер можем сохранить его в “X-Forwarded-for”. Движок стабилен, безопасен оптимизирован, в результате HAProxy способен одновременно обрабатывать большое количество подключений (20 000 в сек и более).
Обработкой всех подключений занимается один процесс, за счет оптимизации и планировщика обеспечивающий большое количество одновременных соединений на очень высоких скоростях. Такие системы не очень хорошо масштабируются на многопроцессорных системах, но не болеют блокировками и ограничениями памяти. Но здесь мы не увидим продвинутых функций вроде поддержки SSL и Keep-Alive, по утверждению разработчиков они усложняют и «утяжеляют» процесс. Отказоустойчивость HAProxy сервера обеспечивается через использование демона keepalived проверяющего его работоспособность, синхронизация с резервным сервером (протокол VRRP) обеспечивает дублирование.
Обеспечивается логирование соединений и предоставление разнообразных отчетов (статистика выводится на отдельном порту). Ориентирован в первую очередь для веб-сайтов, но используется и в других сценариях, например в качестве балансировщика для multi-master серверов MySQL.

Статистика HAProxy

Статистика HAProxy

Поддерживается фильтрация пользователей и подключение к тому же серверу (для RDP и HTTP), аутентификация HTTP.
HAProxy в качестве балансировшика используется в нескольких компаниях из списка Fortune 500: Amazon RDS, Github, Stackoverflow, Serverfault, Twitter…
Возможности расширяются при помощи аддонов, их полный список есть на сайте. Все настройки производятся при помощи конфигурационного файла (на сайте есть примеры). Кроме того известны два интерфейса сторонних разработчиков: коммерческий веб [Snapt](snapt.net) и свободный [HATop] (feurix.org/projects/hatop).
Работает на нескольких архитектурах x86, x86_64, Alpha, SPARC, MIPS, PARISC. Официально поддерживает Linux 2.6.32+ (рекомендуется для максимальной производительности) и 2.4, Solaris 8-10, FreeBSD, OpenBSD. Установка и настройка тривиальны, хотя пакеты в репозиториях не присутствует. Проект предлагает исходный код под лицензией GPL v2 и готовые бинарники под Linux/x86 Glibc 2.2 и Solaris8/Sparc.

Веб-интерфейс Snapt для настройки HAProxy

Веб-интерфейс Snapt для настройки HAProxy

Pound — прокси и балансировка HTTP и HTTPS

Первоначальная цель проекта [Pound] (apsis.ch/pound) являлось распределение нагрузки между несколькими серверами Zope, в итоге получился узконаправленный инструмент, представляющий собой обратный прокси и балансировщик нагрузки для HTTP и HTTPS.
Балансировка производится по состоянию сессии и другим параметрам (URL, аутентификации, cookies, HTTP headers). Полная поддержка WebDAV. В отличие от HAProxy обрабатывает SSL. Разработан в IT компании, занимающейся безопасностью, что также сказалось на возможностях продукта. Особенностью является наличие базовых функций Web Application Firewall, Pound умеет контролировать корректность заголовков HTTP и HTTPS, отбрасывая неправильные. По умолчанию пропускаются все запросы, но можно создать шаблоны URL, и тип запросов (стандартные, расширенные, RPC и WebDAV) которые будут проверяться на соответствие. По результатам выбирается конечный сервер или соединение блокируется. Дизайн изначально предусматривает минимальное вмешательство в трафик (например встраивание cookie), но может прописывать “X-Forwarded-for” для передачи на бэкенд сервера IP адрес пользователя.
Поддерживает IPv6, может перебрасывать IPv6 клиентов к серверам IPv4. Информация о сеансе сохраняется и клиент в последующем подключается к своему серверу.
Из специфики — возможна не только отправка соединения к бэкенду, но и редирект на другой URL.
Pound не требует много ресурсов, примечательно что кроме считывания SSL сертификатов демон не обращается к харду. Может быть запущен в chroot и использовать setuid/setgid. Каких-либо встроенных механизмов отказоустойчивости нет. Проверка работоспособности бэкендов производится всегда по HTTP.
На процессоре уровня Pentium D позволяет достичь примерно 600-800 HTTP и 200-300 HTTPS соединений в секунду. Поэтому конек Pound небольшие проекты с упором на доступность, безопасность и больший контроль над трафиком. Для большей нагрузки сами разработчики Pound рекомендуют воспользоваться другими решениями.
Установка и настройка не представляют больших сложностей, хотя и производятся при помощи конфигурационных файлов (документация очень подробная). Официально был протестирован на Linux, Solaris и OpenBSD. Проект предлагает только исходные тексты, в репозитариях SuSE, Debian и Ubuntu, можно найти готовые пакеты, кроме этого на сайте есть ссылки для RedHat и готового дистрибутива собранного на базе FreeBSD.

В конфигурационном файле Pound разобраться легко

В конфигурационном файле Pound разобраться легко

Crossroads

Crossroads или [XR](crossroads.e-tunity.com) обеспечивает балансировку нагрузки к любым TCP сервисам, поэтому подходит не только для HTTP(S), но и для SMTP, SSH, баз данных и других. В обычном варианте он просто гарантирует подключение к бэкенду, не вникая во внутренности, обеспечивая в этом режиме максимальную производительность. Один сервер может обслуживать несколько сайтов с разными бэкэндами и протоколами. Но есть специальный режим “HTTP mode” при котором обрабатываются и при необходимости меняются заголовки сеанса. Это обеспечивает возможность перенаправления пользователя на тот же сервер (session stickiness) и сохранение IP клиента в X-Forwarded-For. Сам по себе “HTTP mode” и особенно модификация пакета влияет на производительность (потери до 30%).
По умолчанию клиент перенаправляется на сервер принимающий меньше подключений, но при необходимости алгоритм легко изменить на Round-Robin, Least-Connections и First-Available или определяться внешней программой или скриптом. Клиентов можно закреплять за определенным сервером (Hash sticky client), жестко или с возможностью подключения к другому серверу если «свой» не отвечает. При возобновлении работы бэкэнда, он автоматически включается в работу. Возможно управление доступом к Crossroads на основе IP адреса (“allow” и “deny”).
В версии 2.х все подключения обслуживает один процесс работающий в пространстве пользователя, это положительно сказалось на скорости работы и на управлении. Может работать как stand-alone демон или запускаться через inetd. Удобно, что все настройки и команды можно отдавать на лету (при помощи утилиты xr), изменение параметров не требует перезапуска Crossroads. Например, настроим балансировку для двух веб-сайтов и серверов MySQL.

	# /usr/sbin/xr --verbose -S --server http:0:80 --host-match www.host1.com --backend 192.168.1.10:80 --backend 192.168.1.20:80 \ --host-match www.host2.com --backend 192.168.2.10:80 --backend 192.168.2.20:80 2>&1 >> /var/log/xr.log
	# /usr/sbin/xr --verbose --server tcp:0:3306 --backend 192.168.1.1:3306 --backend 192.168.1.2:3306 2>&1 >> /var/log/xr.log &

Статистика выводится при помощи веб-интерфейса, порт которого задается вместе с ключом -W (—web-interface). Также с его помощью можно изменить три параметра: максимальное количество соединений для Crossroads и бэкэндов, вес бэкэндов.
Для удобства все их записывают в отдельный файл который и указывают при загрузке или используют специальный конфигурационный файл в формате xml (/etc/xrctl.xml, в поставке несколько готовых примеров).
Может быть запущен на любой POSIX системе — Linux, Mac OS X, Solaris. Проект предлагает исходные текст (сборка проблем не вызывает), готовые пакеты доступны в репозитариях основных дистрибутивов.

В поставке Crossroads несколько готовых конфигурационных файлов

В поставке Crossroads несколько готовых конфигурационных файлов

ZEN Load balancer

Решение несколько отличающееся от остальных участников обзора. Разработчики справедливо решили, что под балансировку выделяется отдельный сервер, а поэтому лучше сразу предоставить готовый дистрибутив, чтобы упростить развертывание, повысить производительность и безопасность. Основой [ZEN Load balancer] (zenloadbalancer.org) является оптимизированная и урезанная версия Debian 6. Поддерживается балансировка на Layer 4 для протоколов TCP, UDP и на Layer 7 для HTTP/HTTPS. Специальный режим L4xNAT позволяет настроить балансировку на транспортном уровне без учета номеров портов (фактически без привязки к сервису), в этом случае ZEN просто пропускает через себя весь трафик, распределяя его по серверам. Если у Zen и фишка — режим DATALINK. В этом случае Zen выступает в качестве шлюза по умолчанию обеспечивая равномерную нагрузку на канал и резервирование при подключении к нескольким провайдерам (балансировка на Layer 3).
Реализовано несколько алгоритмов выбора бэкэнда Round Robin, по весу (Weight), по приоритету (Priority) или подключение к определенному серверу (Hash sticky client). Возможен возврат пользователя в открытую сессию, он определяется несколькими способами (по IP-адресу, сookie, запрашиваемому URL, по заголовку HTTP). Предусмотрено сохранение IP в X-Forwarded-For.
Технология FarmGuardian позволяет определять доступность сервисов при помощи специального скрипта, и распределять по ним подключения. Zen может выполнять роль SSL-прокси, шифруя поток к клиенту, на участке Zen — бэкэнд данные идут в открытом виде. Поддерживается VLAN.
Из других особенностей можно назвать простую систему резервирования и восстановления конфигурации, работа нескольких балансировщиков в кластере, система мониторинга и вывода различной статистики в том числе и в виде наглядных графиков.
И главное все настройки производятся при помощи веб-интерфейса (по умолчанию на HTTPS/444, логин/пароль — admin/admin). Предлагается две версии. Бесплатная только в x86 варианте и без технической поддержки. Ее возможностей вполне хватает для большинства сетей среднего размера. Платная версия предоставляется уже в x64 сборке. Развернуть готовую систему очень просто, на сайте доступна вся необходимая информация по настройкам (на английском).

Все настройки ZEN Load balancer производятся через веб-интерфейс

Все настройки ZEN Load balancer производятся через веб-интерфейс

Облачные сервисы для балансировки нагрузки

С ростом популярности облачных сервисов, все больше систем размещаются на внешних площадках образуя гибридные облака. Большинство разработчиков предлагает ко всему прочему и возможность балансировки нагрузки, это очень удобно так как не требует от клиента установки дополнительного оборудования и готово к применению почти сразу. Хотя возможностей по управлению такой способ дает как правило меньше. Все основные игроки уже предложили свои решения. Например, [Amazon Route 53] (aws.amazon.com/route53/) являющийся частью Amazon Web Services и предоставляющий балансировку при помощи Round Robin DNS. Стоимость услуги небольшая и составляет 1$ в месяц, плюс 0.50$ за первый миллион запросов и 0.25$ за каждый следующий. Предусмотрен удобный API для редактирования, добавления и удаления записей.
Также нужная функциональность доступна в специализированных облачных продуктах — WAF или решениях для защиты от DDOS. Например, сервис [Akamai Global Traffic Management] (akamai.com/html/solutions/gtm.html).

Заключение

Выбирать есть из чего. Каждый продукт имеет свои сильные и слабые стороны, зная которые легко определиться который из них подходит для определенной ситуации. Так HAProxy подкупает производительностью, BalanceNG возможностью, простой в настройках Pound обеспечивает разборку HTTP, а Crossroads гибкостью. Если все же нужен веб-интерфейс то альтернативы ZEN Load balancer нет, ну если только не хочется платить за Snapt для HAProxy.

Вышел майский номер № 5 (150) журнала Системный Администратор за 2015 год.
cover05(150)

В номере:

  • OpenStack Keystone. Знакомство с сервисом идентификации
    Продолжаем знакомство с OpenStack [1]. Теперь приступим к практическому общению с сервисами облачной операционной системы. Почти для всех служб OpenStack требуется работающий сервис Keystone. С него и начнем.
  • Инструменты управления множеством контейнеров Docker
    Docker предоставляет удобные средства для манипуляции виртуальными окружениями, но, когда счет контейнеров идет на тысячи, этих средств, к сожалению, может оказаться недостаточно.
  • Уборка файлового мусора
    Поиск решения проблемы захламления файлового сервера с примером сценария VBScript для очистки хранилища от устаревших файлов.
  • На пути к новым технологиям: миграция с Windows Server 2003
    В момент выхода новой операционной системы у пользователей появляется интерес к ее новым возможностям и технологиям.
  • Проектирование отказоустойчивых систем. Часть 2. Этапы проектирования
    Продолжаем рассказ о нюансах, встречающихся на этапе проектирования [1]. В этой части затронем вопросы аудита, составления техзадания и проекта.
  • Средства безопасности в облачных офисах
    Облачные офисные пакеты получают все большее распространение. Каким функционалом по обеспечению информационной безопасности они обладают?
  • Демон BSD на острове пингвинов: перестроение огненных стен
    Преобразование набора правил ipfw из брандмауэра FreeBSD в набор правил iptables брандмауэра Linux – дело весьма непростое, практически не автоматизируемое и даже вручную скрывающее немало сюрпризов.
  • Active Directory и безопасность. Часть 8. Защита станций привилегированных пользователей
    Безопасность службы каталога Active Directory требует решения целого комплекса задач. Обеспечение безопасности рабочих станций привилегированных пользователей является одной из них.
  • Как унифицированные коммуникации могут повысить эффективность вашего бизнеса
    Унифицированные коммуникации играют важную роль в росте производительности через повышение мобильности, обеспечение взаимодействия и экономию времени сотрудников. С помощью таких функций, как статус присутствия, программные телефоны и видеоконференции, сотрудники могут более продуктивно использовать свое время, а также взаимодействовать с коллегами и заказчиками.
  • Делаем Call-центр на 1С
    В статье рассматриваются возможности и проблемы интеграции решений на платформе 1С с АТС Asterisk.
  • Эффективность индексов. Опыт использования индексов в Oracle
    Статья основана на практике разработки, сопровождения и использования в запросах эффективных индексов.
  • «1С:Предприятие» вместе с «1С-Битрикс». Часть 7. Оптимизация скорости работы
    Давайте узнаем, почему обмен с сайтом может «тормозить», и как с этим бороться.
  • Антон Русаков: «Мой выбор был связан с конъюнктурой рынка – что рынок хотел, то я ему и давал»
    На вопросы «Системного администратора» отвечает Senior Software Engineer в Badoo Антон Русаков.
  • Rack – основа веб-фреймворков в Ruby
    Библиотека Rack – простой объектный интерфейс для написания веб-приложений.
  • Валерий Лунин: «Нашим выпускникам доступно многое»
    В гостях у «Системного администратора» Валерий Лунин, директор Института автоматики и вычислительной техники Национального исследовательского университета «МЭИ», и Андрей Кондрат, помощник проректора по учебной работе.
  • Вакансия: программист под ОС Linux
    Операционная система Linux становится все популярнее среди компаний, которые занимаются разработкой ПО в России. Но вот подготовка таких специалистов для рынка информационных технологий пока оставляет желать лучшего. Чтобы выяснить, какие знания и навыки программистов под ОС Linux востребованы, мы обратились к представителям компаний.
  • Реализация решения головоломки судоку: подход на основе полного перебора
    Головоломки и игры – логические задачи – удобны для обучения нахождению связей и структур, используемых при таких построениях. В статье приводятся анализ, алгоритм и итоговые программы для решения головоломки судоку.
  • Многообразие решений задачи построения ряда Фибоначчи на примере особенностей PHP 5.6
    В статье приводится разбор одной из популярных задач на собеседованиях. Тот самый случай, когда рекурсия оказывается худшим вариантом. Даются примеры решения задачи разными способами, с использованием генераторов и ООП-подхода.
  • Хиты от Hitachi
    У большинства потребителей на всех континентах имя-бренд Hitachi ассоциируется прежде всего с бытовой электроникой. На самом деле японский, а фактически давно уже транснациональный многопрофильный гигант чем только не занимается!
  • Гадкий утенок на Рождество
    Очередной экспонат нашего виртуального музея ИТ и компьютерных технологий на первый взгляд напоминает неряшливый эскиз будущего шедевра скульптора-авангардиста. Какое-то странное стилизованное «сердечко» из непонятного материала (оргстекла?) с металлическим цилиндриком размером чуть больше 10 миллиметров и торчащими во все стороны закрученными проволочными «усиками»… На самом деле перед нами – первый в истории полупроводниковый усилитель, или транзистор. Открывший новую страницу уже компьютерной истории. С этого неэстетичного кристалла германия с торчащими проводами началась Великая кремниевая революция, главным результатом которой стали знакомые сегодня каждому персональные компьютеры.
Наверх