Programming/MSA 25

(아키텍처) 현대적 어플리케이션 구축을 위한 Outer아키텍처 시 고려할 점

원문 : https://www.cncf.io/blog/2022/03/15/cluster-out-a-design-approach-to-building-modern-apps/ Cluster out: A design approach to building modern apps | Cloud Native Computing Foundation Guest post by Rob Whiteley, Vice President and General Manager of the NGINX Product Group at F5 This past August at NGINX Sprint 2.0, I discussed the patterns we see customers adopt to successfully… www.cncf.io ..

Programming/MSA 2022.03.16

[완독정리]스프링 마이크로서비스 코딩 공작소 9. 스프링 클라우드 슬루스와 집킨을 이용한 분산 추적-길벗

- 상관관계 ID를 사용해 여러 서비스 사이의 트랜잭션을 서로 연결한다. - 여러 서비스 사이의 로그 데이터를 검색 가능한 단일 소스로 수집한다. - 여러 서비스 사이의 사용자 트랜잭션 흐름을 시각화하고 트랜잭션 각 부분의 성능 특성을 이해한다. 이 세가지 사항을 만족하기 위해 세가지 다른 기술을 사용한다. - 스프링 클라우드 슬루스 : 상관관계ID를 사용해 HTTP 호출을 측정한는 스프링 클라우드 프로젝트이며, 생성 중인 추적 데이터를 오픈 집킨에 공급할 수 있는 연결고리를 제공한다. - 페이퍼트레일 : 여러 데이터 소스의 로그 데이터를 검색이 가능한 단일 데이터베이스로 수집하는 클라우드 기반의 프리미움 서비스다 - 집킨 : 여러 서비스 사이의 트랜잭션 흐름을 보여주는 오픈 소스 기반의 데이터 시각화 ..

Programming/MSA 2021.03.07

[완독정리]스프링 마이크로서비스 코딩 공작소 8.메시지와 EDA, 마이크로서비스의 사례-길벗

마이크로서비스에서의 캐싱 - 캐싱된 데이터는 서비스의 모든 인스턴스에 일관성이 있어야 한다. - 컨테이너 메모리에 조직데이터를 캐싱해서는 안된다. 서비스를 호스팅하는 런타임 컨테이너는 종종 크기 제약이 있으며 다양한 엑세스 패턴으로 데이터를 엑세스한다. - 업데이트나 삭제 연산으로 레코드가 변경될 때 서비스는 상태 변화를 인식해야 한다. 동기식 요청-응답 방식으로 상태 변화 전달의 특징 - 서비스간 강한 결합 - 쉽게 깨지는 서비스 관계 - 조직 서비스 변경에 관심있는 새 소비자를 추가할 때 경직성 메시징을 사용해 서비스 간 상태 변화 전달의 특징 - 메시징 방식을 사용하면 서비스 사이에 큐를 삽입한다. 데이터의 상태가 변할때 메시지를 발행하여 변경사항을 전달한다. - 느슨한 결합 - 내구성 - 확장성 ..

Programming/MSA 2021.03.06

[완독정리]스프링 마이크로서비스 코딩 공작소 7.마이크로서비스의 보안-길벗

OAuth2 소개 토큰기반의 보안 인증과 인가 프레임워크로 다음 4개의 컴포넌트로 구성된다. 1. 보호자원 : 보호하려는 자원이며 적절한 권한을 부여받은 인증된 사용자만 엑세스 할 수 있다. 2. 자원 소유자 : 서비스를 호출할 수 있는 애플리케이션 및 서비스에 접근 할 수 있는 사용자 그리고 서비스에서 수행할 수 있는 작업을 정의한다. 3. 애플리케이션 : 사용자를 대신해 서비스를 호출할 애플리케이션이다. 4. OAuth2 인증 서버 : 애플리케이션과 소비되는 서비스 사이의 중계자다. 토큰 생성 엔드포인트에 전달되는 모든 매개변수가 HTTP양식 매개변수라고 기대한다. 매개변수로 다음 서비스 정보를 전달해야 한다. 그랜트타입 : 실행할 OAuth2그랜트 타입이다. 스코프 : 애플리케이션을 위한 범위로 애..

Programming/MSA 2021.03.06

[완독정리]스프링 마이크로서비스 코딩 공작소 5.나쁜 상황에 대비한 스프링 클라우드와 넷플릭스 히스트릭스의 클라이언트 회복성 패턴-길벗

서비스 소비자와 서비스 사이에서 완충 역할을 하는 네가지 클라이언트 회복성 패턴 클라이언트 측 부하분산 - 넷플릭스 유레카 같은 서비스 디스커버리 에이전트를 이용해 서비스의 모든 인스턴스를 검색한 후 해당 서비스 인스턴스의 실제 위치를 캐싱하는것 회로차단기 - 회로차단기는 원격 자원에 대한 모든 호출을 모니터링하고 호출이 필요한 만큼 실패하면 회로 차단기가 활성화되어 빨리 실패하게 만들며 고장난 원격 자원은 더이상 호출되지 않도록 차단한다. 폴백처리 - 실패할때 예외를 발생시키지 않고 서비스 소비자가 대체 코드 경로를 실행해 다른 방법으로 작업을 수행할 수 있다. 벌크헤드 - 각 원격자원에 대한 호출을 자원별 스레드 풀로 분리하므로 특정 원격 자원의 호출이 느려져 전체 애플리케이션이 다운될 수 잇는 위험..

Programming/MSA 2021.03.04