Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

[Pgday.Seoul 2019] Advanced FDW

41 views

Published on

[Pgday.Seoul 2019] Advanced FDW - 김성식

Published in: Software
  • Be the first to comment

  • Be the first to like this

[Pgday.Seoul 2019] Advanced FDW

  1. 1. Tarantula: The Cloud-Native DB Gateway
  2. 2. 목차 01 About ORASCOPE 02 REST API 와 MSA 03 API GATEWAY 06 WHERE FOR SALE? 04 DB GATEWAY: Tarantula Tarantula의 기타 활용 방안 05
  3. 3. About ORASCOPE
  4. 4. About ORASCOPE ORASCOPE 주요 실적 자체 개발 SW 제품 Oracle/PostgreSQL/EDB 데이터베이스 컨설팅 수행 및 관련 SW 를 개발하고 있습니다. ㈜오라스코프는 대표이사 설립일자 김성식 2013년 12월 12일 대표전화 02-2686-8400 사업범위 소재지 데이터베이스 관련 컨설팅, 솔루션 개발 서울시 구로구 경인로 662 오피스동 1549호 (신도림동, 디큐브시티) OraScope.Net for Oracle OraScope.Net for Postgres Tarantula: The Cloud-Native DB Gateway 튜닝 진단 모니터링 솔루션 http://www.orascope.net http://www.tarantula.kr EDB Postgres SQL 튜닝 - KT2013.08 ~ 2014.03 오라클 SQL 튜닝 - 신한은행2014.05 ~ 2014.09 오라클 to EDB Postgres 전환 - 포스코 ICT2014.08 ~ 2014.09 EDB Postgres 기술지원 외 다수 컨설팅 유지보수 수행 및 오라클 성능 튜닝 – GS 리테일 2015.01 ~ 현재 블록 체인 사업 EDB 구축 및 유지보수 - 한국조폐공사 2018.12 ~ 현재 EDB Postgres SQL 튜닝 – 삼성전자2018.09 ~ 2019.01 KEB 하나 차세대 EDB Postgres 구축2019.04 ~ 현재 이메일 sales@orascope.net
  5. 5. REST API와 MSA
  6. 6. -6- DATA https://developers.kakao.com/docs/restapi/kakaopay-api https://jsonplaceholder.typicode.com/todos/ REST API 요청 정보 JSON형태 응답회신 JSON Response DATA Request API에 CRUD 요청 / 리소스 생성,조회,수정,삭제 Client Request HTTP Protocal API(Application Programming Interface; 응용프로그램 인터페이스) : 특정프로그램의 기능이나 데이터를 다른 프로그램이 접속할 수 있도록 미리 정해 놓은 통신 규칙 타 프로그램에게 데이터 및 프로그램 기능 집합을 제공해 프로그램간 상호 작용 촉진 및 정보교환 가능 REST API(REpresentational State Transfer API) : REST를 기반으로 서비스 API를 구현 , HTTP 표준통신 규칙 기반 https://developers.naver.com/docs/search/blog/ https://jsonplaceholder.typicode.com/todos/4 REST API 란?
  7. 7. -7- 기존 MONOLITHIC MSA(MicroService Architecture) UI MICROSERVICEMICROSERVICE MICROSERVICE MICROSERVICE VS REST API REST API MSA(MicroService Architecture) 전체 시스템을 비즈니스/ 서비스 기능별로 독립적인 애플리케이션서버/ 데이타베이스 서버로 분리 구축 개발하는 구조 Data Access layer Business layer Presentation layer MICROSERVICE 마이크로서비스아키텍쳐(MSA)
  8. 8. -8- Only One Database 지도서비스 광고서비스 날씨 서비스 증권서비스 모놀리틱 아키텍쳐 (기존 서비스 방식) 응용 프로그램은 단일 및 중앙 데이터베이스에 데이터를 저장하여 다양한 기능을 구현 응용 프로그램의 배포, 문제 해결, 확장 및 업그레이드가 어려움 Monolithic
  9. 9. -9- 지도 Database Oracle REST API 지도서비스 REST API 광고서비스 REST API 증권서비스 REST API 날씨서비스 광고 Database EDB Postgres 증권 Database MySQL 날씨 Database Mongo DB 마이크로서비스 아키텍쳐 응용 프로그램은 여러 마이크로 서비스로 분산되어 각 서비스 별 데이터베이스를 사용 서로 다른 서비스로 분산되어 있기 때문에 이질성을 통합하여 관리하는 기술이 필요 Microservice
  10. 10. -10- 광고 Service 증권 Service 뉴스 Service 실시간이슈검색어 Service 날씨 Service 지도 Service 사용자 Service MSA의 관리는 어떻게? 분산되어 있는 서비스들을 어떻게 효과적으로 제어할 것인가? Governance
  11. 11. API Gateway
  12. 12. -12- API GATEWAY 란? – 단일 endpoint 독립적으로 구성된 서비스의 인증, API 호출, 로드 밸런싱, 공통 로직 처리, 프로토콜 변환 등을 처리 API GATEWAY REST API 지도서비스 REST API 환율서비스 REST API 날씨서비스 REST API 뉴스서비스 REST API API Gateway Client
  13. 13. -13- API Gateway 의 기능 API 관리, 라우팅, 인증/권한, 로깅, 트래픽 제어 etc. API Routing Mediation Limitation AggregationLogging Statistic Certification API Gateway
  14. 14. -14- API Gateway 관련 제품 API Gateway의 오픈 소스 기반 제품과 상용 제품 목록 API Gateway
  15. 15. Tarantula: The Cloud-Native DB Gateway Advanced FDW / Quick OpenAPI service 구축
  16. 16. -16- API Gateway? 다양한 MSA환경의 서비스를 REST API 방식으로 일괄되게 API Gateway 를 경유하여 접근함 다양한 이기종 데이터베이스도 REST API 방식으로 일괄되게 Access(CRUD 수행) 하게 할 수 있지 않을까? 다양한 Database를 REST API 방식으로 심플하게 DB Gateway를 통해서 Access 가능 DB Gateway? Tarantula : Cloud-Native DB Gateway DB Gateway
  17. 17. -17- The Cloud-Native DB Gateway REST API EDB Postgres Oracle MySQL DB Gateway Client
  18. 18. -18- 지원하는 데이터베이스 Tarantula는 아답터 형태로 데이터베이스를 추가할 수 있으며, 현재 지원중인 데이터베이스의 목록은 우측과 같습니다. (2019.06 현재) 계속 추가 중입니다. Supported database RDBMS + NOSQL 모두 지원
  19. 19. -19- DB GATEWAY HYUNDAI KIA SSANGYONG P_STORE O_STORE M_STORE BRAND NAME PRICE hyundai sonata 2000 hyundai stella 1000 hyundai grandeur 3000 BRAND NAME PRICE kia pride 100 kia soul 200 kia morning 300 BRAND NAME PRICE ssangyong korando 2000 ssangyong musso 3000 ssangyong tivoli 1000 시연 1/2 Client
  20. 20. -20- curl -u tarantula:king -H 'x-tnt-token: zhIPa1t/B3jXGb/m7I551BVVNifi26bgn+YsLQtDaKgBsM25PuyOXrWhVOXolymi' -i -X POST http://localhost:9083/tnt/business -H 'Content-Type: application/json' -d '{"method":”htp_getcar","params":{"brand":"all", "price_above":20}}' { "jsonrpc": "2.0", "id": "71cd19cabda0a5ab3a038389674ca4fb", "result": { "src": 0, "key": "business-getcar:1498c7e8c3564e64e71eb73d23c3dfd7", "output": [ { "_error_": null, "_data_": [ { "brand": "hyundai", "name": "sonata", "price": 2000 }, { "brand": “kia", "name": “pride", "price": 100 }, { "brand": “ssangyong", "name": “tivoli", "price": 12000 } ] } ] } } 시연 2/2
  21. 21. -21- Microservice Cloud-Native DB GATEWAY Cloud-Native 어떤 API Gateway 와도 연동 가능하며, DB CALL 은 Tarantula 에 요청 Microservice MicroService Architecture 적용 시 의 Tarantula 포지션 Client RESTful API API GATEWAY
  22. 22. -22- 실시간 모니터링 관리 화면이 구비되어 있어 장애 발생시 즉각적인 탐지가 가능합니다. 모니터링 화면
  23. 23. -23- 데이터 중심 아키텍쳐 마이크로 서비스로 분산 된 데이터베이스 종류에 따른 각 NATIVE SQL로 작성 할 수 있으며, SQL 이 수정되도 WAS 를 재 기동 할 필요가 전혀 없습니다. RDBMS / NOSQL 데이터 조합 RDBMS 와 NOSQL 간의 데이터 조합이 손쉬워 집니다. 데이터 조합을 어플리케이션이 아닌 GATWAY에서 조합 후에 전달해 줍니다. 데이터베이스 손쉬운 대체 데이터 제공 주체인 데이터베이스가 교체되도 어플리 케이션은 수정이 필요하지 않습니다. 수직적인 아닌 수평적 성능 확장 도커 컨테이너 기술을 활용하여 손쉬운 수평적 확장 가능 온프라스 및 클라우드 모두 손쉽게 구축 할 수 있습니다. MSA 를 위한 유일한 DB Gateway DB 전문가에 의해 설계 및 작성된 국내 SW로 신속한 응대가 가능한 독창적인 아이디어 제품입니다. OLTP 와 OLAP 용 데이터베이스의 데이터를 실시간으로 머지 조회 할 수 있습니다. 멀티 데이터베이스 실시간 조회 손쉬운 Open API 서비스 구축 REST API 백엔드 구축에 필요한 시간을 획기적으로 단축 시 킬 수 있습니다. 단 하루면 레거시 데이터베이스위에서 돌아가는 OpenAPI 서비스를 구축할수 있습니다. MSA 아키텍처 사상에 부합 서비스에 적합한 멀티 데이터베이스 사용을 권장하는 MSA 사상에 부합합니다. 이를 손쉽게 구축 할 수 있는 방안을 제공합니다. 강력한 CACHING 기능 강력한 캐싱 기능을 갖추고 있어, 데이터 변경이 없는 경우 불필요한 쿼리 호출을 방지 할수 있습니다. Tarantula: Cloud-Native DB Gateway
  24. 24. Tarantula의 기타 활용 방안
  25. 25. -25- 스키마 DDL 비교, 데이터 비교 데이터베이스 링크 없이 서로 다른 데이터베이스 간 스키마 DDL 비교, 데이터 비교 Tarantula의 기타 활용 방안 Cloud-Native DB GATEWAY 개발 DB QA DB 운영 DB 개발 DB TABLE QA DB TABLE 운영 DB TABLE COL1 VARCHAR(20) COL1 VARCHAR(20) COL1 VARCHAR(20) COL2 VARCHAR(10) COL2 VARCHAR(20) COL2 VARCHAR(10) COL3 VARCHAR(50) COL3 VARCHAR(50) COL3 VARCHAR(50) COL4 VARCHAR(100) COL4 VARCHAR(100) COL4 VARCHAR(100) COL5 NUMERIC(10,2) COL5 NUMERIC(10,2) COL5 NUMERIC(10,2)
  26. 26. -26- 데이터베이스 통합 모니터링 데이터베이스 주요 성능 지표를 활용하여 실시간 멀티 데이터베이스 모니터링 Tarantula의 기타 활용 방안 Cloud-Native DB GATEWAY DB #1 DB #2 DB #3
  27. 27. -27- 실시간 데이터 연계 서로 다른 데이터베이스에 있는 테이블을 조인하여 데이터 조회 가능 Tarantula의 기타 활용 방안 Cloud-Native DB GATEWAY 주문 DB 상품 DB 재고 DB SELECT a.order_no , b.goods_cd , b.goods_nm , c.stk_qty FROM order_db_table(100001) a , goods_db_table(123456) b , stock_db_table(123456) c WHERE a.goods_cd = b.goods_cd AND b.goods_cd = c.goods_cd
  28. 28. WHERE FOR SALE?
  29. 29. WHERE FOR SALE? 금융사 / 통신사에 데이터 표준 API 구축 의무화 Tarantula 도입 타겟 고객 MICROSERVICE 도입 예정 고객 MSA 아키텍처 적용 고객 API/DB Gateway 역할 OPEN API 구축 예정 고객 기존 레거시 데이터를 OPEN API 방식 으로 외부에 노출 하고자 하는 고객 이기종 DB 간 데이터 교환 및 조회 이기종 데이터베이스 데이터를 실시간 으로 MERGE 조회가 가능하여 일종의 데이터베이스 링크 역할이 가능함 디비 링크를 없애고자 하는 고객 EAI 솔루션 사용 고객 동일한 데이터를 여러 데이터베이스 에서 조회하기 위해 EAI 솔루션으로 데이터 복제를 하는 경우, 불필요한 복제를 제거 할 수 있음
  30. 30. Thank You Contact Us

×