а какова длительность проектов? а это может по деньгам вылиться в 50 тыр в месяц
1. Масштабируемость - мы стараемся делать стейтлесс сервисы, но от работы с СУБД никуда не уйти (сейчас у нас постгрес), плюс нужна HA репликация самих сервисов и удобная возможность ими управлять. Сейчас для этого мы используем docker swarm, в принципе, тоже устраивает, но настроено пока только на одной ноде и очень странно ). Хочется настроить Postgresql "как сервис" - что-нибудь типа Amazon RDS, плюс настроить redis cluster, плюс настроить нормальную репликацию эластика, плюс что-нибудь типа minio для хранения ассетов, ну и nginx / haproxy / traefik / что-нибудь еще для балансировки нагрузки (это что точно хочется, мб есть еще что-то, о чём я не подозреваю). В идеале, хотелось бы, чтобы большая часть (или еще лучше – все) сервисов / серверов могла масштабироваться простым втыканием нового сервера и лайтовой настройкой (мб ansible, мб что-то еще).
2. Простота выкатывания новых сервисов - сейчас у нас микс из capistrano для рельс, есть отдельное swarm облако для стейджинга и отдельное для продакшена, но деплой туда делается через боль (и руками). Нужен какой-нибудь стандартизированный воркфлоу, который +- легко позволит для созданного проекта в Gitlab через CI настроить его выкатывание на служебные адреса (например, some-super-project.staging.cloud.seendex.ru) и при необходимости с минимальными затратами назначить ему имя вида "super-project.seendex.ru" или примонтировать по пути /api/v1/super-project/
3. Мониторинг и логирование всего этого - сейчас у нас есть nagios + пара костылей для мониторинга сервисов и серверов, в принципе, со своими задачами справляется хорошо. Не хватает агрегатора логов (ELK мб) - чтобы можно было без лазания в консоли (и с нормальными правами доступа, в идеале) посмотреть логи сервиса / поискать по ним.
4. Надежность - в принципе, у нас сейчас достаточно интересно бекапится постгрес через barman (через WAL, можно откатиться с точностью до пары секунд в любую точку времени), но восстановление из архива - сложный и опасный процесс, который еще автоматом не чекает то, что всё ок. Плюс у нас совсем не бекапится редис и эластик, плюс пользовательские файлы (их не много) тоже не бекапятся (или бекапятся, но этого никто не проверял).
5. Безопасность - в идеале, наружу должно торчать как можно меньше портов, связь между серверами хочется по VPN, что-нибудь настроить для автонакатывания секьюрити фиксов (ну, вроде в ubuntu у нас это почти везде настроено)
6. CI - ну тут у нас всё стандартно и вроде даже +- хорошо настроено. Единственное, мы сейчас используем Gitlab shared runner, который хотелось бы заменить на докеровый и запускать в swarm / kubernetes / где-либо еще. Пайплайны настраивать умеем, вроде никакой боли с этим нет (хотя нет, есть - деплой из CI на стейджинг / продакшен, это в п. 1).
7. Документирование всего этого (в идеале - нам бы еще какой-нибудь инструмент для хранения информации о том, где какие серверы расположены физически). Плюс нам может понадобиться развернуть копию практически всей инфраструктуры у заказчика, желательно, чтобы это было минимально болезненно.
В общем, сейчас потребности примерно такие, если в общих чертах, какой-то приверженности инструментам нет, поэтому софт можно использовать любой подходящий. Еще одно ограничение - мы не можем использовать облака, так как клиенты из гос. компаний (и схожие с ними) не верят в их приватность 🙂 Поэтому использовать amazon / selectel и всё такое – не получится.