Skip to content

Instantly share code, notes, and snippets.

@rolroralra
Last active September 28, 2021 03:11
Show Gist options
  • Save rolroralra/b4d95074177377cb07d7dedf61bb4239 to your computer and use it in GitHub Desktop.
Save rolroralra/b4d95074177377cb07d7dedf61bb4239 to your computer and use it in GitHub Desktop.
CNCF

12-Factor App

이 문서에 기여한 사람들은 수백개 앱의 개발과 배포에 직접 참여했으며, Heroku 플랫폼을 통해서 방대한 앱의 개발, 운영, 확장을 간접적으로 관찰했다.

이 문서는 실제로 쓰이는 다양한 SaaS 앱에 대한 경험과 관찰을 종합한 결과물이다. 특히 시간이 지나면서 앱이 유기적으로 성장하는 부분, 앱 코드베이스에서 작업하는 개발자들 간의 협업, 시간이 지나면서 망가지는 소프트웨어 유지비용을 줄이는 법에 집중하여 이상적인 앱 개발 방법을 찾고자 했다.
  1. Codebase코드베이스
    • One codebase tracked in revision control, many deploys
    • 버전 관리되는 하나의 코드베이스와 다양한 배포
  2. Dependencies종속성
    • Explicitly declare and isolate dependencies
    • 명시적으로 선언되고 분리된 종속성
  3. Config 설정
    • Store config in the environment
    • 환경(environment)에 저장된 설정
  4. Backing services 백엔드 서비스
    • Treat backing services as attached resources
    • 백엔드 서비스를 연결된 리소스로 취급
  5. Build, release, run 빌드, 릴리즈, 실행
    • Strictly separate build and run stages
    • 철저하게 분리된 빌드와 실행 단계
  6. Processes 프로세스
    • Execute the app as one or more stateless processes
    • 애플리케이션을 하나 혹은 여러개의 무상태(stateless) 프로세스로 실행
  7. Port binding 포트 바인딩
    • Export services via port binding
    • 포트 바인딩을 사용해서 서비스를 공개함
  8. Concurrency 동시성
    • Scale out via the process model
    • 프로세스 모델을 사용한 확장
  9. Disposability 폐기 가능
    • Maximize robustness with fast startup and graceful shutdown
    • 빠른 시작과 그레이스풀 셧다운을 통한 안정성 극대화
  10. Dev/prod parity 개발/프로덕션환경 일치
    • Keep development, staging, and production as similar as possible
    • 개발, 스테이징, 프로덕션 환경을 최대한 비슷하게 유지
  11. Logging 로그
    • Treat logs as event streams
    • 로그를 이벤트 스트림으로 취급
  12. Admin processes Admin 프로세스
    • Run admin/management tasks as one-off processes
    • admin/maintenance 작업을 일회성 프로세스로 실행

Service

image

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment