Оркестровка и автоматизация: в чём разница?

Системные администраторы любят автоматизировать свою работу. Лучше написать скрипт, который сделает всё сам, чем работать вручную. Но сейчас администраторы часто оркеструют, а не автоматизируют.

Давайте рассмотрим, есть ли вообще разница между оркестровкой и автоматизацией, и какая она. Может опять маркетологи придумали новое название для старого изобретения?

Зачем и чем?

И автоматизация, и оркестровка сводятся к тому, что всё происходит без вашего участия.  Разница есть, и она в назначении и инструментах. 

Скажем так: автоматизация — подвид оркестровки. Автоматизация относится к конкретной задаче или нескольким тесно связанным вещам. Оркестровка работает на уровне выше и предполагает взаимосвязанные динамические компоненты. 

Ещё важны инструменты. Например, автоматизация тесно связана со скриптами на Bash или Python. Эти скрипты часто либо планируют на какое-то время, либо на какое-то действие. 

Оркестровка часто начинается с приложения. Его специально создают для набора задач, которые могут происходить нерегулярно, по требованию или в результате триггерных событий. Если произошло событие X в ситуации Y для процесса Z, то произойдёт действие A. Вводных и комбинаций может быть много.

Принятие решений и оркестровка

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

Оркестровка предполагает, что системный администратор настроил систему, чтобы делать что-то самостоятельно на основе набора правил, параметров и наблюдений. В оркестровке системный администратор знает желаемый конечный результат, но оставляет компьютеру право выбора действий.

Рассмотрим Ansible и Bash. Bash — это популярная оболочка и язык сценариев, который администраторы используют для практически всего. Автоматизация с помощью Bash проста: вместо того, чтобы вводить команды в интерактивном сеансе, вы вводите их в текстовый документ и сохраняете файл как сценарий оболочки. Bash запускает сценарий оболочки, последовательно выполняя каждую команду.

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

Когда Ansible запускается, они выполняют действия в зависимости от выбранных факторов. Плейбук не содержит конкретных команд, а оставляет эти решения на усмотрение самого Ansible.

Конечно, особенно показательно, что Ansible упоминается как инструмент автоматизации, а не оркестровки. Разница может быть незначительной, и термины определенно частично совпадают.

Оркестровка и облако

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

Если бы вы автоматизировали задачу, вы могли бы написать сценарий PHP или Node.js для определения момента загрузки файла. Сценарий преобразует файл и отправит предупреждение или сделает запись в журнале. Со временем вы можете улучшить сценарий, чтобы пользователи могли взаимодействовать с процессом загрузки и преобразования.

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

Как учиться автоматизации и оркестровке?

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

Первый шаг к обучению —  это овладеть технологией, которую вы должны оркестровать или автоматизировать. Трудно оркестровать масштабирование нескольких веб-серверов, если вы не понимаете принципы их работы.

Вы можете администрировать OpenShift, не зная о содержимом контейнера. Но знать о работе контейнеров вам нужно. Основные концепции важны всегда важны.

Вам также необходимо ознакомиться с наиболее распространенными инструментами в мире оркестровки и автоматизации. Узнать некоторые Bash, начать использовать Git и создать несколько хуков Git, подучить Python, освоиться с YAML и Ansible, и попробовать Minikube, OKD и OpenShift.

Оркестровка и автоматизация — важные навыки для повышения эффективности вашей работы и команды. Инвестируйте в это сегодня, и сделайте вдвое больше завтра.

Залишити відповідь

Дякуємо, що поділились