Задачи по devops

Цена договорная
14 августа 2024, 16:09 • 4 отклика • 59 просмотров
Прошу в комментариях писать стоимость и сроки.
Также сразу скажу, запускается 1 сервис с тестовым окружением, для тестирования всей цепочки.

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

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

Этапы
Я вижу два этапа. Первый, самый объемный — первоначальная настройка, доведение до ума и документирование. Второй — поддержка, консультирование, плановые обновления и внеплановые починки всего, когда все сломалось

Задачи 1 этапа
Настроить управление виртуалками, чтобы можно было создать/удалить/мигрировать/снепшотить виртуалки.

Создать Kubernetes кластер:

нодами будут виртуалки

конфигурация кластера, количество и тип нод — обсуждается, предложения приветствуются

кластер должен создаваться кодом (вероятно, Terraform)

настроить деплой k8s-приложений в кластер (Gitlab Agent, Flux, etc)

выбрать и настроить хранилище для persistent volumes (м.б. Longhorn)

Задеплоить продакшн сервисы. Куда деплоить — в k8s кластер либо как виртуалки — нужно выбрать, что лучше подходит. Деплоить кодом, не руками. Пожелания к технологиям — без экзотики, если это будет Ansible, Terraform, Helm чарты, то отлично. Список:

PostgreSQL v. 16 с PostGIS — просто одна нода, т.е. не кластер — основная БД

Elasticsearch v. 7 — кластер из 3 нод + Kibana — используем для поиска

MinIO — используем для хранения фоток

Graylog — используем для сборки логов (и для грейлога отдельный инстанс Elastic/Opensearch, чтобы не создавать нагрузку на основной эластик)

очень вероятно, что добавится Redis для сессий и RabbitMQ для сообщений, но пока их нет — не делаем, просто имеем в виду

для полноты укажу, что будет еще основное приложение на PHP/Symfony, но его деплоем наверно я сам займусь. Так же, как и деплоем фронтенда (там nextjs). И фронт и бек приложения планирую деплоить в k8s.

Задеплоить вспомогательные сервисы:

Docker registry, в который мы будем пушить свои образы и если возможно, чтобы работало как pull-through cache к внешним registry

Репозиторий php-пакетов (м.б. Satis)

Репозиторий npm-пакетов (хз что они там используют, дефолтный какой-нибудь)

Настроить бекап данных и написать план восстановления из бекапа. В конце первого этапа работы проведем тренировку по восстановлению.

Выбрать способ, которым мы будем работать с SSL сертификатами. Задокументировать, чтобы было понятно, что делать, когда сертификат истечет. Предпочесть в этом вопросе простоту использования — если можно завязаться на Letsencrypt, то и отлично.

Также нужно будет staging окружение. Повторяет прод, но ресурсов можно меньше.

Задокументировать.

Последняя задача 1 этапа — продумать и согласовать задачи 2 этап