[스프링 마이크로서비스 코딩 공작소] 1장. 스프링 클라우드와 만나다 - 2부

garam0410·2022년 8월 23일
0
post-thumbnail

1.2 스프링 마이크로서비스

  • Spring은 자바 기반 어플리케이션을 구축할 수 있는 가장 대중적인 개발 프레임워크

  • 의존성 주입(Dependency Injection) 이라는 핵심 개념에 기반

  • 의존성 주입 프레임워크를 사용하면 어플리케이션 내 객체 관계를 서로 '알기' 위해 하드코딩하는 대신 convension과 annotation으로 외부화할 수 있어 대규모 프로젝트를 효율적으로 관리할 수 있음

  • Spring은 어플리케이션의 다양한 자바 클래스 사이에 중재자 역할 및 의존성 관리

  • 마이크로서비스를 사용하는 추세로 이동하는 것을 재빨리 알아차리고(?) Spring Boot와 Spring Cloud 프로젝트를 시작


Spring의 핵심 기능

  • 어플리케이션을 배포하는데 복잡함을 줄여주는 내장형 웹서버 (Tomcat - 기본, Jetty, Undertow) 가 있음
  • spring-boot-starter로 빠르게 Spring을 시작할 수 있음
  • 가능하다면 Spring에 대한 기능적으로 자동화된 구성
  • 운영 환경에 바로 사용가능한 다양한 기능 (지표, 보완, 상태확인, 코드와 분리된 구성 등)

Spring Boot가 마이크로서비스에 제공하는 이점

  • 개발 시간 단축, 효율성과 생산성 향상
  • 웹 어플리케이션 실행을 위한 내장 HTTP 서버 제공
  • 많은 boilerplate 코드 작성 회피
  • Spring Data, Spring Security, Spring Cloud와 같은 생태계
  • 다양한 개발 플러그인 지원

1.3 우리가 구축할 것은 무엇인가?

  • 조직 정보를 갱신하고 조회하는 클라이언트 요청을 설명
  • 클라이언트가 요청을 시작하려면 액세스 토큰을 획득하기 위해 키클록에 인증을 받아야 함
  • 토큰을 얻고 나서 클라이언트는 Spring Cloud API 게이트웨이에 요청을 보냄
  • API 게이트웨이 서비스는 전체 아키텍처에 대한 진입점
  • 즉, 이 서비스는 Eureka 서비스와 통신하여 조직 및 라이선스 서비스의 위치를 조회하고 해당 마이크로서비스를 호출
  • 조직 서비스가 요청을 받으면 키클록에 엑세스 토큰의 유효성을 검증해서 요청을 처리할 수 있는 권한 여부 확인
  • 유효성이 확인되면 조직 서비스는 조직 데이터베이스에 정보를 갱신하고 조회하여 클라이언트에 HTTP 응답
  • 다른 경로로 조직 정보가 갱신되면 조직 서비스는 Kafka Topic을 추가로 전송하여 라이선싱 서비스가 변경사항을 인식
  • 이 메시지가 라이선싱 서비스에 도착되면 Redis는 특정 정보를 Redis의 In-Memory-DB 에 저장
  • 이 과정동안 Zipkin, Elasticsearch, Logstash를 사용하여 로그 관리 및 표시
  • Spring Actuator, Prometheus, Grafana를 사용하여 어플리케이션 지표를 노출하고 표시

1.4 이 책의 내용


1.4.1 이 책에서 배울 내용

  • 마이크로서비스의 정의, 모범 사례 및 마이크로서비스 기반 어플리케이션 구축을 위한 설계
  • 마이크로 서비스 기반 어플리케이션을 구축하면 안되는 경우
  • Spring Boot 를 사용하여 마이크로서비스를 구축하는 방법
  • 마이크로서비스 어플리케이션, 클라우드 기반 어플리케이션을 지원하는 핵심 운영 패턴
  • Docker 정의 및 마이크로서비스 기반 어플리케이션과 통합하는 방법
  • Spring Cloud 사용방법
  • 모니터링 도구 시각화 방법
  • Zipkin으로 분산 추적하는 방법
  • ELK 스택으로 로그 관리하는 방법
  • 서비스 배포 파이프라인을 구축하는 방법

0개의 댓글