Azure API Management를 사용하여 API를 작성할 경우의 이점

완료됨

마이크로 서비스 아키텍처는 관리하기 어려울 수 있습니다. 예를 들어, 보안과 같은 포괄적인 요구 사항을 일관된 방식으로 구현하는 별도의 팀에 의존할 수 있습니다.

개발자 팀은 온라인 스토어에 다양한 호스트 URL에서 제품 세부 정보 및 주문 세부 정보 마이크로 서비스를 구축했습니다. 또한 주문 세부 정보 서비스는 XML을 사용하여 응답합니다. 클라이언트 앱 개발자가 작업을 보다 쉽게 수행할 수 있도록 하기 위해 모든 응답이 JSON 형식인지 확인할 수 있습니다.

이 단원에서는 API Management의 기능에 대해 알아봅니다. 이러한 기능을 사용하면 다양한 마이크로 서비스를 통합하고 단일 URL에서 일관된 동작으로 클라이언트 애플리케이션에 제공할 수 있습니다.

마이크로 서비스 아키텍처 문제

아키텍처에 대한 마이크로 서비스 접근 방식에서는 각 부분이 서로 느슨하게 결합된 모듈식 애플리케이션을 만듭니다. 서비스를 독립적으로 배포하면 프로덕션 테스트를 통해 발생할 수 있는 버그의 영향이 줄어듭니다. 이 모듈식 방식을 사용하면 안정적인 버전으로 더 쉽게 롤백할 수 있습니다. 또한 각 마이크로 서비스에 대해 소규모의 자율적인 개발자 팀을 만들 수 있습니다. 이러한 구분은 최신 Agile 사례에 잘 맞습니다.

하지만 마이크로 서비스 아키텍처는 다음과 같은 문제를 나타낼 수도 있습니다.

  • 클라이언트 앱이 마이크로 서비스에 결합됩니다. 마이크로 서비스의 위치 또는 정의를 변경하려는 경우 클라이언트 앱을 다시 구성하거나 업데이트해야 할 수 있습니다.
  • 각 마이크로 서비스는 서로 다른 도메인 이름이나 IP 주소로 표시될 수 있습니다. 이러한 표시 내용은 사용자에게 일관되지 않다는 느낌을 줄 수 있으며 브랜딩에 부정적인 영향을 줄 수 있습니다.
  • 모든 마이크로 서비스에서 일관된 API 규칙과 표준을 적용하는 것은 어려울 수 있습니다. 예를 들어, 한 팀은 XML로 응답하는 것을 선호하고 다른 팀은 JSON을 선호할 수 있습니다.
  • 마이크로 서비스에서 보안을 올바르게 구현하기 위해 개별 팀에 의존하게 됩니다. 이러한 요구 사항을 중앙에서 해결하는 것은 어렵습니다.

그렇다면 API Management가 어떻게 도움이 될 수 있나요?

API Management에 여러 API, 함수 및 기타 서비스를 추가하여 클라이언트 애플리케이션에 대한 단일 진입점을 제공하는 통합 제품으로 이러한 구성 요소를 조합할 수 있습니다. API Management를 사용하여 API를 작성할 때의 이점은 다음과 같습니다.

  • 클라이언트 앱은 개별 마이크로 서비스를 통한 기본 기술 구현이 아니라 비즈니스 논리를 표현하는 API에 결합됩니다. 클라이언트 앱을 다시 구성하거나 업데이트하지 않고도 서비스의 위치 및 정의를 변경할 수 있습니다.
  • API Management은 중개자 역할을 합니다. 위치에 관계없이 올바른 마이크로 서비스에 요청을 전달하고 사용자에게 응답을 반환합니다. 마이크로 서비스가 호스트되는 다른 URI는 사용자에게 표시되지 않습니다.
  • API Management 정책을 사용하여 제품의 모든 마이크로 서비스에 일관된 규칙을 적용할 수 있습니다. 예를 들어, JSON 형식을 원할 경우 모든 XML 응답을 JSON으로 변환할 수 있습니다.
  • 또한 정책을 사용하여 일관된 보안 요구 사항을 적용할 수 있습니다.

API Management에는 유용한 도구도 포함되어 있습니다. 따라서 각 마이크로 서비스 및 해당 작업을 테스트하여 요구에 맞게 동작하는지 확인할 수 있습니다. 또한 배포된 서비스의 동작 및 성능을 모니터링할 수 있습니다.

Azure API Management는 Azure Function Apps를 새 API로 가져오거나 기존 API에 추가할 수 있도록 지원합니다. 이 프로세스는 Azure Function App에서 호스트 키를 자동으로 생성한 다음, Azure API Management에서 명명된 값에 할당합니다.

다음 단원에서는 이전 연습에서 만든 온라인 스토어 API에 주문 세부 정보 마이크로 서비스를 추가합니다. 이렇게 하면 주문 세부 정보를 제품 세부 정보 마이크로 서비스에 연결한 후 통합형 API의 일부로 동일한 도메인에 두 세부 정보를 모두 제공할 수 있습니다.