CloudNative Days Tokyo 2021 è³æ
What isCloud Native ?Yutaka IchikawaCloudNative Days Tokyo 2021Cloud Native Deï¬nition DevOps CI/CD Microservices Observability
View Slide
PublicationsCertiï¬cation & CommunityCKA CKAD 2018 2019Proï¬leName: Yutaka IchikawaTwitter/GitHub/Qiita: cyberblack28Hatena Blog: https://cyberblack28.hatenablog.com/Slides: https://speakerdeck.com/cyberblack28JobPrincipal Cloud Solution EngineerSolutions ArchitectCloud EngineeringOracle Corporation Japan2021#CNDT2021
Agendaâ Cloud Native Deï¬nitionâ Cloud Native Computing FoundationïŒCNCFïŒã«ã€ããŠâ ã¯ã©ãŠããã€ãã£ããšã¯ïŒâ ããããã¯ã©ãŠãã³ã³ãã¥ãŒãã£ã³ã°ãšã¯ïŒâ ã¯ã©ãŠãã³ã³ãã¥ãŒãã£ã³ã°ã®ç¹æ§â ã¯ã©ãŠããã€ãã£ããå®çŸããéããã¹â èªååã®ç®çâ çµå±ã®ãšãããã¯ã©ãŠããã€ãã£ããšã¯ïŒâ DevOpsâ DevOpsãšã¯ïŒâ DevOpsãå®çŸããæ¹æ³â CI/CDâ ãããŸã§ã®ã¢ããªã±ãŒã·ã§ã³éçºâ OS/ã©ã€ãã©ãªãšã¢ããªã±ãŒã·ã§ã³ã®åé¢â ä»®æ³ãã·ã³ãšã³ã³ããã®éãâ OS/ã©ã€ãã©ãªãšã¢ããªã±ãŒã·ã§ã³ã®çµ±åâ ã³ã³ãããæ¯ãããªãŒã±ã¹ãã¬ãŒã·ã§ã³â ã³ã³ããã¢ããªã±ãŒã·ã§ã³éçºã«ããã CI/CDâ Microservicesâ ãã€ã¯ããµãŒãã¹ã®äºã€ã®åŽé¢â ãã€ã¯ããµãŒãã¹ã®é²åãšææŠâ ã³ã³ããã«ããããã€ã¯ããµãŒãã¹ãå®çŸããæè¡â ããžãã¹é¢ã«ããããã€ã¯ããµãŒãã¹â ãã€ã¯ããµãŒãã¹ã®ç¹åŸŽâ ãã€ã¯ããµãŒãã¹ãçµå±â Observabilityâ ããããç£èŠã£ãŠïŒâ ãªãã¶ãããªãã£ã®èæ¯â ãªãã¶ãããªãã£ãšã¯ ?â ãã¬ã¡ããªãŒâ ãªãã¶ãããªãã£ã¯ãã¯ã©ãŠããã€ãã£ãã·ã¹ãã ãæ¯ãã
Cloud Native Deï¬nition
Cloud Native Deï¬nitionCloud Native Computing FoundationïŒCNCFïŒã«ã€ããŠâ The Linux Foundationåäžã®ãããžã§ã¯ãã®1ã€â 2015幎ã«åµèšããã財å£â ã³ã³ããæè¡ã®æšé²ãšããã®é²åãåãå·»ããã¯ãããžãŒæ¥çã®è¶³äžŠã¿ãæããããšãç®çâ 倧æã¯ã©ãŠãäºæ¥è ãããã«ãŠã§ã¢äŒæ¥ãããŒããŠã§ã¢è£œé äŒæ¥ããªãŒãã³ãœãŒã¹ã»ãœãããŠã§ã¢äŒæ¥ã倧åŠããã®ä»éå¶å©å£äœãªã©ãå å ¥
Cloud Native Deï¬nition幎3åãEuropeãChinaãNorth Americaã§CNCFäž»å¬ãKubeCon + CloudNativeConããéå¬KubeCon + CloudNativeConNorth America 2019San Diego
Cloud Native Deï¬nitionã¯ã©ãŠããã€ãã£ããšã¯ïŒCloud Native Computing FoundationïŒCNCFïŒã«ãããã¯ã©ãŠããã€ãã£ãã®å®çŸ©ã¯ã©ãŠããã€ãã£ãæè¡ã¯ããããªãã¯ã¯ã©ãŠãããã©ã€ããŒãã¯ã©ãŠãããã€ããªããã¯ã©ãŠããªã©ã®è¿ä»£çã§ãã€ãããã¯ãªç°å¢ã«ãããŠãã¹ã±ãŒã©ãã«ãªã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããã³å®è¡ããããã®èœåãçµç¹ã«ãããããŸãã ãã®ã¢ãããŒãã®ä»£è¡šäŸã«ãã³ã³ããããµãŒãã¹ã¡ãã·ã¥ããã€ã¯ããµãŒãã¹ãã€ãã¥ãŒããã«ã€ã³ãã©ã¹ãã©ã¯ãã£ãããã³å®£èšåAPIããããŸããâšâšãããã®ææ³ã«ãããå埩æ§ã管çåãããã³å¯èŠ³æž¬æ§ã®ããççµåã·ã¹ãã ãå®çŸããŸãã ããããå ç¢ãªèªååãšçµã¿åãããããšã§ããšã³ãžãã¢ã¯ã€ã³ãã¯ãã®ãã倿Žãæå°éã®åŽåã§é »ç¹ãã€äºæž¬ã©ããã«è¡ãããšãã§ããŸãã âšâšCloud Native Computing Foundationã¯ããªãŒãã³ãœãŒã¹ã§ãã³ããŒäžç«ãããžã§ã¯ãã®ãšã³ã·ã¹ãã ãè²æã»ç¶æããŠããã®ãã©ãã€ã ã®æ¡çšãä¿é²ããããšèããŠãŸãã ç§ãã¡ã¯æå 端ã®ãã¿ãŒã³ãæ°äž»åãããããã®ã€ãããŒã·ã§ã³ã誰ããå©çšã§ããããã«ããŸããâšCloud Native Computing Foundation(CNCF) Cloud Native Deï¬nition v1.0 | https://github.com/cncf/toc/blob/master/DEFINITION.mdâæ¡åŒµæ§ã»æè»æ§ã«åªããã¢ããªã±ãŒã·ã§ã³ãã¯ã©ãŠãã®ç¹æ§ã掻ãããŠãæå°éã®åŽåã§æ§ç¯ããã³å®è¡ã§ããããã«ããâ
Cloud Native Deï¬nitionããããã¯ã©ãŠãã³ã³ãã¥ãŒãã£ã³ã°ãšã¯ïŒThe NIST Deï¬nition of Cloud Computingã«ãããã¯ã©ãŠãã³ã³ãã¥ãŒãã£ã³ã°ã®å®çŸ©ã¯ã©ãŠãã³ã³ãã¥ãŒãã£ã³ã°ãšã¯ã¢ãã«ã§ãããæ§æå€æŽãå¯èœãªã³ã³ãã¥ãŒãã£ã³ã°è³æºïŒäŸãšããŠãããã¯ãŒã¯ããµãŒãã¹ãã¹ãã¬ãŒãžãã¢ããªã±ãŒã·ã§ã³ããµãŒãã¹ïŒã®å ±æããŒã«ãããªã³ããã³ããªãããã¯ãŒã¯ã¢ã¯ã»ã¹ã§å¯èœã«ãããâšâšããã¯ããããªç®¡çã®æéããããã¯ãµãŒãã¹ãããã€ããšã®ãããšãã«ãã£ãŠè¿ éã«æºåãããæäŸããããâšâšãã®ã¯ã©ãŠãã¢ãã«ã¯å¯çšæ§ãä¿é²ãããã®ã§ããã5ã€ã®æ¬è³ªçãªæ§è³ªãšã3ã€ã®ãµãŒãã¹ã¢ãã«ããããŠ4ã€ã®ãããã€ã¡ã³ãã¢ãã«ããæ§æããããâšThe NIST Deï¬nition of Cloud Computing | https://csrc.nist.gov/publications/detail/sp/800-145/ï¬nal5ã€ã®æ¬è³ªçãªæ§è³ªâšâ ãªã³ããã³ãã»ã»ã«ããµãŒãã¹âšâ å¹ åºããããã¯ãŒã¯ã¢ã¯ã»ã¹âšâ ãªãœãŒã¹ã®å ±æâšâ è¿ éãªæ¡åŒµæ§âšâ èšæž¬å¯èœãªãµãŒãã¹âš3ã€ã®ãµãŒãã¹ã¢ãã«âšâ Cloud Software as a Service (SaaS)â Cloud Platform as a Service (PaaS)â Cloud Infrastructure as a Service (IaaS)4ã€ã®ãããã€ã¡ã³ãã¢ãã«âšâ ãã©ã€ããŒãã¯ã©ãŠãâšâ ã³ãã¥ããã£ã¯ã©ãŠãâšâ ãããªãã¯ã¯ã©ãŠãâšâ ãã€ããªããã¯ã©ãŠãâš
Cloud Native Deï¬nitionã¯ã©ãŠãã³ã³ãã¥ãŒãã£ã³ã°ã®ç¹æ§ãªã³ãã¬ãã¹ã§ã¯å°é£ãªããšããã¯ã©ãŠãã³ã³ãã¥ãŒãã£ã³ã°ã¯å®çŸã§ããâ ãªã³ããã³ãã»ã»ã«ããµãŒãã¹â å¹ åºããããã¯ãŒã¯ã¢ã¯ã»ã¹â ãªãœãŒã¹ã®å ±æâ è¿ éãªæ¡åŒµæ§â èšæž¬å¯èœãªãµãŒãã¹â è³ç£ä¿æãäžèŠâ å©äŸ¿æ§ãé«ãâ ãªãœãŒã¹èª¿éãæ©ãâ æè»ãªæ¡åŒµæ§â å©ããåã ã課é
Cloud Native Deï¬nitionã¯ã©ãŠããã€ãã£ãã®éããã¹CNCF Trail Map | https://github.com/cncf/trailmap1.CONTAINERIZATION | ã³ã³ããåâšä»®æ³ãã·ã³ãšã¯ç°ãªããç°å¢å·®ç°ãç¡ãã軜éãªã€ã¡ãŒãžã§å¯æ¬æ§ãé«ãããªãªãŒã¹ãµã€ã¯ã«ãéããæ©æããšä¿¡é Œæ§ãå Œãåããã¢ããªã±ãŒã·ã§ã³ãªãªãŒã¹ãå®çŸâš2.CI/CD | ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³/ããªããªãŒâšãœãŒã¹ã³ãŒãã®å€æŽã奿©ã«ãèªåçãªãã«ãããã¹ããã¹ããŒãžã³ã°ç°å¢ããã³æ¬çªç°å¢ãžã®ãããã€ã«ã€ãªããCI/CDç°å¢ãæ§ç¯ããâš3.ORCHETRATION & APPLICATION DEFINITION |ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ããŒã«ãšã¢ããªã±ãŒã·ã§ã³å®çŸ©ã³ã³ããåãããã¢ããªã±ãŒã·ã§ã³ãKubernetesåºç€ã§èªåŸçã«éçšâšHelmãå©çšããŠããããã§ã¹ããå¹ççã«ç®¡çâšã³ã³ããåâšéçºèªååâšéçšèªååâšâæ¡åŒµæ§ã»æè»æ§ã«åªããã¢ããªã±ãŒã·ã§ã³ãæå°éã®åŽåã§æ§ç¯ããã³å®è¡â
Cloud Native Deï¬nitionèªååã®ç®ç人çé¢äžãæ¥µåæžãããŠåäžåâšæè¡ã«ä»»ãããããã®ã¯ä»»ããŠå¹çåãâšãããŠã人ã«ããã§ããªãããšã«æéãã³ã¹ããåŸããâšåäžããããžãã¹äŸ¡å€ããšã³ããŠãŒã¶æ§ã«æäŸããâš
Cloud Native Deï¬nitionçµå±ã®ãšããã¯ã©ãŠããã€ãã£ããšã¯ïŒãCNCFã«é¢é£ãããããã¯ãå©çš = ã¯ã©ãŠããã€ãã£ããâšã§ã¯ãªãâšCNCF Cloud Native Interactive Landscape | https://landscape.cncf.io/
Cloud Native Deï¬nition人çé¢äžãæ¥µåæžãããŠããžãã¹äŸ¡å€ã®åäžãç®æããŠãâšããããšã³ããŠãŒã¶æ§ã«å±ãããã€ã³ããæã€ããšâš
Cloud Native Deï¬nitionCloudNative Days Fukuoka 2019ãé£ã³èŸŒããCloud Nativeã®äžçã èéäžäºº(@jacopen) | https://speakerdeck.com/jacopen/fei-biip-mou-cloud-nativefalseshi-jie
DevOps
DevOpsDevOpsãšã¯ïŒéçºïŒDevelopmentïŒãšéçšïŒOperationsïŒãäºãã«ååãåãããšã§ãéçºã»éçšãããœãããŠã§ã¢ã»ã·ã¹ãã ã«ãã£ãŠããžãã¹äŸ¡å€ãé«ããã ãã§ãªãããã®ããžãã¹äŸ¡å€ããã確å®ãã€è¿ éã«ãšã³ããŠãŒã¶ã«å±ãç¶ããæŠå¿µDev Ops
DevOpsDevOpsãå®çŸããæ¹æ³â ãèšç»ãèšèšãå®è£ ããã¹ãããšããéçºå·¥çšãæ©èœåäœã®å°ãããµã€ã¯ã«ã§ç¹°ãè¿ããŠéçºãè¡ãéçºææ³â ãŠã©ãŒã¿ãŒãã©ãŒã«ãšç°ãªãã仿§å€æŽã«åŒ·ãããããã¯ãã®äŸ¡å€ãæå€§åããããšãç®çãšããâ ãµãŒãã¹ã€ã³ãŸã§ã®æéãççž®ã§ãã1.ã¢ãžã£ã€ã«éçºäŒç»âš ãªãªãŒã¹âš ãªãªãŒã¹âš ãªãªãŒã¹âšèšç»âšå®è£ âšèšèšâšãã¹ãâšèšç»âšå®è£ âšèšèšâšãã¹ãâšèšç»âšå®è£ âšèšèšâšãã¹ãâš
DevOpsDevOpsãå®çŸããæ¹æ³2.CI/CDïŒç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³/ç¶ç¶çããªããªãŒïŒâšâ ãœãŒã¹ã³ãŒãããã¢ããªã±ãŒã·ã§ã³ãšããŠãã«ãããã¿ã€ãã³ã°ã§ãã¹ããè¡ã£ãŠã宿ããææç©ïŒã¢ãŒãã£ãã¡ã¯ãïŒãä¿åãããŸã§ã®å·¥çšãèªååâ æ©æã«ãã°ãçºèŠã察åŠã§ããããšã§ã¢ããªã±ãŒã·ã§ã³ã®å質ãé«ããããšãã§ããä»çµã¿ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ïŒCI: Continuous IntegrationïŒâ ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ã«ãã£ãŠçæãããææç©ïŒã¢ãŒãã£ãã¡ã¯ãïŒãã¹ããŒãžã³ã°ç°å¢ãæ¬çªç°å¢ãªã©ã®åç°å¢ã«é 眮ããä»çµã¿â ãªãªãŒã¹äœæ¥ãç°¡çŽ åããŠãå®å šãã¹ããŒããå質ã®åäžãå®çŸããããã»ã¹ç¶ç¶çããªããªãŒïŒCD: Continuous DeliveryïŒ
CI/CD
CI/CDãããŸã§ã®ã¢ããªã±ãŒã·ã§ã³éçºç©çãã·ã³âšä»®æ³ãã·ã³âšä»®æ³ãã·ã³ïŒã¯ã©ãŠãïŒ âšã³ã³ããâšVMç©çãµãŒãã§ã¢ããªã±ãŒã·ã§ã³ã皌åâšç©çãµãŒãäžã«è€æ°ã®ä»®æ³ãã·ã³ã§ã¢ããªã±ãŒã·ã§ã³ã皌åâšã¯ã©ãŠããããŒã¹ãšããã¹ã±ãŒã©ãã«ãªä»®æ³ãã·ã³ã§ã¢ããªã±ãŒã·ã§ã³ã皌åâšç©çãã·ã³ã»ä»®æ³ãã·ã³ãããŒããšããŠæããŠãã³ã³ãããšããå°ããåäœã§ã¢ããªã±ãŒã·ã§ã³ã皌åâš
CI/CDDeveloper Code Repository CI/CD Pipelineã¢ããªã±ãŒã·ã§ã³OS/ã©ã€ãã©ãªéçºç°å¢ æ€èšŒç°å¢ ã¹ããŒãžã³ã°ç°å¢ æ¬çªç°å¢VMOperatorInfrastructureEngineerã³ãŒããã³ãŒããªããžããªã«ã³ããã/ããã·ã¥âšCI/CDãã€ãã©ã€ã³ã«ãããã¹ãããã«ãããããã€âšãã¹ãŠèªååãããŠããå Žåãããã°ãæåã§è¡ãå ŽåããããŸããâšç©çãã·ã³âš ä»®æ³ãã·ã³âš ä»®æ³ãã·ã³ïŒã¯ã©ãŠãïŒâš
CI/CDã¢ããªã±ãŒã·ã§ã³OS/ã©ã€ãã©ãªéçºç°å¢ æ€èšŒç°å¢ ã¹ããŒãžã³ã°ç°å¢ æ¬çªç°å¢VMOS/ã©ã€ãã©ãªãšã¢ããªã±ãŒã·ã§ã³ã®åé¢âšç©çãã·ã³âš ä»®æ³ãã·ã³âš ä»®æ³ãã·ã³ïŒã¯ã©ãŠãïŒâšã¢ããªã±ãŒã·ã§ã³ã¯ç©çãã·ã³ãä»®æ³ãã·ã³ã®OS/ã©ã€ãã©ãªäžã§çšŒå皌åããã¢ããªã±ãŒã·ã§ã³ã¯ å®è¡ç°å¢ã«äŸåããç°å¢å·®ç°ãåå ã§ä»ã®ç°å¢ã§çšŒåãããã©ãæ¬çªç°å¢ã§çšŒåããªã çã®é害ãçºçããOSã®ãããããŒãžã§ã³ãç°ãªãããã®ã©ã€ãã©ãªãç¡ãã£ããé¢ä¿ãªããã®ãã€ã³ã¹ããŒã«ãããŠããâŠâš
CI/CDã¢ããªã±ãŒã·ã§ã³OS/ã©ã€ãã©ãªç©ç/ä»®æ³ãã·ã³ã«ããããOS/ã©ã€ãã©ãªã®ã¢ããããŒãã«ã¯äººæãæéãèŠãããããã¢ããªã±ãŒã·ã§ã³ã®ãªãªãŒã¹ã«åœ±é¿ããâŠãã€ããŒãã€ã¶ãŒâšVMWare Xen/Server KVMããŒããŠã§ã¢âšVMWareXen/ServerKVMä»®æ³ãã·ã³ã€ã¡ãŒãžâšâ ä»®æ³ãã·ã³ã€ã¡ãŒãžã ãã³ããŒè£œåç¹æïŒãã³ããŒããã¯ã€ã³ïŒâšâ 容éãéãïŒæ°ã®ã¬ïœæ°åã®ã¬ïŒ âšâ 坿¬æ§ãäœãâš
CI/CDãããŸã§ã®ã¢ããªã±ãŒã·ã§ã³éçºâšOS/ã©ã€ãã©ãªãæ¢ã«æŽã£ãŠããå®è¡ç°å¢ã«ã¢ããªã±ãŒã·ã§ã³ããããã€ãããšãã圢åŒ1.ã¢ããªã±ãŒã·ã§ã³â ç°å¢å·®ç°ã«ããåé¡ãçºçâšâ OS/ã©ã€ãã©ãªåŽã«äœããããšã¢ããªã±ãŒã·ã§ã³ã«åœ±é¿âš2.ã€ã³ãã©â ä»®æ³ãã·ã³ã€ã¡ãŒãžããã³ããŒè£œåç¹æïŒãã³ããŒããã¯ã€ã³ïŒâšâ ä»®æ³ãã·ã³ã€ã¡ãŒãžã®å®¹éãéã坿¬æ§ãäœãâšâ ç©ç/ä»®æ³ãã·ã³ã®ç¹æ§äžãOS/ã©ã€ãã©ãªã®ã¢ããããŒãã«æéãèŠããŠãã¢ããªã±ãŒã·ã§ã³ã®ãªãªãŒã¹ã«åœ±é¿ããâš
CI/CDä»®æ³ãã·ã³ãšã³ã³ããã®éãããŒããŠã§ã¢âš ããŒããŠã§ã¢ãã€ããŒãã€ã¶ãŒâš ã«ãŒãã«ä»®æ³ãã·ã³âš ä»®æ³ãã·ã³âšã³ã³ãããšã³ãžã³ã³ã³ããâš ã³ã³ããâšã«ãŒãã«âš ã«ãŒãã«âšã©ã€ãã©ãªâš ã©ã€ãã©ãªâšã¢ããªã±ãŒã·ã§ã³âš ã¢ããªã±ãŒã·ã§ã³âšã©ã€ãã©ãªâšã¢ããªã±ãŒã·ã§ã³âšã©ã€ãã©ãªâšã¢ããªã±ãŒã·ã§ã³âšä»®æ³ãã·ã³âš ã³ã³ããâšåä»®æ³ãã·ã³ã®ã«ãŒãã«äžã§å®è¡ã é颿§ãé«ãããèµ·åãé ãïŒæ°åïŒãªãŒããããã倧ãã ãâšã«ãŒãã«ãå ±æããŠããããã é颿§ã¯äœãããèµ·åãé«éïŒæ°ç§ïŒã§ãªãŒãããããå°ãã ãâš
CI/CDOS/ã©ã€ãã©ãªãšã¢ããªã±ãŒã·ã§ã³ã®çµ±å1.ãã«ãïŒBuildïŒâ OS/ã©ã€ãã©ãªãšã¢ããªã±ãŒã·ã§ã³ãããã±ãŒãžã€ã¡ãŒãžåâ æè¡ãšããŠã¯OSSã®ããããã³ããŒããã¯ã€ã³ã¯çºçããªãâ ã€ã¡ãŒãžã¯ãããŸã§ã®ä»®æ³ãã·ã³ã€ã¡ãŒãžã«æ¯ã¹ããšã¯ããã«è»œãã®ã§å¯æ¬æ§ãé«ãOS/ã©ã€ãã©ãªâšã¢ããªã±ãŒã·ã§ã³âšOS/ã©ã€ãã©ãªâšã³ã³ããã€ã¡ãŒãžâšãã«ã(Build)
CI/CD2.ã·ããïŒShipïŒâ ã€ã¡ãŒãžãã¬ãžã¹ããªã«ä¿åâ ã¬ãžã¹ããªããã³ã³ãããã©ãããã©ãŒã ãžå ±æOS/ã©ã€ãã©ãªâšã³ã³ããã€ã¡ãŒãžâšããã·ã¥(Push)OS/ã©ã€ãã©ãªâšã€ã¡ãŒãžã¬ãžã¹ããªâšãã«(Pull)OS/ã©ã€ãã©ãªâšã³ã³ãããã©ãããã©ãŒã OS/ã©ã€ãã©ãªâš ã·ãã(Ship)ã€ã¡ãŒãžå ±æ
CI/CD3.ã©ã³ïŒRunïŒâ ã³ã³ããã€ã¡ãŒãžãããŒã¹ã«ã³ã³ãããèµ·åOS/ã©ã€ãã©ãªâšã³ã³ãããã©ãããã©ãŒã ã©ã³ïŒRunïŒã³ã³ããã€ã¡ãŒãžâš ã³ã³ããâšOS/ã©ã€ãã©ãªâšã³ã³ãããã©ãããã©ãŒã äžã§ã€ã¡ãŒãžããã³ã³ãããèµ·åããŠãã¢ããªã±ãŒã·ã§ã³ã皌åãã³ã³ããã€ã¡ãŒãžããã©ãããã©ãŒã ããã³ããŒæè¡ã«äŸåããªãããããã³ããŒããã¯ã€ã³ãç¡ãã
CI/CDã³ã³ããã¢ããªã±ãŒã·ã§ã³éçºâšOS/ã©ã€ãã©ãªãšã¢ããªã±ãŒã·ã§ã³ãçµ±åããŠã軜éã€ã¡ãŒãžåããŠãã³ã³ãããã©ãããã©ãŒã ã«ã³ã³ãããšããŠãããã€ãã圢åŒ1.ã¢ããªã±ãŒã·ã§ã³â OS/ã©ã€ãã©ãªãšã¢ããªã±ãŒã·ã§ã³ãäžã€ã«çµ±åãããŠãããããç°å¢å·®ç°ã«ããåé¡ãèµ·ãã«ããâš2.ã€ã³ãã©â ä»®æ³ãã·ã³ã€ã¡ãŒãžãšä»çµã¿ãç°ãªããOSSããŒã¹ã§ãã³ããŒããã¯ã€ã³ããªãã軜éã§å¯æ¬æ§ãé«ãâšâ OS/ã©ã€ãã©ãªã®ã¢ããããŒãã容æãªããããªãªãŒã¹ãµã€ã¯ã«ãéããã¹ããŒãïŒAgilityïŒãåäžâš
CI/CDã³ã³ãããæ¯ãããªãŒã±ã¹ãã¬ãŒã·ã§ã³âšKubernetesã¯ãGoogle瀟å ã®ã³ã³ãããŒãªãŒã±ã¹ãã¬ãŒã·ã§ã³ã·ã¹ãã ã§ããBorgããã€ã³ã¹ãã€ã¢ãããŠéçºãããOSSã®ã³ã³ãããŒãªãŒã±ã¹ãã¬ãŒã·ã§ã³ãèªã¿æ¹ïŒã¯ãŒããŒããŒãã£ã¹ãã¯ãŒãããã£ã¹ãã¯ãããã£ã¹çç¥ç§°ïŒK8sïŒKubernetesïŒ8æåçŸåšã¯ãCNCF(Cloud Native Computing Foundation)ã§ç®¡çããã倿°ã®äŒæ¥ãåå ããã³ãã¥ããã£ã§éçºã
äž»ãªåœ¹å²âš å®çŸâšCI/CDKubernetesã®äž»ãªåœ¹å²ãšå®çŸâ ã³ã³ããã®ã¹ã±ãžã¥ãŒãªã³ã° âšâ ããŒãªã³ã°ã¢ããããŒã âšâ ãªãŒãã¹ã±ãŒãªã³ã° âšâ æ»æŽ»ç£èŠâšâ ã³ã³ããã®èªå修埩 âšâ ãµãŒãã¹ãã£ã¹ã«ã㪠âšâ ããŒããã©ã³ã·ã³ã° âšâ é »ç¹ãªã¢ããªã±ãŒã·ã§ã³ã®ããã〠ãå¯èœã«ããã·ã¹ãã åºç€âšâ ç¡åæ¢ã«ãããªãªãŒã¹ãé«å¯çš ãªã·ã¹ãã åºç€ âšâ è² è·ã«å¿ãã䌞瞮èªåšãªã·ã¹ãã åºç€ âš
CI/CDYAMLKubernetesã¯ã©ã¹ã¿å®£èšçãªãã¬ãŒã·ã§ã³ãããã§ã¹ããã¡ã€ã«ControllerReconciliationloopç»é²ç£èŠã³ã³ãã管çïŒäœæã»åé€ïŒControllerå ã®Reconciliation loopïŒèª¿æŽã«ãŒãïŒãšåŒã°ãããããã¹ãçæ³ã®ç¶æ ãžåæãããã«ãŒãåŠçãå®è¡ãControllerãããã¹ãçæ³ã®ç¶æ ãžåæ
CI/CDReconciliation loopObserveçŸåšã®ç¶æ ã確èªâšAnalyzeããã¹ãçæ³ã®ç¶æ ãšçŸåšã®ç¶æ âšãšã®å·®åãåæâšActåæããå·®åã«å¯ŸããåŠçãå®è¡âš
CI/CDKubernetesã¯ã©ã¹ã¿ããã¹ãçæ³ã®ç¶æ ControllerReconciliation loop宣èšçãªãã¬ãŒã·ã§ã³æå®ããã ãreplicas: 3ã ã®Podæ°ãç¶æããããšObserveAnalyzeAct
CI/CDKubernetesã¯ã©ã¹ã¿ããã¹ãçæ³ã®ç¶æ ControllerReconciliation loop宣èšçãªãã¬ãŒã·ã§ã³ïŒäŸïŒèµ·åããŠããPodã2åã®å ŽåObserveAnalyzeActObserve çæ³:3 çŸç¶:2
CI/CDKubernetesã¯ã©ã¹ã¿ããã¹ãçæ³ã®ç¶æ ControllerReconciliation loop宣èšçãªãã¬ãŒã·ã§ã³ïŒäŸïŒèµ·åããŠããPodã2åã®å ŽåObserveAnalyzeActAnalyze çæ³ç¶æ ãšæ¯èŒããŠãPodã1åè¶³ããªã
CI/CDKubernetesã¯ã©ã¹ã¿ããã¹ãçæ³ã®ç¶æ ControllerReconciliation loop宣èšçãªãã¬ãŒã·ã§ã³ïŒäŸïŒèµ·åããŠããPodã2åã®å ŽåObserveAnalyzeActAct ãimage: nginx:1.21.0ãã®Podãäœæ
CI/CDKubernetesã¯åæ£åŠçåºç€âšVirtual MachineBareMetalKubernetesContainer
CI/CDKubernetes is becoming the Linux of the cloudby Jim Zemlin ïŒThe Linux FoundationïŒ
CI/CDMulti-Cloud to Multi-Kubernetes Cloud Native to Kubernetes Native
CI/CDã³ã³ããã¢ããªã±ãŒã·ã§ã³éçºã«ãããCI/CD1.CIOps PushåãœãŒã¹ã³ãŒããæŽæ°ããããã³ã«CIãã€ãã©ã€ã³ã皌åããŠãã¢ããªã±ãŒã·ã§ã³ãã¹ããã³ã³ããã€ã¡ãŒãžãã«ããã³ã³ããã€ã¡ãŒãžããã·ã¥ãCDãã€ãã©ã€ã³ã«ãããããã€ãéçºç°å¢ æ€èšŒç°å¢ ã¹ããŒãžã³ã°ç°å¢ æ¬çªç°å¢ç©çãã·ã³âš ä»®æ³ãã·ã³âšä»®æ³ãã·ã³ïŒã¯ã©ãŠãïŒâšVMã³ã³ãããã©ãããã©ãŒã OS/ã©ã€ãã©ãªâš OS/ã©ã€ãã©ãªâšOperatorInfrastructureEngineerDeveloperCodeRepositoryCI/CDPipelineBuild ShipRunCIãã€ãã©ã€ã³ã«ãããã¹ãããã«ããã€ã¡ãŒãžããã·ã¥ã³ã³ãããã©ãããã©ãŒã ãžã®ãããã€OS/ã©ã€ãã©ãª âšOS/ã©ã€ãã©ãª âšã€ã¡ãŒãžå ±æã³ãŒããã³ãŒããªããžããªã«ã³ããã/ããã·ã¥âšCode,Dockerï¬le,manifestImageRegistryCICD
CI/CD2.CIOpsã«ãããã»ãã¥ãªãã£ãªã¹ã¯ãšç®¡çã®ç ©éåDeveloperCodeRepositoryCI/CDPipelineImageRegistryDev/Staging/ProdReadRead/WriteRead/Write ReadRead/WriteImagePullapplyKubernetesã¯ã©ã¹ã¿ãå¢ãããã³ã«ã»ãã¥ãªãã£å«ããèšå®ãæš©é管çãå¢ããããã管çãç ©éãšãªããâšKubernetesã¯ã©ã¹ã¿å€éšã§ã®æš©é管çãšãªããããã»ãã¥ãªãã£ãªã¹ã¯ãããã
CI/CD3.ãããã§ã¹ãã®åçŸæ§DeveloperCodeRepositoryCI/CDPipelineImageRegistryDevImage Pull1.ãã€ãã©ã€ã³ã®å®è¡é åºãä¿èšŒããããšã¯éãããé©çšãããã¯ã©ã¹ã¿ç¶æ ãæ³å®ãšç°ãªãããšã«ãâšStaging Prod2.ããŒã«ããã¯ããã«ãããããã§ã¹ãã®æŽæ°å±¥æŽã远ããªã©ãè¿ éæ§ã«æ¬ ããŠããŸãã âš
CI/CD4.GitOps PullåKubernetesã¯ã©ã¹ã¿å ã«é 眮ãããGitOpsãªãã¬ãŒã¿ãŒãConï¬gãªããžããªã宿çã«ããŒãªã³ã°ããŠãæŽæ°ãæ€ç¥ããŠæŽæ°å 容ãKubernetesã¯ã©ã¹ã¿ã«åæ ããä»çµã¿ãéçºç°å¢ æ€èšŒç°å¢ ã¹ããŒãžã³ã°ç°å¢ æ¬çªç°å¢ç©çãã·ã³âš ä»®æ³ãã·ã³âšä»®æ³ãã·ã³ïŒã¯ã©ãŠãïŒâšVMã³ã³ãããã©ãããã©ãŒã OS/ã©ã€ãã©ãªâš OS/ã©ã€ãã©ãªâšOperatorInfrastructureEngineerDeveloperConï¬gRepositoryCIPipelineBuild ShipRunã³ã³ãããã©ãããã©ãŒã ãžã®ãããã€OS/ã©ã€ãã©ãª âšOS/ã©ã€ãã©ãª âšImageRegistryCodeRepositoryGitOpsãªãã¬ã¿ãŒCICDâ Code Change& Git Push⣠Pull RequestMergeâ¡ Image Build & Test & Image Push⢠Pull Request†Polling & Syncã€ã¡ãŒãžå ±æCodeDockerï¬lemanifest
CI/CD5.GitOpsã®ã¡ãªããâ ãããã§ã¹ããã¡ã€ã«ãGit管çâ ãããã€å ã«å¯ŸããŠã誰ããäœæãäœãã倿Žããã®ããå±¥æŽã§è¿œããâ ãããã€å ããã€ã§ãåã®ç¶æ ã«æ»ãããšïŒããŒã«ããã¯ïŒãã§ããâ ãã«ãªã¯ãšã¹ãã«ããã¬ãã¥ãŒã»ããŒãžããã»ã¹ãéãããšã§çµç¹ã¬ããã³ã¹ãé©çšã§ããâ èªååâ æåã³ãã³ãã«ãããã¥ãŒãã³ãšã©ãŒã®æé€â éçšã³ã¹ãã®è»œæž
CI/CD6.ã³ã³ããã¢ããªã±ãŒã·ã§ã³éçºã«ãããCI/CDãç®æããšããã³ã³ããã®å¯æ¬æ§ïŒPortabilityïŒãšã¹ããŒãïŒAgilityïŒãæã¡åãããå質ããã³çç£æ§ã®é«ãã¢ããªã±ãŒã·ã§ã³éçºãå®çŸãããŸã§æéãã³ã¹ããèŠããŠããç®æã®æ¹åãâšããè¯ãããžãã¹ããžãã¯ã«æéãã³ã¹ããåŸããâšãªãªãŒã¹ãµã€ã¯ã«ãéããâšãšã³ããŠãŒã¶æ§ã«æé«å質ã®ãµãŒãã¹ãæäŸâšãšã³ããŠãŒã¶æ§ã®æºè¶³åºŠãäŒæ¥åçãããžãã¹äŸ¡å€ã®åäžã«ã€ãªããâš
CI/CDã¯ã©ãŠããã€ãã£ãã«ãããã³ã³ããã¢ããªã±ãŒã·ã§ã³éçºã¯ãéã®åŒŸäžžã§ã¯ãªãå®éã«éçºããã¢ããªã±ãŒã·ã§ã³ã®ç¹æ§ãçµç¹äœå¶ãããŒã äœå¶ãã³ã¹ããæè²ãªã©åºç€ã»éçºã»éçšã®èгç¹ãããã£ãããšèŠæ®ããŠé©æé©æã«æ€èšããå¿ èŠããã
Microservices
Microservicesãã€ã¯ããµãŒãã¹ã®äºã€ã®åŽé¢ãã€ã¯ããµãŒãã¹ã«ã¯ããéçºçµç¹ã»æåã®åŽé¢ããšãæè¡ã®åŽé¢ãã®äºåŽé¢ãããã1.éçºçµç¹ã»æåã®åŽé¢éçºçµç¹ã®æé·ã«äŒŽãããŒã ã人å¡ãå¢å ããŠããå°èŠæš¡ãªããŒã éçºãšåæ§ã®çŽ æ©ããããã¯ãéçºãç¶æããã2.æè¡ã®åŽé¢ãã€ã¯ããµãŒãã¹ã¯ãåã ã«éçºãããè€æ°ã®å°ããªãµãŒãã¹ãé£çµãããŠãèšèšãšéçšãå®çŸãããœãããŠã§ã¢ã®ã¢ãŒããã¯ãã£ã
Microservicesãã€ã¯ããµãŒãã¹ã®é²åãšææŠããŒã ãå°ããå Žåâšâ äžã€ã®ã¢ããªã±ãŒã·ã§ã³ã«æ©èœãéçŽããŠéçºâšâ é床ãšéçºå質ã®é¢ã§åççâšããŒã ã倧ããå Žåâšâ ã³ãã¥ãã±ãŒã·ã§ã³ã³ã¹ãã®å¢å âšâ 20人以äžã«ãªããšããŒã ç Žç¶»ãžâšäŒè°ã«éãããéçºããŒã 人æ°ã«ãããŠãçæ³ã¯ â Two Pizza Rule ââäŒè°ã®åå è ãå€ãã»ã©ãçç£æ§ã¯äœäžãããããã解決ããããã«ãåå ã¡ã³ããŒã2æã®ãã¶ãåãåãã人æ°ã«æãããâ âšhttps://landing.directorpoint.com/blog/amazon-two-pizza-rule/
Microservicesãã€ã¯ããµãŒãã¹ã®å段ãšããŠçµç¹ã®çްåå100人ãäžã€ã«ããŠéçºããããããäž»èŠãªæ©èœã10åã«åããŠæ©èœããšã«10人ã®ããŒã ã10åäœã£ãŠéçºããæ¹ãå¹ççãâš100人ã§éçºâš 10人ã®ããŒã ã10ããŒã äœã£ãŠéçºâš
Microservicesçµç¹ã®åæ£åã«ãã課é¡å€§ããããŒã ãšããŠã®èª²é¡ãè§£æ¶ããããªãâšã³ãã¥ãã±ãŒã·ã§ã³ã³ã¹ãã®å¢å âšããŒã è£éã®äœäžâš ææ§ãªè²¬ä»»ç¯å²âš
Microservicesæè¡ã«ãããŠãçµç¹ã®åæ£åã«åãããŠåæ£åãé²ãããã®éçºææ³ããã€ã¯ããµãŒãã¹âšâ å°ããããŒã ãèªåŸçã«æ©èœããããšã§ãå šäœãšããŠã®ãããã¯ãéçºã¹ããŒããåäžâšâ åããŒã ã§ãããã€ãµã€ã¯ã«ãç¬ç«ããŠããã®ã§ãèŠä»¶ã«æ²¿ã£ãŠèªç±ã«ãªãªãŒã¹å¯èœâšâ ããŒã ããšã«ããã©ãŒãã³ã¹èŠä»¶ã®ç°ãªãã¢ããªã±ãŒã·ã§ã³ãã¹ã±ãŒãªã³ã°å¯èœâšâ æ©èœå¢å ãšå ±ã«ããŒã ãšäººå¡ãã¹ã±ãŒã«ããããšã§ãã¢ããªã±ãŒã·ã§ã³ãšçµç¹ãåæã«æé·âš
ãã€ã¯ããµãŒãã¹ã®9ã€ã®ç¹åŸŽMicroservicesãã€ã¯ããµãŒãã¹ã«ãããã¬ã€ãã©ã€ã³âšâ ãµãŒãã¹ã«ããã³ã³ããŒãã³ãåâšâ ããžãã¹æ©èœã«åºã¥ããããŒã ç·šæâšâ ãããžã§ã¯ãã§ã¯ãªã補åãšããŠæããŠéçºéçšâšâ ã€ã³ããªãžã§ã³ããªãšã³ããã€ã³ãã·ã³ãã«ãªãã€ãâšâ éäžå€®éæš©çãªèšèªãããŒã«ã®éžæâšâ éäžå€®éæš©çãªããŒã¿ç®¡çâšâ ITã€ã³ãã©ã®èªååïŒInfrastructure as CodeïŒâšâ é害ããšã©ãŒãåæãšããèšèšâšâ å é²çãªèšèšâšJames Lewis/Martin Fowlerã®"Microservices" | https://martinfowler.com/articles/microservices.html
Microservices2018幎ã«ã¡ã«ã«ãªããã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ãæ¡çšããŠãçµç¹ããµãŒãã¹ããããŠäŒæ¥ãšããŠãæ¡å€§ãç®æããç¶ç¶äžãhttps://www.itmedia.co.jp/enterprise/articles/1810/11/news049.html
Microservicesã¢ããªã¹ãããã€ã¯ããµãŒãã¹ã¢ããªã±ãŒã·ã§ã³ã¢ããªã±ãŒã·ã§ã³ã¢ããªã±ãŒã·ã§ã³ã¢ããªã±ãŒã·ã§ã³ã¢ããªã±ãŒã·ã§ã³ã¢ããªã¹ ãã€ã¯ããµãŒãã¹
MicroservicesãããŠãã¢ããã€ãºã¯ã©ãŠããã€ãã£ãæè¡ãå©çšãããã€ã¯ããµãŒãã¹Virtual Machine / BareMetalKubernetes
Microservicesã³ã³ããã«ããããã€ã¯ããµãŒãã¹ãå®çŸããæè¡Service MeshApp ProxyPodContainer Containerã¢ããªã±ãŒã·ã§ã³ãšãããã·æ©èœã®åé¢ âšã¢ããªã±ãŒã·ã§ã³ããã»ã¹ããšã«å°çšã®ãããã·ãé 眮ããŠããã®ãããã·ã«ãããã¯ãŒã¯åšãã®ä»äºããŸãããŸããâšãããã·æ©èœã®äžå€®ç®¡ç âšControlPlaneApp Proxy App ProxyApp Proxy App Proxyãããã·æ©èœã¯å€§éã«ãªãã®ã§ã³ã³ãã£ã°ã¬ãŒã·ã§ã³ã®ç®¡çã³ã¹ããå¢å ãäžå€®ã«ãããã·æ©èœã®ç®¡çããã³ã³ãããŒã«ãã¬ãŒã³ãé 眮ããŠå¹ççã«ç®¡çãâš
Microservicesãã€ã¯ããµãŒãã¹ã®ç¹åŸŽãã€ã¯ããµãŒãã¹ã»ã¢ãŒããã¯ãã£å€§èŠæš¡ãªã·ã¹ãã ãççµåãªè€æ°ã®ãµãŒãã¹ã®çµã¿åããã§å®çŸããèšèšæ¹åŒ âšâ ã¢ããããŒãã®å®¹ææ§ âšâ ã¹ã±ãŒã«ã®å®¹ææ§âšâ é«å¯çšæ§âšãµãŒãã¹AâšãµãŒãã¹BãµãŒãã¹CãµãŒãã¹FãµãŒãã¹EãµãŒãã¹DãµãŒãã¹AâšãµãŒãã¹BãµãŒãã¹CãµãŒãã¹FãµãŒãã¹EãµãŒãã¹Dã·ã¹ãã Aâš ã·ã¹ãã Bâš
Microservicesã¢ããããŒãã®å®¹ææ§ âšâ ä»ã®ãµãŒãã¹ãžã®åœ±é¿ã極å°åãã圢ã§ãã¢ããããŒã察象ã®ãµãŒãã¹ã®ã¿ãã¢ããããŒãå¯èœ âšâ é«é »åºŠã«ãµãŒãã¹ã®ã¢ããããŒããå¯èœ âšã¹ã±ãŒã«ã®å®¹ææ§âšâ ä»ã®ãµãŒãã¹ã«åœ±é¿ãäžããããšãªããå¿ èŠãªãµãŒãã¹ã®ã¿ãã¹ã±ãŒã«ã¢ãŠãå¯èœâšâ 䜿çšãããªãœãŒã¹ãæé©å âšé«å¯çšæ§âšâ ãµãŒãã¹ãç¬ç«ããŠãããããé害ã®åœ±é¿ã極å°å âšâ æ®ã£ããµãŒãã¹çŸ€ã§ãµãŒãã¹æäŸãç¶ç¶ããŠããããšãå¯èœ âšã¢ããããŒã âšã¹ã±ãŒã«âšé害âšé害圱é¿ãªãâš
Microservicesããžãã¹é¢ã«ããããã€ã¯ããµãŒãã¹é¡§å®¢åãæ°ããžãã¹åµé ç€Ÿå æ¥åå¹çå瀟å€ç€Ÿå ããžãã¹åµé æ¥åå¹çåããžãã¹ã«ã¯é²åã®ã¹ããŒããšåè³ªãæ±ããããâ ãµãŒãã¹ã®æ©æãªãªãŒã¹ âšâ åžå Žã®åå/åå¿ãæ©æãã£ãŒãããã¯ããŠå¯Ÿå¿ âšâ ãµãŒãã¹åæ¢ã«ããæ©äŒæå€±ããªãã âšã·ã¹ãã ã¯å€åããããžãã¹èŠä»¶ã«åããçãæéã§é«é »åºŠã«ãªãªãŒã¹ããããšãæ±ããããâ ã¢ããªã®å€æŽãããã«æ¬çªç°å¢ã«é©çš âšâ å€åã蚱容ã§ããã·ã¹ãã ãæ§ç¯ âšâ 忢æéã®ççž®ãšéçšäœæ¥ã®å¹çå âšé«é »åºŠãã€å³æã«æ¬çªåæ å¯èœãªã¢ããªã±ãŒã·ã§ã³ãå¿ èŠ
Microservicesãã€ã¯ããµãŒãã¹ãçµå±ãã€ã¯ããµãŒãã¹ã«ã¯æåçåŽé¢ãšæè¡çåŽé¢ããããâšãã®èª¿åã®æçµçã«ç®æããšããã¯ïŒâšéããæ£ç¢ºã«é«å質ãªãµãŒãã¹ãæäŸããŠãâšãšã³ããŠãŒã¶æ§ã®æºè¶³åºŠãäŒæ¥åçãããžãã¹äŸ¡å€ã®åäžâšãããŸã§åŠãã§ããã¯ã©ãŠããã€ãã£ãã®æçŸ©ãšåãïŒâš
Observability
ObservabilityMonitoring = ç£èŠã芳å¯ããŠèšé²ããâšããããç£èŠã£ãŠïŒ
Observabilityäœã®ããã«ãç£èŠã芳å¯ããŠèšé²ããïŒ
Observabilityâ ãµãŒãã¹ãã¢ããªã±ãŒã·ã§ã³ã®å¥å šæ§ã確èªâšâ é害ããã©ãã«ã®åå 調æ»âšâ ãã£ãã·ãã£åæâšâ ãµãŒãã¹å©çšè ã®è¡ååæâšæè¡ãéçšãããžãã¹ãªã©å€å²ã«ãããâš
ObservabilityãµãŒãã¹ãã·ã¹ãã ãå©çšãããŠãŒã¶ã«åœ±é¿ãäžããªãããâš
ObservabilityãµãŒãã¹ãã·ã¹ãã ã®å©çšè ããåé¡ãªãå©çšã§ãããâšãå®å®çšŒåããŠããç¶æ ããç¶æããïŒâšâš
Observabilityâ ããè¯ãæ¹æ³ã§ãã·ã¹ãã ã®çšŒåç¶æ³ãææ¡ã§ããŠããç¶æ âšâ ã·ã¹ãã éçšã«ãããŠã倿ã«å¿ èŠãšãªãæ å ±ãååŸã§ããŠããç¶æ âšâ è¿ éã«é害ããã©ãã«ã«å¯Ÿå¿ã§ããç¶æ âšç£èŠã®æçŸ©âšãããŸã§ãããããããããããæ¬è³ªã¯å€ãããªãâš
Observabilityãªãã¶ãããªãã£ã®èæ¯âšãããŸã§ã®ã·ã¹ãã âšUserOperatoråŸæ¥ã®Web3å±€ã¢ãã«ã®ãããªã·ã³ãã«ãªæ§æã®ã·ã¹ãã ã§ããã°ãæ¯èŒç容æã«é害ã調æ»ããããšãå¯èœãâšLB/Web/App/DBãªã©ããããã®ã³ã³ããŒãã³ãã远ããããâšWebâš Applicationâš DatabaseâšLBâš
Observability忣ã·ã¹ãã âšUser忣ã·ã¹ãã ã®ãããªå°ããªãµãŒãã¹ãççµåãããããªã·ã¹ãã ã§ã¯ãæ§æãè€éãšãªãé害çºçåæãåå 远æ±ãå°é£ã§ããããŸããŠäººã®æã§è¡ãããšã¯éçŸå®çãâšããããã®ã³ã³ããŒãã³ãã远ãã®ã¯éçŸå®çLBâšOperator
Observabilityå³å³ã«ãããããªåæ£ã·ã¹ãã ã§ã¯ã倧éã®ãµãŒãã¹ã飿ºããŠãäžã€ã®ã·ã¹ãã ãšããŠæãç«ã£ãŠãããããé害ãçºçããéã®æ€ç¥ãªã©ããããŸã§ã®ããã«å®¹æã«ã¯ãããªãâŠâšãAdoption of Cloud Native Architecture, Part 2: Stabilization Gaps and Anti-Patternsãhttps://www.infoq.com/articles/cloud-native-architecture-adoption-part2/
ObservabilityObservability might mean diï¬erent things to diï¬erent people.å¯èŠ³æž¬æ§ã¯ã人ã«ãã£ãŠæå³ãç°ãªãå ŽåããããŸããâšã Distributed Systems Observabilityãhttps://www.oreilly.com/library/view/distributed-systems-observability/9781492033431/ãªãã¶ãããªãã£ãšã¯ïŒObservabilityïŒå¯èŠ³æž¬æ§ïŒã¯ã人ã«ãã£ãŠãŸãã¯ã·ã¹ãã ã«ãã£ãŠåºæºã芳ç¹ãè§£éã®ä»æ¹ãéããã®ãªã®ã§ãæ¬ã»ãã·ã§ã³ã®å 容ãäžäŸãšæããŠãã ãããâš
Observabilityã¯ã©ãŠããã€ãã£ãã«ããããªãã¶ãããªãã£ã¯ã©ãŠããã€ãã£ãæè¡ã¯ããããªãã¯ã¯ã©ãŠãããã©ã€ããŒãã¯ã©ãŠãããã€ããªããã¯ã©ãŠããªã©ã®è¿ä»£çã§ãã€ãããã¯ãªç°å¢ã«ãããŠãã¹ã±ãŒã©ãã«ãªã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããã³å®è¡ããããã®èœåãçµç¹ã«ãããããŸãã ãã®ã¢ãããŒãã®ä»£è¡šäŸã«ãã³ã³ããããµãŒãã¹ã¡ãã·ã¥ããã€ã¯ããµãŒãã¹ãã€ãã¥ãŒããã«ã€ã³ãã©ã¹ãã©ã¯ãã£ãããã³å®£èšåAPIããããŸããâšâšãããã®ææ³ã«ãããå埩æ§ã管çåãããã³å¯èŠ³æž¬æ§ã®ããççµåã·ã¹ãã ãå®çŸããŸãã ããããå ç¢ãªèªååãšçµã¿åãããããšã§ããšã³ãžãã¢ã¯ã€ã³ãã¯ãã®ãã倿Žãæå°éã®åŽåã§é »ç¹ãã€äºæž¬ã©ããã«è¡ãããšãã§ããŸãã âšCloud Native Computing Foundation(CNCF) Cloud Native Deï¬nition v1.0 | https://github.com/cncf/toc/blob/master/DEFINITION.mdã¯ã©ãŠããã€ãã£ãã®æèã§ã¯ãObservabilityïŒå¯èŠ³æž¬æ§ïŒã¯ãã¯ã©ãŠããã€ãã£ããªã·ã¹ãã ãå®çŸãããŸãã¯æ¯ããäžèŠçŽ
ObservabilityKubernetesäžã®Pod(ã³ã³ãã)ãäŸã«èããŠã¿ããšã決ããããNodeã«æ±ºããããPod(ã³ã³ãã)ã皌åãããšã¯éããªãããããããŸã§ã®ç£èŠæ¹æ³ãšã¯éãã¢ãããŒããå¿ èŠãšãªããKubernetesOperatorNodeç¶æ³ãKubernetesClusterç¶æ³ïŒPodãªã©ïŒãã¢ããªã±ãŒã·ã§ã³ãããŒã¿ããŒã¹ãªã©è²ã ãã
Observabilityâ 人ãŸãã¯ã·ã¹ãã ã«ãã£ãŠåºæºã»èгç¹ã¯ç°ãªãâšâ ã¯ã©ãŠããã€ãã£ããªã·ã¹ãã ãå®çŸãããŸãã¯æ¯ããäžèŠçŽ âšâ åŸæ¥ã®ã·ã¹ãã ãšã¯ç°ãªãã¢ãããŒããå¿ èŠïŒåæ£ã·ã¹ãã ãã³ã³ãããªã©ïŒâšãªãã¶ãããªãã£ãšã¯ïŒâšãã®æ¬è³ªãäžå€ïŒïŒâšâ ããè¯ãæ¹æ³ã§ãã·ã¹ãã ã®çšŒåç¶æ³ãææ¡ã§ããŠããç¶æ âšâ ã·ã¹ãã éçšã«ãããŠã倿ã«å¿ èŠãšãªãæ å ±ãååŸã§ããŠããç¶æ âšâ è¿ éã«é害ããã©ãã«ã«å¯Ÿå¿ã§ããç¶æ âš
ObservabilityTelemetryObservabilityãå®çŸãã3èŠçŽ Telemetryã®åèŠçŽ ã飿ºããŠãObservabilityãå®çŸãããããšãéèŠTelemetryã·ã¹ãã ã®ç¶æ ãåéåŸãä»å æ å ±ãä»äžããŠæ°å€ã«å€æãããã®ã³ã³ããŒãã³ãéãè·šãã€ãã³ããŸãã¯ãã©ã³ã¶ã¯ã·ã§ã³ã®å æé£éã®ææšæ£åžžã»ç°åžžåäœãªã©ãã·ã¹ãã ã«ããçæãããããã¹ãããŒã¿LogsMetrics Traces
ObservabilityObservabilityãå®çŸããäž»ãªããŒã«Prometheus & GrafanaGrafana Loki EFKJaeger Zipkin Open Telemetryãã®ä»ã«ããã³ããŒè£œåãã¯ã©ãŠããã³ããŒãµãŒãã¹ãããMetricsLogsTraces
ObservabilityThe CNCF End User Technology RadarThe CNCF End User Technology Radarã¯ãCNCFãšã³ããŠãŒã¶ãŒã³ãã¥ããã£ã«ä»£ãã£ãŠãã¯ã©ãŠããã€ãã£ããã¯ãããžãŒãè©äŸ¡ããããã®ã¬ã€ãã1.æãäžè¬çã«æ¡çšãããŠããããŒã«ã¯ãªãŒãã³ãœãŒã¹2.å¯èŠ³æž¬æ§ã®é åã«çµ±åã¯ãªã3.PrometheusãšGrafanaã¯ã»ãŒäžç·ã«å©çšæããæ¡çšã祚ãç²åŸãã 3ã€ã®ããŒã«ïŒPrometheusãGrafanaãElasticïŒãšæãåèšç¥šãç²åŸãã 5ã€ã®ããŒã«ïŒPrometheusãGrafanaãElasticãJaegerãOpenTelemetryïŒã¯ãã¹ãŠãªãŒãã³ãœãŒã¹ãå€ãã®äŒæ¥ãè€æ°ã®ããŒã«ã䜿çšãäŒæ¥ã®åæ°ã¯ 5ã€ä»¥äžã®ããŒã«ã䜿çšããŠããã3åã®1ã¯10以äžã®ããŒã«ã䜿çšããçµéšããããåçè ã®3åã®2ã¯ãããã2ã€ã®ããŒã«ãçµã¿åãããŠäœ¿çš ãããã¯åœç¶ã ããé«ãçžé¢é¢ä¿ã¯æ³šç®ã«å€ããããThe CNCF End User Technology Radar Observability, September 2020ãhttps://radar.cncf.io/2020-09-observability
Observabilityéããæ£ç¢ºã«é«å質ãªãµãŒãã¹ãæäŸããŠãâšãšã³ããŠãŒã¶æ§ã®æºè¶³åºŠãäŒæ¥åçãããžãã¹äŸ¡å€ã®åäžâšãªãã¶ãããªãã£ã¯ãã¯ã©ãŠããã€ãã£ãã·ã¹ãã ãæ¯ããâšæäŸã ãã§ã¯ãªããåžžã«ãŠãŒã¶ãšã¯ã¹ããªãšã³ã¹ãæãªãããšãç¡ãããç¶æãâšãããŠãé害ããã©ãã«ãçºçããå Žåãéããæ£ç¢ºã«å¯Ÿå¿ã§ããäœå¶ãç¶æããïŒâš
What is Cloud Native ?
人çé¢äžãæ¥µåæžãããŠããžãã¹äŸ¡å€ã®åäžãç®æããããããšã³ããŠãŒã¶æ§ã«å±ãããã€ã³ããæã€éããæ£ç¢ºã«é«å質ãªãµãŒãã¹ãæäŸãããšã³ããŠãŒã¶æ§ã®æºè¶³åºŠãäŒæ¥åçãããžãã¹äŸ¡å€ã®åäžæäŸã ãã§ãªããåžžã«ãŠãŒã¶ãšã¯ã¹ããªãšã³ã¹ãæãªãããšãç¡ãããç¶æãé害ããã©ãã«ãçºçããå Žåãè¿ éã«å¯Ÿå¿ã§ããäœå¶ãç¶æ
Thank you !!