BackEnd/Spring Cloud
-
Spring Cloud ConfigBackEnd/Spring Cloud 2022. 7. 2. 10:20
Spring Cloud Config 분산 시스템에서 서버, 클라이언트 구성에 필요한 설정 정보(application.yml)를 외부 시스템에서 관리 하나의 중앙화 된 저장소에서 구성요소 관리 가능 각 서비스를 다시 빌드하지 않고, 바로 적용 가능 애플리케이션 배포 파이프라인을 통해 DEV-STAGE-PROD 환경에 맞는 구성 정보 사용 yml 파일 생성 hello.yml 파일을 생성하고 git에 commit합니다. 생성 위치: /Users/hansekim/Desktop/Work/git-local-repo yml 파일 우선순위: application.yml > application-name.yml > application-name-.yml # hello.yml greeting: message: hello,..
-
Spring Cloud GatewayBackEnd/Spring Cloud 2022. 6. 22. 08:27
Spring Cloud Gateway Spring Cloud Gateway는 API Gateway의 하나로 MSA에서 사용되는 Proxy 서비스입니다. 단일 진입점에서 요청을 중앙 집중화하고 적절한 서비스로 라우팅합니다. Spring Cloud Ribbon(Client side Load Balancer)과 Spring Cloud Zuul(API Gateway)은 Spring boot 2.4에서 Maintenance 상태로 전환되었기에 Spring Cloud Gateway와 이전 글의 Eureka와 연동하는 방법에 대해 알아보겠습니다. API Gateway Service 특징 인증 및 권한 부여 서비스 검색 통합 응답 캐싱 정책, 회로 차단기 및 Qos 다시 시도 속도 제한 부하 분산 로깅, 추적, 상관 ..
-
Spring Cloud Netflix EurekaBackEnd/Spring Cloud 2022. 6. 18. 09:33
Spring Cloud Netflix Eureka Spring Cloud Netflix Eureka는 Service Discovery 입니다. Service Discovery란 MSA와 같은 분산 환경에서 활성중인 서비스 인스턴스들을 관리하는 것을 말합니다. Cloud 환경에서 Auto-scaling, 생성, 삭제, 확장 등을 통해 IP주소나 Port들이 동적으로 변경되어도 서비스 클라이언트가 서비스를 호출할 때 서비스의 위치를 알 필요가 없습니다. Eureka는 단지 서비스의 위치만을 표현하는 역할로 보통 Spring Cloud Gateway와 같은 클라이언트 사이드 로드밸런서와 함께 동작합니다. Spring Cloud Netflix Eureka 동작 순서 Eureka Server 기동 > Eureka..
-
Spring CloudBackEnd/Spring Cloud 2022. 6. 9. 06:53
Spring Cloud Spring Cloud는 분산 시스템에서 일부 공통 패턴을 빠르게 구축할 수 있도록 개발자를 위한 도구를 제공합니다(e.g. configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy, control bus, one-time tokens, global locks, leadership election, distributed sessions, cluster state). 분산 시스템의 조정은 보일러 플레이트 패턴(Boilerplate code: 최소한의 변경으로 여러곳에서 재사용되며, 반복적으로 비슷한 형태를 띄는 코드)으로 이어지고, Spring Cloud 개발자는 이러한..
-
MSA(Microservice Architecture)BackEnd/Spring Cloud 2022. 6. 8. 20:06
Monolith Architecture All services combined into one build, written in the same language and application framework. 모든 업무 로직이 하나의 애플리케이션 형태로 패키지 되어 서비스되는 아키텍처입니다. 애플리케이션에서 사용하는 데이터가 한 곳에 모여 참조되어 서비스되는 형태로 일부 기능만 수정이 되어도 전체 애플리케이션을 빌드하고 배포해야 합니다. MSA(Microservice Architecture) 정의 MSA는 "함께 작동하는 작은 규모의 서비스들(Small autonomous services that work together.)" 입니다. 마이크로서비스 아키텍처 스타일은 소규모 서비스 모음을 단일 애플리케이션..
-
Cloud Native ApplicationBackEnd/Spring Cloud 2022. 5. 28. 13:22
Overview Cloud Native Application의 특징에 대해 알아보겠습니다. Cloud Native Application은 아래 그림과 같이 Microservices, DevOps, CI/CD 및 Containers 가상화의 특징을 가지고 있습니다. DevOps DevOps란, Development와 Operations의 통합으로 고객의 요구사항을 빠르게 반영하고 만족도 높은 서비스를 제공하는데 목적이 있습니다. 초기 소프트웨어 계획부터 코딩, 구축, 테스트 및 릴리즈 단계와 구축, 운영 및 지속적인 모니터링에 이르는 라이프사이클이 모든 단계에 걸쳐 지속됩니다. CI/CD 지속적인 통합, CI(Continuous Integration): 통합 서버, 소스 관리(SCM), 빌드 도구, 테스트..
-
Cloud Native ArchitectureBackEnd/Spring Cloud 2022. 5. 28. 12:04
확장 가능한 아키텍처 시스템의 수평적 확장에 유연 확장된 서버로 시스템의 부하 분산, 가용성 보장 시스템 또는 서비스 애플리케이션 단위의 패키지(컨테이너 기반 패키지) 모니터링 탄력적 아키텍처 서비스 생성 - 통합 - 배포, 비즈니스 환경 변화에 대응 시간 단축 분활된 서비스 구조 무상태 통신 프로토콜 서비스의 추가와 삭제 자동으로 감지 변경된 서비스 요청에 따라 사용자 요청 처리(동적 처리) 장애 격리(Fault isolation) 특정 서비스에 오류가 발생해도 다른 서비스에 영향 주지 않음 [참고 정보] 인프런 - Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)