Эффективное управление ПО под *nix

Post on 05-Dec-2014

313 views 1 download

description

 

Transcript of Эффективное управление ПО под *nix

Эффективноеуправление ПО под

*nixАндрей Пантюхин

<infofarmer@FreeBSD.org>

www.princexml.com
Prince - Non-commercial License
This document was created with Prince, a great way of getting web content onto paper.

Вид сверху

Масштаб темыТрадиционный ответ

▪ Установка программ

▪ Обновление программ

▪ Удаление программ

Масштаб темыНовая парадигма

▪ Идея у разработчика в голове

▪ Управление ПО

▪ Готовый результат у пользователя

Новые задачи▪ Управление ресурсами

▪ Интеграция в жизненный цикл ПО

▪ Межпрограммная интероперабельность

Ресурсы▪ Материальные

• Аппаратное обеспечение, …

▪ Абстрактные

• Доверие, роли, …

РесурсыУправление на уровне пакетов

ПО▪ Текущая практика

▪ Оптимизация потребления

▪ Оптимизация управления

▪ Разгрузка рутины администратора

Материальныересурсы

▪ Процессор, память, диск

▪ Пространства имён

• Файловая система, учётные записи

▪ Сетевой доступ

▪ Доступ к производным ресурсам

• База данных, Web API

▪ Средства презентации

• Визуализация, аурализация

Процессор▪ Время выполнения

▪ Привязка к ядрам

▪ Контекстные переключения

▪ Оптимальные параметры многопоточности

▪ Использование кэш-памяти разных уровней

▪ Использование функций виртуализации

▪ Собственная сложность планировщика

▪ GPGPU, другие процессоры

Память▪ Занимаемый объём

• resident, virtual

▪ Полоса доступа, каналы DMA

▪ Фрагментируемость

▪ Эффекты технологий безопасности

▪ Разделяемые данные и код

Диск▪ Место

▪ Полоса доступа

▪ Количество мета-информации

▪ Износ

▪ Разделяемые данные

Сеть▪ Полоса доступа

▪ Приоритет, QoS

▪ Зарезервированные порты, протоколы

▪ Правила политик безопасности

• firewall, NAT, tcp wrappers, fixup, inspect

▪ Ресурсы мониторинга и сбора статистики

Идентификаторы▪ Файловая система

▪ Учётные записи

• пользователи, группы, роли

▪ Многоверсионные инсталляции

▪ Многоинстационные инсталляции

Производные▪ База данных

▪ Антивирус

▪ Web API

Визуализация▪ Экранное пространство

• в привязке ко времени и режимам

▪ Полупрозрачные, уменьшенныепредставления

▪ Тайлинг, виртуальные десктопы

▪ Системная индикация

Аурализация▪ Частоты

▪ Громкость

▪ Шаблоны

Абстрактные ресурсы▪ Внимание пользователя

▪ Доступ

▪ Доверие

▪ Домены безопасности

Вниманиепользователя

▪ Штатные визуализация и аурализация

• Монотонность мониторинга

• Загрязнение журналов

• Индикация в дата-центрах

▪ Совокупные тревоги

• Экран, сигнализация, пейджер

▪ Дизайн интерфейсов

• Windows UAC, AJAX login

ДовериеЦентральный вендор

▪ Цифровые подписи по лицензионнымдоговорам

▪ Цифровые подписи собственого ПО вендора

▪ WHQL, Apple, Symbian, игровые приставки,Tivo

▪ Cisco California, сервера общего назначения

Паутина доверия▪ PGP - p2p-цепочки

▪ SSL - централизованные системы (CACert,Thawte)

▪ Бинарные пакеты (deb, rpm)

▪ Архивы исходного кода

▪ Изменения в репозитарии версий

▪ Любые другие данные

Доступ▪ Традиционные механизмы Unix

• Разрешения файловой системы

• Доступ к сетевым портам с низкими

номерами

• Ограничения chroot и jail

▪ Методы управления доступом для повышеннойбезопасности

• Мандатный (MAC), избирательный (DAC),

ролевой (RBAC), списочный (RSBAC)

Эволюция▪ Возможности (Capabilities)

▪ Роли

▪ Точечные привилегии

▪ SELinux, AppArmor, TrustedBSD, Systrace,Symbian

Домены безопасности▪ Коммуникационные - на уровне предприятия

▪ Технологические

• Непотопляемость

• Бастионы

• Локальные уязвимости

• Timing-атаки

• Атаки на энтропию RNG

Виртуализация▪ Обход проблем совместимости и

разграничения

▪ На уровне ОС

▪ Полная

▪ Тонкая

На уровне ОС▪ FreeBSD Jails, Linux VServer, Solaris Zones

▪ Несущественный overhead

▪ Неполное разграничение

▪ Поддерживается штатными системамиуправления ПО

• FreeBSD Ports DESTDIR

Полная▪ VMWare, Xen, Linux KVM, Qemu

▪ Заметный overhead

▪ Более жёсткое разграничение

▪ Отсутствует проблема совместимости

▪ Программные устройства

• appliances, rPath Conary

Тонкая▪ ThinApp, App-V, XenApp, klik, Zero Install, PBI

▪ Смешанное решение

▪ Жёстко централизованные и SaaS-среды

Жизненный цикл ПО▪ Разработка

▪ Дистрибуция и установка

▪ Эксплуатация

▪ Сбор и обработка отзывов

▪ Патчи и обновления

Особенностиоткрытой модели

▪ Итеративная разработка

▪ Постоянный доступ сообщества

▪ Доступ к любым изменениям

Разработка▪ Использование стороннего ПО

▪ Интеграция с другим ПО

▪ Поддержка разных ОС и сред

Дистрибуция▪ Проприетарный путь

• бинарные пакеты на сайте вендора

▪ Открытый путь

• исходники на сайте вендора

• бинарники и метаданные в репозитариях ОС

▪ Смешанный путь

• исходники на сайте вендора

• бинарники и метаданные в репозитариях

вендора

▪ p2p - DebTorrent, apt-p2p

Установка▪ Привилегированная

▪ Пользовательская

▪ Кластер

▪ Предприятие

Эксплуатация▪ Управление конфигурацией

▪ Динамическое управление ресурсами

Фидбэк▪ Статистика использования

▪ Отчёты об ошибках

▪ Поддержка

Патчи и обновления▪ Пользовательский cherry-picking

▪ Локальные изменения

▪ Апгрейд конфигураций

▪ Постоянное тестирование

Интероперабельность▪ Интеграция ПО в рабочую среду

• Freedesktop

▪ Заменимые провайдеры функциональности

• MTA, браузер, видеоплеер

▪ Провайдеры системных служб

• mdns, ssl

▪ Обмен данными

• Локально, по сети

Итого▪ Управление ПО - медленно меняющаяся

парадигма

▪ Рост требований толкает интенсивноеразвитие

▪ Текущее состояние - ряд полумер и обходныхпутей

▪ Их конвергенция в комплексные решения - забудущим

Вид изнутри

Обновления▪ Сбор информации

▪ Бекап

▪ Тестирование

▪ Установка

▪ Откат

Сбор информации▪ Списки рассылки и форумы вендора

▪ Списки рассылки и форумы ОС

▪ Изменения

• ChangeLog

• Bug-Tracking System

• Version Control System

• Полный diff исходников

• ports/Tools/scripts/ardiff

Бекап и откат▪ Бинарные пакеты про запас

▪ База данных установленного ПО

Бекап и откатportupgrade -bportmaster -bpkg_create -bcp /var/db/pkg /backuppkg_delete && pkg_add

Откат версий▪ из бекапа

▪ csup date

▪ portdowngrade

▪ ftp.*.FreeBSD.org

Проверка состояния▪ pkg_create -b

▪ pkg_delete -n

▪ ports/Tools/scripts/consistency-check

▪ tripwire и другие IDS

▪ логи инкрементальных бекапов

Ошибки▪ в портах

▪ portupgrade

▪ /var/db/pkg

Инфраструктура▪ Метаданные

▪ Дистрибутивы и пакеты

Зеркало▪ Локальный cvsup

▪ NFS

▪ Дерево портов - только чтение

▪ Дистрибутивы - доступ на запись илиавтозагрузка

Ссылки▪ Third-party software management under BSD,

EuroBSDCon 2006

▪ Codename Upak

有り難う有り難う!Спасибо!

¿Вопросы?