모노리스에서 마이크로 서비스 기반 아키텍처를 구축하는 경우가 종종 있습니다. SOA 기반 아키텍처에 마이크로 서비스가 가능합니까?SOA와 마이크로 서비스가 공존 할 수 있습니까?
답변
많은 사람들이 SOA 2.0 Microservices 관련, 그래서 내가 제대로 질문을 얻는 경우에, 당신은 확실히 하나 개의 프로젝트 ... 간단한 용어 Microservices에서
SOA의 부분 집합에 두 아키텍처를 사용할 수 있습니다. 당신은 그들이 여전히 SOA 설계 원칙에 따라 수행 다음 9 characteristics of Microservice을 참조 할 수 있습니다 :
컴포넌트 화를 통해이 서비스 비즈니스 기능을 중심으로 구성
제품하지 프로젝트
스마트 엔드 포인트와 벙어리 파이프
분산 된 거버넌스
분산 된 D ATA는 관리
인프라 자동화
실패에 대한 디자인
진화 디자인
당신은 ESB를 구현하는 SOA 아키텍처를 참조하는 경우, 다음 서비스를 준수하지 않는 ESB는 반드시, 당신은 SOA 준수하게하지 않습니다 사용 서비스 설계시 서비스의 특성/서비스 설계 원칙 & 모델링. 따라서 서비스를 분리 할 수 있습니다. & ESB. 근본적으로 ESB는 SOA의 비 기능적 요소의 일부를 구현 한 것일뿐입니다.
모노리스 응용 프로그램을 선택하는 것은 Microservices에서 시작하는 기본적인 현상입니다. 그러나 나는 마이크로 서비스가 훨씬 더 많은 비즈니스 시나리오에 적용될 수 있다고 강력히 믿습니다.
ESB 사용만으로는 품질에 동의하지 않습니다. 좋은 SOA 설계를 위해서. 그러나 ESB는 MSA에서 사용되지 않는다고 거의 만장일치로 말하고있다. 그렇지 않다면 왜 MSA의 어떤 구성 요소/계층이 xformation/protocol translation 등을 처리 할 수 있습니까? – Divs
MSA에서는 변환/프로토콜 변환이 각각의 서비스 책임이라는 "스마트 종단점 및 벙어리 파이프"를 따릅니다. 즉, 변환/변환은 재사용 가능한 유틸리티 서비스로 작용할 수도 있습니다. MSA는 ESB를 권장하지 않지만 동시에 ESB를 제거하지 않아도됩니다. ESB와 엔터프라이즈 시스템의 종속성을 만드는 논리적이고 긴밀한 커플 링 상황에서 항상 ESB를 MSA의 일부로 간주 할 수 있습니다. –
예, 동일한 환경에서 절대적으로 두 아키텍처를 모두 사용할 수 있습니다. 이유는 다음과 같습니다.
Microservices Architecture는 SOA에 크게 영향을 받았기 때문에 당연히 두 가지 모두에서 사용되는 원리는 매우 유사하며 둘 사이에는 혼란이 있습니다. 그러나 패러다임은 범위가 다릅니다. 마이크로 서비스 아키텍처은 특정 방식으로 응용 프로그램을 설계하는 접근 방식이지만 SOA은 서로 다른 도메인의 여러 이기종 응용 프로그램 (엔터프라이즈 환경의 경우가 많음)간에 통신 순서를 지정하고 미들웨어를 배치하고 일반적으로 통합 노력을 줄이고 장기적으로 ROI를 높입니다. SOA는 단순한 아키텍처 접근 방식이 아니라 엔터프라이즈에서 IT 도메인을 최적화하기위한 완전히 새로운 접근 방식을 제공합니다. SOA 정책을 이상적으로 적용하려면 SOA 거버넌스 본문이 있어야하기 때문에 프로세스와 계층 구조를 변경해야하는 경우가 종종 있습니다. 이 도움이
희망 : 같은 일반적인 SOA 많은 애플리케이션 아키텍처 스타일 -
그래서 실제로 당신은 매우 자주 이런 식으로 뭔가를 볼 수 있습니다.
SOA의 ESB는 필요한 경우 프로토콜 변환/req-resp 변환을 수행하는 데 사용됩니다. 마이크로 서비스는 종종 Smart Endpoint-Dumb Pipes로 인식되기 때문에 마이크로 서비스 아키텍처에서 이러한 사례를 처리 할 수 있습니까? Netflix는 API 게이트웨이에서 프로토콜 변환을 수행하지만 SEDP 원칙을 따르는가? – Divs
SOA와 마이크로 서비스의 중요한 원칙은 커플 링을 줄이고 상태 변경에 대한 동기식 통신을 피하는 것입니다.이 애스펙트 메시징은 비동기식 내구성있는 통신을 달성하는 데 도움이됩니다 ... 어떤 도구를 사용하면 실제로 요점은 아닐까요? –
MSA 내에서 req/resp 변환을 처리하는 데 사용할 수있는 구성 요소를 이해하고자했습니다. 웹에서 대부분의 글을 쓰기 때문에 ESB가 아니라 API 게이트웨이 레이어입니다. Just-in-case, 누군가 MSA에서 동일한 작업을 수행하기 위해이 계층을 사용하고 있으며, SEDP 원칙을 위반하고 있습니까? – Divs