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

50
Эффективное управление ПО под *nix Андрей Пантюхин <[email protected]>

Upload: andrew-pantyukhin

Post on 05-Dec-2014

325 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

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

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

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

<[email protected]>

www.princexml.com
Prince - Non-commercial License
This document was created with Prince, a great way of getting web content onto paper.
Page 2: Эффективное управление ПО под *nix

Вид сверху

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

• resident, virtual

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

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

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

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

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

Диск▪ Место

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

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

▪ Износ

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

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

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

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

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

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

• firewall, NAT, tcp wrappers, fixup, inspect

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

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

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

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

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

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

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

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

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

▪ Антивирус

▪ Web API

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

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

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

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

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

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

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

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

▪ Громкость

▪ Шаблоны

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

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

▪ Доступ

▪ Доверие

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

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

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

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

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

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

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

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

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

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

• Windows UAC, AJAX login

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

номерами

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

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

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

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

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

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

▪ Роли

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

▪ SELinux, AppArmor, TrustedBSD, Systrace,Symbian

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

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

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

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

• Бастионы

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

• Timing-атаки

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

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

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

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

▪ На уровне ОС

▪ Полная

▪ Тонкая

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

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

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

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

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

• FreeBSD Ports DESTDIR

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

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

▪ Заметный overhead

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

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

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

• appliances, rPath Conary

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

вендора

▪ p2p - DebTorrent, apt-p2p

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

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

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

▪ Кластер

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

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

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

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

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

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

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

▪ Поддержка

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

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

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

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

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

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

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

• Freedesktop

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

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

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

• mdns, ssl

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

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

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

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

парадигма

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

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

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

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

Вид изнутри

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

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

▪ Бекап

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

▪ Установка

▪ Откат

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

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

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

▪ Изменения

• ChangeLog

• Bug-Tracking System

• Version Control System

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

• ports/Tools/scripts/ardiff

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

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

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

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

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

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

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

▪ csup date

▪ portdowngrade

▪ ftp.*.FreeBSD.org

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

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

▪ pkg_delete -n

▪ ports/Tools/scripts/consistency-check

▪ tripwire и другие IDS

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

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

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

▪ portupgrade

▪ /var/db/pkg

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

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

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

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

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

▪ NFS

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

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

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

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

EuroBSDCon 2006

▪ Codename Upak

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

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

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

¿Вопросы?