기권
나는 누군가의 발가락을 밟거나 개념 애호가를 불쾌하게하지 않기를 바랍니다.
배경
명확한 답을 찾지 않고 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가 모든 사람에게 적합하지 않다는 것을 고려하지 않고 사람들이이 아키텍처로 옮긴 방식과 장단점을 알고 있습니다.