DevOps-инженер
Зарплата
Местоположение и тип занятости
Компания
Описание вакансии
Условия работы
Описание:
Деплой производится из Gitlab монорепозитория.
Каждая монорепа содержит некоторые из этих элементов:
директория /gcf, в которой находятся все GCF (Google Cloud Function) проекта
/api-gateway - nodejs сервер, который нужно деплоить в GKE (Google Kubernetes Engine)
/react-native - ios/android приложение
/react - веб приложение
Каждая монорепа имеет 2 перманентных ветки:
master - код в продакшене
dev - сюда мержим все новые фичи
Каждый merge request представляет из себя законченную фичу или фикс, имеет собственную semantic версию (выше dev) и release notes в каждом мерж-коммите.
Что нужно:
При любом коммите в ветки фичей (все ветки кроме dev и master), нужно запускать автотесты. В каждом инстансе кода (сервер, gcf, мобильные приложения и тд) тесты запускаются идентично - `npm run test`. Нативных тестов в мобильных приложениях нет.
При мерже в dev, должен происходить деплой в staging environment.
gcf и api-gateway билдить и деплоить в staging Google Cloud Project (на этом же проекте желательно хостить CI/CD инфраструктуру)
react-native - генерить apk и сохранять его в GCS (Google Cloud Storage), может позже еще и testflght с google play beta добавить, но там вроде проблемы будут с частыми мержами, а также версионности нет.
react - билдить и отправлять файлы в GCS бакет, прикрепленный к staging субдомену.
При мерже в master:
gcf и api-gateway билдить и деплоить в production Google Cloud Project
react-native отправлять в Google Play и App Store вместе с версией и release notes
react - билдить и отправлять файлы в GCS бакет, прикрепленный к продакшен домену.
Все должно работать в облаке без участия персональных машин.
Организационное:
Проектов несколько, регулярно появляются новые, для всех нужно делать аналогичную настройку, код везде на основе одних и тех же бойлерплейтов. Кроме того, само собой, нужно обновлять всю эту инфраструктуру со временем и добавлять новые удобства.
Оплата сдельная за каждый таск.
Начните свою заявку с чего-нибудь, что может знать только человек, имеющий отличные знания для решения вышеописанной задачи. Например, можно описать, как вы хотите билдить ios бандл и как быть с версией и release notes при отправке в App Store.
Бонусы
Дополнительные инструкции
Работа как в Apple! Меняем мир, газировку не продаем!