Я немного новичок в облачной разработке, так что будьте спокойны со мной.Я даже не уверен, что я спрашиваю: возможно .
Я пытаюсь выяснить, как запланировать работу (возможно, каждый час или два) для выполнения рабочего процесса.это будет упаковано в пользовательский образ Docker.Рабочий процесс проверит любую «запланированную работу», которую он должен выполнить (по запросу пользователей приложения), подключившись к хранилищу данных приложения, а затем выполнит любую ожидающую работу.Когда я это сделаю, я хочу, чтобы все было снесено до следующего интервала графика, поэтому я не несу никаких затрат во время простоя.
Одна сложность заключается в том, что запланированные работы будут разных типов.В идеале я хочу раскрутить один экземпляр моего образа на тип , передав этот тип в рабочий процесс, чтобы он знал, с каким типом запланированной работы он имеет дело.По завершении запланированной работы он может выйти, даже если другие контейнеры все еще выполняют свою запланированную работу.
Сводка требований
- Полный контроль над образом Docker.У меня есть пользовательские инструменты и код, который мне нужно будет вставить в образ.
- График, основанный на времени, для запуска выполнения кода в образе Docker.
- Запланированное выполнение работы может занять довольно много времени(может быть до 10 или 15 минут) для завершения.
- Настраиваемое, управляемое программным способом масштабирование и разбиение, которое создает x количество контейнеров Docker, каждый из которых имеет свой тип запланированной работы.Определение x будет основано на данных в хранилище данных приложения.
- Во время простоя абсолютно не несет никаких затрат.
Things I 'мы пробовали / рассматривали
K8s
Кажется, требует, чтобы кластер работал постоянно.Мне также неясно, как бы я имел разные узлы в кластере, отвечающие за разные типы запланированных работ.
AppEngine и Cloud Scheduler
Мне нужно было бы использовать гибкую среду из-за моегосделанное на заказ изображение Docker.Согласно this , это означает, что я должен оставить хотя бы один экземпляр запущенным постоянно.
Опять же, я не уверен, как бы я масштабировал его так, чтобы разные экземпляры имели дело с разнымитипы запланированных работ.
Вопросы
Итак, у меня есть несколько вопросов обо всем этом:
- Прежде всего, возможно ли это даже с помощью GCP?Мои исследования до сих пор показывают, что это не так.
- Каков наилучший подход к тому, чтобы максимально приблизиться к моим требованиям?