Cloud

[클라우드] 12 Factors

문승주 2023. 7. 23. 23:33
반응형

12 Factors란?

클라우드 네이티브 애플리케이션 개발에 관한 지침들을 포함한 방법론으로 이 지침들은 클라우드 환경에서 애플리케이션을 구축하고 운영하는 데 필요한 원칙과 모범 사례를 제시한다. 이러한 12가지 요소는 소프트웨어 개발자들에게 민첩하고 확장 가능하며 관리하기 쉬운 애플리케이션을 구축하는 데 도움이 된다. 12 Factors 방법론은 Heroku의 공동 창립자 Adam Wiggins와 James Ward가 2011년에 발표한 문서에서 제시되었다.

1. 코드베이스

애플리케이션은 코드베이스를 기반으로 빌드되어야 한다. 즉, 모든 환경에서 동일한 코드를 사용해야 힌다.

2. 의존성 관리

애플리케이션은 명시적으로 종속성을 선언하고 사용해야 한다. 이는 외부 라이브러리와 환경에 의존하지 않아야 한다.

3. 환경 설정

설정 정보는 코드에서 분리되어야 하며, 환경 변수를 통해 관리되어야 한다. 이로 인해 애플리케이션은 다양한 환경에서 쉽게 구성할 수 있다.

4. 백엔드 서비스

백엔드 서비스(데이터베이스, 메시징 큐 등)는 외부 서비스로 취급되어야 하고, 이는 서비스 간의 결합도를 줄이고 유연성을 향상시킨다.

5. 빌드, 릴리스, 실행

빌드, 릴리스, 실행 단계를 명확하게 분리해야 하는데 애플리케이션은 일관된 방식으로 빌드되고 배포되어야 한다.

6. 프로세스

애플리케이션은 하나 이상의 동작 가능한 프로세스로 실행되어야 한다. 이로 인해 확장성과 격리성이 보장된다.

7. 배포

배포 과정은 자동화되어야 하며, 빠르고 안정적이어야 한다.

8. 상태

애플리케이션은 상태를 저장해서는 안 된다. 모든 상태 정보는 외부 저장소(데이터베이스 등)에 보관해야 한다.

9. 포트 바인딩

서비스는 포트 바인딩을 통해 외부 요청을 처리해야 하고, 이는 애플리케이션이 각자 독립적인 프로세스로 실행될 수 있도록 도와준다.

10. 동시성

애플리케이션은 동시에 여러 프로세스를 실행할 수 있어야 하고, 이로 인해 병렬 처리가 가능하며 확장성이 향상된다.

11. 로그

로그는 이벤트 스트림으로 취급되어야 한다. 애플리케이션은 로그를 파일로 저장하거나, 콘솔에 출력하는 것이 아니라, 외부 로그 수집 서비스로 전송해야 한다.

12. 관리 프로세스

관리 작업은 명령행 도구를 통해 실행되어야 하는데 이는 자동화된 운영 및 관리를 가능케 힌다.

반응형