01. Service Broker
1-1 Service Broker란 ?
파스타의 마켓플레이스에는 여러 서비스가 등록되어있다.
서비스들은 보통 클라우드 파운더리쪽에서 직접 제작한 프로그램이아니라
외부의 업체에서 개발한 프로그램이기 때문에 이것을 클라우드 파운더리쪽에서 서비스로 제공하기위해서는
중간에 해당하는 서비스를 사용할수 있게 만들어주는 브로커라는 프로그램을 하나 만들어서 사용해야 한다 .
1-2 서비스 브로커 예제 )
Service broker Api 에는 Cloud Foundry 엔진인 catalog, provision, updateprovision, bind, unbind, deprovision 이라는 6가지 api가 들어있다, 위와같은 api를 서비스 브로커를 통해서 실행할수 있어야한다.
그래서 Service broker의 catalog, provision 등에 명령을 내리게 되면
해당 서비스 브로커가 실제로 동작하는 mySQL이나 mongoDB, MQ (Message Queue)등에 프로그램에
직접적으로 명령을 내려서 해당하는 api를 처리하고Service broker가 응답을 만들어서 return을 해주게되는 모델이다.
2-1 Service API
- 개방형 클라우드 플랫폼 Service API는 Cloud Controller와 Service Broker 사이의 규약을 정의
- Broker는 HTTP (or HTTPS) endpoints URI 형식으로 구현됨
- 하나 이상의 Service가 하나의 Broker 에 의해 제공 될 수 있고, 로드 밸런싱이 가능할 수 있도록
수평 확장성 있게 제공 될 수 있음
- 서비스는 Service Broker API 라고 불리우는 cloud controller 클라이언트 API를 구현하여
개방형 클라우드 플랫폼에서 사용됨
- Services API는 독립적인 cloud controller API의 버전
- 이는 플랫폼에서 외부 *application을 이용 가능하게 함
*application : database, message queue, rest endpoint , etc
- ervice Broker는 RESTful API로 구현하고 Cloud Controller에 등록함
2-2 서비스 예제를 통한 컨셉 설명
① cf create-service-broker 라는 명령을 통해 service broker를 등록하게 되면
broker에다가 catalog를 요구한다 그러면 broker는 해당하는 서비스에 상세요건(이름, 사용법, 플랜정보 등)을
제공하고 제공받은 상세요건을 리턴을 받아 CCDB위에 저장하게 된다.
② cf marketplace 라는 명령어를 내렸을때 catalog를 통해 서비스에 대한 등록을 마쳤기때문에
별도의 api가 호출되지 않는다.
③ cf create-service 라는 명령어를 내리게되었을때는 cloud controller 가 service broker에게 할당해줄수있는
인스턴스나 사용할수 있는 공간같은것을 만들어달라고 요청을 하게 되고 mysql에서 service broker 역할로서
create database 를해서 그 정보를 cloud controller 에 돌려주게된다.
④ cf update-service 를 하게되면 plan 정보등을 갱신하여 상태변경을 하게 된다.
cloud controller 가 Update Provision Plan 을 통해 service broker 에 호출을 하게되고
service broker는 변경된 plan 정보를 가지고 응답을 하게 된다.
⑤ cf bind-service 를 하게 되면 cloud controller 가 service broker 에 bind 가 되었다고 bind api를 호출하게 되고
MySQL broker는 해당하는 bind(어플리케이션에서 사용할수 있게끔 사용자와 권한을 생성) 로 응답하게 된다
그래서 사용자와 권한 인증정보를 가지고 어플리케이션에서 mysql에 접속할 수있도록 열어주는 역할을 하게 된다.
⑥ cf unbind-service 라는 명령을 내리게되면 MySQL broker 에서 MySQL unbind api를 호출하게되고
unbind api를 호출하면 MySQL broker 는 생성했던 계정에대한 권한을 삭제하고 계정조차 삭제하게된다.
⑦ cf delete-service 를 호출하게되면 cloud controller 가 deprovision을 호출하고
service broker에서 DataBase를 drop 시키는 역할을 한다.
2-3 서비스 브로커 개발 가이드(2.5버전 기준)
- 개방형 클라우드 플랫폼은 서비스 제공자가 6가지의 Service Broker API를 구현
- 이때 2.4 Pivotal Marketplace Model를 이용해서 AppDirect에서 제공중인 서비스 제공자와 협의 하여
AppDirect의 중개 기능을 이용해서 제공할 수도 있음
- 또한 Broker는 별도의 애플리케이션으로 구현하든지 기존 서비스에 필요한 HTTP endpoint를 추가함으로써
구현 될 수 있음
- 개발 가이드는 Service Broker에서 service back-end를 제어하는 방식을 가이드 함
* AppDirect를 사용하는 경우 다음을 참고하여 개발
http://go.appdirect.com/request-more-information
2-3-1 인증
'PaaS-Ta > 이론' 카테고리의 다른 글
[Paas-Ta] BOSH (0) | 2022.01.18 |
---|---|
[Paas-Ta] Microservices와 API Gateway (0) | 2022.01.17 |
[Paas-Ta] Cloud Native Application (0) | 2022.01.17 |
[Paas-Ta] SaaS (0) | 2022.01.17 |
[Paas-Ta] PaaS (0) | 2022.01.17 |