728x90 SpringCloud20 [Spring Cloud 를 활용한 MSA 기초] 8. API Gateway - Zuul 8. API Gateway - Zuul youtu.be/6g1wH97BiuQ API Gateway 클라이언트와 백엔드 서버 사이의 출입문(front door) 라우팅(라우팅, 필터링, API변환, 클라이언트 어댑터 API, 서비스 프록시) 횡단 관심사 cross-service concerns 보안. 인증(authentication) , 인가(authorization) 일정량 이상의 요청 제한(rate limiting) 계측(metering) Netflix Zuul 마이크로 프록시 50개 이상의 AWS ELB 의 앞단에 위치해 3개의 AWS 리전에 걸쳐 하루 백억 이상의 요청을 처리(2015 년 기준) 출처 https://github.com/Netflix/zuul/wiki/How-We-Use-Zuul-At.. SpringCloud 2021. 2. 7. [Spring Cloud 를 활용한 MSA 기초] 7. Declarative Http Client - Feign 7. Declarative Http Client - Feign youtu.be/SOmn6BGL884 Interface 선언을 통해 자동으로 Http Client 를 생성 RestTemplate 은 concreate 클래스라 테스트하기 어렵다 관심사의 분리 서비스의 관심 - 다른 리소스, 외부 서비스 호출과 리턴값 관심 X - 어떤 URL, 어떻게 파싱할 것인가 Spring Cloud 에서 Open-Feign 기반으로 Wrapping 한 것이 Spring Cloud Feign Declarative Http Client - Spring Cloud Feign 인터페이스 선언 만으로 Http Client 구현물을 만들어 줌 @FeignClient(name = "db", url="http://localhost:8.. SpringCloud 2021. 2. 7. [Spring Cloud 를 활용한 MSA 기초] 6. Service Registry - Eureka 6. Service Registry - Eureka youtu.be/iIqamVxYmUk Ribbon 예제에서 서버 목록을 yml에 직접 넣었는데 자동화 할 방법은 ? '서버가 새롭게 시작되면 그것을 감지하여 목록에 자동으로 추가되고, 서버가 종료되면 자동으로 목록에서 삭제하기 위한 방법은 없을까 ?' Dynamic Service Discovery - Eureka Service Registry 서비스 탐색, 등록 클라우드의 전화번호부 (단점) 침투적 방식 코드 변경 DiscoveryClient spring-cloud 에서 서비스 레지스트리 사용 부분을 추상화(Interface) Eureka, Consul, Zookeeper, etcd 등의 구현체가 존재 Ribbon은 Eureka과 결합하여 사용 할 수 .. SpringCloud 2021. 2. 7. [Spring Cloud 를 활용한 MSA 기초] 5. Client LoadBalancer - Ribbon 5. Client LoadBalancer - Ribbon youtu.be/K4laj5cDYLg Server Side LoadBalancer 일반적인 L4 Switch 기반의 Load Balancing Client 는 L4 의 주소만 알고 있음 L4 Switch 는 Server 의 목록을 알고 있음(Server Side Load Balancing) H/W Server Side Load Balancer 단점 (장점도 있지만..) H/W 가 필요 (비용 up, 유연성 down) 서버 목록의 추가를 위해서는 설정 필요 (자동화 어려움) Load Balancing Schema 이 한정적 (Round Robbin, Sticky) 12 factors 의 dev/prod 를 만족하기 어려움 Client LoadBala.. SpringCloud 2021. 2. 7. [Spring Cloud 를 활용한 MSA 기초] 4. Circuit Breaker - Hystrix 4. Circuit Breaker - Hystrix youtu.be/iHHuYGdG_Yk Netflix OSS 50 개 이상의 사내 프로젝트를 오픈소스로 공개 플랫폼(AWS) 안의 여러 컴포넌트와 자동화 도구를 사용하면서 파악한 패턴과 해결방법을 블로그, 오픈소스로 공개 출처: https://netflixtechblog.com/netflixoss-season-2-episode-1-b477d8879799 Spring Cloud Spring Cloud 란 교집합이 spring-cloud-netflix 모놀리틱에서의 의존성 호출 모놀리틱에서의 의존성 호출은 100% 신뢰 https://netflixtechblog.com/keystone-real-time-stream-processing-platform-a3ee.. SpringCloud 2021. 2. 7. [Spring Cloud 를 활용한 MSA 기초] 3. Cloud Native 이해 3. Cloud Native 이해 youtu.be/NQcOwOI7nl0 Cloud Native 란 '클라우드 네이티브'의 핵심은 애플리케이션을 어떻게 만들고 배포하는지에 있으며 위치는 중요하지 않다 클라우드 서비스를 활용한다는 것은 컨테이너와 같이 민첩하고 확장 가능한 구성 요소를 사용해서 재사용 가능한 개별적인 기능을 제공하는 것을 의미한다 이러한 기능은 멀티 클라우드와 같은 여러 기술 경계 간에 매끄럽게 통합되므로 제공 팀이 반복 가능한 자동화와 오케스트레이션을 사용해서 빠르게 작업 과정을 반복할 수 있다 앤디 맨, Chief Technology Advocate at Splunk 신축성(Resiliency) 민첩성(Agility) 확장 가능성(Scalable) 자동화(Automation) 무상태(St.. SpringCloud 2021. 2. 7. [Spring Cloud 를 활용한 MSA 기초] 2. 마이크로서비스 아키텍처(MSA) 이해 2. 마이크로서비스 아키텍처(MSA) 이해 youtu.be/mJMzV6GCmPw MSA란, 시스템을 여러개의 독립된 서비스로 나눠서, 이 서비스를 조합함으로서 기능을 제공하는 아키텍쳐 디자인 패턴 조대협 출처: https://www.slideshare.net/Byungwook/micro-service-architecture-52233912 아마존의 선택(2002년경 제프 베조스 메일) 모든 팀들은 데이터와 기능들을 서비스 인터페이스로 연결시켜라 팀들은 이 인터페이스를 통해서만 연락해야 한다 다른 어떤 커뮤니케이션 방법도 허용되지 않는다 직접 링크를 보내거나 다른 팀의 스토리지에 직접 억세 스 해서도 안 되며, 공유 메모리나 백도어 같은 것도 안 된다 모든 커뮤니케이션은 네트워크를 통한 서비스 인터페이스로.. SpringCloud 2021. 2. 7. [Spring Cloud 를 활용한 MSA 기초] 1. 모놀리틱 아키텍처 이해 1. 모놀리틱 아키텍처 이해 youtu.be/D6drzNZWs-Y 10년 전으로 거슬러 올라가 보겠습니다 Amazon Web Services 가 없던 시절 E-commerce 스타트업 시작 이름 : 12번가 업종 : 오픈마켓 개발자 3명 개발자가 개발한 코드는 Tomcat(WAS) 에 의해 실행되고 프로그램의 상태(State) 는 데이터베이스에 저장 개발자가 여러명이 되면 코드를 SCM(Source Code Management) 으로 관리 DB 는 공유해서 사용 최초 상용 배포 톰캣 1대, DB 1대 구입 SCP 를 통해 Clean 배포(stop -> delivery -> start) DNS(12st.com) -> Tomcat 서버 1대 추가 구입 HA(High Avaliability) 구성 - 지속적으.. SpringCloud 2021. 2. 7. 이전 1 2 다음 💲 추천 글 728x90