• 주제
  • 마이크로서비스 아키텍처란?

마이크로서비스 아키텍처란?

마이크로서비스 아키텍처(주로 마이크로서비스라고도 함)란 애플리케이션 개발을 위한 아키텍처 스타일을 의미합니다. 마이크로서비스를 사용하면 대규모 애플리케이션을 각각 담당 영역을 가진 소규모의 독립적인 구성요소로 구분할 수 있습니다. 마이크로서비스 기반 애플리케이션은 단일 사용자 요청을 처리하기 위해 여러 내부 마이크로서비스를 호출하여 응답을 작성할 수 있습니다.

컨테이너는 종속 항목에 대한 걱정 없이 서비스를 개발하는 데 집중할 수 있는 잘 설계된 마이크로서비스 아키텍처 예시입니다. 최신 클라우드 기반 애플리케이션은 일반적으로 컨테이너를 사용하여 마이크로서비스로 빌드됩니다.

Google Kubernetes Engine이 컨테이너를 사용하여 마이크로서비스 기반 애플리케이션을 만드는 데 어떻게 도움이 되는지 알아보세요.

마이크로서비스 아키텍처의 정의

마이크로서비스 아키텍처는 애플리케이션이 서비스 모음으로 개발되는 애플리케이션 아키텍처의 한 유형입니다. 또한 마이크로서비스 아키텍처 다이어그램과 서비스를 독립적으로 개발, 배포, 유지관리할 수 있는 프레임워크를 제공합니다.

마이크로서비스 아키텍처 내에서 각 마이크로서비스는 애플리케이션 기능을 수용하고 개별 작업을 처리하도록 빌드된 단일 서비스입니다. 각 마이크로서비스는 비즈니스 문제를 해결하기 위해 간단한 인터페이스를 통해 다른 서비스와 통신합니다.

마이크로서비스 아키텍처의 이점

쉬운 배포

마이크로서비스는 독립적으로 테스트하고 배포할 수 있습니다. 배포 단위가 작을수록 배포가 쉬워집니다.

다양한 기술 선택

마이크로서비스는 다양한 언어와 프레임워크로 구현할 수 있습니다. 각 마이크로서비스 아키텍처마다 특정 사용 사례에 가장 적합한 기술을 자유롭게 선택할 수 있습니다.

팀 유연성 향상

마이크로서비스는 여러 팀이 독립적으로 관리할 수 있습니다. 각 마이크로서비스 아키텍처 예시 간에 확장하여 하나 또는 여러 개의 마이크로서비스에 전담 팀 하나를 배정하기가 더 쉽습니다.

장애 방지 설계

마이크로서비스를 사용하면 안정성을 고려한 설계를 더 쉽게 수행할 수 있습니다. 서비스 간에 명확한 경계를 두면 서비스가 중지된 경우에 더 쉽게 대응할 수 있습니다.

개발 주기 단축

마이크로서비스는 개발자가 더 이상 모놀리식 배포 주기에서 기능을 제공하거나 업데이트할 때까지 기다릴 필요가 없도록 개발 주기를 가속화합니다.

마이크로서비스 아키텍처의 필요성

마이크로서비스 아키텍처를 사용하면 조직이 변화하는 시장 조건에 적응해 나가면서 배포를 가속화하고 유연성을 높이며 빠르게 혁신할 수 있습니다.  

마이크로서비스는 클라우드 애플리케이션 빌드와 컨테이너 개발 환경에 매우 적합한 방식입니다. Google Kubernetes Engine과 같은 플랫폼에서 마이크로서비스를 실행하여 컨테이너를 관리, 호스팅, 확장, 배포할 수 있습니다.

마이크로서비스 기반 애플리케이션을 더 쉽게 빌드하기 위해 개발자는 여러 마이크로서비스 아키텍처 패턴을 사용할 수 있습니다. 이러한 패턴을 보여주는 많은 다이어그램이 온라인으로 제공됩니다. 

아래에 나열된 애플리케이션 유형을 현대화하거나 단순화하는 것이 비즈니스 우선순위일 경우 조직은 컨테이너 환경 내에 빌드된 마이크로서비스 아키텍처에 적합한 후보가 될 수 있습니다.

  • 다양한 환경에서 재사용되는 독립 실행형 비즈니스 애플리케이션
  • 최신 프로그래밍 언어로 다시 작성해야 하는 레거시 애플리케이션
  • 빠른 혁신과 제공을 요구하는 민첩한 애플리케이션
  • 확장성과 유연성이 필요한 모놀리식 애플리케이션

마이크로서비스 아키텍처의 용도

일반적으로 마이크로서비스는 애플리케이션 개발 속도를 높이는 데 사용됩니다. 자바를 사용하여 빌드된 마이크로서비스 아키텍처 중에서도 특히 Spring Boot 아키텍처가 일반적입니다. 마이크로서비스와 서비스 지향 아키텍처를 비교하는 것도 일반적입니다. 둘 모두 모놀리식 애플리케이션을 더 작은 구성요소로 세분화하는 것이 목표지만, 접근방식은 서로 다릅니다. 다음은 마이크로서비스 아키텍처의 예시입니다.

웹사이트 마이그레이션

모놀리식 플랫폼에서 호스팅되는 복잡한 웹사이트는 클라우드 기반 및 컨테이너 기반 마이크로서비스 플랫폼으로 마이그레이션할 수 있습니다.

미디어 콘텐츠

마이크로서비스 아키텍처를 사용하여 이미지 및 동영상 애셋을 확장 가능한 객체 스토리지 시스템에 저장하고 웹 또는 모바일에 직접 제공할 수 있습니다.

트랜잭션 및 인보이스

결제 처리 및 주문은 독립적인 서비스 단위로 구분할 수 있으므로 인보이스 발행이 작동하지 않는 경우에도 계속해서 결제가 허용됩니다.

데이터 처리

마이크로서비스 플랫폼은 기존의 모듈형 데이터 처리 서비스를 위해 클라우드 지원을 확장할 수 있습니다.

Google Cloud를 사용할 경우 관리형 컨테이너 서비스인 Google Kubernetes Engine 또는 완전 관리형 서버리스 제품인 Cloud Run을 사용하여 마이크로서비스를 쉽게 배포할 수 있습니다.

사용 사례에 따라 Cloud SQL과 기타 Google Cloud 제품 및 서비스를 손쉽게 통합하여 마이크로서비스 아키텍처를 지원할 수 있습니다.