Как devops исчерпывает себя, и что будет дальше / Кирилл...
TRANSCRIPT
![Page 1: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/1.jpg)
Как devops исчерпывает себя,и что будет дальше
Кирилл Вечера
Следующее поколение моделей управления программными системами
51
![Page 2: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/2.jpg)
Кирилл Вечера
Руководитель проекта jetware.orgАвтоматизация управления программными системСборка, конфигурация, тестирование, деплой, обновление
РанееСистемное программирование: Solaris, FreeBSD, Linux
Администрирование серверов и сетей: Unix, OSPF, BGP
Разработка интернет-сервисов: C, Perl, Java, Python, Ruby
![Page 3: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/3.jpg)
В докладе
Эволюция управления информационными системами
Какие сейчас есть средства и какие появляютсяКак мы этому способствуемПочему девопс становится ненужным
![Page 4: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/4.jpg)
Большая100 — 100 000 серверов
Сложная10 — 100 приложений
10 — 1000 связей
100 — 10 000 библиотек и программ
Растущая0.1 — 100 обновлений в день
Современная система
ПроблемаУправлять
Обновлять
Диагностировать
Оптимизировать
Чинить
![Page 5: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/5.jpg)
Способы организации систем
Централизованнаясистема
Распределеннаяжестко связаннаясистема
Распределеннаясвободно связаннаясистема
![Page 6: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/6.jpg)
Монолитная система
Фиксированная конфигурация
Все в одном экземпляреСервисы
Связи
Потеря сервиса или связинарушает работу всей системыМощность ограничена
![Page 7: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/7.jpg)
Распределенная система
Связанные компонентыКомпонентОдин сервис или несколько разных сервисов вместе
СервисыОдин или несколько экземпляров сервиса
МакроуровеньМикроуровень
![Page 8: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/8.jpg)
Макроуровень
Типы компонентов — сервисы
Топология — связи между компонентами
![Page 9: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/9.jpg)
Микроуровень
Внутреннее устройство компонентаПрограммы, библиотеки, настройки, данные
Связи между внутренними сервисами
Компонент внутри — монолитная подсистема
![Page 10: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/10.jpg)
Распределенная жестко связанная система
Все предопределеноСвязи между сервисами
Привязка к оборудованию
Добавление/удаление компонентов
Реакция на аварию
УправлениеЦентрализованное
Связи планирует и назначает администратор
![Page 11: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/11.jpg)
Распределенная свободно связанная система
Все может менятьсяСвязи между сервисами
Привязка к оборудованию
Добавление/удаление компонентов или связей
УправлениеПостоянное
Автоматическое
Централизованное
![Page 12: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/12.jpg)
Эволюция управления системами
1. Руки
2. Скрипты
3. Инструменты
Одинаково — и монолитные системы, и жестко связанные распределенные системы
![Page 13: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/13.jpg)
Дальше?
Переход на свободно связанные системыУправление системой расслаиваетсяНужно средство управления на макроуровне
Нужно средство управления на микроуровне
![Page 14: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/14.jpg)
Свободно связанная система
Минимальные требованияАвтоматическое управлениеПривязка к оборудованию
Добавление/удаление компонентов
Изменение связей
![Page 15: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/15.jpg)
Минимальные требования к компоненту
Переносимость
Тиражируемость
Интерфейс
Изоляция от соседей
Абстракция от оборудования
Данные хранить отдельно
Связь для других сервисов
![Page 16: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/16.jpg)
AWS сделали привычными
Разделение на сервисыНеизменные образы виртуальных машинХранение данных отдельноНесколько экземпляров сервиса
![Page 17: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/17.jpg)
Docker
Среда для PaaS
Инструмент разработчика
Средство запуска сервиса
![Page 18: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/18.jpg)
Docker-контейнер как компонент системы
Легковесная замена виртуальной машиныИзоляция приложений и зависимостей
Интерфейс — сеть и данныеСтимулирует использовать immutable image
DockerfileБыстрая сборка и тиражируемость
Выполнены все требования к компоненту свободно связанной системы
![Page 19: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/19.jpg)
Эволюция управления распределенными системами – на макроуровне
1. Руки
2. Скрипты
3. Инструменты
4. Оркестрация
5. Самоорганизация
![Page 20: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/20.jpg)
Управление распределенными системами
4. Оркестрация ПроцессПроектирование
Планирование
Тестирование
Воплощение
АрсеналKubernetes, Marathon, Docker Swarm mode
![Page 21: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/21.jpg)
Эволюция управления компонентами – микроуровень, монолитная система
1. Руки
2. Скрипты
3. Инструменты
4. ???
5. Самоорганизация
![Page 22: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/22.jpg)
Эволюция управления системами
МакроуровеньОркестрация
МикроуровеньDocker ???
![Page 23: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/23.jpg)
Сервис в Docker-контейнере
![Page 24: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/24.jpg)
Можно подумать, что внутри...
![Page 25: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/25.jpg)
На самом деле
![Page 26: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/26.jpg)
Эволюция управления системами
Распределенной системой, макроуровеньСервисным приложением, микроуровень
Docker
Kubernetes
![Page 27: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/27.jpg)
Микроуровень, приложение-сервис
Часто обновляетсяМного зависимостей (компонентов)Программы, библиотеки, данные
Версии зависимостейИнтеграция компонентовНастройкиИнтерфейс на макроуровень
![Page 28: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/28.jpg)
Docker для управления микроуровнем
Простой способ заготовки (provisioning)Dockerfile: shell, deb/rpm, chef/puppet/salt
Быстрый способ обновления: слоиИнтерфейс на макроуровень: рукамиИнтеграция компонентовМикросервисы: отдельные контейнеры, руками
![Page 29: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/29.jpg)
Начинающийся проект
Старт с чистого листаСвоего кода — 0
Выбрали окружение
Пишем код, встраиваемся в окружение
Оборудования мало, сервисов мало
Пользователей малоМожем лежать, можем глючить
Подойдет Dockerfile с shell-командами
![Page 30: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/30.jpg)
Начинающийся проект
ПереусложнениеDocker
IaC
Оркестрация
Devops
Достаточныrsync или git pull
![Page 31: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/31.jpg)
Работающий проект
Многосвоего кода
разработчиков и команд
чужих компонентов
настроек
оборудования
РазнообразноДолгая история
Разные компонентыИ создаются в разное время
Постоянно обновляется
НельзяЛежать
Глючить
![Page 32: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/32.jpg)
Проблемы
Несовместимость версийбаги и изменения API в новых версиях
баги и уязвимости в старых версиях
Человеческие ошибкипри обновлении
внутренних настроек
в информации для оркестрации
![Page 33: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/33.jpg)
Беспечный ездок
Разработчик программ для корпоративных клиентов
Непрерывное тестирование и сборка приложений
![Page 34: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/34.jpg)
Беспечный ездок
Профиль работыКастомные программные решения
Business intelligence
Несколько сотен проектовОбщие компоненты
Кастомизация для заказчика
Влиты несколько компаний
![Page 35: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/35.jpg)
Беспечный ездок
Основной софтOracle, SAP Hana, PostgreSQL, MySQL
Java, C++, Python, JavaScript, PHP
ЕщеR, Excel, ImageMagick, по мелочи другого
ОСRHEL/Oracle Linux + свои патчи для JRE, libc, OMP и другого
Windows (уменьшается)
![Page 36: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/36.jpg)
Беспечный ездок
Поставка клиентуSaaS
Виртуальные машины
.exe + jar
RPM-пакеты
![Page 37: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/37.jpg)
Беспечный ездок
БылоCистемаX build серверов
Разные ОС
УправлениеСкрипты — make, shell, python
Jenkins
Puppet
![Page 38: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/38.jpg)
Беспечный ездок
ПроблемыПлохое тестированиеДолго ждать результат редко тестируется→
Несовпадение тестового и рабочего окруженияОшибки при работе софта у заказчика
Часто ломался процесс сборки
Много ручного труда
![Page 39: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/39.jpg)
Беспечный ездок
Что нужноХорошо контролируемая средаSaaS, Виртуальные машины
Качественная сборка и тестированиеВоспроизводимая сборка
Быстрая сборка
Минимальное ручное вмешательство
Похожее на Maven и Gradle
![Page 40: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/40.jpg)
Беспечный ездок
ВариантыJuju Charms
Nix
![Page 41: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/41.jpg)
Nix пакеты
Описание пакетаИмена пакетов-зависимостей
Правила сборки
Собранный пакет - чистая функция отПравил сборки
Собранных зависимостей
Исходного кода
Конфигурационных значений
![Page 42: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/42.jpg)
Nix
Все состоит из пакетовКаждый пакетОтдельный каталог
Read-only
Собирается по зависимостямили устанавливается уже собранное из репозитория
![Page 43: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/43.jpg)
Nix – пользовательское окружение
Точка объединения нескольких nix-пакетов
Каждое окружение — в отдельном read-only каталоге
Каждая комбинация пакетов — отдельное окружение
Установка или удаление пакетаСоздание нового окружение копированием текущего
Добавление или удаление пакета
Переключение текущего окружения на новое (замена симлинка)
![Page 44: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/44.jpg)
Nix – пользовательское окружение
Структура окружения повторяет FHSЕсть bin, etc, lib, include, share, libexec
Нет var - ведь read-only
Симлинки из окружения на файлы в пакетах
![Page 45: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/45.jpg)
Nix: пользовательское окружение
~/.nix-profile
/nix/store/0123-user-envbin
share man man8
mysqld
mysqld.8.gz
php
/nix/store/4567-mysql-5.5.50 bin mysqld
share man man8 mysqld.8.gz
share man man8 mysqld.8.gz
/nix/store/89ab-php-5.6.1 bin php
![Page 46: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/46.jpg)
Беспечный ездок
СейчасОборудование (SaaS & CI)~ 180 машин у себя (поровну SaaS & CI)
< 200 машин в AWS (в основном CI)
500 — 2000 контейнеров
УправлениеNix + Docker + Kubernetes
Jenkins
Puppet
![Page 47: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/47.jpg)
Беспечный ездок
Проблемы NixНет версий
Пересборка всех потребителей при изменении зависимостиДолго ждать результата — бывает до 2 часов
![Page 48: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/48.jpg)
Nix: пересборка при изменении аргументов
mysql: libc openssl
0123-libc 4567-openssl → 89ab-mysql
Пропатчили libc → cdef-libc
cdef-libc 4567-openssl → 3210-mysql
![Page 49: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/49.jpg)
Беспечный ездок
Что искатьИмеет плюсы NixАвтоматическая сборка
Зависимости
Изоляция
Воспроизводимость
Не трогает то, что работаетВерсии, подпроекты
![Page 50: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/50.jpg)
Беспечный ездок
ВариантыHabitat
Snappy
Gentoo
Jetware
![Page 51: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/51.jpg)
Jetware vs Nix, что общего
Состоит из пакетовRead-only
С версиями
С вариантами сборки
Пакеты с зависимостямиАвтоматическое подключение
Автоматическая сборка
Конфигурационные переменные пакетов
![Page 52: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/52.jpg)
Jetware vs Nix, чем отличается
Чем отличаетсяПакеты — не чистые функции
Зависимости — пакеты, версии, условия версий, роли
Самоинтеграция пакетов
Пакеты инкапсулированыэкспортируют в окружение и другие пакеты минимум
Окружение хранит контекстнастройки, данные
![Page 53: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/53.jpg)
Jetware: Рабочее окружения
Точка подключения пакетовХранение настроек и данных пакетовОтвязано от операционной системыработает непосредственно в любой ОСlibc — пакет
![Page 54: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/54.jpg)
Jetware: Рабочее окружение
Пакеты — снаружиПакеты — неймспейсыВсе хранится в пакетахКаталог пакета — read-only
Данные и конфигурация — внутри
bin
lib
var log
etc
tmp run
libc
Конфигурация окружения
![Page 55: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/55.jpg)
Jetware: Экспорт в рабочее окружение
Неизменяемые данныеТолько минимум
bin, lib
Симлинками bin
lib
var log
etc
tmp run
libc
![Page 56: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/56.jpg)
Jetware: Экспорт в рабочее окружение
Изменяемые данныеКопируются в окружение
Отдельные секции
Свой собственный FHS bin
lib
var log
etc
tmp run
libc
![Page 57: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/57.jpg)
Взаимодействие пакетов
Экспорт данных в другие пакетыОтношение, данные, соглашение или APIПример: пакеты экспортируют свои C-headers пакету cc
Значения переменных других пакетовПример: пакет mongodb_tuning указывает mongodb.port=22333
![Page 58: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/58.jpg)
Роли пакетов
Пакет имеет рольИдентификация пакетаДля файлов
Для связей пакетов
Для экспорта данных
Для переменных
Роль - класс
percona-mysqld
mariadb-mysqld
myrocks
mysqld
mysqld
![Page 59: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/59.jpg)
Абстрактная роль
Общий аспект разных ролей
Частично реализованный интерфейсОдин API для разных ролей
Реализация для присутствующей роли
Одно отношение пакета для всех реализаций
www
bitrixapache
nginx
lighttpd
![Page 60: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/60.jpg)
Беспечный ездок
Демонстрационная установка JetwareСборка по зависимостям и версиямСобственных подпроектов
Компоненты третьих сторон (JRE, libc и другие библиотеки)
Репозитории testing staging→
Сборка и настройка Docker-контейнера40 — 500 пакетов
1.5 — 20 секунд
![Page 61: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/61.jpg)
Беспечный ездок
ОжидаетсяОборудование (SaaS & CI)~ 120 машин у себя (на CI - 30)
< ? машин в AWS
УправлениеJetware + Docker + Kubernetes
Jenkins
Puppet
![Page 62: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/62.jpg)
Эволюция управления системами
МакроуровеньОркестрация
МикроуровеньСамосборка
![Page 63: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/63.jpg)
Что будет дальше?
Слияние управления на макроуровне и микроуровне~ 1 — 3 года
![Page 64: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/64.jpg)
Жизненный цикл сервиса
Dev (разработчик)
Исходный код + библиотеки
Компиляция, сборка
Интеграция с зависимостями
Тестирование
Экспорт в образ
Разворачивание
Переключение нагрузки
???
Оркестрация
![Page 65: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/65.jpg)
Нужна ли ОС программе?
Программе нужныЯдро для выполнения syscall
Файловая система
Рабочее окружениеБиблиотеки и исполняемые файлы
Другие данные-ресурсы
Окружение операционной системы — не нужно
![Page 66: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/66.jpg)
Должна ли программа встраиваться в ОС?
Для обращения к программе нужноЗнать, где она находится
Передавать ей входные данные
Получить от нее выходные
Программа может быть где угодно — ОС не нужна
![Page 67: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/67.jpg)
Тесная связь ОС и приложений
Историческое наследиеВлияние дистрибутивов Linux
![Page 68: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/68.jpg)
Автономная программа
ПрограммаНе привязана к ОС
Описывает требования к рабочему окружениюЗависимости на пакеты и версии
Зависимости на ресурсы и сервисы
![Page 69: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/69.jpg)
Рабочее окружение как процесс
Адресное пространство процессаКаталог с рабочим окружением
Сегменты кодаread-only в каталогах пакета
Сегменты данныхв изменяемых каталогах рабочего окружения
Динамическая линковка библиотекПодключение к нему всех пакетов-зависимостей
![Page 70: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/70.jpg)
Пакет как shared библиотека
БиблиотекаФайлы .so и .aELF сегменты кода и данныхDynamic linking секции
ПакетRead-only каталогФайлы в каталогеЗависимости пакета
![Page 71: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/71.jpg)
Тогда что такое автономная программа?
Имя с версиейЗависимости для работыИнтерфейсКакие ресурсы требует
Какие ресурсы предоставляет
Сценарий сборки (опционально)Исходники
Зависимости для сборки
![Page 72: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/72.jpg)
Управление на макроуровне
Объект диспетчеризацииПриложение: имя и версия
Запуск программыСборка пакета или получение из репозитория
Создание рабочего окружения
Деплой и запуск сервиса
Помещение данных интерфейса в service discovery
![Page 73: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/73.jpg)
Эволюция управления системами
Макроуровень и микроуровень интегрируются
![Page 74: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/74.jpg)
Роботы вытесняют девопсов
Разрабочики и администраторы возвращаются к более интеллектуальному труду
![Page 75: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/75.jpg)
Ну а потом?
Еще несколько лет и
Пятая ступень эволюции - самоорганизация
![Page 76: Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)](https://reader033.vdocuments.site/reader033/viewer/2022050900/586f90591a28ab54768b795b/html5/thumbnails/76.jpg)
Как devops исчерпывает себя,и что будет дальше
Кирилл Вечера
http://jetware.orgSkype: [email protected]