본문 바로가기

Spring Cloud&MSA5

(마이크로 서비스 vs 모놀리식 아키텍처) MicroService vs Monolithic Architecture 간단 소개 및 주관적 의견 모놀리식 아키텍처 (Monolithic Architecture) 장점 1. 어떤 기능(서비스)이든지 개발되어있는 환경이 같아서 복잡하지않다. 2. 쉽게 고가용성 서버 환경을 만들 수 있다. ( 같은 어플리케이션으로 하나더 만들면 됨) 3. End-to-End 테스트가 용이하다. (MSA의 경우 테스트에 필요한 서비스들을 모두 동작시켜야함) 단점 1. 한 프로젝트의 덩치가 너무 커져서 어플리케이션 구동시간이 늘어나고 빌드,배포 시간도 길어진다. 2. 조그마한 수정사항이 있어도 전체를 다시 빌드하고 배포를 해야한다. 3. 많은 양의 코드가 몰려있어 개발자가 모두를 이해 할 수 없고 유지보수도 힘들다. 4. 일부분의 오류가 전체에 영향을 미친다. 5. 기능별로 알맞는 기술, 언어, 프레임워크를 선택하기가 까다.. 2019. 4. 15.
(Spring Boot / Spring Cloud / MSA) 4. Zuul이란? / 적용방법 Zuul 이란? 모든 마이크로서비스에 대한 요청을 먼저 받아들이고 라우팅하는 프록시 API Gateway 기능을 수행한다. Spring Cloud의 적용 과정 : Zuul Eureka의 설정이 완료 되었으면 Zuul을 적용해 보자. 먼저 API Gateway로 사용될 프로젝트를 생성하고 설정을 진행해야 한다. 1. Spring Boot 프로젝트를 하나 생성하고 bulid.gradle 파일에 Dependency를 추가한다. dependencies { // Add Zuul Dependency compile('org.springframework.cloud:spring-cloud-starter-netflix-zuul)compile('org.springframework.cloud:spring-cloud-start.. 2019. 2. 7.
(Spring Boot / Spring Cloud / MSA) 3. Eureka란? / 적용방법 Eureka 란?마이크로서비스들의 정보를 레지스트리에 등록할 수 있도록 하고 마이크로서비스의 동적인 탐색과 로드밸런싱을 제공한다. 먼저 Eureka는 Eureka Server와 Eureka Client로 구성된다. Eureka Server는 Eureka Client에 해당하는 마이크로서비스들의 상태 정보가 등록되어있는 레지스트리를 갖는다. Eureka Client의 서비스가 시작 될 때 Eureka Server에 자신의 정보를 등록한다. 등록된 후에는 30초마다 레지스트리에 ping을 전송하여 자신이 가용 상태임을 알리는데 일정 횟수 이상 ping이 확인되지 않으면 Eureka Server에서 해당 서비스를 레지스트리에서 제외시킨다. 레지스트리의 정보는 모든 Eureka Client에 복제되어 있어 필요.. 2019. 2. 7.
(Spring Boot / Spring Cloud / MSA) 2. Spring Cloud란? / 간략한 소개 MSA를 선택하였다면 Spring Cloud를 적용하자Spring Cloud우리 팀의 비즈니스가 진행되면서 마이크로서비스의 개수가 늘어나게 되었고 점점 더 관리가 복잡해지는 것에 대비해 Spring Cloud를 적용하기로 하였다. 비즈니스 초기에 마이크로서비스의 개수가 적은 상황이라면 느끼기 힘들 수도 있겠지만 비즈니스가 성장하면서 마이크로서비스의 개수가 증가할수록 관리가 복잡해지고 어려워지는 것을 느낄 수 있을 것이다. Spring Cloud를 적용하면 이런 문제를 쉽게 해결할 수 있다. Spring Cloud는 분산 시스템에서 공통적인 패턴(구성 관리, 서비스 검색, 지능형 라우팅, 마이크로 프록시 등 )을 모아 신속하게 구축할 수 있는 도구를 스프링 라이브러리 형태로 제공한다. 따라서 개발자는 분산.. 2019. 2. 7.
(Spring Boot / Spring Cloud / MSA) 1. 왜 MSA를 선택하였을까? Spring Boot / Spring Cloud / MSA 저희 회사는 현재 Spring Boot 를 기반으로 MSA를 적용하여 서비스를 구축 해놓고 있습니다. 스타트업 회사이고 개발자 모두가 MSA를 적용해 개발하는것은 처음이기 때문에, 찾아보고 공부하여 하나씩 차근차근 적용하였습니다. 저희가 사용한 프레임워크와 라이브러리를 간략하게 소개 하고 선택한 이유와 적용 후에 주관적인 의견을 공유해보겠습니다! 우리회사의 서비스 구성 먼저, 우리회사는 서비스구성이 어떻게 되어있는지 살펴보겠습니다. UI : 모든 외부 요청에 대한 응답하는 코드와 뷰 페이지가 있고, 응답을 위해 다른 서비스들을 호출AUTH : 다른 서비스들을 호출할 수 있는 토큰을 발급하고, 사용자 인증 (ex : 로그인) 관련 기능을 수행서비스.. 2019. 2. 7.