MSA 공부 (12 Factors) - 1

진병욱·2023년 10월 23일

Spring Cloud MSA 공부

목록 보기
1/20
post-thumbnail

먼저 글 작성에 앞서 해당 시리즈는 Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) 강의를 참고하여 필요한 내용들을 정리한 것을 밝힙니다.

클라우드 네이티브 어플리케이션 구축 시에 고려사항

12 Factors

Herokur라는 개발 회사에서 제시한 12가지 항목

  1. Base Code
    • 버전을 제어하기 위한 목적
    • 형상 관리를 위해 한 곳에서 코드를 관리
  2. DEPENDENCY ISOLATION
    • 자체 종속성을 가지고 패키징 되어 있음
    • 타 서비스에 영향을 주지 않아야 함
  3. CONFIGURATIONS
    • 외부에서 구성 관리 도구를 통해 MS를 위한 설정
  4. LINKABLE BACKING SERVICES
    • 보조 서비스 (DB, 캐시) 를 통해 MS가 가져야할 서비스 추가 지원
  5. STAGES OF CREATION
    • 빌드와 릴리즈와 실행 환경을 각각 분리
  6. STATELESS PROCESSES
    • 각각의 MS는 실행중인 서비스와 별개로 운영될 수 있어야 함
  7. PORT BINDING (포트바인딩)
    • 자체 포트에서 노출되는 인터페이스랑 기능과 함꼐 자체에 포함되어있는 기능이 있어야 함
  8. CONCURRENCY (동시성)
    • 하나의 서비스가 여러의 인스턴스로로 나뉘어서 운영되어 동시성을 가져야 함
  9. DISPOSABILITY
    • 서비스 인스턴스 자체가 삭제 가능해야 하고, 확장성 기회를 높여야하고 정상적으로 종료될 수 있어야 함
  10. DEVELOPENT & PPPRODUCTION PARITY
    • 개발 단계완 프로덕션 단계를 구분할 줄 알아야 함
    • 환경 자체를 다른 곳과 중복적이지 않고 종속적이지 않아야 함
  11. LOGS
    • 로깅시스템에 대한 정보
    • 어플리케이션 자체가 실행되지 않더라도 로그는 동작해야 함
    • 추가 모니터링 도구 사용 가능 (ELK 등)
  12. ADMIN PROCESS FOR EVENTUAL PROCESSES
    • 리포팅 기술 포함
    • 데이터 정리 및 분석 기술 포함

여기서 3가지가 더 추가되었음

  • API First
    - API 형태로 구축
    • 어떻게 쓸지를 고민
  • Telemetry
    - 데이터를 수치화돼서 시각화되어 관리할 수 있어야 함
  • Authentication and authorization
    - 인증 및 허가
profile
새로운 기술을 접하는 것에 망설임이 없고, 부족한 것이 있다면 항상 배우고자 하는 열정을 가지고 있습니다!

0개의 댓글