[코드가 환경을 모르는 구조 2/7] 배포 코드가 환경을 모르는 구조
배포 코드가 환경 이름을 직접 읽지 않도록 Helm values와 GitOps 규율로 분리한 구조를 설명했습니다. Jenkinsfile까지 같은 원칙을 적용해 배포 이력을 Git으로 남기는 방법을 다뤘습니다.
![[코드가 환경을 모르는 구조 2/7] 배포 코드가 환경을 모르는 구조](https://flex.team/blog/og/main.jpg)
Helm 태그가 달린 국내 IT 기업 기술 블로그 글을 최신순으로 모았습니다.
20개 표시
배포 코드가 환경 이름을 직접 읽지 않도록 Helm values와 GitOps 규율로 분리한 구조를 설명했습니다. Jenkinsfile까지 같은 원칙을 적용해 배포 이력을 Git으로 남기는 방법을 다뤘습니다.
![[코드가 환경을 모르는 구조 2/7] 배포 코드가 환경을 모르는 구조](https://flex.team/blog/og/main.jpg)
배포 코드를 환경별로 갈라 쓰지 않고, 템플릿과 값의 층을 분리해 환경을 외부에서 주입하는 구조를 설명했습니다. GitOps와 Jenkinsfile에도 같은 규율을 적용해 배포 이력을 Git에 남기는 방법을 다뤘습니다.
![[코드가 환경을 모르는 구조 2/7] 배포 코드가 환경을 모르는 구조](https://cdn.sanity.io/images/v31psllp/production/58ae2e178769ca25361200fed07c9ecb06c62d2a-1684x1030.png)
코드가 무엇을 정의하고 환경은 어디서 주입할지 분리하는 원리를 설명했습니다. 이를 배포, 클라우드, 시간, 테스트 전반에 반복 적용하는 관점을 제시했습니다.
![[코드가 환경을 모르는 구조 1/7] 코드는 무엇을, 환경은 어디서 - 다시 더 깊이](https://flex.team/blog/og/main.jpg)
코드가 무엇을 정의하고 환경은 어디서 주입하는지라는 원리를 배포, 인프라, 테스트 전반에 걸쳐 설명했습니다. 경계를 구조에 새겨 교체 가능성과 안정성을 높이는 시리즈의 출발점입니다.
![[코드가 환경을 모르는 구조 1/7] 코드는 무엇을, 환경은 어디서 - 다시 더 깊이](https://cdn.sanity.io/images/v31psllp/production/d7669e80f5e28954ae4a8e30b97d6d297e7f7c35-1684x1030.png)
코드와 환경을 분리하는 Hexagonal 원칙을 배포, 인프라, 디버깅, 테스트까지 확장한 사례를 다뤘습니다. 부분 교체와 외부 주입으로 이터레이션 속도를 높이는 방법을 설명했습니다.
![[미래를 담아낸 뼈대 5/7] 코드가 환경을 모르는 구조](https://flex.team/blog/og/main.jpg)
애플리케이션과 인프라 전반에 Hexagonal 원칙을 적용해 환경 의존성을 분리하는 방법을 설명했습니다. 부분 교체와 주입으로 빠른 검증과 이터레이션을 가능하게 만든 사례를 다뤘습니다.
![[미래를 담아낸 뼈대 5/7] 코드가 환경을 모르는 구조](https://cdn.sanity.io/images/v31psllp/production/626db41a03292c4b57863b75c7bc5e755e395184-1684x1030.png)
OpenStack Helm 배포를 렌더링 CI에서 FluxCD HelmRelease 기반 GitOps로 전환한 사례를 다뤘습니다. Argo CD와 FluxCD 역할 분담, 값 관리, 의존성 제어, CRD 배포 패턴까지 운영 관점에서 정리했습니다.
Argo CD Image Updater로 이미지 태그 갱신과 배포 연결을 자동화하는 방법을 정리했습니다. Jenkins 중심 파이프라인을 GitOps 기반으로 경량화한 구성도 함께 설명했습니다.

LGTM 스택의 개요와 Mimir, Tempo, Loki의 구조를 처음 도입 관점에서 정리했습니다. 또한 배포 모드와 운영 시 주의할 점을 함께 소개했습니다.
온프레미스 Omniverse App Streaming(OVAS)을 Helm과 Kubernetes 리소스로 설치·구성하는 과정을 정리했습니다. 설치 중 발생한 오류와 해결 방법, 외부 DNS 연동 방식까지 함께 설명했습니다.

Docker 기반 Airflow의 운영 한계를 정리하고 Kubernetes/EKS로 이전한 과정을 공유했습니다. MultiExecutor, Git-Sync, Remote Logging, ArgoCD로 운영 자동화와 격리를 강화했습니다.

GitLab Runner를 Kubernetes에 Helm으로 설치하고 GitLab 프로젝트와 연동하는 과정을 정리했습니다. Maven 캐싱과 병렬 빌드로 속도를 높이고, CI/CD 오류 대응 방법도 함께 공유했습니다.
![[CI/CD] GitLab-Runner 연동 가이드 (feat. Maven 빌드 시간 단축)](https://devocean.sk.com/thumnail/2025/9/22/8a92d3cf87b9de7260cbaef6ac7a98bb51aa77909cf6120d32c96ed4340ef39c.png)
서비스마다 제각각이던 Helm Chart를 공통 템플릿과 values.yaml로 분리해 표준화했습니다. 또한 공통 Values와 테스트를 더해 유연성과 안정성을 함께 확보했습니다.

Helm Chart를 서비스별로 흩어 관리하던 구조를 AWS ECR 기반 Registry로 중앙화했습니다. 버전 관리와 롤백 체계를 정비해 배포 일관성과 운영 효율을 높였습니다.

공통 Helm Chart를 공통 템플릿과 서비스별 values.yaml로 분리해 배포 표준화를 이뤘습니다. CI, 단위 테스트, SemVer로 안정성과 점진적 적용도 확보했습니다.

여기어때는 파편화된 CI/CD와 Helm Chart를 표준화해 문제를 줄였습니다. 개발자 숙련도와 무관한 동일한 배포 경험을 만들기 위해 입력 방식과 재사용 구조를 개선했습니다.

Helm Chart를 서비스별로 분산 관리하던 구조를 중앙 레지스트리와 ECR 기반으로 재정비했습니다. 버전 관리와 롤백, 환경별 배포 재현성을 높여 CI/CD 운영 효율을 개선했습니다.

ExternalDNS로 EKS Ingress 도메인을 Route53에 자동 등록·관리하는 구성을 설명했습니다. 교차 계정 IAM 설정과 Helm 옵션, Ingress annotation, 삭제 동작 및 주의점까지 정리했습니다.

Kubernetes GitOps에서 Secret을 안전하게 다루기 위해 SealedSecret 활용 방안을 소개했습니다. 암호화 저장과 클러스터 복호화로 보안과 운영 효율을 함께 확보하는 방법을 설명했습니다.

Kubernetes 운영 중 자주 겪는 반복 작업과 실무 함정을 줄이는 팁을 정리했습니다. Namespace, ConfigMap, Init Container, Helm, 모니터링 등 핵심 활용법을 소개했습니다.
