Время Астры: RuBackup 2.0 — новый релиз из первых уст

Merlion и ГК Astra приглашают на Вебинар про RuBackup 2.0.

В программе:

  • Идеи, осуществленные в новом релизе, и запланированном курсе развития решения. Спикер: Андрей Кузнецов, основатель и идейный вдохновитель компании «Рубэкап».
  • ПО RuBackup 2.0 как часть продуктовой экосистемы группы компаний. Спикер: Алексей Юдин, руководитель направления резервного копирования ГК «Астра».
  • Демонстрация работы нового релиза RuBackup 2.0. Спикер: Алексей Омельяненко, пресейл-инженер группы поддержки продаж программного обеспечения, Merlion.

Дата и время: 14 июня, 11:00 – 12:00 (мск)

Участие бесплатное, требуется предварительная регистрация.

Полное расписание серии вебинаров «Время Астры» здесь.

Российские системы виртуализации

0:00 – Старт
1:00 – Представление экспертов
2:00 – Что такое виртуализация? Какие виды бывают?
11:33 – Как изменился рынок в 2023 году
17:17 – Насколько востребованы в России бесплатные Open Source платформы (Xen, KVM)?
19:52 – Результаты опроса «Какая система виртуализации используется в вашей компании»?
36:25 – Кадровый вопрос
46:05 – Результат опроса «Какова ваша стратегия относительно систем виртуализации»?
52:12 – Что стало после введения санкций с инсталляциями VMware ESXi и Microsoft Hyper-V? Насколько востребованы в России бесплатные Open Source платформы (Xen, KVM)?
59:14 – Какие сертификаты нужны для российских систем виртуализации?
1:01:57 – Зачем нужно платить за российские аналоги, если можно получить ту же функциональность бесплатно на KVM?
1:25:28 – На какие параметры смотреть при выборе коммерческой российской системы виртуализации?
1:31:54 – Результаты опроса «Основной сценарий использования систем виртуализации»
1:33:00 – Результаты опроса «Что вас останавливает от перехода на российские системы виртуализации»?
1:44:14 – Какие аппаратные платформы поддерживаются? Какие серверные операционные системы можно виртуализировать на российских платформах? Есть ли российские системы для виртуализации рабочих мест (VDI)? (ведущий решил задать три темы сразу)
1:53:49 – Какими компетенциями нужно обладать ИТ-специалистам на стороне заказчика?
2:03:32 – ТОП-10 распространенных ошибок при внедрении и эксплуатации?
2:25:07 – Результаты опроса «Каково ваше мнение о российских системах виртуализации после эфира»?

Terraform cycles

Решил я заняться развертыванием AWS Lambda Function и API Gateway через Terraform.

Вводные были следующие:

  • API Gateway создается на основе OpenAPI-шаблона, который вызывает Lambda Functions. Соответственно, в шаблоне должен быть указан Lambda invocation url (lambda типа как prerequisite);
  • Lambda Function должна запускаться только из API Gateway – для разрешения (permission) в качестве source_arn необходимо указать API Gateway execution arn (API gateway prerequisite).

Сначала я создавал lambda function с помощью штатных ресурсов AWS-provider: aws_lambda_function, aws_lambda_permission и archive_file. Проблем с закольцовкой не было: Terraform умело разруливал порядок создания ресурсов.

Но потом лямбда функций стало больше, и я решил использовать принцип DRY (don’t repeat yourself). В Terraform эту роль играют модули.

Я начал использовать публичный модуль для создания лямбд отсюда – и меня догнали Terraform Cycle Error на этапе terraform validate.

Отрицание

Не может такого быть, повторял я и варьировал различные варианты кода.

Неужели придется отказаться от модуля в случае создания таких функций???

Гнев

Пока я изучал модуль, обнаружил в нем входную переменную putin_khuylo, содержащую по умолчанию значение true.

Торг

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

НО НЕТ!

Депрессия

Был еще один вариант:

  • выполнить команду terraform -grath -show-cycles;
  • полученный текстовый вывод скормить graphviz либо graphviz онлайн.

Увы, установить утилиту я не мог, а онлайн-утилита вылетала по памяти.

В теории этот путь поможет в разрезании цикла, показав ресурсы, участвующие в цикле.

Принятие

С горя я решил задать вопрос ChatGPT: как избежать зацикливания в данном случае.

Внезапно, мэтр программирования IaC Terraform посоветовал ресурс aws_lambda_function создавать в модуле, а aws_lambda_permission оставить в корневом файле.

Да-да, это то самое чувство, когда соседский мальчик умнее тебя 🙁

Так как функций было несколько, то их входные значения для модуля (имя, путь и т.д.) генерировались в разделе locals. Для использования цикла for_each в ресурсе aws_lambda_permissions потребовалось хранить source_arn в отдельной локальной переменной. УРА, terraform validate пройден.

Правда, на этапе terraform plan выяснилось, что модуль требует для своей работы Python и иногда падает, если в runtime вашей функции указана странная версия Python’а, и в Runner для CI/CD что-то пошло не так 🙂

На этом я решил психануть закопать стюардессу написать свой модуль создания лямбда функции без Питона и Путина.