DevLog

엔지니어링 블로그를 한 곳에서 탐색하고, 최근 발행 흐름을 빠르게 파악할 수 있는 서비스 입니다.

Quick Links

  • Latest Feed
  • Engineering Directory

Support

  • 소개
  • 개인정보처리방침

Contribute

  • 원하는 블로그 추가 (준비 중)
  • Feedback

© 2026 DevLog Inc. All rights reserved.

본 사이트는 공개 RSS 피드를 통해 콘텐츠를 수집하며, 모든 콘텐츠의 저작권은 원저작자에게 있습니다.

Back to Feed
Read Original

Contents

Continue Reading

  • More from Flex
  • Related reads#ArgoCD
#DevOps

[인프라를 소프트웨어처럼 3/5] 환경은 브랜치에서 태어난다: Environment Variant

[인프라를 소프트웨어처럼 3/5] 환경은 브랜치에서 태어난다: Environment Variant
01

Summary

"브랜치를 push하면 서버가 뜬다" flex팀이 환경 파편화와 배포 병목을 해결한 방법

ArgoCD와 Git 브랜치를 결합해 7단계의 환경 구축 프로세스를 단 1초로 단축시킨 자동화 여정

본 아티클은 공유 개발 환경의 한계를 극복하기 위해 flex팀이 도입한 'Environment Variant' 개념과 구현 과정을 다룹니다. Git 브랜치의 생명주기에 환경의 생명주기를 완벽하게 일치시킴으로써 개발 생산성을 극대화하고 인프라 관리 부담을 획기적으로 줄인 실무 노하우를 공유합니다.

  • 01공유 dev 환경 점유를 위한 슬랙 공지와 대기 시간을 완전히 제거
  • 02ArgoCD ApplicationSet을 활용한 브랜치 기반 환경 자동 생성 및 회수 메커니즘
  • 03Baseline 위에 필요한 앱만 얹는 얇은 계층 구조로 리소스 효율성 달성
  • 04Istio Gateway를 활용해 호스트별로 variant와 baseline을 가르는 정교한 라우팅 설계
  • 05포털 서비스가 지고 있던 매니페스트 관리 책임을 인프라 코드로 이관하여 복잡도 해소

+RECOMMENDATION

마이크로서비스 아키텍처에서 환경 구축 비용 때문에 통합 테스트에 어려움을 겪는 팀에게 강력히 추천합니다. 특히 GitOps를 도입했음에도 불구하고 환경 생성 절차가 수동으로 남아있다면 이 아티클의 브랜치 기반 자동화 패턴이 훌륭한 해답이 될 것입니다.

The Problem

공유 dev 환경 하나를 두고 여러 개발자가 직렬로 점유해야 하는 병목 현상이 발생했으며, 격리된 환경을 구축하는 과정이 7단계에 이를 정도로 복잡하여 방치된 환경들이 전체 시스템의 안정성을 해치는 문제가 있었습니다.

The Solution

ArgoCD ApplicationSet의 SCM Provider Generator를 도입하여 특정 컨벤션의 브랜치를 push하면 자동으로 환경이 생성되고, 삭제 시 회수되는 구조를 설계했습니다. 또한, 전체 환경을 복제하는 대신 기준 환경(Baseline) 위에 변경된 앱만 덮어씌우고 Istio Gateway로 라우팅하는 Environment Variant 방식을 채택했습니다.

The Result

환경 생성 단계가 7단계에서 1단계로 단축되었으며, 매니페스트 변경 책임의 약 70%가 자동화로 대체되었습니다. 30일간 미사용된 브랜치를 자동으로 식별하고 15개의 유휴 환경을 일괄 정리함으로써 인프라 비용 절감과 운영 가시성을 동시에 확보했습니다.

Trade-off

별도의 로드밸런서를 생성하지 않고 공유 ALB와 입구를 사용하기 때문에, 호스트 기반 라우팅 설정이 누락될 경우 환경 접근이 불가능하며 런타임 헤더 기반의 동적 분기가 아닌 빌드 시점의 정적 경로 결정 방식에 의존합니다.

03

Key Concepts

Concept · 01

Environment Variant

기준이 되는 Baseline 환경 위에 개발자가 수정한 특정 애플리케이션만 복제하여 띄우는 격리된 통합 테스트 환경입니다.

  • 전체 클러스터를 복제하지 않아 리소스 소모가 적음
  • 독립적인 전용 주소(host)를 부여받아 독립적인 검증 가능
Concept · 02

ArgoCD ApplicationSet

여러 대상 클러스터나 저장소 브랜치에 대해 ArgoCD Application을 대량으로 자동 생성하고 관리할 수 있게 해주는 컨트롤러입니다.

  • SCM Provider를 통해 특정 패턴의 브랜치를 감시
  • 브랜치 생성/삭제에 따라 환경 앱 묶음을 자동으로 Provisioning/Pruning
Concept · 03

Istio Gateway

서비스 메시 환경에서 클러스터 입구로 들어오는 트래픽을 제어하고 가상 서비스로 라우팅하는 게이트웨이 설정입니다.

  • 호스트 헤더를 식별하여 특정 Variant 환경으로 트래픽 분기
  • Variant에 없는 앱에 대한 요청은 자동으로 Baseline 파드로 연결
Continue reading · same source

FlexMore from Flex

View all posts from Flex
  • @Scheduled 한 줄로 버티다, 트리거를 밖으로 꺼낸 이야기

    Spring BootScheduledDistributed Lock
    5일 전
  • 사람도 에이전트도, 덜 읽을수록 더 잘 고칩니다

    ModularizationAI AgentLLM Context
    1주 전
  • 헥사고날 아키텍처, Adapter만 바꾸면 될까

    Hexagonal ArchitecturePort and AdapterMulti Cloud
    2주 전
  • 경계를 빌드로 못 박으면, 경계를 옮기는 일도 빌드가 붙잡습니다

    Multi-ModuleGradleClean Architecture
    3주 전
  • 사람은 떠났는데 권한은 남았다

    ReBACOpenFGACDC
    1개월 전

Related reads#ArgoCD

Explore #ArgoCD
Flex·GitOps

GitOps 하시면서, 배포 전에 뭐가 바뀔지 알고 계신가요

#ArgoCD1개월 전
Flex·IaC

[인프라를 소프트웨어처럼 4/5] plan은 동작을 모른다: 인프라를 테스트·재현한다는 것

#ArgoCD1개월 전
Flex·GitOps

[코드가 환경을 모르는 구조 2/7] 배포 코드가 환경을 모르는 구조

#ArgoCD4개월 전
Flex·IaC

[코드가 환경을 모르는 구조 1/7] 코드는 무엇을, 환경은 어디서 - 다시 더 깊이

#ArgoCD4개월 전
여기어때·Slack Webhook

여기어때 이벤트 기반 통합 알림 플랫폼 구축기 Part 1. Why?

#ArgoCD4개월 전

Source

Flex
Flex
Engineering Blog

Published · July 1, 2026

Topics

ArgoCDApplicationSetKubernetesIstioInfrastructure as Code