Upload
andrew-pantyukhin
View
313
Download
1
Embed Size (px)
DESCRIPTION
Citation preview
Эффективноеуправление ПО под
*nixАндрей Пантюхин
Вид сверху
Масштаб темыТрадиционный ответ
▪ Установка программ
▪ Обновление программ
▪ Удаление программ
Масштаб темыНовая парадигма
▪ Идея у разработчика в голове
▪ Управление ПО
▪ Готовый результат у пользователя
Новые задачи▪ Управление ресурсами
▪ Интеграция в жизненный цикл ПО
▪ Межпрограммная интероперабельность
Ресурсы▪ Материальные
• Аппаратное обеспечение, …
▪ Абстрактные
• Доверие, роли, …
РесурсыУправление на уровне пакетов
ПО▪ Текущая практика
▪ Оптимизация потребления
▪ Оптимизация управления
▪ Разгрузка рутины администратора
Материальныересурсы
▪ Процессор, память, диск
▪ Пространства имён
• Файловая система, учётные записи
▪ Сетевой доступ
▪ Доступ к производным ресурсам
• База данных, 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
有り難う有り難う!Спасибо!
¿Вопросы?