기권
나는 누군가의 발가락을 밟거나 개념 애호가를 불쾌하게하지 않기를 바랍니다.
배경
명확한 답을 찾지 않고 Service Oriented Architecture와 Microservices의 실제 차이점을 찾고 있습니다.
나는 다음과 같은 것을 읽었다.
- SOA의 부작용
- 반 패턴 인 SOA
- 마이크로 서비스는 SOA의 실패를 해결하기 위해왔다
- ESB는 실제로 ESB가 아니며 EAI입니다.
- 메시지 브로커에 대한 과도한 의존
- 공급 업체는 SOA 개념을 남용하고 제품을 판매하려고합니다.
- SOA는 통제 할 수없이 성장
그러나 여전히 서비스 지향 아키텍처 (개념)와 마이크로 서비스 (개념)의 아키텍처 차이점을 명확하게 정의하는 것은 없습니다.
내가 이해 한 바에 따르면 둘 다 가지고 있습니다.
- 서비스 제공자, 한 가지만 수행
- 이러한 서비스를 소비자에게 노출시키는 Service Gateway / ESB
- ESB / Service Gateway를 통해 서비스에 액세스하는 서비스 소비자
질문
그렇다면 SOA를 마이크로 서비스로 리 라벨링하는 것 외에 다른 것이 있습니까? 마이크로 서비스가 거시적이되는 것을 제한하기위한 기술 제약입니까?
참고 : 나는 글 머리 기호로 의견이 아니라 어려운 사실만을 찾고 있습니다.
참고 문헌
- 소프트웨어 공학 질문
- 마틴 파울러의 사이트 (그가 큰 시간을 싫어한다고 생각합니다)
- 정보 세계
- 마이클 피 더스 웹 사이트
- 스택 오버플로 질문
최신 정보
마이크로 서비스가 변장 된 서비스 지향 아키텍처인지에 상관없이 의견이 나누어지면서 스택 오버플로 질문 에서 비슷한 논쟁이 일어났다 .
SO 질문의 결론 :
- MS는 SOA 의 특별한 경우 입니다
- MS는 서비스를 호스팅하는 더 작은 크기의 응용 프로그램을 승인합니다
- MS는 기술에 따라 다릅니다 (개방형 프로토콜 옵션이 아닌 HTTP 사용)
- MS는 기술을 사용하여 규율 (서비스 자동 배포)을 시행합니다.
- MS는 ESB (악)를 고려하지만 IMHO가 ESB 유형 인 API 게이트웨이 를 사용합니다.
다음과 같은 경우 MS는 SOA라고 결론 지을 수 있습니다.
- MS는 오케스트레이션 개념을 지원합니까? 하나 이상의 마스터 프로세스가 워크 플로우를 관리
- MS에 메시지 브로커 계층이 있습니까? 서비스 생산자의 메시지 공간에서 서비스 소비자로 메시지 형식을 변환하는 어댑터 세트
- 마이크로 서비스가 모 놀리 식 엔터프라이즈 애플리케이션에서 데이터를 읽을 수 있습니까? 단일 응용 프로그램의 API 일 수 있습니까? 또는 독립적으로 작동 할 수있는 독립형 독립형 응용 프로그램이어야합니까?
마지막 질문에 대한 답변이 아니오로 밝혀지면 Microservices는 신용 카드 관리 시스템 또는 조정 시스템과 같은 복잡한 워크 플로 시스템을 처리 할 수 없습니다.
Martin Fowler's Site (I think he hates it big time)바르셀로나에서 연설을했을 때의 느낌은 아닙니다. 그는 MS가 모든 사람에게 적합하지 않다는 것을 고려하지 않고 사람들이이 아키텍처로 옮긴 방식과 장단점을 알고 있습니다.