본문 바로가기
지속적 통합

DevOps Day 34 (4.21) 지속적 통합_릴리스 준비

by Jackykim 2023. 4. 21.

환경 변수
운영체제 혹은 소프트웨어가, 각기 다른 컴퓨터 또는 사용자마다 별도로 가질 수 있는 고유한 정보를 담는 데 사용하는 변수를 특별히 환경 변수라고 합니다.

 

환경 변수는 왜 필요한가?
배포되는 기능마다 설정이 달라질 수 있기 때문입니다.
- 새로운 배포마다, 새로운 기능들을 배포하게 됨으로써 설정값이 바뀌게 됩니다.
- 따라서 코드의 버전을 관리하는 것처럼 설정값의 버전을 관리할 필요가 있습니다.
Q. 설정은 왜 환경변수를 통하여 분리해야 할까요?

- 환경 변수는 코드 변경 없이 배포 때마다 쉽게 변경할 수 있습니다.

- 설정 파일과 달리, 잘못해서 코드 저장소에 올라갈 가능성도 적습니다.

- 다른 설정 메커니즘과 달리 언어나 OS에 의존하지 않습니다.

- 설정을 환경 변수를 통해 분리해야 하는 이유에 대한 참조 레퍼런스

 

12 Factor App은 클라우드 기반 애플리케이션의 개발과 운영에 관한 원칙으로, 간결하고 모듈화된 애플리케이션 개발을 장려합니다. 이는 이식성, 확장성, 유지보수성 및 가용성과 같은 많은 이점을 제공합니다. 12 Factor App은 다음과 같은 12가지 원칙을 따릅니다.

 

코드 베이스 (Codebase)

종속성 관리 (Dependencies)

구성 (Config)

백엔드 서비스 (Backing services)

빌드, 릴리스, 실행 (Build, release, run)

프로세스 (Processes)

포트 바인딩 (Port binding)

동시성 (Concurrency)

권한 (Disposability)

개발/운영 분리 (Dev/prod parity)

로그 (Logs)

관리 프로세스 (Admin processes)

 

환경 변수 설정 예시
- Linux : export 명령어
-
코드를 통해 환경 변수를 설정하는 법 : node.js -> process.env
- 서비스 내에서 환경 변수를 설정하는 법 : Github Action