MixedCode

Mixedcode 방문자 여러분 안녕하세요~ !

저희  Funlab 에서는 앞으로 Microservices API Gateway가 생소한 분들을 위하여 Tyk API Gateway 라는 오픈 소스를 통하여 국내에서 Ecosystem을 만들어 나가고 싶습니다.

흔쾌히 포스팅을 허락해 주신 Eddy님께 감사의 말씀을 드립니다.

'통짜배기(monolithic)'의 적폐 때문에 마이크로서비스가 소개 된지 꽤나 시간이 지났음에도 국내는 비교적 조용합니다. 하지만, 런던에 있는 Tyk (타이크) 본사에서 저희에게 전해 오는 서울에서의 다운로드 횟수는 상당합니다. 대부분 이니셜 한 두 글자만으로 바로 알 수 있는 그런 회사들이지요각 회사 마다 적게는 5 , 많게는 15 명도 있었습니다. 한정된 리소스로 부단히 노력하시는 개발자 분들께 앞으로의 게시 글이 조금이나마 도움이 되었으면 하는 바램을 가져 봅니다

n API 무엇인가? (여기 링크에 비유로 설명 해 두었습니다).

애플리케이션 프로그래밍 인터페이스또는 API는 어떤 소프트웨어가 다른 소프트웨어와 어떻게 상호작용 할 것인가를 정의한다. API를 개발자들 사이의 하나의 계약이라고 생각 해 보자한 개발자는 어떤 것이 수행할 그 무엇과그것이 완료되기 위해서 어떻게 요청되어야 하는지를 정의하게 될 것이다그러면 그 외의 다른 모든 개발자들은 그 계약에 상응하는 코드를 작성할 수 있게 되어 특정한 일들을 발생 시키는 기반이 제공된다.

API의 품질이 그 계약보다 좋을 수는 없다. 말하자면, API의 품질이 좋으려면 그 만큼 계약이 중요하다는 것이다만약 그 계약이 API가 무엇을 하는 것인가에 있어서 헷갈리거나 불분명하다면개발자들은 그 API를 사용하고 의존하는데 어려움을 겪게 될 것이다.

만약 API가 시간에 따라 변경된다면 API를 사용하는 코드는 더 이상 작동하지 않게 될 것이다해당 API가 많은 개발자들에 의해 사용된다면그 계약 내에서 하나의 변경도 몇몇의 또는 그것을 소비하는 모든 소프트웨어에 충격을 주게 될 것이다.

 

n   당신이 모르는 사이에 사용해 오던 API

당신이 스마트 폰을 가지고 있다면눈치조차 채지 못하면서 예닐곱 개의 이런 API들을 사용하기 십상이다.

당신이 폰으로 날씨를 확인할 때 마다 Accuweather API가 사용된다.

Gmail API는 이메일을 확인할 때 사용된다이메일을 관리하는데 가용한 다양한 네트워크 프로토콜이 있지만 그것들은 우리가  현재 그것들에 대하여 동작하기를 기대하는 만큼 애플리케이션들을 만드는데 각별히 우호적이지는 않다더군다나, ‘좋아요 ‘태깅과 같은 개념이 없다구글의 Gmail API는 그것들이 iOS Android에 일관된 경험을 제공하는 것을 용이하게 해 준다.

당신의 집 주변에 아마도 최소한 세 개의 Netflix를 지원하는 장치를 가지고 있을 것이다당신이 Netflix를 사용하여 쇼나 영화를 본다면 그들의 API를 통하여 로그인하고 당신의 프로필을 선택하고 최근에 시청한 쇼를 보거나 할 것이다그들의 전략은 어떤 종류의 TV나 모니터로 쉽게 통합되어 연결되는 API를 만드는 것이다.

API에 대한 개념이 기술적인 것이기는 하지만그것이 가진 파장은 개발자들을 넘어서 그것들에 의존하는 소프트웨어를 사용하는 사람들에게까지 미친다.

 

n API gateway 무엇인가? (여기 링크의 세 번째 화면에서 API Gateway에 대한 기능 설명이 있습니다).

API gateway는 당신의 API와 모바일 앱이나 웹앱들 또는 파트너들 사이에서 교통경찰의 역할을 수행한다그것은 API 소비자(당신의 API로 요청을 보내는 원격의 시스템)를 통제함으로써 당신의 내부 시스템들을 보호하도록 설계된다.

API gateway는 들어오는 모든 API요청 트래픽을 가로채고 이 요청들이 해당 API로 보내져야 할 것들인지를 결정하기 위해 룰을 적용한다이것이 ‘역프록시’ 라는 것이다.

API가 개발자들에게 가용되기 이전에 API gateway를 먼저 설치할 것을 강력히 추천한다.

 

n  API gateway의 가치

API 모바일과 웹 애플리케이션에서 중추가 된다데이터를 저장하고 불러오기사적인 백엔드 시스템 접근그리고 다른 조직의 API들과 섞어서 전혀 새로운 애플리케이션을 만드는 것을 가능하게 해 준다.

만약 당신의 제품이 어떤 API가 필요하다면당신은 그 API가 너무 많은 요청들로 인하여 과부하가 걸리거나또는 보호되지 않고 제공되거나 백엔드에 직접 접근하게 하여 보안 위험을 노출시키지 않는 것 등에 대한 확실한 보증이 필요하게 된다.

 

n   API gateway를 사용하면 좋은 점들

API gateway는 많은 이점을 제공하고 아래와 같은 것들을 포함한다:

성능 보호많은 수의 API에 대해 들어오는 요청으로부터의 성능 보호해당 API에 대한 초당 허용속도를 제한하고저급한 코딩의 결과로서또는 악성 공격으로 초래되는 DDoS를 방지한다.

인가와 접근 통제당신의 API에 대한 접근을 하려면사이트에 가입한 후에 API 호출자를 적절히 식별하기 위한 API 토큰을 받아야 하는데 그렇지 않은 비인가 된 접근을 방지한다이 기능은 하나 또는 그 이상의 접근 계층에서 데이터 접근과 조작을 제한하기 위한 지원에 의해 제공되는 경우가 자주 있다예를 들면모든 API소비자들은 한 API의 읽기 전용 부분에만 인가될 될 수 있는 반면에 몇몇의 선택된 소비자들은 새로운 레코드를 생성하거나 기존의 레코드를 업데이트 할 수 있도록 허용되기도 한다.

내부 versioning load balancing API의 하나 또는 그 이상의 버전에 대하여 들어오는 요청들을 API gateway 뒤편에서 구동한다이것은 하나의 API가 동시에 둘 이상의 버전으로 존재할 수 있게 해 주는데 이로써 최신 버전의 혁신적인 동작과 그것들의 구 버전을 사용하여 후방 호환성을 지원하는 것이다.

사용 보고 기능당신의 API가 어떻게 사용되고 있는지를 보여준다이것을 API들에 대한 구글의 분석정보라고 생각해도 좋다이것은 Google Analytics API 호출에 대한 분석 정보가 아니라브라우저에 대한 마우스 클릭만을 분석하기 위해 설계된 것처럼그런 툴로서 특별히 중요하다.

개발자 onboarding 지원개발자들이 당신의 조직에 의한 수동절차에 대한 요청 없이, API호출을 위한 그들의 API 토큰을 self-provision하는 것을 도울 수 있도록 지원한다그 외에도 개발자들이 당신의 API 사용의 시작을 도울 수 있게 문서화가 개발자들에게 제공될 수 있다단지 내부 API들만 사용하는 조직에서는 개발자 포탈을 통하여 그들의 개발 스태프의 onboarding을 자동화 하게 되는데, IT전문가에 의한 개입 요청 없이 시간과 돈을 절약할 수 있다.

 

n   마이크로서비스는 API gateway가 필요한가?

아마도 당신의 API들은 작은 마이크로서비스들로 구성 되었을 것이다. API gateway는 다른 온갖 이점을 제공함과 동시에 마이크로서비스를 보호하고 복잡한 라우팅 룰들을 지원하며다수의 네트워크 프로토콜 (e.g. JSON, SOAP, Protobuf )을 지원할 수도 있다. “왜 마이크로서비스는 API gateway가 필요한가” 라는 제목의 기사에서 좀 더 상세한 것을 배울 수 있다. (https://tyk.io/2016/10/19/microservices-api-gateway/).

 

n   API gateway와 호스팅 옵션

클라우드 – 풀 호스팅

모든 것이 클라우드에서 호스팅 된다게이트웨이와 관리자 대시보드그리고 모든 보고/분석들도 호스팅 되는 솔루션을 통해서 이뤄진다설치는 단순화되어 자체 기기에 설치되거나 관리되는 것이 전혀 없다하지만 모든 API들은 호스트 된 게이트웨이에서 관리되며 반드시 인터넷을 통하여 접근하여야만 한다그러므로 당신이 사적인 API들을 방화벽 뒤에서 보호하려면 클라우드 기반의 호스팅은 선택할 수 없다.

자체 설치/자기 보유 설치 (On-Premise: 펀랩이 리셀링하는 버전 입니다)

전권의 통제를 원하는 팀들을 위해서 몇몇의 공급자들은 게이트웨이데이터 캡처와 보고 서비스를 포함하는 모든 서비스의 완전 설치를 제공한다이 옵션은 최상의 유연성을 제공하지만 복잡한 설치와 운영 지원에 비용이 발생한다.

클라우드-하이브리드 호스팅

하이브리드 호스팅은 클라우드 기반의 호스팅에 on-premise 설치의 유연성을 접목시킨 것이다이 하이브리드 모델은 분석 대시보드와 데이터 보고를 클라우드에서 호스팅으로 제공하고반면에 게이트웨이를 당신의 인프라 내에 수동 설치하게 된다회사들은 그들 자신의 게이트웨이 스케일링과 업타임을 관리할 수 있고반면에 호스팅과 데이터 분석정보와 보고 기능의 관리는 외주를 줄 수 있다이 옵션은 인가에 대한 확인을 당신의 인프라 내부에서 수행할 수 있기 때문에 API 키들과 OAuth 토큰에 연관된 민감한 데이터에 대한 공유의 필요성을 제거하였다하이브리드 호스팅을 선택하는 가장 큰 이유는 on-premise를 보호하고 사적인 API들을 방화벽 뒤로 두면서 나머지 것들을 모두 공급자의 호스팅 솔루션에 외주 시킴으로써 설치 절차를 줄이려 하는 때문이다.



오늘은 일반적인 용어로 API API 게이트웨이, Tyk의 제품군에 대한 설명을 드렸습니다. 추후 계속 내용을 확장시키고, 정보를 공유해 나가겠습니다.

 





Comments

Leave a Reply

*