다음을 통해 공유


서비스 지향 아키텍처

팁 (조언)

이 콘텐츠는 .NET Docs 또는 오프라인으로 읽을 수 있는 다운로드 가능한 무료 PDF로 제공되는 컨테이너화된 .NET 애플리케이션용 .NET 마이크로 서비스 아키텍처인 eBook에서 발췌한 내용입니다.

컨테이너화된 .NET 애플리케이션을 위한 .NET 마이크로서비스 아키텍처 eBook의 표지 썸네일.

SOA(서비스 지향 아키텍처)는 지나치게 많이 사용되었으며 다른 사람들에게 다른 것을 의미했습니다. 그러나 공통 분모인 SOA는 하위 시스템 또는 계층과 같은 다른 형식으로 분류할 수 있는 여러 서비스(가장 일반적으로 HTTP 서비스)로 분해하여 애플리케이션을 구조화한다는 것을 의미합니다.

이제 모든 종속성이 컨테이너 이미지에 포함되기 때문에 이러한 서비스를 Docker 컨테이너로 배포하여 배포 문제를 해결할 수 있습니다. 그러나 SOA 애플리케이션을 강화해야 하는 경우 단일 Docker 호스트를 기반으로 배포하는 경우 확장성 및 가용성 문제가 발생할 수 있습니다. 마이크로 서비스에 대한 배포 접근 방식이 설명된 이후 섹션에서 설명한 대로 Docker 클러스터링 소프트웨어 또는 오케스트레이터가 도움이 될 수 있습니다.

Docker 컨테이너는 기존의 서비스 지향 아키텍처와 고급 마이크로 서비스 아키텍처 모두에 유용하지만 필요하지는 않습니다.

마이크로 서비스는 SOA에서 파생되지만 SOA는 마이크로 서비스 아키텍처와 다릅니다. SOA에서는 대규모 중앙 브로커, 조직 수준의 중앙 오케스트레이터 및 ESB(Enterprise Service Bus) 와 같은 기능이 일반적입니다. 그러나 대부분의 경우 이러한 패턴은 마이크로 서비스 커뮤니티의 안티 패턴입니다. 사실, 어떤 사람들은 "마이크로 서비스 아키텍처는 SOA가 올바르게 수행된다"고 주장합니다.

이 가이드에서는 SOA 접근 방식이 마이크로 서비스 아키텍처에 사용되는 요구 사항 및 기술보다 덜 규범적이기 때문에 마이크로 서비스에 중점을 둡니다. 마이크로 서비스 기반 애플리케이션을 빌드하는 방법을 알고 있는 경우 더 간단한 서비스 지향 애플리케이션을 빌드하는 방법도 알고 있습니다.