마이크로서비스의 배포

Spring Microservices in Action

Chapter 10

2019.07.24

박영준

핵심 내용

  • 데브옵스

  • AWS 인프라 구성

  • 서비스 빌드 및 배포 파이프라인 설계

  • 지속적 통합, 지속적 배포

  • 코드형 인프라스트럭처

  • 불변 서버 구축

  • 배포 중 테스팅

  • 클라우드에 애플리케이션 배포

코드 빌드 및 배포 매커니즘

  • 자동화 : 사람이 개입하지 않아야 함

  • 반복성 : 빌드 및 배포가 시작될 때마다 동일한 작업으로 반복 수행

  • 완전성 : 산출물은 런타임 환경을 포함하는 가상머신 혹은 컨테이너 이미지여야 한다.

  • 불변성 : 빌드 및 배포된 이미지에 대해 런타임 구성을 변경하면 안된다.

이 책에서 수행할 작업

  • 메이븐 빌드  스크립트를 Travis CI에 통합

  • 각 서비스에 대한 불변 도커 이미지를 생성하고 중앙 저장소에 업로드

  • AWS ECS에 마이크로서비스 배포

  • 플랫폼 테스트 수행

인프라스트럭처 설정

책 352p ~ 364p 참고

서비스 수동 배포

책 364p ~ 367p 참고

빌드 및 배포 파이프라인 아키텍처

  • 소스 저장소에 코드 커밋

  • 빌드 도구는 소스 저장소 변경 여부를 모니터링 하고 변경 탐지되면 빌드 시작

  • 빌드 동안 단위 테스트, 통합 테스트가 수행되고 모두 통과하면 배포 가능한 산출물 생성(JAR, WAR, EAR 등)

  • 산출물(JAR, WAR, EAR)을 애플리케이션 서버에 배포

일반적인 패턴

빌드 및 배포 파이프라인 아키텍처

  • 소스 저장소에 코드 커밋

  • 빌드 도구는 소스 저장소 변경 여부를 모니터링 하고 변경 탐지되면 코드를 소스 저장소에서 가져와 코드의 빌드 스크립트 실행

  • 단위 테스트, 통합 테스트 수행 후 톰캣 서버를 완전히 포함한 실행가능한 JAR 파일 생성

  • 실행 가능한 JAR 파일 빌드 후 마이크로서비스가 배포된 머신 이미지를 굽는다

  • 머신 이미지에 대해 일련의 플랫폼 테스트를 수행한다. 테스트를 통과하면 새로운 환경으로 승격

CD 단계 추가

빌드 및 배포 프로세스의 핵심 패턴

  • CI / CD 패턴

    • 코드가 커밋되면 빌드, 테스트, 배포가 지속적으로 이루어짐
  • 코드형 인프라스트럭처

    • 머신 이미지의 프로비저닝은 각 빌드와 함께 실행되는 일련의 스크립트를 통해 수행된다
  • 불변 서버

    • 생성된 서버 이미지는 이후에 절대 변경될 수 없다

요약

  • 제대로 작동하는 빌드 및 배포 파이프라인을 통해 몇 분 안에 배포할 수 있다.

  • 빌드 및 배포는 사람의 개입 없이 자동화되어야 한다.

  • 빌드 및 배포 자동화에는 많은 스크립트가 필요하다.

  • 빌드 및 배포 파이프라인은 불변 가상머신 또는 컨테이너 이미지를 제공해야 한다.

  • 환경별 서버 구성은 매개변수로 전달되어야 한다.

마이크로서비스의 배포

By Young Jun Park (박영준)

마이크로서비스의 배포

마이크로서비스의 배포

  • 218