åæã¯ãã¡ãã
http://www.oracle.com/technetwork/articles/soa/wilkins-api-mgmt-3796702.html
ãã€ã¯ããµãŒãã¹ãšæ°ãã第3äžä»£API Managementã®ã±ã€ãããªãã£ã¯ãæè¡è ã«ãšã£ãŠéåžžã«èªç¶ãªãã®ã§ããïŒãã€ã¯ãïŒãµãŒãã¹ã1ã€ã®æ©èœã®ããã®å®è¡ããžãã¯ãæäŸãã第3äžä»£API Managementã¯ãåãµãŒãã¹ãæœåšçã«ïŒãã€ã¯ãïŒãµãŒãã¹éã§ã®å€éšãžã®å ¬éãå¶åŸ¡ããæ段ãæäŸããŸããLuis Weirã®3rd-Generation API Managementã®èšäºã§ã¯ãAPI Managementæ©èœã®é²åãšã第3äžä»£API Managementãã©ã®ããã«API ManagementãïŒãã€ã¯ãïŒãµãŒãã¹ãšããŸããã¿åãã®ãã説æããŠããŸãã
ãã€ã¯ããµãŒãã¹ãïŒãã€ã¯ãïŒãµãŒãã¹ãšåŒãã§ããããšã«ãæ°ã¥ãããšæããŸããããã¯éåžžã«çèããçµæã§ãè«äºãèµ·ããå¯èœæ§ããããŸãããã€ã¯ããµãŒãã¹ã¯éåžžãDockerãTomcatãªã©ã®è»œéã¢ããªã±ãŒã·ã§ã³ã³ã³ãããªã©ã®ç¹å®ã®ãã¯ãããžãŒã«é¢é£ä»ããããŠããŸããããã€ã¯ããµãŒãã¹ã®çŽç²äž»çŸ©è ã§ããã°ãïŒSOAã®å Žåãšåæ§ã«ïŒãã¯ãããžãŒã§ã¯ãªããèšèšã®ãã©ãã€ã ãšååã«ã€ããŠèããå¿ èŠããããŸãã幞éã«ãéåžžã«èŠèããããµãŒãã¹çµç¹ãããã 幞éãªãµãŒãã¹çµç¹ã§åããŠããªãå Žåãå¿ èŠãªææ決å®ãšå¶çŽã¯ããªãã¡å®çšçãªæ±ºå®ãããå¿ èŠãããããããããã芳ç¹ãæã¡ãªããåãçµãŸãªããã°ãªããªãããšãå€ã ãããŸããWebLogicã®ã©ã€ã»ã³ã¹ã«å€é¡ã®æè³ãããçµç¹ã«ãšã£ãŠããã®æè³ãããããããšããã®ã¯ç©ãããªè©±ã§ã¯ãããŸãããããã®ããšãããªãã¡ãã€ã¯ããµãŒãã¹ã¢ãããŒããæ¡çšã§ããªãããšãæå³ããŠãããã§ã¯ãããŸããããšã¯ãããïŒãã€ã¯ãïŒãµãŒãã¹ã¢ãŒããã¯ãã£ãæ¡çšããå Žåã«ãWebLogicãå©çšããããšã§çºçããããªã¹ã¯ã軜æžããå¿ èŠããããŸãã第2ã«ãã¬ãžã¹ããªã®æŠå¿µã¯ãã€ã¯ããµãŒãã¹ã«åºæã®ãã®ã§ã¯ãããŸãããå®éããããã®ãœãªã¥ãŒã·ã§ã³ã®äžã«ã¯ãäŸãã°Big Data/Hadoopãªã©ã®ãœãªã¥ãŒã·ã§ã³ã«ç±æ¥ãããã®ããããŸãã
Gartnerã¯ãã€ã¯ããµãŒãã¹ã®èŠ³ç¹ã§ããã¢ããªãŸãã¯ãã€ã¯ãã¢ããªã«ã€ããŠè©±ãå§ããŠãããããã¯ç§ã®äŒãããç¹ã匷調ãããã®ã§ãããã®æ¬è³ªã¯ãã€ã¯ããµãŒãã¹ã®ååã®ããå®çšçãªé©çšæ¹æ³ã§ãããã¹ãŠã®çµç¹ãïŒNetflixãUberãšãã£ãïŒãã€ã¯ããµãŒãã¹ã®ãã¹ã¿ãŒãã£ã€ã«ããã¡ã®ããã«ããã€ããŒã¹ã±ãŒã«ãsuper elasticityãå¿ èŠãšããŠããããã§ã¯ãããŸãããããµãŒãã¹ã®ã¢ãã¬ã¹æå®ã容æã«ç®¡çã§ããæ段ãå¿ èŠã§ãã
ã¬ãžã¹ããªã®åœ¹å²ãç解ããããã«ã¯ãäžæ©æ»ã£ãŠãã€ã¯ããµãŒãã¹ãæ¯ããææ³ãç解ããå¿ èŠããããŸãã ãããªããã§ããŸãšããŠã¿ãŸãããã
ã¬ãžã¹ããªã®åœ¹å²ã¯ãååã瀺ãããã«ãã©ã®ãµãŒãã¹ãã©ãã«ååšããããšãã£ãç»é²æ å ±ãä¿æããããšã§ããæ°ãããã€ã¯ããµãŒãã¹ãèµ·åãããšãæåã®ã¢ã¯ã·ã§ã³ã®1ã€ã¯ãã¬ãžã¹ããªã«ãã®ååšã宣èšããããšã§ãããã®åŸãåãµãŒãã¹ã¯ã¬ãžã¹ããªãšé£æºããŠãã·ã£ããããŠã³æãŸãã¯äºæããçµäºããæã«ã確å®ã«ã¬ãžã¹ããªãæ€åºããããã«ããå¿ èŠããããŸãã
ãã®å³ããã次ã®2åã®çåã湧ããŠããŸãã
ãããŸã§ã§ãèªèº«ãã¬ãžã¹ããªã«ç»é²ããååšãç¶æããæ¹æ³ãããããŸããããããã§ã¯åé¡ã®ååã解決ããã«éããŸãããå®éã«ã¯ããã®æ å ±ã®å©çšæ¹æ³ãç解ããå šãŠã®ã¯ãŒã¯ããŒãããã¹ãŠã®ã€ã³ã¹ã¿ã³ã¹ã«åæ£ããããã€ã¯ããµãŒãã¹ãã¯ãŒã¯ããŒããå®éã«ãã€ã¯ããµãŒãã¹ãååšããå Žæã«ãããã¯ãŒã¯ã€ã³ãã©ã¹ãã©ã¯ãã£ãã«ãŒãã£ã³ã°ããå¿ èŠããããŸããã¬ãžã¹ããªã®äœ¿çšã«ããã2ã€ã®ã³ã¢ã¢ãã«ããããŸãã
å šãã®æ°èŠæ§ç¯ã§ãã¬ã¬ã·ãŒãªã¢ããªã¹ãåãæ±ãå¿ èŠããªãå Žåãããããã¯ãŒã¯ã€ã³ãã©ã¹ãã©ã¯ãã£ã§ã¯ãªãã¢ããªã±ãŒã·ã§ã³ãã¡ã€ã³å ã§ã«ãŒãã£ã³ã°ç®¡çãç¶æãããå Žåã¯ãã¯ã©ã€ã¢ã³ããµã€ãã»ã¢ãã«ãçæ³çã§ãããã€ã¯ããµãŒãã¹ãã¢ããªã¹ãšãªãå¯èœæ§ã®ããä»ã®èŠçŽ ãšæ··åšããå Žåããæé©ãªã«ãŒãã£ã³ã°ãå®çŸããããã«DNSãªã©ã®ãããã¯ãŒã¯ã€ã³ãã©ã¹ãã©ã¯ãã£èŠçŽ ã掻çšãããå Žåã¯ããµãŒãã»ãµã€ãã»ã¢ãã«ã®ã»ãããããããããŸãããDNSãšãããã¯ãŒã¯ã«ãŒãã£ã³ã°ã«ãã£ãŠéããé èœããããšãã§ããŸãããããã代æ¿ãªãã·ã§ã³ããããŸããããã¯ãã¢ããªã¹ã®ãšã³ããã€ã³ããç»é²ããã¢ããªã¹ã®ããŒãããŒããåœè£ ãããããã·ã³ã³ããŒãã³ããç«ãŠããšãããã®ã§ãïŒäžå³ïŒã
ã¯ã©ã€ã¢ã³ããµã€ãã»ã¢ãã«ã®å ŽåãããŒããã©ã³ã·ã³ã°ãã²ãŒããŠã§ã€ãšçµã¿åãããå¿ èŠããããããSkyDNSãEurekaãªã©ã®ãœãªã¥ãŒã·ã§ã³ãå®è³ªçã«APIããŒããã©ã³ãµã«ãªããŸããïŒä»¥åŸã®é²åãšåºå¥ããããããã®ã¢ãã«ã第1äžä»£ãšåŒãã§ããŸãïŒã
ãããŸã§ã¯ãå³å¯ã«ç®¡çãããããããã¯ééããããã€ã¯ããµãŒãã¹ã®ãšã³ã·ã¹ãã ãã€ãŸãã¢ã¯ã»ã¹ç®¡çãã¹ããããªã³ã°ãã»ãã¥ãªãã£ãåçåãªã©ã«çŠç¹ãåœãŠãå¿ èŠã®ãªãç°å¢ã ããèæ ®ããŠããŸããããããããç¹ã課é¡ã«ãªããšãããã«ãã¡ã€ã¢ãŠã©ãŒã«ãŸãã¯ãã以äžã®APIã²ãŒããŠã§ã€ãå°å ¥ããå¿ èŠããããŸãã
APIã²ãŒããŠã§ã€ã§ã¯ã©ã€ã¢ã³ããµã€ãã»ã¬ãžã¹ããªã»ã¢ãã«ãæ¡çšããå Žåãã²ãŒããŠã§ã€ã®é 眮æ¹æ³ãéåžžã«æ éã«æ€èšããå¿ èŠããããŸãããããªããšããµãŒãã¹ãç°¡åã«ã²ãŒããŠã§ã€ã®ç¡èŠããã²ãŒããŠã§ã€ã®ãã€ãã¹ãç°¡åã«ã§ããŠããŸãããã§ããããã¯ã次ã®å³ã«ç€ºãããã«ãå®è¡ç¶æ³ã®ææ¡ããã³ç®¡çã®èŠ³ç¹ã§ã²ãŒããŠã§ã€ãæäŸããã¡ãªããã倱ãããå¯èœæ§ãããããšãæå³ããŸãã
ãµãŒããŒãµã€ãã»ã¬ãžã¹ããªã®å Žåãããã·ã³ãã«ã«ãªããŸããäžå³ã®ããã«ãã²ãŒããŠã§ã€ã¯ããŒããã©ã³ãµã®ãã°ã«ããã°ããã®ã§ãã
ããã«ããã第2äžä»£ã®APIããŒããã©ã³ãµãšèšãããã®ã«å°éããŸããããã®ã¢ãããŒãã§ã¯ãããŒãã»ãã©ã³ã·ã³ã°ãšã¬ãžã¹ããªãåäžã®ã³ã³ããŒãã³ãã ãã§ãªããã²ãŒããŠã§ã€ã®ç¹æ§ãããŒãžãããšããèãæ¹ãæ¡çšãããŠããŸããããã¯ããããã¯ãŒã¯ã€ã³ãã©ã¹ãã©ã¯ãã£ãœãªã¥ãŒã·ã§ã³ã®é²åãšäŒŒãŠããŸããããã¯ãã€ãŠã¯ãã¡ã€ã¢ãŠã©ãŒã«ãŸãã¯ããŒããã©ã³ãµã®ããããã§ããããçŸåšã¯è€åãœãªã¥ãŒã·ã§ã³ïŒComposite SolutionïŒã§ãã
ã¬ãžã¹ããªãããŒããã©ã³ãµãšã²ãŒããŠã§ã€éã®éä¿¡ã«ãããããã©ãŒãã³ã¹ã³ã¹ãã®ãªãŒããŒãããããªããªããç°å¢ã¯ãã€ã¯ããµãŒãã¹ã®èŠ³ç¹ã§éåžžã«ç°¡åã«ãªããŸãã
å®éã®ãšããã第2äžä»£ã®APIããŒããã©ã³ãµãšããŠèª¬æãããã®ã¯ããã®èšäºã®åé ã§è§ŠããLuis Weirã®èšäºã«ããããã«ãå®ã¯ç¬¬3äžä»£ã®API管çãœãªã¥ãŒã·ã§ã³ã®äžéšã§ãã
ããã€ãã®è°è«ã§ãã®ã¢ãããŒãã«æ¥¯çªããŠããããšããããŸãã
ã§ã¯ã第2äžä»£ã®APIããŒããã©ã³ãµãè¯ãã¢ã€ãã¢ãªãããªãããã¯ãŸã ååšããªãã®ã§ããããïŒç§ãã¡ã®çãã¯ãã²ãŒããŠã§ã€ããŸã æçã®éäžã§ãããšããäºå®ã«è¡ãçããŸããã²ãŒããŠã§ã€ãœãªã¥ãŒã·ã§ã³ã®äžã«ã¯è»œéESBã«ç§»è¡ããŠãããã®ããããŸãïŒç§ã¯ä»¥åã«æŠèª¬ãããè°è«ã«åæããŸãïŒããããã¯ThoughtWorks Tech Radarã®ããžã·ã§ã³ã«åæ ãããŠããŸãã
http://www.oracle.com/technetwork/articles/soa/wilkins-api-mgmt-3796702.html
ãã€ã¯ããµãŒãã¹ãšæ°ãã第3äžä»£API Managementã®ã±ã€ãããªãã£ã¯ãæè¡è ã«ãšã£ãŠéåžžã«èªç¶ãªãã®ã§ããïŒãã€ã¯ãïŒãµãŒãã¹ã1ã€ã®æ©èœã®ããã®å®è¡ããžãã¯ãæäŸãã第3äžä»£API Managementã¯ãåãµãŒãã¹ãæœåšçã«ïŒãã€ã¯ãïŒãµãŒãã¹éã§ã®å€éšãžã®å ¬éãå¶åŸ¡ããæ段ãæäŸããŸããLuis Weirã®3rd-Generation API Managementã®èšäºã§ã¯ãAPI Managementæ©èœã®é²åãšã第3äžä»£API Managementãã©ã®ããã«API ManagementãïŒãã€ã¯ãïŒãµãŒãã¹ãšããŸããã¿åãã®ãã説æããŠããŸãã
3rd-Generation API Management: From Proxies to Micro-Gatewaysãã®èšäºã§ã¯ãïŒãã€ã¯ãïŒãµãŒãã¹ç°å¢ã«ãããã¬ãžã¹ããªã®åœ¹å²ããããŠæçµçã«ã¯API Managementãšã®é¢ä¿ã«ã€ããŠèŠãŠãããŸããå ·äœçãªãœãªã¥ãŒã·ã§ã³ã«ã€ããŠæ·±ãæãäžããããšã¯ããŸããããããç¥ãããŠããã¬ãžã¹ããªã®ããã€ããåç §ããããã«æ·±ãæãäžããŠããããã®ãªã³ã¯ãæäŸããŸãã
http://www.oracle.com/technetwork/articles/soa/weir-3rd-gen-api-mgmt-3787102.html
https://orablogs-jp.blogspot.jp/2017/07/3rd-generation-api-management-from.html
ãã€ã¯ããµãŒãã¹ãïŒãã€ã¯ãïŒãµãŒãã¹ãšåŒãã§ããããšã«ãæ°ã¥ãããšæããŸããããã¯éåžžã«çèããçµæã§ãè«äºãèµ·ããå¯èœæ§ããããŸãããã€ã¯ããµãŒãã¹ã¯éåžžãDockerãTomcatãªã©ã®è»œéã¢ããªã±ãŒã·ã§ã³ã³ã³ãããªã©ã®ç¹å®ã®ãã¯ãããžãŒã«é¢é£ä»ããããŠããŸããããã€ã¯ããµãŒãã¹ã®çŽç²äž»çŸ©è ã§ããã°ãïŒSOAã®å Žåãšåæ§ã«ïŒãã¯ãããžãŒã§ã¯ãªããèšèšã®ãã©ãã€ã ãšååã«ã€ããŠèããå¿ èŠããããŸãã幞éã«ãéåžžã«èŠèããããµãŒãã¹çµç¹ãããã 幞éãªãµãŒãã¹çµç¹ã§åããŠããªãå Žåãå¿ èŠãªææ決å®ãšå¶çŽã¯ããªãã¡å®çšçãªæ±ºå®ãããå¿ èŠãããããããããã芳ç¹ãæã¡ãªããåãçµãŸãªããã°ãªããªãããšãå€ã ãããŸããWebLogicã®ã©ã€ã»ã³ã¹ã«å€é¡ã®æè³ãããçµç¹ã«ãšã£ãŠããã®æè³ãããããããšããã®ã¯ç©ãããªè©±ã§ã¯ãããŸãããããã®ããšãããªãã¡ãã€ã¯ããµãŒãã¹ã¢ãããŒããæ¡çšã§ããªãããšãæå³ããŠãããã§ã¯ãããŸããããšã¯ãããïŒãã€ã¯ãïŒãµãŒãã¹ã¢ãŒããã¯ãã£ãæ¡çšããå Žåã«ãWebLogicãå©çšããããšã§çºçããããªã¹ã¯ã軜æžããå¿ èŠããããŸãã第2ã«ãã¬ãžã¹ããªã®æŠå¿µã¯ãã€ã¯ããµãŒãã¹ã«åºæã®ãã®ã§ã¯ãããŸãããå®éããããã®ãœãªã¥ãŒã·ã§ã³ã®äžã«ã¯ãäŸãã°Big Data/Hadoopãªã©ã®ãœãªã¥ãŒã·ã§ã³ã«ç±æ¥ãããã®ããããŸãã
Gartnerã¯ãã€ã¯ããµãŒãã¹ã®èŠ³ç¹ã§ããã¢ããªãŸãã¯ãã€ã¯ãã¢ããªã«ã€ããŠè©±ãå§ããŠãããããã¯ç§ã®äŒãããç¹ã匷調ãããã®ã§ãããã®æ¬è³ªã¯ãã€ã¯ããµãŒãã¹ã®ååã®ããå®çšçãªé©çšæ¹æ³ã§ãããã¹ãŠã®çµç¹ãïŒNetflixãUberãšãã£ãïŒãã€ã¯ããµãŒãã¹ã®ãã¹ã¿ãŒãã£ã€ã«ããã¡ã®ããã«ããã€ããŒã¹ã±ãŒã«ãsuper elasticityãå¿ èŠãšããŠããããã§ã¯ãããŸãããããµãŒãã¹ã®ã¢ãã¬ã¹æå®ã容æã«ç®¡çã§ããæ段ãå¿ èŠã§ãã
ã¬ãžã¹ããªã®åœ¹å²ãç解ããããã«ã¯ãäžæ©æ»ã£ãŠãã€ã¯ããµãŒãã¹ãæ¯ããææ³ãç解ããå¿ èŠããããŸãã ãããªããã§ããŸãšããŠã¿ãŸãããã
- ã¹ã±ãŒã«ãšElasticityãã€ãŸãããã€ã¯ããµãŒãã¹ã¯æ©èœã®å°ããªããŒã¹ã§ããããããã®ãµãŒãã¹ã ãã®ããã®ç°å¢ã§èŠæ±ãæºããããã®ãµãŒãã¹ã€ã³ã¹ã¿ã³ã¹ã®è¿œå ãç°¡åã§ããå¿ èŠããããŸããã¹ã±ãŒã«ã«ã¯ãã€ã³ã¹ã¿ã³ã¹æ°ã®åæžãå«ãŸããå ŽåããããŸãã
- ãœãªã¥ãŒã·ã§ã³ã¯å€ãã®ãããã€æžã¿ãã€ã¯ããµãŒãã¹ããæ§æããããããã©ã®ããŒã¹ããµãŒãã¹ã³ã³ãã©ã¯ããè¶ ããŠå¥ã®ãµãŒãã¹ã®ååšãæ³å®ããã¹ãã§ã¯ãããŸãããããŒã¹ãé¢æ£çã«ãããã€ãããŠãããããå¥ã®ãµãŒãã¹ã®ç©ççãªååšå Žæã¯ããããŸããããã®åé¢ãããããšã§ããœãªã¥ãŒã·ã§ã³å šäœãã¢ããªã¹ã«ãããã€ããã®ã§ã¯ãªãããµãŒãã¹ã®å€æŽãè¿œå ããããã€ãç¬ç«ããŠå®æœããããšãã§ããŸãã
ã¬ãžã¹ããªã®åœ¹å²ã¯ãååã瀺ãããã«ãã©ã®ãµãŒãã¹ãã©ãã«ååšããããšãã£ãç»é²æ å ±ãä¿æããããšã§ããæ°ãããã€ã¯ããµãŒãã¹ãèµ·åãããšãæåã®ã¢ã¯ã·ã§ã³ã®1ã€ã¯ãã¬ãžã¹ããªã«ãã®ååšã宣èšããããšã§ãããã®åŸãåãµãŒãã¹ã¯ã¬ãžã¹ããªãšé£æºããŠãã·ã£ããããŠã³æãŸãã¯äºæããçµäºããæã«ã確å®ã«ã¬ãžã¹ããªãæ€åºããããã«ããå¿ èŠããããŸãã
ãã®å³ããã次ã®2åã®çåã湧ããŠããŸãã
- ã¬ãžã¹ããªã¯SPOFïŒåäžé害ç¹ïŒã«ãªããªãã®ãïŒ
- ã¬ãžã¹ããªã®å Žæãç¥ãæ¹æ³ã¯ïŒ
- RAFT: https://raft.github.io/
- PAXOS: http://the-paper-trail.org/blog/consensus-protocols-paxos/
- SWIM: https://prakhar.me/articles/swim/
ãããŸã§ã§ãèªèº«ãã¬ãžã¹ããªã«ç»é²ããååšãç¶æããæ¹æ³ãããããŸããããããã§ã¯åé¡ã®ååã解決ããã«éããŸãããå®éã«ã¯ããã®æ å ±ã®å©çšæ¹æ³ãç解ããå šãŠã®ã¯ãŒã¯ããŒãããã¹ãŠã®ã€ã³ã¹ã¿ã³ã¹ã«åæ£ããããã€ã¯ããµãŒãã¹ãã¯ãŒã¯ããŒããå®éã«ãã€ã¯ããµãŒãã¹ãååšããå Žæã«ãããã¯ãŒã¯ã€ã³ãã©ã¹ãã©ã¯ãã£ãã«ãŒãã£ã³ã°ããå¿ èŠããããŸããã¬ãžã¹ããªã®äœ¿çšã«ããã2ã€ã®ã³ã¢ã¢ãã«ããããŸãã
- ã¯ã©ã€ã¢ã³ããµã€ãã»ã¬ãžã¹ããªã®å Žåããã€ã¯ããµãŒãã¹ãã¬ãžã¹ããªã®ããšãç¥ã£ãŠããŠãã€ã³ã¹ã¿ã³ã¹ãèŠã€ããŠåŒã³åºããå¿
èŠãªãµãŒãã¹ã®ã¢ãã¬ã¹ãååŸããŸãã
ã¯ã©ã€ã¢ã³ãã¯ãã°ããã®éãåç §ããã£ãã·ã¥ã§ããŸããããã¯ãã¡ãããã€ã³ã¹ã¿ã³ã¹éã®ããŒããã©ã³ã·ã³ã°ãåé¡ã«ãªãå¯èœæ§ããããæ°ãããµãŒãã¹ã€ã³ã¹ã¿ã³ã¹ãèµ·åããã ãã§ããã«è² è·ãåæ£ãããããã§ã¯ãããŸããããã®æ¹æ³ã®ããç¹ã¯ãã°ããŒãã«ãªåæ£ã·ããªãªã§ã¯ãDNSã®æäœãããã«ãæãè¿ãå Žæã§ãã€ã¯ããµãŒãã¹ãããã«ã€ã³ã¹ã¿ã³ã¹åããæ¹æ³ãèŠã€ããå¯èœæ§ãé«ããšããããšã§ãããã®ã¢ãã«ã¯ãEurekaãã¬ãŒã ã¯ãŒã¯ã§NetflixããµããŒãããŠããŸãã
- ç¶ããŠããµãŒããµã€ãã»ã¬ãžã¹ããªã®å Žåããããã®ã¬ãžã¹ããªã¯éåžžããŒããã©ã³ãµããã®ä»ã®ãããã¯ãŒã¯åºç€ã®èåŸã«é ããŠããŸãããã®ã¬ãžã¹ããªã¯ããŒããã©ã³ãµãšé¢ä¿ããããŸãã
- ã¬ãžã¹ããªãããŒããã©ã³ãµã«ãã€ã¯ããµãŒãã¹ã®å ŽæãäŒããæåã®æ¹æ³ã§è² è·åæ£ããããããŒããã©ã³ãµãæ§æããŸãã
- ããŒããã©ã³ãµã¯é»ã£ãŠã¬ãžã¹ããªãåŒã³åºããç¹å®ã®ãµãŒãã¹ã§äœ¿çšããã¢ãã¬ã¹ãèŠæ±ããŸãã
ãã®ãµãŒããŒãµã€ãã»ã¢ãããŒãã¯å€ãã®ç¹ã§ãã€ã¯ããµãŒãã¹ã®éçãåæ ããŠããŸããã€ãŸãã1ã€ã ããããŸãããããšãããã®ã§ããããŒããã©ã³ãµã¯ããŒããã©ã³ã·ã³ã°ãè¡ããã¬ãžã¹ããªã¯åã«ç»é²æ å ±ã管çãããã€ã¯ããµãŒãã¹ã¯èŠæ±ãã©ã®ããã«åŠçããããã¯ãŸã£ããæ°ã«ããŸãããããã¯å¥ã®ãã€ã¯ããµãŒãã¹ãããã®ããã¢ããªã¹ãããã®ããæ°ã«ããŸããã
ãã®æ¹æ³ã¯ããã©ãŒãã³ã¹ã®äœäžãç ç²ã«ããŠããããã®å®çŸã¯ç¹å®ã®è£œåïŒNetScalerãF5 BigIPãªã©ïŒã«äŸåããŠããŸãã
å šãã®æ°èŠæ§ç¯ã§ãã¬ã¬ã·ãŒãªã¢ããªã¹ãåãæ±ãå¿ èŠããªãå Žåãããããã¯ãŒã¯ã€ã³ãã©ã¹ãã©ã¯ãã£ã§ã¯ãªãã¢ããªã±ãŒã·ã§ã³ãã¡ã€ã³å ã§ã«ãŒãã£ã³ã°ç®¡çãç¶æãããå Žåã¯ãã¯ã©ã€ã¢ã³ããµã€ãã»ã¢ãã«ãçæ³çã§ãããã€ã¯ããµãŒãã¹ãã¢ããªã¹ãšãªãå¯èœæ§ã®ããä»ã®èŠçŽ ãšæ··åšããå Žåããæé©ãªã«ãŒãã£ã³ã°ãå®çŸããããã«DNSãªã©ã®ãããã¯ãŒã¯ã€ã³ãã©ã¹ãã©ã¯ãã£èŠçŽ ã掻çšãããå Žåã¯ããµãŒãã»ãµã€ãã»ã¢ãã«ã®ã»ãããããããããŸãããDNSãšãããã¯ãŒã¯ã«ãŒãã£ã³ã°ã«ãã£ãŠéããé èœããããšãã§ããŸãããããã代æ¿ãªãã·ã§ã³ããããŸããããã¯ãã¢ããªã¹ã®ãšã³ããã€ã³ããç»é²ããã¢ããªã¹ã®ããŒãããŒããåœè£ ãããããã·ã³ã³ããŒãã³ããç«ãŠããšãããã®ã§ãïŒäžå³ïŒã
ã¯ã©ã€ã¢ã³ããµã€ãã»ã¢ãã«ã®å ŽåãããŒããã©ã³ã·ã³ã°ãã²ãŒããŠã§ã€ãšçµã¿åãããå¿ èŠããããããSkyDNSãEurekaãªã©ã®ãœãªã¥ãŒã·ã§ã³ãå®è³ªçã«APIããŒããã©ã³ãµã«ãªããŸããïŒä»¥åŸã®é²åãšåºå¥ããããããã®ã¢ãã«ã第1äžä»£ãšåŒãã§ããŸãïŒã
ãããŸã§ã¯ãå³å¯ã«ç®¡çãããããããã¯ééããããã€ã¯ããµãŒãã¹ã®ãšã³ã·ã¹ãã ãã€ãŸãã¢ã¯ã»ã¹ç®¡çãã¹ããããªã³ã°ãã»ãã¥ãªãã£ãåçåãªã©ã«çŠç¹ãåœãŠãå¿ èŠã®ãªãç°å¢ã ããèæ ®ããŠããŸããããããããç¹ã課é¡ã«ãªããšãããã«ãã¡ã€ã¢ãŠã©ãŒã«ãŸãã¯ãã以äžã®APIã²ãŒããŠã§ã€ãå°å ¥ããå¿ èŠããããŸãã
APIã²ãŒããŠã§ã€ã§ã¯ã©ã€ã¢ã³ããµã€ãã»ã¬ãžã¹ããªã»ã¢ãã«ãæ¡çšããå Žåãã²ãŒããŠã§ã€ã®é 眮æ¹æ³ãéåžžã«æ éã«æ€èšããå¿ èŠããããŸãããããªããšããµãŒãã¹ãç°¡åã«ã²ãŒããŠã§ã€ã®ç¡èŠããã²ãŒããŠã§ã€ã®ãã€ãã¹ãç°¡åã«ã§ããŠããŸãããã§ããããã¯ã次ã®å³ã«ç€ºãããã«ãå®è¡ç¶æ³ã®ææ¡ããã³ç®¡çã®èŠ³ç¹ã§ã²ãŒããŠã§ã€ãæäŸããã¡ãªããã倱ãããå¯èœæ§ãããããšãæå³ããŸãã
ãµãŒããŒãµã€ãã»ã¬ãžã¹ããªã®å Žåãããã·ã³ãã«ã«ãªããŸããäžå³ã®ããã«ãã²ãŒããŠã§ã€ã¯ããŒããã©ã³ãµã®ãã°ã«ããã°ããã®ã§ãã
ããã«ããã第2äžä»£ã®APIããŒããã©ã³ãµãšèšãããã®ã«å°éããŸããããã®ã¢ãããŒãã§ã¯ãããŒãã»ãã©ã³ã·ã³ã°ãšã¬ãžã¹ããªãåäžã®ã³ã³ããŒãã³ãã ãã§ãªããã²ãŒããŠã§ã€ã®ç¹æ§ãããŒãžãããšããèãæ¹ãæ¡çšãããŠããŸããããã¯ããããã¯ãŒã¯ã€ã³ãã©ã¹ãã©ã¯ãã£ãœãªã¥ãŒã·ã§ã³ã®é²åãšäŒŒãŠããŸããããã¯ãã€ãŠã¯ãã¡ã€ã¢ãŠã©ãŒã«ãŸãã¯ããŒããã©ã³ãµã®ããããã§ããããçŸåšã¯è€åãœãªã¥ãŒã·ã§ã³ïŒComposite SolutionïŒã§ãã
ã¬ãžã¹ããªãããŒããã©ã³ãµãšã²ãŒããŠã§ã€éã®éä¿¡ã«ãããããã©ãŒãã³ã¹ã³ã¹ãã®ãªãŒããŒãããããªããªããç°å¢ã¯ãã€ã¯ããµãŒãã¹ã®èŠ³ç¹ã§éåžžã«ç°¡åã«ãªããŸãã
å®éã®ãšããã第2äžä»£ã®APIããŒããã©ã³ãµãšããŠèª¬æãããã®ã¯ããã®èšäºã®åé ã§è§ŠããLuis Weirã®èšäºã«ããããã«ãå®ã¯ç¬¬3äžä»£ã®API管çãœãªã¥ãŒã·ã§ã³ã®äžéšã§ãã
ããã€ãã®è°è«ã§ãã®ã¢ãããŒãã«æ¥¯çªããŠããããšããããŸãã
- ããã€ããªãããœãªã¥ãŒã·ã§ã³ã¯ãïŒãµãŒãã¹ã¯äžã€ã ããå®æœãããããããŸãããã¹ãããšããç¹ã«åããããšããæå³ã§ïŒæé«ã®ã¬ãžã¹ããªãœãªã¥ãŒã·ã§ã³ãæé«ã®ããŒããã©ã³ãµãåŸãå¯èœæ§ãäœãããšããã€ã¯ããµãŒãã¹çŽç䞻矩è ãã¡ã¯ç°è°ãå±ããå¯èœæ§ããããŸãããã€ããªããã»ãœãªã¥ãŒã·ã§ã³ã«ã¯ãããããŒããã©ã³ãµïŒF5 BigIPãNetScalerã®ããšãæãåºããŠãã ããïŒã®æŽç·Žæ§ããã¬ãžã¹ããªã®ã·ã³ãã«ããè°è«ã®äœå°ã¯ãããããããŸãããã¬ãžã¹ããªã®ä¿¡é Œæ§ãã»ãŒãªãããã§ãã
- ã¬ãžã¹ããªã¯ãçŽç²ãªããŒããã©ã³ãµãããããªãéãïŒãããã£ãŠã¹ã«ãŒããããäœãïŒãšäž»åŒµããŠããå¯èœæ§ããããŸãã
- ãã€ã¯ããµãŒãã¹ã¯ã¬ãžã¹ããªãšã®éä¿¡ã®ãªãŒããŒãããããªã
- ãµãŒãã¹ãããµãŒãã¹ãžã®ã³ãŒã«ãAPIããŒããã©ã³ãµïŒAPI ManagerïŒãçµç±ãããããããŒãããŒãã®ãªãŒããŒããããåæžããããµãŒãã¹ããã®å¿çãåä¿¡ãããã³ã«ããŒãããŒãã®ã¯ããã¯ããªã»ããã§ããã
- ããŒããã©ã³ãµãšã¬ãžã¹ããªéã®èª¿æŽã¯ã€ã³ã¡ã¢ãªã§ã®ã¢ã¯ãã£ããã£ã§ãè² è·åæ£ãå埩ããã«ã€ããŠãã¬ãžã¹ããªã¯æ¬è³ªçã«åŸ©å ããã
- ããŒããã©ã³ãµã®é«æ§èœã¡ã«ããºã ã¯ãã¬ãžã¹ããªããžãã¯ã«ãã£ãŠæªçšãããå¯èœæ§ããããããã«ãèµ·åæãçµäºæã«APIããŒããã©ã³ãµã«ä¿¡å·ãéãã ãã§æžãïŒå¥ã®APIãåŒã³åºãããšã¯Webã®ã¢ãã¬ã¹ãåŒã³åºããããªãã®ã§ããïŒããããµãŒãã¹ã¯ïŒç¹ã«ã¯ã©ã€ã¢ã³ããµã€ãã§ã®ïŒãã¬ãŒã ã¯ãŒã¯ãããŸãå¿ èŠãšããªãã
ã§ã¯ã第2äžä»£ã®APIããŒããã©ã³ãµãè¯ãã¢ã€ãã¢ãªãããªãããã¯ãŸã ååšããªãã®ã§ããããïŒç§ãã¡ã®çãã¯ãã²ãŒããŠã§ã€ããŸã æçã®éäžã§ãããšããäºå®ã«è¡ãçããŸããã²ãŒããŠã§ã€ãœãªã¥ãŒã·ã§ã³ã®äžã«ã¯è»œéESBã«ç§»è¡ããŠãããã®ããããŸãïŒç§ã¯ä»¥åã«æŠèª¬ãããè°è«ã«åæããŸãïŒããããã¯ThoughtWorks Tech Radarã®ããžã·ã§ã³ã«åæ ãããŠããŸãã
Overambitious API gateways (ThoughtWorks TECHNOLOGY RADER)ãããããã®ãããªããŒãºã®æ¹åã«åããæ§æ³ã確èªãããŠããŸããã¬ãžã¹ããªããèŠããAPIã®äœæãç°¡åã«ããããã®Feignã®ã¡ã«ããºã ãèããŠãã ãããAPIã®ç¬¬4äžä»£ïŒå šãŠãAPIïŒã«åããã«ã€ãããã®æç¹ã§ã¯APIãæ®åããŠããããã第2äžä»£ã®APIããŒããã©ã³ãµã®å¿ èŠæ§ãé«ãŸãã§ããããå¥ã®èŠæ¹ãããã°ã第3äžä»£ã®API Managementã¯ãã®äžã«è² è·åæ£æ©èœãåã蟌ãã§ããŸãã
https://www.thoughtworks.com/radar/platforms/overambitious-api-gateways
Conclusion
Oracle PaaSã®äžã§ãAPI Platform Cloud Serviceã¯ãŸã è¥ããµãŒãã¹ããã«ãäž»èŠãªèŠæ±ãåæ ããæ©èœã®æäŸãç¶ç¶äžã§ããããããAPI Platform Cloud Serviceã«ã¯SDKã䜿ã£ãŠæ©èœãæäŸããæ段ããããŸãããAPI Platformã®ã²ãŒããŠã§ã€ãšã³ãžã³éšåã¯éåžžã«ã¹ã±ãŒã©ãã«ã§ãããšãšãã«ãéä¿¡æ¥çç±æ¥ã®åºç€éšåãæããŠãããããæ¬è³ªçã«é«ããã©ãŒãã³ã¹ã§ããOracleã®Application Container Cloudã¯çŸæç¹ã§ã第1äžä»£ã®APIããŒããã©ã³ãµæ©èœããã®ãã©ãããã©ãŒã å ã«æããŠããŸãããå°æ¥äž»èŠãªå·®å¥åèŠå ãšããŠç¬¬2äžä»£ã¢ãã«ãæ¡çšããå¯èœæ§ãããã§ããããå¥ã®å¯èœæ§ãšããŠãã客æ§ãäž¡ãµãŒãã¹ãæ¡çšããå Žåã«ã¯ãACCSã¯è² è·åæ£æ©èœãæã€API Platform Cloud Serviceãå©çšããããã«åãæ¿ããããšãã§ããããã«ãªããããããŸãããReferences:
- 3rd-Generation API Management: From Proxies to Micro-Gateways
http://www.oracle.com/technetwork/articles/soa/weir-3rd-gen-api-mgmt-3787102.html - Registry Discovery, by Arun Gupta
http://blog.arungupta.me/zookeeper-microservice-registration-discovery/ - Service-Oriented Architecture (SOA) Definition, by Douglas K. Barry
http://www.service-architecture.com/articles/web-services/service-oriented_architecture_soa_definition.html - OpenFeign (GitHub)
https://github.com/OpenFeign - Oracle API Platform Cloud Service
https://cloud.oracle.com/api-platform - Oracle Application Container Cloud Service (ACCS)
https://cloud.oracle.com/acc - Eureka at a glance (GitHub)
https://github.com/Netflix/eureka/wiki/Eureka-at-a-glance - Pattern: Client-side service discovery, by Chris Richardson
http://microservices.io/patterns/client-side-discovery.html - Overambitious API gateways (Thoughtworks Tech Radar)
https://www.thoughtworks.com/radar/platforms/overambitious-api-gateways