Spring Fest 2018ã«åå ãã¦ãã¾ãã
Spring Fest 2018 ã«åå ãã¦ãã¾ããã
åå ããã»ãã·ã§ã³ã¯ä»¥ä¸ã®éãã§ãã
ãã¼ãã¼ããçµæ§çãä¸ãã£ã¦ããã®ã§ãããåä¾ãä¿è²åã«éã£ã¦ããè¡ã£ããéã«åããâ¦
- 決æ¸ã·ã¹ãã ã®å 製åã¸ã®æ - Springã¨PCFã§ä½ãã¯ã©ã¦ããã¤ãã£ããªã·ã¹ãã éçº
- å®éã®ããã¸ã§ã¯ãã§Springã¢ããªãKotlinã§éçºãã¦å¾ãæ°ã¥ãé
- Knative: Serving your Serverless Java Service on Kubernetes the 12-Factor way
- 500+ã®ãµã¼ãã¼ã§åãLINE Ads PlatformãããããSpring
- Spring Boot with Kotlin, functional configuration and GraalVM
- Micrometer/Prometheusã«ãã大è¦æ¨¡ã·ã¹ãã ã¢ãã¿ãªã³ã° ãã¤ãã¼ã¤ã³ã¿ã¼ãããåºåã·ã¹ãã ã§ã®å°å ¥äºä¾ã
ããããè´è¬ããææ³ãã
決æ¸ã·ã¹ãã ã®å 製åã¸ã®æ - Springã¨PCFã§ä½ãã¯ã©ã¦ããã¤ãã£ããªã·ã¹ãã éçº
èªèº«ã®ãã£ãªã¢ã¨ãã¦ãã¯ã¬ã¸ããã«ã¼ãã®åºå¹¹ã·ã¹ãã ã決æ¸ã·ã¹ãã ã«å¤ãæºãã£ã¦ããã®ã§ã¨ã¦ãèå³ããã£ãã»ãã·ã§ã³ã§ãã
å 容ã¨ãã¦ã¯ãéçºããã³ãã¼ã«ä»»ãããã ã£ãç¶æ ããã
- éç¨ä½æ¥ã®èªåå
- éçºåºç¤ã®æ´å(GitHub EnterpriseãSlackãConfluenceãJiraã®å°å ¥)
- ãµã¼ãã¹ç£è¦ã®å°å ¥(Elastic Stack)
- CIã®å°å ¥(Jenkins, Nexus, SonarQube)
- Spring BootãSpring Cloudã¸
ã¨èº«è¿ãªã§ããã¨ããããé²ããä½å¶ãå¢ãããªããæ¹åãé²ãã¦ããã¨ããåæ¯ãããå§ã¾ãã¾ããã æ£ç´ãããã¾ã§ã§ååããããªã£ã¦æãã ã£ãã®ã§ããããã®å¾ãã©ãããã©ã¼ã ã¨ã㦠Pivotal Application Serviceï¼PASï¼ ãæ¡ç¨ãConcourse CI ã§ãã«ããã¤ãã©ã¤ã³ã®æ§ç¯ãéçºç°å¢ã§ã¯å¸¸ã«CI/CDãå®è¡ãããProductionã¸ã¯ã¯ã³ã¯ãªãã¯ã§ãããã¤ãããã¨ããã¢ãã³ãªæ§æã¾ã§æã£ã¦ãã£ã¦ãã¦åãã§ããâ¦ããã³ãã¼ã«ä»»ããããã2,3å¹´ã§ããã¾ã§æ¥ãã£ã¦æãã¨ãã¨ã³ãã¼(SIer)å´ã®ç«å ´ããè¦ã¦è²ã æãã¨ãããããã¾ããã
è³æã§ããããããã£ãã®ã¯ãéçºããã¸ã§ã¯ãã®ä½å¶ã¨è²¬ä»»åçã£ã¦ç®æãã¢ããªã±ã¼ã·ã§ã³éçºè ã¯ã¢ããªã±ã¼ã·ã§ã³ã¨ãã¼ã¿ã¾ã§ãThe Twelve-Factor Appãå®ããã¨ãã£ã¦ã¨ãããæå¿«ã§ç解ããããã£ãã§ãã
ãã®ã»ãã
- Javaã®è¤æ°ãã¼ã¸ã§ã³ã§CIãå®æ½ãã¦ãã
- ãã¼ã¸ã§ã³ã¢ããåããå®æ½ãã¦ããã®ã§ããã¼ã¸ã§ã³ã¢ããããéã«å®å¿ãã¦ããããã(ãªãã»ã©ï¼)
- æ¬çªã®Javaãã¼ã¸ã§ã³ä»¥å¤ã§CIã失æãã¦ãã¦ãæ¬çªã®ãã¼ã¸ã§ã³ã®CIãéã£ã¦ããã°OKã¨ããå ´åããã¤ã³ã±ãç®æãç´ããã ããï¼(ããã«ãã ã¨æããã©åªå é ä½ãä½ããªããã¡ã«ãªãããã«æãã¦ãæ¾ç½®ãããªãã®ããªã¼ã¨ã)
- Javaã®ãã¼ã¸ã§ã³ã¢ããã«ã¤ãã¦ãã姿å¢è¯ãã
æ»ãã¦å®ã
ï¼ï¼
- JMeterã§ã®æ§è½ãã¹ããæ¯æ¥ç¶ç¶ãã¦å®è¡ãSlackã«ã¬ãã¼ããéãã®è¯ã
- AWSãªã©ã使ãã¨é£ããã(ã³ã¹ãé¢ãç³è«ãªã©ã§)
- ã¢ããªã±ã¼ã·ã§ã³æ§æã®ç« ã®ãããã¿ãåãã£ã
- ä»å çåºã«å½±é¿ãã§ãªãããã«ä½ãè¾¼ãã ãã¨ãããªã¼ã¨ã
- æ¥ç¶å å¤ãã¨å¤§å¤ã ããã¼ã¨ã
- 決æ¸æ©é¢ã¨ãç¹æ®ãª ãããã³ã«ã§ããã¨ãããããè²ã é¢åãè¦å´ãããã¨æããã ãã©ããããã¸ããèãããã£ããæ親ä¼åºãã°ããã£ãã¼
ãªã©ãªã©è²ã ææ³ãåºã¦ãã¦ãã¨ã¦ã楽ããã£ãã§ãï¼ ã¾ã æ°ã·ã¹ãã ããªãªã¼ã¹ãã¦ããªãã¨ã®ãã¨ã ã£ãã®ã§ããªãªã¼ã¹å¾ã«ã©ããªã£ããèãã¦ã¿ããã¨æãã¾ããã
å®éã®ããã¸ã§ã¯ãã§Springã¢ããªãKotlinã§éçºãã¦å¾ãæ°ã¥ãé
æè¿Androidã¢ããªãKotlinã§æ¸ãã¦ããããã®ã§(ãã£ã¡ãåå¿è )ãèå³ã®ãã£ãKotlinã®ã»ãã·ã§ã³ã¸ã
ã»ãã·ã§ã³ã¯ãSpringã¨Kotlinã®é¢ä¿(仲è¯ãï¼)ããKotlinã®ããããã¨Springå©ç¨æã®æ³¨æç¹ãSpring WebFluxã¨Coroutinesãããã®è©±ããSpringã®ã¢ããã¼ã·ã§ã³ãæ¸ãããKotlinã§ã®ãã¹ããã¨ãã£ãå 容ã§ããã
SpringãKotlinã§å©ç¨ããå ´åã®æ³¨æç¹ãªã©ã¯ãåå¿è ãªèªåã«ããããããããã¨ã¦ããããããã£ãã§ãã
Spring WebFluxã§Coroutinesã使ã話ããããã¯ãã£ããè³æèªãã ãããã¥ã¡ã³ãèªã¾ãªãã¨èªåã«ã¯å³ããã§ãã(´ã»Ïã»`) ãã ãKotlinã®Coroutinesãå©ç¨ããã¨ã¹ãããªãã¦èªã¿ããããæ¸ãããããªããã¨ã¯åãã£ãã®ã§æ©ä¼ããã£ãéã®é¸æè¢ã«ã¯ãªãããªã¨æãã¾ãã ä»äºä¸ããããã¸ãã®æè¡ã使ãæ©ä¼ãããã®ãæªããã§ããâ¦
ã¢ããã¼ã·ã§ã³ãæ¶ãã¦ããã£ã¦ã¨ããã¯ããã¾ãã¡ã¢ããã¼ã·ã§ã³ãåãããªãã£ãã§ãããèµ·åé度ãæ©ããªãã®ã¯è¯ããªã¨æãã¾ããã
ãã¹ãã«ã¤ãã¦ã¯JUnit5ãå©ç¨ãã¦ãããã¢ãã¯ã¯MockKãå©ç¨ãã¦ããã ç¹å®ã®æèã§ããå¼ã³åºããªãCoroutineã®å¼ã³åºãã ã£ãããããã©ã«ã finalã«ãªãã¯ã©ã¹ãã¢ãã¯ã«ã§ããã®ã§MockKã¯ä¾¿å©(ã¨ããããã以å¤è¯ãé¸æè¢ããªãããï¼)ã
ã³ã¼ãã£ã³ã°ã¯ ktlint: An anti-bikeshedding Kotlin linter with built-in formatter ã«å¾ã£ã¦ããããã以å¤ã«ã¤ãã¦ã¯Ubie社ã§Kotlinã®ã³ã¼ãã£ã³ã°ã¹ã¿ã¤ã«ã¬ã¤ããä½æããããã«å¾ã£ã¦ããã¨ã®ãã¨ãããlateinitã¨ãæ®éã«ä½¿ã£ã¦ããªâ¦
Knative: Serving your Serverless Java Service on Kubernetes the 12-Factor way
Knativeã®è©±ããèãããã¦è¡ã£ãã®ã§ãããã»ã¨ãã©ç¡ãã¦æ®å¿µã§ããã ããããååã®åæ¯ãã§ç²ãã¦èå¿ã®Knativeã®èª¬æé¨åãéä¸ãã¦èããâ¦
ServerlessãFaaSã®èª¬æã¯ã»ã©ã»ã©ã«ãKnativeã®è©±ãããã£ã¨ãã¦ã»ããã£ãâ¦
500+ã®ãµã¼ãã¼ã§åãLINE Ads PlatformãããããSpring
LINEã®åºåãã©ãããã©ã¼ã ã®è©±ã LINEã®åºåã¯7800ä¸äºº(MAU) ã«ãªã¼ãã§ãã(åãâ¦)ãã©ãããã©ã¼ã ãåºåã¯æ§ã ãªããªã¨ã¼ã·ã§ã³ãã¬ã¤ã¢ã¦ãããã©ã¼ãããã§åºãå¿ è¦ããããããã50ms以å ã«ãªã¼ã¯ã·ã§ã³ãã¦ã¬ã¹ãã³ã¹ãè¿ããªããã°ãªããªãå³ããã·ã¹ãã ã¨ã®ãã¨ã
åºåç³»ã®åèªãå¤ããç解ãã¥ããç¹ãããã¾ããããããããé¢åãªãã¨ãçéã§ãããªããã°ãªããªã大å¤ãã滲ã¿åºã¦ãã¾ããã
ã¢ã¼ããã¯ãã£å¨ãã¯ãåºæ¬çã«ã¯ã¡ã¢ãªã«ä¹ããã®ã¯ä¹ããããã¡ãªãRedisãã¿ãããªæãã§é度ãããªãæèãã¦ããæãã§ãã ãµã¼ãã¹éã®é£æºã¯Kafkaã使ã£ã¦ãã¦ãããªã使ãåãã¦ããããã§ãã
GCãæ°ã«ãªãããGoã«ããã£ã¦è©±ãã¨ããã¼ããå¢ããã¦å¯¾å¿ããã£ã¦è©±ãããã£ã¦ãGoã«ããã¨ãã©ãã«ããªã£ãã®ã§ã¯ï¼ã¨ãæãã¾ããã ã¡ãªã¿ã«ãG1GCãé¸æãã¦ããããã§ããããã¼ãå¢ããåã®4Gã¯å°ãªãããããªãããªï¼ã¨æãã¾ããã
Spring Boot with Kotlin, functional configuration and GraalVM
ç²åºã¼ããããµã¼ã Spring Bootã§ã¢ããã¼ã·ã§ã³ã§è¨å®ãã¦ããã¨ãããé¢æ°(lambda)ã§è¨å®ãããè¨å®ã¯Kofu, Jafuã¨ããDSLã§è¨è¼ããâ¦ã£ã¦æãï¼
翻訳ããã¨ã¤ãã¤
ãããããã®ã»ãã·ã§ã³ã§ããã£ãããã«ãã¯ã©ã¹ãã¹ã¹ãã£ã³ãç¡ããªãã®ã§èµ·åé度ãæ©ããªãã¨ããç¹ã¨ãã¡ã¢ãªæ¶è²»éãå°ãªããªããGraalVMãã¤ãã£ãã¤ã¡ã¼ã¸ãã¬ã³ããªã¼ã¨ãã£ãç¹å¾´ãããããã§ãã
ãã¼ãã¼ãã§ãã¢ããã®ããªï¼ç¸å½èµ·åé度ãæ©ããããªã®ã§ãã³ã³ããã ã£ããFaaSã®é åã§æ´»ãã¦ããã¨é¢ç½ããªã¼ã¨æãã¾ããã æ®æ®µã®éçºæã¯ãããã«ãã¤ãã£ãã¤ã¡ã¼ã¸ããã«ããããªãããµã¤ãã«ãµã¼ãç«ã¡ä¸ããã®ããªï¼éçºããããã¤ã®ããã»ã¹ã£ã¦ã©ããªããã ããï¼
Micrometer/Prometheusã«ãã大è¦æ¨¡ã·ã¹ãã ã¢ãã¿ãªã³ã° ãã¤ãã¼ã¤ã³ã¿ã¼ãããåºåã·ã¹ãã ã§ã®å°å ¥äºä¾ã
Micrometerã¨Prometheusã使ã£ã¦ã3000以ä¸ã®Springã¢ããªãæ°å ã¤ã³ã¹ã¿ã³ã¹ã®ç£è¦ãè¡ã£ã¦ããã¨ã®ãã¨ã ãã©ãããã©ã¼ã ã¯å¤æ§ã§ãOpenStackãk8sãPCFãªã©ãå©ç¨ãã¦ãããå¦çã®æ¹å¼ããWebãWeb APIãããããPub/Subãªã©æ§ã ã
ãã®ç£è¦ã»éç¨ã§å°ã£ããã¨ã工夫ãããã¨ãªã©ãèªã£ã¦ãã¾ããã å ·ä½çãªããããã¤ã³ãã¨ãã©ã解決ããããèªããã¦ãã¦ãMicrometer, Prometheusãå©ç¨ãã¦ãã人ã«ã¯åèã«ãªãããã§ããã ã¡ã¢ã¯ãã¦ããã®ã§ãããåã£ã¦ãããä¸å®ãªã®ã§â¦è³æå ¬éãããã®ãæå¾ ãã¦ãã¾ãï¼
ãããã«
å社ã®äºä¾ã¨ãå°ã£ãæè¡ã®è©±ããä¸å¿ã«èãã¾ããã äºä¾ã¯åããªã£ã¦æããã®ããåèã«ãªããã®ãå¤ãåå¼·ã«ãªãã¾ãããå°ã£ãæè¡ã®è©±ã¯ç解ã§ããªãç®æãå¤ãã£ãã§ãããæ¥å¹´ãåæ¥å¹´ãããã©ãå¤ãã£ã¦ããããªï¼ã¨èããã¨é¢ç½ãã£ãã§ãã
éå¶ããã¦ãã ãã£ãã¿ãªãããJSUGã®ã¿ãªããããããã¨ããããã¾ããï¼ï¼