마이크로서비스 네트워크의 Edge 서버를 포함한 모든 프로젝트에 대해 Docker 이미지를 생성하고, 이를 Docker Hub에 푸시하는 방법을 다루겠습니다. 또한, Docker Compose 파일을 업데이트하고 Docker 컨테이너 환경에서 Edge 서버와 관련된 모든 변경 사항을 테스트할 준비를 해보겠습니다.
accounts
, loans
, cards
마이크로서비스에 헬스, 레디니스, 라이브니스 관련 엔드포인트를 활성화했습니다.application.yml
파일에 관련 설정을 추가했습니다:management:
endpoints:
web:
exposure:
include: health,info
health:
livenessstate:
enabled: true
readinessstate:
enabled: true
mvn compile jib:dockerBuild
accounts
, loans
, cards
, config server
, Eureka server
, gateway server
)에서 이 명령을 실행하여 이미지를 생성했습니다.docker images
docker image push docker.io/<DockerHub-Username>/<Image-Name>:<Tag>
docker image push docker.io/eazybytes/accounts:S9
마이크로서비스 네트워크의 모든 구성 요소에 대해 Docker 이미지를 생성하고 이를 Docker Hub에 푸시하는 과정을 이해할 수 있었습니다. 이러한 과정을 통해 로컬 환경이 아닌 Docker 컨테이너 환경에서 마이크로서비스를 테스트할 준비가 완료되었습니다. Docker 이미지 생성을 통해 다양한 환경에서 마이크로서비스를 쉽게 배포하고 테스트할 수 있는 유연성을 확보할 수 있습니다.
Docker 이미지 생성과 푸시 작업이 완료되면 다음 단계로 Docker Compose 파일을 업데이트하고, Docker 컨테이너 환경에서 마이크로서비스 네트워크를 실행하고 테스트할 수 있습니다.
이제 Section 9에서 작업한 모든 마이크로서비스와 Gateway 서버의 Docker 이미지를 Docker Hub에 푸시한 후, Docker Compose 파일을 업데이트하여 Edge 서버(Gateway 서버)와 관련된 모든 변경 사항을 Docker 컨테이너 환경에서 테스트 해보겠습니다.
S9
태그를 사용하여 푸시되었습니다.S8
태그를 S9
로 업데이트했습니다.depends_on
설정을 추가하여, Gateway 서버가 다른 마이크로서비스(Accounts, Loans, Cards)의 상태가 'healthy'일 때만 시작되도록 했습니다.healthcheck
설정을 추가했습니다.docker-compose up -d
명령어를 사용하여 모든 컨테이너를 실행했습니다.fetchCustomerDetails()
API를 통해 데이터를 조회하여 모든 것이 올바르게 동작하는지 확인했습니다.correlationId
를 확인하고, Gateway 서버에서 생성된 correlationId
가 각 마이크로서비스에 제대로 전달되었는지 검증했습니다.prod
및 qa
프로필에 복사하여 프로덕션 및 QA 환경에서도 동일한 설정을 사용할 수 있도록 했습니다.마이크로서비스 네트워크의 모든 구성 요소에 대해 Docker 이미지를 생성하고 이를 Docker Compose를 사용해 실행하는 방법을 학습했습니다.
또한, Edge 서버(Gateway 서버)를 사용하여 외부 트래픽을 수신하고 이를 올바르게 마이크로서비스로 전달하는 것을 성공적으로 검증했습니다. 앞으로의 챕터에서는 Gateway 서버에 보안, 장애 허용(fault tolerance) 및 회복력(resilience) 관련하여 이야기 나누겠습니다.
이제 모든 외부 클라이언트는 각 마이크로서비스의 개별 URL을 사용하지 않고, Gateway 서버를 통해 접근할 수 있게 되었습니다. 이는 관리의 용이성과 보안을 강화하는 데 큰 도움이 됩니다.