Spring Microservices in Action
Chapter 10
-
데브옵스
-
AWS 인프라 구성
-
서비스 빌드 및 배포 파이프라인 설계
-
지속적 통합, 지속적 배포
-
코드형 인프라스트럭처
-
불변 서버 구축
-
배포 중 테스팅
-
클라우드에 애플리케이션 배포
-
자동화 : 사람이 개입하지 않아야 함
-
반복성 : 빌드 및 배포가 시작될 때마다 동일한 작업으로 반복 수행
-
완전성 : 산출물은 런타임 환경을 포함하는 가상머신 혹은 컨테이너 이미지여야 한다.
-
불변성 : 빌드 및 배포된 이미지에 대해 런타임 구성을 변경하면 안된다.
-
메이븐 빌드 스크립트를 Travis CI에 통합
-
각 서비스에 대한 불변 도커 이미지를 생성하고 중앙 저장소에 업로드
-
AWS ECS에 마이크로서비스 배포
-
플랫폼 테스트 수행
-
소스 저장소에 코드 커밋
-
빌드 도구는 소스 저장소 변경 여부를 모니터링 하고 변경 탐지되면 빌드 시작
-
빌드 동안 단위 테스트, 통합 테스트가 수행되고 모두 통과하면 배포 가능한 산출물 생성(JAR, WAR, EAR 등)
-
산출물(JAR, WAR, EAR)을 애플리케이션 서버에 배포
-
소스 저장소에 코드 커밋
-
빌드 도구는 소스 저장소 변경 여부를 모니터링 하고 변경 탐지되면 코드를 소스 저장소에서 가져와 코드의 빌드 스크립트 실행
-
단위 테스트, 통합 테스트 수행 후 톰캣 서버를 완전히 포함한 실행가능한 JAR 파일 생성
-
실행 가능한 JAR 파일 빌드 후 마이크로서비스가 배포된 머신 이미지를 굽는다
-
머신 이미지에 대해 일련의 플랫폼 테스트를 수행한다. 테스트를 통과하면 새로운 환경으로 승격
-
CI / CD 패턴
- 코드가 커밋되면 빌드, 테스트, 배포가 지속적으로 이루어짐
-
코드형 인프라스트럭처
- 머신 이미지의 프로비저닝은 각 빌드와 함께 실행되는 일련의 스크립트를 통해 수행된다
-
불변 서버
- 생성된 서버 이미지는 이후에 절대 변경될 수 없다
-
제대로 작동하는 빌드 및 배포 파이프라인을 통해 몇 분 안에 배포할 수 있다.
-
빌드 및 배포는 사람의 개입 없이 자동화되어야 한다.
-
빌드 및 배포 자동화에는 많은 스크립트가 필요하다.
-
빌드 및 배포 파이프라인은 불변 가상머신 또는 컨테이너 이미지를 제공해야 한다.
-
환경별 서버 구성은 매개변수로 전달되어야 한다.
마이크로서비스의 배포 Spring Microservices in Action Chapter 10 2019.07.24 박영준