Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 철저하게 분리된 빌드와 실행 단계
  • 코드베이스는 3단계를 거쳐 (개발용이 아닌) 배포로 변환된다
    • 빌드 단계 : 소스 코드를 가져와 컴파일 후 하나의 패키지를 만든다
    • 릴리스 단계 : 빌드에 환경설정 정보를 조합한다. 릴리스 버전은 실행 환경에서 운영될 수 있는 준비가 완료되어 있다. 시맨틱 버저닝 등 식별자가 부여됨. 이 버전은 롤백하는 데 사용
    • 실행 단계 : 보통 런타임이라 불림. 릴리스 버전 중 하나를 선택해 실행 환경 위에 애플리케이션 실행

Twelve-Factors - 포트 바인딩

  • 서비스는 포트에 연결해서 외부에 공개한다
  • 실행 환경에 웹 서버를 따로 추가해줄 필요 없이 스스로 웹 서버를 포함하고 있어서 완전히 자기 완비적(self-contained) 이다.

...

  • admin/maintenance 작업을 일회성 프로세스로 실행
  • 실행되는 프로세스와 동일한 환경에서 실행
  • admin 코드는 애플리케이션 코드와 함께 배포되어야 한다

HTTP, REST API

  • HTTP
    • 클라이언트의 상태를 갖지 않음(stateless)
    • 각 요청은 자기 완비적(self-contained)
  • REST vs 그 외(EJB, SOAP, etc..)
  • REST API
    • 2000년 로이 필딩(Roy Fielding) 박사가 소개(HTTP 명세 writer)
    • 원격 자원(resource) 와 엔티티(Entity) 를 다루는 데 초점
    • 동사 대신 명사를, 행위 대신 엔티티에 집중
    • REST 는 기술 표준이 아닌 아키텍처 제약사항
    • 상태가 없고 요청이 자기 완비적이기 때문에 서비스도 수평적으로 쉽게 확장될 수 있다