F5의 CTO팀 사무실은 1년 넘게 API와 관련된 기술 분야를 탐구해 왔습니다. 이 최신 백서에서는 끊임없이 진화하는 API 생태계를 이해하기 위한 우리의 노력을 계속 이어갈 것입니다.
API 확산 관리와 관련하여 우리가 자세히 설명한 과제는 API 게이트웨이 확산 과 관련된 과제로 이어질 것이며, 이러한 과제를 해결하기 위한 기존 접근 방식으로는 충분하지 않을 것입니다. GraphQL과 같은 그래프 기술은 API와 관련된 복잡성을 줄이는 데 큰 도움이 되지만, 연결성, 보안, 라우팅을 넘어서는 과제가 있기 때문에 이는 솔루션의 일부에 불과합니다. 30년에 가까운 시스템 및 애플리케이션 확장 전문 지식을 바탕으로 한 올바른 접근 방식은 GraphQL을 사용하지만 전적으로 GraphQL에 의존하지 않는 분산형(연합형이 아닌) 아키텍처를 기반으로 합니다.
본 논문에서는 API 게이트웨이 확산의 과제를 해결하기 위한 분산형 아키텍처 접근 방식을 살펴본다.
디지털 경제는 API를 통해 이루어지며, API 중심 경제가 실현됩니다. API 스프롤 백서 에 따라 저희는 API 스프롤의 영향을 없애거나 완화하는 방법을 이해하고자 노력했습니다. GraphQL은 API 확산의 영향을 줄이는 데 유망해 보였지만, 개발자가 API 코드베이스의 상당 부분을 다시 작성해야 하는 부담을 주는 경향이 있습니다. 그러나 GraphQL에 대한 새로운 관점은 효과적인 게이트웨이 액터 로 사용할 수 있는 능력에 대한 것입니다. 게이트웨이 액터는 API 요청을 시작하는 클라이언트 근처에서 생성되는 함수나 프로세스입니다. 이 게이트웨이 액터는 API 요청을 종료하는 초기 API 게이트웨이 역할을 합니다. 요청을 처리한 후 파기될 수 있을 정도로 일시적일 수도 있습니다.
개발자와 운영팀이 API 게이트웨이보다 API 관리를 우선시하는 것 외에도, API의 확산으로 인해 API 게이트웨이가 확산되는 문제도 발견했습니다. 개발자 관점에서 가장 중요한 관심사는 API가 시기적절하고 올바르게 작동하는지 확인하는 것입니다. 반면, 운영 팀은 발견, 보안, 사용성, 액세스 제어와 같은 측면에 더 집중합니다. 오늘날 API 게이트웨이는 API 인프라의 중요한 구성 요소이므로 API의 확산으로 인해 API 게이트웨이 배포도 늘어나고, 이는 API 게이트웨이의 확산으로 이어진다는 것이 분명해졌습니다.
API 아키텍처의 미래는 배포와 운영을 단순화하는 동시에 API 확산을 수용하도록 발전해야 합니다. 제안된 아키텍처는 API 게이트웨이 설계 패턴이 존재해야 할 다음 단계의 진화입니다. GraphQL은 아키텍처의 핵심도 아니고 필수도 아니지만 게이트웨이 액터 패턴을 향상시키는 능력이 있습니다.
API 관리 생태계는 API 게이트웨이 모놀리스 관리에서 벗어나 더욱 현대적인 시스템 설계 방식으로 전환되어야 합니다. 이를 통해 더욱 민첩하고 효과적인 API 관리 생태계가 구축될 것입니다.
API 경제 내에서 이미 문제시되고 있는 API 확산은 API 게이트웨이 확산 으로 이어진다. API 게이트웨이 공급업체의 기술이 다양하고 API 게이트웨이를 관리하는 의견이 강한 팀이 많아 API를 관리하는 것이 통제 불가능해지는 상황이 발생한다. API 아키텍처는 전환점에 도달했습니다. 기존 API 게이트웨이(API-GW)는 API 호출의 진입점 역할을 하는 전용 소프트웨어 계층으로, 새로운 API 생태계의 규모와 복잡성을 관리하기에 더 이상 충분하지 않습니다.
그림 1은 API 확산 관리에서 API 게이트웨이 확산 관리로 전환한 과정을 보여줍니다.
위의 디자인 패턴은 그림 2에서 볼 수 있듯이 API 게이트웨이가 분산 데이터 평면을 형성하는 중앙 집중식 제어 평면을 암시합니다.
API 게이트웨이는 최신 소프트웨어 아키텍처의 필수적인 구성 요소로, API에 대한 중앙 제어 및 보안 지점을 제공합니다. 그러나 API 게이트웨이가 제공하는 기능 수가 늘어나면서 점점 더 복잡해지고 관리하기가 어려워졌습니다. 많은 경우, 이러한 게이트웨이는 광범위한 기능이 하나의 패키지로 묶여 있는 일체형 시스템으로 발전했습니다.
여러 게이트웨이를 관리하는 것이 분산형 설계처럼 보일 수 있지만, 실제로는 진정한 분산형 설계에 미치지 못합니다. 이는 게이트웨이가 여전히 밀접하게 결합되어 있어 분리하기 어려운 리소스와 구성을 공유하기 때문입니다. 결과적으로 많은 기업이 분산된 모노리스를 관리하게 되고 이로 인해 발생하는 모든 과제를 겪게 됩니다.
그림 3은 기존 API 게이트웨이의 아키텍처를 보여줍니다. 클라이언트에서 시작된 API 요청은 방화벽을 통과한 후 API 게이트웨이에 도달하기 전에 공유 네트워크나 전용 네트워크를 통해 먼저 전송됩니다. 역방향 프록시 역할을 하는 API 게이트웨이는 트래픽을 API 워크로드로 전달합니다.
API 게이트웨이가 기업 전체에 배포되거나 API 워크로드가 운영상 여러 지역, 영역, 여러 클라우드 또는 엣지로 이동하면서 API 확산에 대처해야 하는 경우 기존 API-GW는 API 관리의 병목 지점이 됩니다. 여러 API-GW가 단일 기업 관리 및 제어 지점 없이 여러 팀에서 구성됩니다. 개인이나 API 서비스 그룹이 다른 인프라(클라우드 또는 기타)로 이동하는 경우 운영 팀은 등록, 검색, 인증, 네트워킹, 보안, 거버넌스-위험-규정 준수(GRC) 정책 등 API 관리의 모든 측면을 마이그레이션할 수 있는 방법이 있어야 합니다.
그림 3에 나타난 아키텍처는 확장성이 없고 장기적으로 실용적이지 못하며, 시간이 지남에 따라 분산된 모놀리스를 관리하게 됩니다(그림 2).
API 게이트웨이 병목 지점이 생성되는 데에는 두 가지 문제가 있습니다. (1) API 게이트웨이 공급업체의 확산, (2) 기업이 더 많은 장소에서 더 많은 애플리케이션을 실행함에 따라 필요에 따라 확장 가능.
그림 4는 API 게이트웨이 확산을 해결하기 위한 분산 게이트웨이 액터 패턴을 보여줍니다. 분산 패턴 자체는 새로운 것이 아니지만, 이 논문에서는 API 게이트웨이의 맥락 내에서 분산 패턴을 공식화합니다. 클라이언트가 API 요청을 시작합니다. 분산 게이트웨이 액터는 일시적이며 클라이언트와 가능한 한 가까운 위치에서 필요에 따라 인스턴스화됩니다. 게이트웨이 액터에서 간소화된 API 게이트웨이로 API 요청을 전송하는 것은 API 전송 계층의 책임이며, 이후 해당 게이트웨이는 해당 요청을 적절한 API 워크로드로 라우팅합니다. 이 패턴이 작동하려면 분산 액터에서 GraphQL 지원을 사용하는 것이 필수라기보다는 세부 사항에 가깝지만, 서비스 오케스트레이션과 같은 지원 기능을 사용할 수 있게 해줍니다. 따라서 새로운 서비스 오케스트레이션 계층을 만드는 대신 GraphQL이 해당 지원을 제공할 수 있습니다.
명확히 하자면, 교통 패턴은 오른쪽에서 왼쪽으로 진행됩니다. 즉, 클라이언트는 오른쪽에 있고 API 요청은 그림 5에서 보듯이 클라이언트에 의해 시작됩니다.
기업 내부 및 기업 전반에서 API를 관리하기 위해 API 게이트웨이에 대한 과도한 종속성을 대체하거나 줄이기 위해 게이트웨이 액터를 사용하는 새로운 배포 패턴이 등장하고 있습니다. GraphQL은 아키텍처에 반드시 필요한 것은 아니지만 게이트웨이 액터가 GraphQL을 지원하는 데 적합한 수단이므로 도입하는 것이 시기적절합니다.
게이트웨이 액터를 잠재적 솔루션으로 더 깊이 이해하려면 API 인프라, 특히 API 게이트웨이의 현재 상태를 자세히 살펴볼 필요가 있습니다. API 인프라를 운영하고 확장하는 데 있어 게이트웨이 확산이 상당한 과제를 안겨준다는 것을 확인했기 때문입니다.
API 게이트웨이를 더 잘 이해하려면 먼저 최신 API 관리 인프라의 다양한 구성 요소를 살펴보는 것이 중요합니다.
그림 6은 API 관리에 필수적인 다양한 기능과 구성 요소를 포괄적으로 시각적으로 표현한 것입니다. 백엔드 서비스로의 트래픽을 라우팅하고 관리하는 데 필요한 API 게이트웨이 외에도 몇 가지 다른 중요한 인프라 구성 요소가 있습니다. 여기에는 인증, 속도 제한, 캐싱, 서비스 메시 등에 대한 솔루션이 포함될 수 있습니다. 이러한 기능을 통합하면 조직은 API를 제어하고, 보안을 강화하고, 성능을 최적화할 수 있습니다.
API 게이트웨이의 널리 알려지고 친숙한 기능을 살펴보겠습니다.
API 관리 인프라 기능을 분석한 후 API 게이트웨이의 역할을 더 잘 이해하고 현재의 모놀리식 API 게이트웨이 설계에 대한 대안을 모색할 필요성을 확인했습니다.
API 수의 증가로 인해 이미 API와 API 게이트웨이가 확산되고 있으며, 점점 더 많은 클라이언트가 모바일화되거나 고도로 분산되고 있으며, 컴퓨팅 인프라는 에지를 포함한 모든 곳에서 사용 가능해졌습니다. 따라서 API 생태계의 민첩성, 유연성, 확장성, 성능 및 보안을 개선할 수 있는 접근 방식이 필요합니다.
이 새로운 접근 방식에는 진정한 분산 아키텍처의 이점을 최대한 활용할 수 있는 간소화된 설계가 필요합니다.
API 게이트웨이의 기능과 범위를 추가로 분석하여 미묘한 차이와 한계를 파악해 보겠습니다.
API 게이트웨이는 오늘날 API 관리 인프라의 중요한 구성 요소입니다. API 게이트웨이의 핵심은 역방향 프록시입니다. 즉, 들어오는 요청에 대해 다양한 작업을 수행하면서 클라이언트와 백엔드 서비스 사이의 중개자 역할을 합니다. 예를 들어, 게이트웨이는 요청을 적절한 백엔드 서비스로 전달하기 전에 인증, 속도 제한, 경로 요청, 보안 정책 적용, 모니터링 및 버전 관리를 적용할 수 있습니다. 백엔드 서비스가 요청을 처리하고 응답을 반환하면 API 게이트웨이는 응답을 클라이언트로 다시 전달하기 전에 캐싱, 프로토콜 변환, 응답 처리와 같은 작업을 수행할 수 있습니다.
API 수가 늘어나면서 API 게이트웨이는 기본 라우팅을 넘어 다양한 새로운 기능을 포함하도록 발전하여 사실상 모놀리식 시스템이 되었습니다. 이러한 게이트웨이는 이제 인증 및 속도 제한과 같은 작업을 관리하여 성능을 개선하고 백엔드 서비스의 부담을 줄입니다. 그러나 이렇게 기능이 향상되더라도 API 게이트웨이는 백엔드 서비스에 대한 단일 액세스 지점으로 남아 있으며, 이는 고도로 분산된 환경에서는 문제가 될 수 있습니다.
특히 클라우드, 하이브리드 멀티 클라우드, 엣지 인프라의 등장으로 인해 API 게이트웨이 방식으로 민첩성, 보안 및 관리 용이성을 유지하기가 더욱 어려워졌습니다. 클라이언트, 장치 및 애플리케이션 워크로드가 잠재적으로 광범위한 위치에 분산되어 있으므로 API 게이트웨이는 필요한 수준의 에지 친화적 아키텍처를 제공하기에 적합하지 않을 수 있습니다.
API 게이트웨이는 광범위한 작업을 처리하고 여러 시스템과 통합해야 하므로 일반적으로 배포 및 관리가 어렵습니다. API 게이트웨이를 관리하는 것은 복잡할 수 있지만, 그럼에도 불구하고 API의 가용성, 보안 및 확장성을 보장하는 데 중요한 작업입니다. 기업은 API 관리 플랫폼과 같은 특수 도구를 사용하여 API 게이트웨이를 보다 효과적으로 관리하고 모니터링하는 경향이 있습니다.
아래 목록은 포괄적이지 않지만 API 게이트웨이 복잡성에 기여하는 요소 중 일부는 다음과 같습니다.
API 게이트웨이 확산은 조직 내에서 여러 개의 독립적인 API 게이트웨이가 급증하는 것을 의미합니다. 여러 팀이나 사업부에서 자체 API를 만드는 경우가 많으며, 이로 인해 다양한 API를 처리하기 위해 여러 개의 독립적인 API 게이트웨이가 생성될 수 있습니다. 다양한 팀은 다양한 유형의 API를 처리하기 위해 다양한 공급업체나 솔루션의 API 게이트웨이를 사용할 수도 있습니다.
이로 인해 다양한 기능을 갖춘 여러 API 게이트웨이가 배포됩니다.
API 게이트웨이의 확산은 여러 가지 추가적인 과제를 발생시킵니다.
기업은 API 관리 및 거버넌스를 중앙화하고 단일 유형의 API 게이트웨이를 사용하기 위해 노력해야 합니다. 이를 통해 위에서 언급한 API 게이트웨이 확산의 과제를 완화할 수 있지만 API 게이트웨이에 대한 동질화된 전략은 결코 간단하지 않습니다.
기업이 유기적으로 성장하거나 인수를 통해 성장함에 따라 특정 사업부(BU)에 속한 내부 팀 간에는 API 게이트웨이 기술이나 공급업체를 선택할 때 의견 충돌이 발생합니다. 그 이유는 다음과 같습니다.
따라서 기존 애플리케이션에 잘 정립되고 의견이 확고한 팀이 있는 경우, 해당 팀은 서비스에 중단을 일으키지 않기 위해 다른 배포 패턴으로 전환하고 싶어하지 않을 것입니다.
따라서 기존 API 인프라의 여러 한계를 고려하면서 API 게이트웨이의 확산을 더 중요한 고려 사항 중 하나로 강조하는 새로운 접근 방식이 필요하다는 결론을 내릴 수 있습니다.
다음은 전체 목록은 아니지만 솔루션을 구축할 때 통합되어야 한다고 생각되는 몇 가지 고급 설계 고려 사항을 요약한 것입니다.
이러한 설계 고려 사항을 기반으로 특정 요구 사항을 도출할 수 있으며, 이를 분산 게이트웨이 액터(DGA) 솔루션에 통합했습니다.
이제 API 게이트웨이를 완전히 살펴보았으므로 분산 게이트웨이 액터 솔루션을 설명할 수 있습니다.
분산 게이트웨이 액터(DGA) 디자인 패턴은 엣지 컴퓨팅과 클라이언트 가까이에서 사용 가능한 컴퓨팅에서 영감을 얻었습니다. 이 아이디어의 핵심은 각 게이트웨이 액터를 클라이언트와 최대한 가깝게 하이퍼 분산하고 게이트웨이 액터가 트랜잭션이 끝날 때까지만 존재하고 마지막에 트랜잭션이 청산되는 것입니다.
이 솔루션의 기본 가정은 다음과 같습니다.
에지 컴퓨팅이 보다 보편화되면서, 이제 클라이언트에 지리적으로 더 가까운 곳에서 사용할 수 있는 일종의 컴퓨팅을 찾을 수 있게 되었습니다. 게이트웨이 액터는 이러한 에지 컴퓨트 노드에서 인스턴스화될 수 있습니다. DGA를 매우 가볍고 일시적이게 구현하여 모든 에지 컴퓨팅에서 인스턴스화할 수 있도록 하는 것이 의도입니다.
API 전송은 게이트웨이 행위자와 API 게이트웨이 사이에 네트워크를 구축하는 것을 포함하므로 인프라의 중요한 구성 요소입니다. 필요한 인프라 유형은 공급업체나 기업에 따라 달라질 수 있습니다. 예를 들어, 대규모 퍼블릭 클라우드는 자체 백본을 사용하여 API 전송을 실행할 수 있습니다. 또 다른 구현은 기업 데이터 센터 내의 기존 고대역폭, 저지연 네트워크 위에 계층화된 저지연 메시징 버스일 수 있습니다.
다시 말해, API 게이트웨이는 본질적으로 HTTP 트래픽을 적절한 API 워크로드로 라우팅하는 것이 주요 기능인 역방향 프록시입니다. 이러한 접근 방식은 모든 API가 로컬 온프레미스 네트워크나 가용성 영역 내의 가상 사설 클라우드(VPC)와 같이 공동으로 배치된 경우에 적합합니다. 하지만 API 수가 늘어나거나, 하이브리드 인프라로 이동하거나, 모바일화되면 이러한 API 게이트웨이 설계 방식은 비효율적이고 운영이 복잡하며 비용이 많이 듭니다.
그림 6에 설명된 모든 기능을 분류하는 방법에 대해서는 다양한 견해가 있을 수 있지만, API 관리 인프라는 신중하게 조율해야 하는 많은 구성 요소의 복잡한 배포가 되었다는 점에는 동의할 수 있습니다.
그림 7은 그림 6의 API 관리의 다양한 특징과 기능을 분산 게이트웨이 액터 아키텍처에 매핑합니다. 이 매핑은 각 기능과 기능이 DGA 접근 방식에 어떻게 맞춰져 있는지 시각적으로 보여주며 아키텍처 내에서 API 관리 구성 요소의 원활한 통합을 강조합니다.
위에 나열된 대부분의 기능에는 논리적으로 중앙 집중화할 수 있는 관리 구성 요소가 있습니다. 우리의 목표는 관리 평면을 재구성하는 것이 아니라, 가능하다면 특정 기능을 제거하는 것입니다.
이는 데이터 플레인 기능이므로 API에서 구현하고 애플리케이션 워크로드와 함께 배치하는 것이 가장 좋습니다. API 게이트웨이는 모든 외부 트래픽의 진입점 역할을 하는 최신 마이크로서비스 아키텍처의 핵심 구성 요소입니다. 핵심 기능을 라우팅, 부하 분산, 동적 라우팅, 상태 검사, 재시도 및 폴백으로 분류했습니다.
API 게이트웨이는 들어오는 요청을 적절한 마이크로서비스로 전달하고, 트래픽을 여러 인스턴스에 분산하고, 동적 라우팅을 지원하고, 마이크로서비스와 해당 인스턴스의 상태를 모니터링하고, 실패한 요청을 재시도하고, 마이크로서비스를 사용할 수 없거나 실패한 경우 대체 응답을 제공합니다. 인증, 권한 부여, 속도 제한, 캐싱, 로깅과 같은 기타 기능은 시스템의 특정 요구 사항에 따라 에지 또는 중앙 기능에 분산될 수 있습니다.
이러한 모듈식 접근 방식은 보다 유연하고 최적화된 아키텍처를 제공하며 기업 API 인프라를 단순화, 현대화, 확장하기 위한 당사의 권장 사항의 핵심입니다.
API 게이트웨이와 API 관리를 공급업체는 종종 실수로 API 게이트웨이 기능의 일부로 혼동하지만, 실제로는 별도로 처리해야 하는 두 가지 별개의 기능입니다. API 게이트웨이는 클라이언트에서 백엔드 서비스로 요청을 라우팅하는 역할을 하는 반면, API 관리에는 액세스 제어, 속도 제한, 분석, 개발자 포털 관리와 같은 더 광범위한 기능이 포함됩니다.
일부 공급업체는 API 게이트웨이와 API 관리 기능을 단일 제품의 일부로 제공할 수도 있지만, 이러한 기능 간의 차이점을 이해하고 특정 요구 사항에 따라 별도로 평가하는 것이 중요합니다. 이러한 기능을 결합하면 혼란이 생길 수 있으며 잠재적으로 조직의 API 인프라의 유연성과 확장성이 제한될 수 있습니다. 이는 API 게이트웨이 기능 배포에 대한 당사의 입장을 이해하는 데에도 중요합니다.
여기에 나열된 기능은 데이터 경로에 반드시 포함되어야 하는 핵심 기능입니다. 분산 게이트웨이 패턴에서는 API 게이트웨이의 일부 인라인 함수도 분산됩니다. 이러한 기능에는 액세스 제어, 속도 제한, 요청 검증, API 분석, 사용 보고, 오류율 모니터링, 알림 및 이벤트, 인증 통합, 타사 통합, 모니터링 및 로깅 통합, 에지 캐싱, 압축이 포함됩니다.
이러한 기능을 분산 게이트웨이 패턴으로 옮기면 다음과 같은 이점이 있습니다.
예를 들어, 액세스 제어, 속도 제한 및 요청 검증은 클라이언트에 더 가깝게 배치된 에지 게이트웨이 액터가 처리할 수 있습니다. 이를 통해 중앙 API 게이트웨이에서 처리해야 하는 요청 수를 줄여 성능과 확장성을 향상시키는 데 도움이 될 수 있습니다. 마찬가지로 API 분석, 사용 보고, 오류율 모니터링, 알림 및 이벤트, 모니터링 및 로깅 통합은 여러 마이크로 서비스에서 데이터를 수집하고 집계할 수 있는 에지 게이트웨이에서 처리할 수 있습니다.
오늘날 API 게이트웨이가 지원하는 중요한 기능 중 하나는 서비스 구성 및 오케스트레이션입니다. 상당히 복잡해질 수 있지만, 이 기능이 단순화된 API 게이트웨이에서 지원되지 않는다면 문제가 될 수 있습니다. 우리는 GraphQL이 기존 API에 대한 일종의 미들웨어 역할을 하면서 서비스 구성에 흥미로운 접근 방식이 될 수 있다고 믿습니다.
모든 API를 볼 수 있기 때문에 API 게이트웨이는 서비스 구성을 수행하는 논리적인 장소가 되며, 개발자는 게이트웨이 뒤에 있는 API를 결합하여 새로운 서비스를 작성하지 않고도 비즈니스 로직을 향상시킬 수 있으며, 서비스 구성 계층에서 새 서비스를 쉽게 결합할 수 있습니다.
GraphQL의 서비스 구성은 클라이언트에게 제공되는 데이터의 형태를 정의하는 강력한 형식의 스키마를 사용하여 가능해졌습니다. 클라이언트는 이 스키마를 사용하여 어떤 서비스나 소스에서 데이터를 제공하는지와 관계없이 필요한 정확한 데이터를 지정하는 쿼리를 구성할 수 있습니다. 쿼리를 데이터 소스에 매핑하는 기능인 리졸버는 적절한 서비스나 소스에서 데이터를 검색하는 데 사용됩니다. 하지만 GraphQL이 더 나은 보안을 약속하더라도 그 보안의 정도는 코드를 작성하는 개발자의 수준에 달려 있습니다.
그림 6에서 강조되지 않은 몇 가지 남은 기능이 있습니다. API 관리 및 인프라 기능 . 남은 기능과 기능은 개별 관리 및 운영 또는 데이터 평면 기능으로 옮길 수 있는 후보입니다.
우리는 특정 구현이나 공급업체 기술을 암시하는 것을 피하기 위해 의도적으로 "액터"라는 용어를 사용하기로 했습니다. 게이트웨이 액터의 구현은 VM, 컨테이너, 서버리스 또는 공급업체에 특화된 기타 접근 방식을 기반으로 하는 인프라를 사용하여 구현된 메서드, 함수, 작업자, 스레드 및 프로세스를 기반으로 할 수 있습니다.
분산 게이트웨이 액터(DGA) 아키텍처를 사용하는 접근 방식은 API 게이트웨이 기능을 단순화하고 다른 인라인 기능을 에지나 제어 평면으로 옮깁니다.
API 게이트웨이 기능 외에도 DGA 아키텍처는 모놀리식 API 게이트웨이 내에서 구현하는 것보다 논리적으로 중앙 집중화된 구성 요소로 제어 평면에서 더 잘 처리될 수 있는 기능을 식별하는 것을 권장합니다. 이미 존재하는 API 인프라의 관리 및 제어를 확장하여 이 추가 기능을 포함할 수 있습니다.
따라서 API 게이트웨이를 단순화하는 것은 모든 API 게이트웨이 공급업체가 공통적인 구성 매개변수 세트를 통해 관리할 수 있는 표준 핵심 기능 세트를 도출하는 과정이 됩니다.
이러한 변환을 원하는 기업은 기존 배포를 방해하지 않고 대대적인 작업이 필요 없이 한 번에 하나의 애플리케이션씩 DGA 아키텍처를 출시할 수 있습니다.
DGA의 중요한 측면은 각 게이트웨이 액터가 단명하여 API 세션 동안만 인스턴스화된다는 것입니다(즉, 하나의 클라이언트가 하나의 API 호출을 하는 경우).
분산 게이트웨이 액터는 기존 API 게이트웨이보다 더 유연하고 확장 가능하며 비용 효율적일 수 있습니다. 다양한 공급업체의 여러 개의 일체형 API 게이트웨이에 의존하여 API 트래픽을 집계하고 처리하는 대신, 게이트웨이 액터는 개발자가 각 API에 대한 개별 게이트웨이 인스턴스를 네트워크 가장자리에 더 가깝게 지정하고 배포할 수 있도록 허용합니다. API 자체는 특정 요구 사항에 맞게 더 큰 제어 및 사용자 정의 기능을 제공할 수 있습니다.
이 새로운 접근 방식은 개발자가 대규모 중앙 게이트웨이를 관리하는 데 따르는 오버헤드를 걱정하지 않고도 증가한 트래픽을 처리하기 위해 필요에 따라 게이트웨이 액터 인스턴스를 쉽게 시작할 수 있으므로 확장성도 더 높아집니다.
기술적 이점 외에도 게이트웨이 액터는 기존 API 게이트웨이에 비해 비용 절감 효과를 제공합니다. 즉, 기업은 사용하는 임시 게이트웨이 액터 인스턴스에 대한 비용만 지불하면 됩니다. 이 배포 모델은 추가 수익 모델에 대한 기회를 열어줄 수 있습니다.
API 전송 계층을 활용함으로써 DGA는 기본적으로 API 수신 위치를 API 게이트웨이에서 분리합니다. DGA를 가장자리, 즉 API 호출을 하는 클라이언트에 더 가깝게 옮길 수 있습니다. API는 DGA에서 종료된 후 어떤 수단으로든 전송될 수 있습니다. 이는 그림 3과 다릅니다. 레거시 API 게이트웨이 아키텍처 클라이언트 트래픽이 API 게이트웨이와 토폴로지적으로 인접한 곳으로 유입됩니다.
따라서 우리의 의도는 서로 다른 공급업체가 유사한 목적을 달성하기 위해 이러한 구성 요소를 구축하는 데 필요한 자체 지적 재산을 보유하고 있을 수 있으므로 공급업체와 배포에 독립적인 접근 방식을 제안하는 것이었습니다.
이 논문에서는 API 확산 , Edge 2.0 아키텍처, API 경제 , GraphQL에 대한 조사 등 다양한 분야에서 얻은 교훈을 요약했습니다. 기존 API 인프라와 관련해 아직 확실한 답은 나오지 않았지만, 우리는 새로운 접근 방식이 필요하다고 생각합니다.
전 세계의 모든 개별 기기나 개체에서 가치를 끌어낼 수 있다는 약속만으로도 새로운 접근 방식을 모색할 충분한 이유가 됩니다. 우리는 이제 기존 API 인프라에서 벗어나야 합니다. 겉보기에 분산된 것처럼 보이지만 실제로는 단일체이기 때문입니다.
우리는 새로운 API 경제의 잠재력을 최대한 활용할 수 있는 공급업체에 독립적인 방식으로 분산형 GraphQL 기반 게이트웨이 액터 접근 방식을 제안합니다.