Требується DevOps-інженер / розробник для автоматизації роботи з мобільними додатками в контейнерному середовищі
Шукаємо досвідченого DevOps-інженера, здатного розробити та автоматизувати систему запуску безлічі мобільних додатків в ізольованих контейнерах з Kubernetes та Docker. Важливим елементом є налаштування сесій для тривалої роботи та обробка запитів з мінімальним залученням людини. Система повинна бути оптимізована для паралельного виконання завдань, відновлення активних сесій та ефективного управління ресурсами.
Основні обов'язки:
Розробка архітектури для запуску Android-емуляторів у Docker-контейнерах.
Налаштування та оркестрація контейнерів з використанням Kubernetes, забезпечення масштабованості.
Налаштування та оптимізація емуляторів для тривалої роботи та ізоляції сесій.
Автоматизація отримання даних та обробки запитів від бота.
Налаштування системи моніторингу та логування для управління активністю контейнерів та сесій.
Вимоги до навичок:
Досвід роботи з Docker, Kubernetes та контейнеризацією додатків.
Знання мобільної автоматизації, досвід з Android-емуляторами, Appium або подібними інструментами.
Досвід налаштування та управління мережами, в тому числі через проксі, для забезпечення унікальності сесій.
Вміння працювати з API та автоматизувати отримання тимчасових даних для авторизації.
Навички бекенд-розробки на Python, Node.js або Go для обробки запитів та взаємодії з системою.
Знання принципів CI/CD та DevOps-практик.
Бажано:
Досвід роботи з розподіленими системами.
Навички роботи з системами моніторингу, такими як Prometheus та Grafana.
---
Технічне завдання для бекенд-частини
Мета:
Розробити бекенд-сервіс, що обробляє запити від Telegram-бота та координує запуск контейнерів з мобільними додатками. Система повинна підтримувати роботу з сесіями, управляти авторизацією облікових записів, забезпечувати паралельне виконання запитів та зберігати дані сесій для мінімізації повторної авторизації.
Основні завдання бекенду:
1. Прийом та обробка запитів від бота:
Запити містять дані про кількість необхідних сесій, імена користувачів та інші параметри для емуляторів.
Перевірка валідності даних та розподіл по контейнерах на основі доступності ресурсів.
2. Створення та управління контейнерами:
Створення контейнерів з емуляторами Android за допомогою Docker API та оркестрація через Kubernetes.
Призначення унікальних мережевих налаштувань, включаючи прив'язку проксі-серверів, для кожного контейнера для забезпечення ізоляції.
3. Авторизація та управління сесіями:
Управління процесом авторизації за допомогою тимчасового пароля, отриманого через поштовий API.
Збереження сесійних даних (cookies, токени) у безпечному сховищі, щоб уникнути повторної авторизації.
Відновлення сесій при повторних запитах з використанням збережених даних.
4. Моніторинг та масштабування контейнерів:
Підтримка паралельного виконання контейнерів з емуляторами, контроль статусу роботи контейнерів.
Моніторинг активності контейнерів та їх продуктивності (навантаження на CPU, пам'ять).
Автоматичне масштабування контейнерів на основі навантаження.
5. Обробка та відправка результатів:
Після завершення роботи емулятора відправка даних (наприклад, підтвердження бронювання) через бота.
Обробка помилок та відправка сповіщень про статус операції користувачу через бота.
6. Безпека та логування:
Ведення логів для відстеження активності контейнерів та обробки запитів.
Налаштування системи моніторингу для контролю та своєчасного виявлення помилок.
Вимоги до архітектури бекенду:
Мова програмування: Python, Node.js, або Go.
Система контейнеризації: Docker, з оркестрацією через Kubernetes.
Система моніторингу: Prometheus, Grafana для спостереження за станом контейнерів.
Сховище для сесій: Redis або PostgreSQL для тимчасового зберігання сесійних даних.
API для бота: REST API для обробки запитів від бота та отримання даних з Telegram.
Приблизний хід роботи:
1. Бот відправляє запит → 2. Бекенд валідирує дані та вибирає контейнер → 3. Запуск контейнера з емулятором → 4. Авторизація та робота з сесією → 5. Збереження сесії та повернення даних боту