Dynamic Feature Toggles with Consul (2022.04 HashiTalk)

2022. 4. 28. 14:01·IaC/Terraform

Encar- Backend Engineer

 

Feature Toggles (= Feature Flags)

 

소스 코드 상 특정 기능의 분기 설정을 유지 및 관리

런타임 시간 동안 특정 기능의 활성 및 비활성

테스트를 통한 점진적 릴리스 방법

 

New Feature -> Feature Toggle -> ON : 사용자에게 제공

                                                            OFF : 사용자에게 제공 X

 

'설정 값'의 관리

 

Local Store (properties, xml, yml 등)

-> 설정 값 변경 시 매번 배포 필요 (static)

Database

-> 설정 값 조회 시 매번 DB에 대한 조회 발생 (성능, 부하 이슈)

Remote Store

-> 여러 서버들의 설정 값을 하나의 원격 저장소에서 통합 관리

-> 설정 값 변경 시 배포 없이 빠르게 적용 가능 (dynamic)

-> 장애 발생 시 전체 장애로 이어질 수 있음 (H/A 구성 필수)

 

Consul

DNS 기반 서비스 디스커버리를 위해 2014년 출시된 소프트웨어이며 '분산 키-값 저장소', 세그멘테이션, 구성을 제공한다.

등록된 서비스와 노드들은 http 인터페이스나 dns 인터페이스를 사용하여 조회할 수 있다.

 

Clients -> Order System -> Feature Toggle (Consul) -> ON : New Java API

                                                                                               OFF : PL-SQL

 

레거시인 PL-SQL과 새로 만든 서버인 New Java API 서버가 있어.

그런데 새로 만든 서버가 갑자기 장애가 생겨.

그러면 Toggle OFF를 해서 거의 실시간에 가깝게 사용차의 요청을 레거시인 PL-SQL로 보낼 수 있는거야.

그 사이에 New Java API를 fix하고 Toggle ON을 하면 실시간/동적으로 New Java API 서버로 다시 요청을 흘려 보낼 수 있다.

 

이러한 과정을 거치면서, 테스트를 거치면서, 점진적으로 서비스를 배포할 수 있다.

 

Consul + Spring 상에서 구축

 

경험 공유

 

이 경우 추천:

- 레거시 개선, 중요 로직 수정 등 부담되는 작업의 점진적 배포

- 미완성 특정 기능의 빠른 적용 및 롤백

- 간단한 설정 정보 관리 (toggle, ratio, timeout, retry, ...)

- Consul 운영 시 H/A 구성, UI 비활성, 접속 제한

 

신기술 적용시 '인내와 끈기'는 필수!

안정성이 뛰어나고 Key/Value Store, Service Discovery, Service Mesh등을 지원하는 'Consul'을 개인적으로 추천!

 

 

저작자표시 비영리

'IaC > Terraform' 카테고리의 다른 글

멀티리전 & 멀티스테이지 인프라를 위한 모노레포 구축하기 (2022.04 HashiTalk)  (0) 2022.04.28
Cloud Adoption Framework and Terraform by MS Azure Lead Architect (2022.04 HashiTalk)  (0) 2022.04.28
당근페이 SRE 엔지니어 - Terraform 웨비나 (2022.04 HashiTalk)  (0) 2022.04.28
'IaC/Terraform' 카테고리의 다른 글
  • 멀티리전 & 멀티스테이지 인프라를 위한 모노레포 구축하기 (2022.04 HashiTalk)
  • Cloud Adoption Framework and Terraform by MS Azure Lead Architect (2022.04 HashiTalk)
  • 당근페이 SRE 엔지니어 - Terraform 웨비나 (2022.04 HashiTalk)
Hojae Lee
Hojae Lee
Solutions Architect
  • Hojae Lee
    기억력이 금붕어라
    Hojae Lee
  • 전체
    오늘
    어제
  • 공지사항

    • 참고사항
    • 이 블로그를 잘 활용하는 방법
    • my linkedin
    • 분류 전체보기 (404)
      • Career Path (19)
        • My Achievements (10)
        • About Career (1)
      • Projects for $100 (1)
      • CLOUD (183)
        • Azure Cloud (61)
        • AWS Cloud (120)
      • System Engineering (91)
        • Kubernetes (48)
        • Docker (0)
        • System Design (4)
        • DevOps (2)
        • SRE (5)
        • git (1)
        • 리눅스, 라즈베리파이 (17)
        • Powershell (2)
      • Computer Science (70)
        • Operating System (22)
        • Computer Architecture (5)
        • Network (18)
        • Database (13)
        • Security (9)
        • Machine Learning, AI (1)
      • Cloud Webinar (4)
        • AWS Summit (4)
      • 3D 프린터 (1)
      • IaC (4)
        • CloudFormation (0)
        • Terraform (4)
      • 아두이노 (임베디드) (2)
      • 개발자의 전기 전자 공부 (3)
      • 이전 직장 (11)
        • TMAX Soft (11)
      • 작업 환경 셋업 (3)
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
Hojae Lee
Dynamic Feature Toggles with Consul (2022.04 HashiTalk)
상단으로

티스토리툴바