репозитори? package.json инфры держите отдельно от приложения? Разделяете по папкам application/infrastructure?
держим отдельно. В каждом репозитории своя директория .infra в которой весь CDK код
Получается CI просто заходит в папку и там запускает CDK уже? А как структурируете ресурсы для приложений конкретных? Допустим нужен бакет для приложения app? тоже в .infra лежит?
Да, CI внутри этой директории работает, наверное только за Dockerfile ходит. Все ресурсы которые нужны для этого приложения там находятся ( кроме общих для все типа VPC)
Понял, то есть те кто пишет код лезет в .infra за изменением конфигов, да? Им нормально, кстати? Или робщут?)
Да, нормально, но мы тоже помогаем как можем - доки всякие пишем и cdk constructs верхнеуровневые, чтобы им попроще было. Ну и review иногда, если там совсем сложное что-то
Я почему спрашиваю. Меня немного настораживает полный мерж кода и инфры. Стремаюсь что креативность убъет стабильность и читаемость. Хочу чтобы у разрабов был полный доступ, но ревью и стандарты делалось SRE
Заставить тесты писать
"заставить" работает только в определенных организациях)
Да и тесты паттернов усложнени не исключают, только ревью. Но папочка .infra хорошо решает этот вопрос, codeowners итд - все чистенько.
А как деплоите сам софт? У вас Docker билдится где-то?
Через CodePipeline, все билдится и деплоится там
А подробнее? как допустим передается id ECR и тег?
У нас сами команды за свою инфраструктуру отвечают. Если накреативят так что прод сломается - они же и чинить будут
Обсуждают сегодня