서비스 지향 아키텍처(SOA)란?

서비스 지향 아키텍처(SOA)는 독립적인 서비스 컬렉션을 중심으로 애플리케이션을 설계하는 아키텍처 접근 방식입니다. 서비스는 고객 주문 처리 또는 재고 보고서 작성과 같이 작업을 완료하고 특정 결과를 제공하는 모든 비즈니스 기능이 될 수 있습니다. 서비스를 서로 연결하여 복합 애플리케이션을 만들면 최종 사용자에게 탁월한 기능을 제공할 수 있습니다.

SOA 접근 방식의 이점으로는 서비스 구성 요소의 유지 관리 및 업데이트가 더 쉬워진다는 점이 있습니다. 각 구성 요소가 더 압축되고 독립화되면 다른 모든 요소에 영향을 주지 않고 쉽게 코드를 수정하거나 요소를 교체할 수 있습니다. 그러나 서비스 간의 통신을 활성화하는 최선의 방법을 결정할 때 문제가 발생합니다. SOA는 일반적으로 서비스 간의 중앙 통신 수단으로 ESB(Enterprise Service Bus)와 연결됩니다. ESB는 종종 변화에 잘 대응하지 못하여 일반적으로 더 복잡해지며 서비스의 시작 및 종료 위치를 파악하기 어려워집니다.

SOA와 마이크로서비스

SOA가 현재의 마이크로서비스 정의와 비슷하다고 생각하는 것은 여러분만이 아닙니다. 마이크로서비스 역시 독립적으로 작동하면서 함께도 작동하도록 설계된 소규모 독립형 서비스입니다. 하지만 SOA와 마이크로서비스에는 몇 가지 주요 차이점이 있습니다. 다음은 몇 가지 주의해야 할 사항입니다.

  • 마이크로서비스는 기능적인 이유로 특정 수준으로 구분된 매우 세분화된 서비스입니다. 즉, 마이크로서비스 아키텍처에서는 데이터베이스 및 애플리케이션 서버와 제품 지원을 포함한 서비스가 동일한 팀에서 엔드투엔드 방식으로 관리됩니다. 반면 SOA는 논리적으로 서비스를 분할합니다. 여기서 차이점은 논리적으로 그룹화된 서비스가 기능 간에 공유된다는 점입니다. 서비스가 실패하면 해당 서비스에 의존하는 모든 기능이 영향을 받습니다. 마이크로서비스 아키텍처는 고유한 기능 내에 비즈니스 서비스를 완전히 포함하고, 그 기능을 수행하고 비즈니스 가치를 제공하는 데 필요한 모든 것을 함께 포함하여 이러한 영향을 없애도록 설계되었습니다(도중에 중복되는 경우가 있더라도).
  • 마이크로서비스는 전적으로 기능별로 포함되어 있기 때문에 궁극적으로 SOA를 제한하는 동일한 통신 프레임워크, 프로토콜 및 사양에 구속되지 않습니다. 대신 마이크로서비스는 각 엔드포인트 세트 내에서 인텔리전스를 유지하고 이를 연결하는 단순한 패브릭을 갖추는 데 중점을 둡니다. 이를 가장 잘 수행하는 방식은 내부 시스템 아키텍처를 수용하고 REST 등의 경량형 웹 프로토콜을 사용하여 각 독립 마이크로서비스에 요청을 라우팅하는 단일 API 게이트웨이를 구현하는 것입니다. 또한 각 마이크로서비스는 종종 다른 서비스의 API를 사용하지만, 게이트웨이를 통해 모바일 앱이 백엔드에 접근하지 않도록 합니다. 이러한 수준의 유연성은 웹 서비스 사양에 의해 제약을 받고 애플리케이션을 연결하기 위해 ESB에 의존하는 SOA에서는 절대 달성할 수 없습니다.

많은 사람들이 마이크로서비스를 마침내 제대로 된 SOA라고 생각하지만 실제로는 두 가지를 구분하는 중요한 차이점이 많으며, 여러 측면에서 마이크로서비스가 복잡한 애플리케이션에 더 효과적인 아키텍처 선택입니다. SOA 및 마이크로서비스에 대한 자세한 내용을 알아보려면 무료 eBook인 마이크로서비스 구축: 세분화된 시스템 설계를 다운로드하십시오.

NGINX의 지원 방법

NGINX PlusNGINX는 Dropbox, Netflix, Zynga 등과 같이 트래픽이 많은 웹사이트에서 사용되는 동급 최고의 로드 밸런싱 솔루션입니다. 전 세계 3억 5천만개 이상의 웹사이트가 콘텐츠를 빠르고 안정적이며 안전하게 제공하기 위해 NGINX Plus와 NGINX Open Source를 사용하고 있습니다.

소프트웨어 기반 애플리케이션 딜리버리 컨트롤러(ADC)인 NGINX Plus는 비슷한 기능을 갖춘 하드웨어 솔루션보다 훨씬 효과적이고 경제적으로 마이크로서비스 아키텍처를 용이하게 활용하도록 설계되었습니다.

  • NGINX Plus는 각 마이크로서비스의 성능과 신뢰성을 향상시키는 완전한 애플리케이션 딜리버리 및 로드 밸런싱 솔루션을 제공합니다.
  • NGINX Plus는 API 게이트웨이 및 각 서비스의 엔드포인트로서 스택에 적합할 만큼 유연하고 확장성이 뛰어납니다.
  • NGINX Plus는 최고의 속도와 효율성으로 마이크로서비스 작업을 완료하는 고성능 HTTP 서버 역할을 합니다.