ãˇãããŦãã: Docker ã§ã¤ããŦãŧãˇã§ãŗãéĢéå
ããˇãããŦããããĢã¯å¤ããŽåŽįžŠããããžãããããŽčŦæŧã§ã¯ãããŖãŧãããã¯ãĢãŧããæšåããå垊æéãįį¸ŽãããããĢããĸã¤ãã ãå¤å´ãŽãĢãŧã(CIãã¤ããŠã¤ãŗããããã¤ãĒãŠ)ããå å´ãŽãĢãŧã(éįēč ãŽã¯ãŧã¯ãšããŧãˇã§ãŗ)ãĢį§ģåãããã¨ãĢįĻįšãåŊãĻãžãã Dockerã¯ãéįēč į°åĸããĩããŧããããŗåŧˇåããįĩąåããšããäŋĄé ŧæ§ã¨éåēĻãĢãããã¨ã§įšãĢããŧã ãæ¯æ´ããéįēč ãĢį´æĨåŽį¨įãĒæ´å¯ãæäžããĻãģããĨãĒããŖæčãéĢããžãã ããããŽåãããã¯ãŽčŠŗį´°ã¨ãåŽéãŽãŠã¤ãããĸããčϧãã ããã
Â
åã
ãããĢãĄã¯ããã¤ãąãĢãģãĸãŧãĻãŖãŗã§ãã į§ã¯ãã Docker ãŽããããããŧ ãĒãŦãŧãˇã§ãŗãē ããŧã ãŽãĄãŗããŧã§ãã ãˇãããŦãããĢã¤ããĻã芹ãã§ãããã¨ãæĨŊããŋãĢããĻããžãã ããĻããããĢéŖãŗčžŧãã¨ããžããå°ãæéããããĻããˇãããŦãããäŊãæåŗãããŽãããããäŊã§ããããäŊãéčĻã§ãĒããããĒããããéčĻãĒãŽããĒãŠãåŽéãĢåŽįžŠããžãã æŦĄãĢãDockerããˇãããŦãããæ¯æ´ãã3ã¤ãŽį°ãĒãæšæŗãĢã¤ããĻčĒŦæããžãã ãžããéįēį°åĸãŽį§ģčĄãæŦĄãĢįĩąåããšããčåŧąæ§čŠäžĄããģããĨãĒããŖå ¨čŦãĢã¤ããĻã芹ãããæåžãĢãžã¨ããžãã ããŖããå§ããžãããã
Â
įŽæŦĄ
- ããˇãããŦããããŽåŽįžŠ (0:35)
- éįēį°åĸãŽãˇãã (4:20)
- ããĸ:éįēį°åĸ(9:26)
- įĩąåããšããŽį§ģčĄ (15:05)
- TestcontainersãŽį´šäģ (17:43)
- ããĸ: Testcontainers (21:30)
- čåŧąæ§čŠäžĄãŽãˇãã (26:32)
- Docker Scoutã¨ã¯äŊã§ãã? (28:20)
- ããĸ: Docker Scout (29:31)
- įˇéᎍ (35:19)
- ãããĢčŠŗãã
Â
ããˇãããŦããããŽåŽįžŠ (0:35)
ãˇãããŦããã¨ã¯ãŠãããæåŗã§ãã? ããã¯ãŠãããæĨããŽãããžããããã¯äŊã§ãããäŊã§ã¯ãĒããŽãããĒãŠããžãããŊãããĻã§ãĸéįēãŠã¤ããĩã¤ã¯ãĢããžãã¯SDLCã¨åŧã°ããããŽãčĻãĻãŋãžãããã é常ãå å´ãŽãĢãŧãã¨å¤å´ãŽãĢãŧãã¨åŧã°ãã 2 ã¤ãŽãĢãŧãããããã¨ãããããžãã åãĢãŧãã¯ãããŖãŧãããã¯ãåãåããæŦĄãŽãĢãŧããĢåãããããĢč¨č¨ãããĻããžãã å å´ãŽãĢãŧãã¯ããŗãŧãããĒãã¸ããĒãĢãããˇãĨãããåãĢįēįããããšãĻãŽãã¨ãĢįĻįšãåŊãĻãĻããžãã č¨įģããģãããĸãããåŽéãŽãŗãŧããŖãŗã°ãæ§į¯ãããšããĒãŠã ãã ãããŗãŧãããããˇãĨãããã¨ãé常㯠CI ã¸ã§ããããĒãŦãŧããããĸããĒãąãŧãˇã§ãŗãããĢããããšããæ¤č¨ŧãããįĩįšãŽæ¨æēãæēãããĻãããã¨ãįĸēčĒãããžãã ããŽåžããĸããĒããããã¤ãããįŖčĻãããžããæãããĢãSDLCãĢã¯ããå¤ããŽããĨãĸãŗãšããããčŠŗį´°ãããããããĢããSDLCã¯éĢããŦããĢãĢäŋãããĻããžãã ãããã¯é常ãSDLC ãĢåãžããŗãŗããŧããŗãã§ãã ããã§čåŗæˇąããã¨ãŽ1ã¤ã¯ãããŽãããģãšãæŦåŊãĢäŊåš´ãå¤ããŖãĻããĒãã¨ãããã¨ã§ãã įĸēããĢãããŧãĢã¯é˛åããĻãããããããŽåãšãããéãŽãããģãšã¨åŧãįļããŽä¸é¨ã¯å°ãé˛åããĻããžãã ããããSDLCå ãĢåå¨ããå ¨äŊįãĒįŽæ¨ã¨å ¨äŊįãĒãšãããã¯ãããĒãä¸č˛ĢããĻããžãã
æ°åš´åããģã¨ããŠãŽäēēãDevOpsãŽåããĢã¤ããĻčãããã¨ãããã¨æããžãããããã¯å¤ããŽæšæŗã§åãå å´ã¨å¤å´ãŽãĢãŧãã§ãããäģã§ã¯įĄé大č¨åˇãĢãããˇãĨãĸãããããĻãããããĒããŽã§ãã ããããåŽéãĢã¯ãDevOpsãŽįĻįšã¯ãããŧã éãŽåŧãįļããåžæĨãŽéįēãŽãããĒããŽãåžæĨãŽéį¨ãå é¨ãĢãŧãã¨å¤é¨ãĢãŧãããããĻããããŽãããģãšããŠãŽãããĢåįåãããã¨ãããã¨ã§ããã åéĄįšã¯ãŠããĢãããŽã? æŠæĻã¯ãŠããĢãããžãã? ãŠãããã°ããŧã ã¨ããĻããč¯ãååã§ããã§ãããã? ãããããŊãããĻã§ãĸãčŋ éãĢæäžããã¨åæãĢãåčŗĒãį¨ŧåæéããģããĨãĒããŖãŽéĸã§ææãåããĒããããĢãããã¨čããĻããžãã įĩåąãŽã¨ãããä¸ģãĒįŽæ¨ã¯ãŊãããĻã§ãĸãæäžãã饧åŽĸãæēčļŗããããã¨ã ããã§ãã
ããĻããˇãããŦãããĢã¤ããĻčããã¨ããžããå å´ãŽãĢãŧããå¤å´ãŽãĢãŧãããããĻSDLCãĢæģãã¨ããˇãããŦãããŽå ¨äŊįãĒčãæšã¯ãããŖãŧãããã¯ããŠãããæĨãĻãããŽãããããĻããŽããŖãŧãããã¯ãĢãŧãããŠãŽãããĢįį¸Žã§ããããčĻããã¨ã§ãã DevOps ãĢ芹ãæģãã¨ãæŠæĻįšã¯ãŠããĢãããŽã§ãããã? ã¯ãŧã¯ãããŧãŽåéĄįšã¯ãŠããĢãããŽã? ã§ã¯ãé常ã¯å¤å´ãŽãĢãŧãã§åŽčĄãããããŽããå¤å´ãŽãĢãŧããĢäžåããããŽã¯ãããžãã? ãããĻãããããåˇĻãĢåãããã¨ãã§ããã§ãããã? å å´ãŽãĢãŧããĢåããŖãĻåãããã¨ãã§ããã§ãããã? ãĒããĒããããã§åˇĻãĢåãããã¨ãã§ããã°ãããŖãŧãããã¯ãéããĒãããã§ãã ãããĻãéįēč ããããŧãĢč˛ģããæéãåĸããã°åĸãããģãŠã ã§ã¯ãįš°ãčŋããĢãĒããžãããããžããããĒãå¯čŊæ§ãŽãããã¨ã¯ãŠããĢãããŽã§ãããã? é ãããŽã¯äŊã§ãã? ããããŽåéĄãæŠæãĢįēčĻãããããŽčŋŊå ãŽãŗãŗãããšãã¨ããŧãĢããŠãŽãããĢæäžã§ããžãã?
ããĻãåããŖãĻæįĸēãĢããĻãããããã¨ãŽ1ã¤ã¯ããˇãããŦããã¨ã¯ãåãĢéįēč ãĢããå¤ããŽäŊæĨãä¸ãããã¨ãæåŗãããŽã§ã¯ãĒãã¨ãããã¨ã§ãã ãĒããĒããããã¯äēēã ãåˇĻãĢãˇããããã¨ããĢããčããã¨ã ããã§ã:ãį´ æ´ããããããã¯éįēč ã¨ããĻãŽį§ãããŖã¨ãããĒããã°ãĒããĒãã¨ãããã¨ã§ããã ããã¯į§ããĄãããã§åããããĸãããŧãã§ã¯ãããžããã ãˇãããŦãããĢã¤ããĻ芹ãã¨ããį§ããĄã¯ããĒãããã§ãĢããĒããã°ãĒããĒãč˛Ŧäģģã¨įŠäēãĢã¤ããĻčãããã¨æããžãã ãããĻãžããããããå°ãåˇĻãĢåãããĻããããŧãįļæããããŖãŧãããã¯ãããčŋ éãĢååžããããåšæįãĢãããį°ĄåãĢéįēã§ãããããĢãããĢã¯ãŠãããã°ããã§ããããã ãããĻããããå¯čŊãĢãããããĢåŋ čĻãĒããŧãĢã¯äŊã§ãã? ããã§ãDockerãæ¯æ´ãã3ã¤ãŽį°ãĒãé常ãĢå ˇäŊįãĒé åãã¤ãžããˇãããŦããã¨éįēč ãããį°ĄåãĢéįēã§ãããããĢãããã¨ãĢã¤ããĻčĒŦæããžãã
Â
éįēį°åĸãŽãˇãã (4:20)
ãžããéįēį°åĸã¨ãDockerããããĢãŠãŽãããĢåŊšįĢã¤ããĢã¤ããĻ芹ããžãããã ããĻãå¤ããŽäēēããã§ãĢããŽãĸã¤ããĸãæãŖãĻããããŗãŗããããããĢãŠãŽãããĢåŊšįĢã¤ããčããĻããã¨æããžãã ããŽãããįš°ãčŋããĢãĒãããŽãããã°ãåããĻãŽããŽããããããããžããã ãžãããĩãŗããĢ ãĸããĒãąãŧãˇã§ãŗããå§ããžãããã į§ããĄãŽãĸããĒãŽå¤ãã¯ãããžããžãĒãĩãŧããšã§æ§æãããĻããžãã ããŽįšåŽãŽãĸããĒãąãŧãˇã§ãŗã§ãããĢãŋãã°ãĩãŧããšã¯ãããŽããŧãŋãPostgreSQLããŧãŋããŧãšãã¤ãĄãŧã¸ããããŗAWS S3ãĒãŠãŽããããšããŦãŧã¸ãĢäŋåããå¤é¨ãŽã¤ãŗããŗããĒãĩãŧããšããã¤ãŗããŗããĒããŧãŋãååžããžãã ãããĢãæ´æ°ã¤ããŗããKafkaãĢå ŦéããĻãäģãŽãĩãŧããšãĢããããŽå¤æ´ãéįĨã§ãããããĢããéįĨãéģåãĄãŧãĢãĒãŠãäŊã§ãéäŋĄã§ãããããĢããžãã ããĻãåéĄã¯ãããšãį°åĸã§éįēį°åĸããŠãŽãããĢč¨åŽãããã¨ãããã¨ã§ãã ããĻãããžããžãĒããŧã ãįĩįšã¨čŠąãåãä¸ã§ãããžããžãĒæšæŗãčĻãĻããžããã
æåãŽé¸æčĸã¯ãããã¯ååãĢč¤éãĢãĒãå§ããĻããããˇãšãã å ãĢã¯é常ãĢå¤ããŽį°ãĒããã¤ã¯ããĩãŧããšããããããããŧãĢãĢéįēį°åĸããģãããĸãããããã¨ããããĒãã¨č¨ããã¨ã§ãã 夿´ãããšããããĢã¯ãDev į°åĸãĢãããã¤ããã ãã§ãã ããããŖãĻãããŽå ´åãéįēč ã¯ãŗãŧãããŧãšãĢ夿´ãå ããžãã ããããŽå¤æ´ããŗãŧããĒãã¸ããĒãĢãããˇãĨããžãã ãããããCI ãˇãšãã ãããšããããĢããããããéįēį°åĸãĢãããã¤ããžãã ãããĻããããããåŋ čĻãĒããžããžãĒãĩãŧããšããšãĻãĢæĨįļãããã¨ãã§ããžãã ããããįš°ãčŋããĢãĒããžãããCI į°åĸãŽéˇããĢããŖãĻã¯ããã¨ã 5 åã§ããŖãĻãã 10 åã§ããŖãĻãããŗãŧã夿´ãããšãããããã ããĢéˇãããŖãŧããã㯠ãĢãŧããĢãĒããžãã ãããĻããããčĄãããŗãĢãéįēč ã¯ãããŧãéĸãããã¨ãã§ããäģãŽãĒã¯ã¨ãšããå ĨãŖãĻãããĒãŠããžãã ã§ã¯ããŠãããã°ããŽããŖãŧãããã¯ãĢãŧããįį¸Žã§ãããŽã§ãããã?
é常ãæŦĄãĢ襨į¤ēãããå垊ã¯ãããžããžãĒãĩãŧããšãããšãĻæãŖãĻããåãDevį°åĸãäŊŋį¨ã§ããããäģåēĻã¯ãĸããĒãąãŧãˇã§ãŗãããŧãĢãĢã§åŽčĄããĻãŋãžãããã ããããŖãĻãããŽå ´åããĸããĒã¯ããŧãĢãĢã§åŽčĄãããĻãããDev į°åĸã§åŽčĄãããĻããããžããžãĒãĩãŧããšãĢæĨįļããĻããžãã ããããŖãĻãããŽãĒããˇã§ãŗãäŊŋį¨ããã¨ãéįēč ã§ããį§ã¯ããĸããĒãąãŧãˇã§ãŗãĢ夿´ãå ãããã¨ãã§ããžãã ããããŽå¤æ´ã¯ããŧãĢãĢãĢãããã¤ã§ããžãã į§ã¯ããããããšããããã¨ãã§ããžãã į§ã¯ãããæŠčŊããããšãĻãæ¤č¨ŧãããã¨ãã§ããžãã ããããåéĄã¯ãéįēč ã 1 ã¤ãŽãĸããĒãąãŧãˇã§ãŗã§ 1 äēēã§äŊæĨãããã¨ããŠããģãŠå¤ããã¨ãããã¨ã§ãã é常ãäģãŽéįēč ãåããĸããĒããžãã¯åããĩãŧããšããĒãŊãŧãšãæ´ģį¨ããčŋããŽãĸããĒãąãŧãˇã§ãŗãĢåãįĩãã§ããžãã ãããĢããããããã¯ãŧã¯ã¨ãĒãŊãŧãšãŽįĢļåãé常ãĢč¤éãĢãĒãå§ããžãã ãããĻãããéįēč ãããŧãŋããŧãšãæ ¸æģæããäģãŽéįēč ãéįēãįļãããã¨ãã§ããĒããĒãŖãå ´åãåãŗäēæ ã¯æŦåŊãĢč¤éãĢãĒããžãã ãžããDevį°åĸã§ã¯ããããĒããĢãĒãŖãĻãããããã¯ãŠãĻãä¸ãŽããŽéįēį°åĸã§åéĄãįēįããå ´åãéįēį°åĸãŽäŋŽæŖãåéĄãŽäŋŽæŖãĒãŠãŽãããĢåĨãŽããŧã ãåŧãčžŧãåŋ čĻãããå¯čŊæ§ãéĢããĒããžãã
ã§ã¯ããˇãããŦããã§ã¯ããŠãããã°å¤å´ãŽãĢãŧããã¤ãžãCIãããģãšãåãé¤ãããããå å´ãĢį§ģåããããã¨ãã§ãããŽã§ãããã? DockerãŽãŗãŗãããåŽčĄããæŠčŊãäŊŋãã°ãåãį°åĸãæ¨ĄåŖããéįēį°åĸããģãããĸããã§ããžãã ã§ã¯ããĒãĸãŧãã¯ãŠãĻãã¤ãŗããŠãšããŠã¯ããŖããããã¤ããIMããĒãˇãŧã¨ããŽAWS S3 ããąãããŽããšãĻãįŽĄįããäģŖãããĢãããˇãŗã§MinIOãããŧãĢãĢãšãŋãã¯ãĒãŠãŽS3 äēæãĩãŧããšãåŽčĄããã¨ãŠããĒãã§ããããã į§ãŽãĸããĒã¯ãžã S3ã¨čŠąããĻããã¨čĒčããĻããžãã åãããããŗãĢã¨APIã芹ããĻããžãããäģã§ã¯ããŽããŧãĢãĢãŗããŧãĢãããžããã å¤é¨ãŽã¤ãŗããŗããĒãĩãŧããšãĢé ŧãäģŖãããĢãwire mockãŽãããĒããŧãĢãäŊŋį¨ããĻããããĸãã¯ã§ãããããããžããã ããããŖãĻãį§ãŽãĸããĒãąãŧãˇã§ãŗã¯ãžã APIã¨éäŋĄããĻããŽå ´åã¯ã¤ãŗããŗããĒããŧãŋãååžããĻããžãããããšãĻãĸãã¯ããŧãŋã§ãã čŋãããåŋįã¯ãį§ãæåž ãããŽã¨åãæ§é ãĢãžã éŠåããžãããį§ãŽãĸããĒã¯ãĸãã¯ã¨čŠąããĻãããŽã§ãããŽããĻãŗãšããĒãŧã ãŽäžåéĸäŋãĒãŠãããšãĻåŽčĄããåŋ čĻã¯ãããžããã ãžããKafkaã¨PostgreSQLãããŧãĢãĢã§åŽčĄãããã¨ãã§ããžãã ãããĻãå¤ããŽããŧã ããã§ãĢããŽé¨åãčĄãŖãĻããžãã ããããįš°ãčŋããĢãĒããžããããŗãŗãããĢã¤ããĻčãå§ããã¨ãããã§į°åĸãåįžã§ããã ãã§ãĒããį°åĸãåŧˇåãå§ãããã¨ãã§ããžãã ããããŖãĻãããŽå ´åãKafkaã§äŊãčĩˇããŖãĻãããŽããįĸēčĒãããå ´åã¯ããã¸ãĨãĸãŠã¤ãļãŧãåŽčĄã§ããžãããžãã¯ãį§ãããŠããããŠãŧã ããŧã ã§ãããKafkaãåŽčĄããĻããéįēč ããĩããŧããããå ´åãåŊŧãã¯ãããĢããžãčŠŗãããĒããããããžããã ãããããããããŽKafkaã¯ãŠãšãŋããããšããĄããģãŧã¸ãå Ŧéãžãã¯æļč˛ģãããŽãĢåŊšįĢã¤ããŧãĢãäŊæã§ãããããããžããã ãããããããPostgreSQLãŽããžããžãĒããĨãĸãŗãšãĢããžãčŠŗãããĒãäēēããããããããžããã ãããĻį´ æ´ããããpgAdminãåŽčĄããããŧãŋããŧãšãã¸ãĨãĸãŠã¤ãļãŧãæäžããĻãäŊãčĩˇããŖãĻãããŽããčĻãĻãŋãžãããã ã¤ãžããããŽčãæšã¯ããŗãŗãããäŊŋį¨ããĻéįēį°åĸãæ§į¯ããã ãã§ãĒãããããĢåŧˇåãã ãŗãŗãããĩããŧãéįē ã¨åŧã°ããããŽã§ãã ããĻãį´ æ´ããããã¨ãĢãããŽãĸããĒãąãŧãˇã§ãŗããŗãŗããã§åŽčĄãããĻããĒãå ´åã§ãããããįēįãããã¨ããããžãã ãããããšãĻãŽäģãŽããšãĻãŽãĩãŧããšããŗãŗããã§åŽčĄã§ãããĄã¤ãŗãĸããĒã¯ãã¤ããŖããĢåŽčĄã§ããžãã ãããĻåŽéãäģãããããčŠĻããĻãŋãžãããã
Â
ããĸ:éįēį°åĸ(9:26)
VS codeãĢåãæŋããžãã ãžããVS Code ãĢã¯ãå ãģãŠčĻããŽã¨åããĸãŧããã¯ããŖãŽæĻčĻãį¤ēã compose ããĄã¤ãĢããããžãã ã¤ãžããPostgresããŧãŋããŧãšãPGAdminãAWSãåŽčĄãããããŽããŧãĢãĢãšãŋãã¯ããããžãã ããŽå ´åããĸããĒãäŊŋį¨ããããąããããĸãã¯ã¤ãŗããŗããĒãKafkaæ§æãĒãŠãäŊæããããŧãĢããããžããããĻãããã§ãDocker compose upãåŽčĄãããã¨ãã§ããžãã -dãčŋŊå ããĻãããã¯ã°ãŠãĻãŗãã§åŽčĄããããããĢããžãã ãããĻãããã¯ãåæ ŧããĒããã°ãĒããĒãããĢãšãã§ãã¯ãããŽäģããšãĻãããããããšããŗãĸãããããŽãĢæ°į§ããããžãã ããããæ°į§ã§ããŧãŋããŧãšãæãĢå ĨããããšãĻãį¨ŧåãããžããã ãããĻããããåž ãĄãžãã ããã§ããĢãšãã§ãã¯ãééãããŽãåž ãŖãĻããã ãã§ãã ããĻãããã§įĩããã§ãã 大ä¸å¤Ģã§ãã ãããĻäģãį§ããããã¨ããĻãããã¨ã¯ãåŽéãĢyard devãåŽčĄããĻãŋãžãããã ããããŖãĻãããŽãĸããĒãąãŧãˇã§ãŗãčĒåãŽããˇãŗã§ãã¤ããŖããĢåŽčĄããžãã įš°ãčŋããĢãĒããžãããį§ã¯ããŧããäŊŋį¨ããĻããããã¤ããŖããĢåŽčĄãããĻããžãããããŧãŋããŧãšã¨ããŧãĢãĢãšãŋãã¯ããŗãŗããã§åŽčĄãããĻããäģãŽããšãĻãŽããŽãĢæĨįļããĻããžãã ã ããį§ããããã¨ããĻãããã¨ã¯ãããŽãĒãã¸ããĒãĢããã¤ããŽããĢããŧãšã¯ãĒããããããAPIãĢ寞ããĻã¯ã¨ãĒãåŽčĄããĻãĒã¯ã¨ãšããčĄããã¨ãã§ããã¨ãããã¨ã§ãã
ããããŖãĻãããŽå ´åãį§ã¯ããã¤ããŽčŖŊåãäŊãã¤ããã§ãã 3ã¤äŊãŖãĻãŋãžãããã ãããĻãååãŽååã¨äžĄæ ŧãéäŋĄããã ãã§ãã ã ãããį§ãŽããŧãŋããŧãšãĢã¯3ã¤ãŽčŖŊåããããžããããã¯į´ æ´ãããã§ãã äģãį§ãã§ãããã¨ã¯ãããŧãŋããŧãšã§äŊãčĩˇããŖãĻããããčĻčĻåããåŋ čĻãããå ´åããžããããŠãĻãļãĢčĄããã¨ãã§ããã¨ãããã¨ã§ãã ãããĻãããã§PGadminãåŽčĄããĻãããããŧãŋããŧãšãéããã¨ãã§ããžãã ãããĻãããĒããįåãĢæãŖãĻããå ´åãããŽããšã¯ãŧãã¯åŽéãĢã¯ãããŽäŊæããĄã¤ãĢã§æ§æãããĻããžãã ããã¯ãããĢãããããŠãĢããŽããšã¯ãŧãã ãã§ãã PGAdminã§ãããčĒåæ§æããæšæŗã¯ãžã ãããŖãĻããžããããããã¯åéĄãããžããã ããããããã§ãããŧãŋããŧãšãéããã¨ãã§ããžãã ãšããŧããéããã¨ãã§ããžãã ããŧããĢãĢį§ģåããĻãããšãĻãŽããŧãŋã襨į¤ēããĻãŋãžãããã ããããŽãĸã¤ãã ãŽ1ã¤ãĢ夿´ãå ããĻãåĨãŽčŖŊåã¨åŧãŗãžãããã 夿´ãäŋåããžãã įš°ãčŋããĢãĒããžãããããŧãŋããŧãšã¨å¯žčŠąããĻããžããããããäēåŽã§ãããã¨ãč¨ŧæãããããĢãVSãŗãŧããĢæģããID 2ãŽčŖŊåãååžããã¨ãæ´æ°ãããååãéĸéŖäģããããĻãããã¨ãããããžãã ãžããã¤ãŗããŗããĒãĩãŧããšããã¤ãŗããŗããĒããŧãŋãååžããĻãããããã§ãã¤ãŗããŗããĒãŧ2ããĒã¯ã¨ãšãããã¨ã 15ãŽæ°éãåžãããããããããĢåæ ãããžãã ãããã 3ãåŽéãĢã¯ãããšããããŽãéŖãããŗãŧããŧãąãŧãšãããšãããĻããžãã ããŽããã3 ã¤ããĒã¯ã¨ãšãããã¨ãã¤ãŗããŗããĒ ãĩãŧããšãã 500 ãčŋãããžãã ãããĻäģãį§ã¯ããšããããã¨ãã§ããžããį§ãŽãĸããĒãąãŧãˇã§ãŗã¯ããĩãŧããšãããžãåŋįããĻããĒãããããŽį¨ŽéĄãŽã¨ãã¸ãąãŧãšãžãã¯ã¨ãŠãŧãąãŧãšãĢåŋįããžããã ãããĻãžããäģãŽæšæŗã§ã¯éŖãããããããĒããã¨ããį§ã¯æŦåŊãĢį°ĄåãĢå˛įŦãããã¨ãã§ããžãã
ããŠãĻãļãĢæģãã¨ãããŽå ´åã¯kafbatãäŊŋį¨ããĻKafkaã¯ãŠãšãŋãŧã§äŊãčĩˇããŖãĻããããčĻčĻåããĻããžãã ãžããčŖŊåãŽäŊæä¸ãĢå ŦéããããĄããģãŧã¸ãįĸēčĒã§ããžãã ãããĻãåŊŧããæŖããæ§é ãæãŖãĻãããã¨ãĒãŠãæ¤č¨ŧã§ããžãã ãžããããŠããĢãˇãĨãŧããŖãŗã°ããããã°ãĢãäŊŋį¨ããžãã ãžããKafkaã¯ãŠãšãŋãŧã¨å¯žčŠąãããããĢãããžããžãĒCLIãŗããŗããããšãĻãåĻãļåŋ čĻã¯ãããžããã ããĻã芹ãæģããžããããããæŠčŊããããããĢã¯ãããããŗãĢã¨ããĸããĒãąãŧãˇã§ãŗã¨å¤é¨ãĩãŧããšã¨ãŽéãŽæŊ蹥åãĢįĻįšãåŊãĻãåŋ čĻããããžãã ããŧãŋããŧãšãĢã¯ããã¤ããĒããããŗãĢããããžãã čĒåãŽããˇãŗãžãã¯ãããŧã¸ã ãĩãŧããšã§ããŧãĢãĢãĢåŽčĄãããĻãã Postgres ããŧãŋããŧãšã¨éäŋĄããå ´åãåããã¤ããĒ ããããŗãĢã芹ããĻããžãã ãããã ããããAPIãKafkaã¯ãŠãšãŋã§ãåããã¨ãč¨ããžãããäģãŽãĩãŧããšã§ãããããæŊ蹥åããĻããŧãĢãĢãŗããŧãåŽčĄããæšæŗããããžãã ãžããKey CloakãŽãŗããŧãããŧãĢãĢã§åŽčĄããĻãããšããĻãŧãļãŧã ãã§ããˇãŗä¸ã§OAuthãžãã¯OIDCčĒč¨ŧãããŧãĢãĢãĢåŽčĄãããĸããĒãąãŧãˇã§ãŗãæã¤ããžããžãĒãĻãŧãļãŧãããĢãŊããŽããžããžãĒããŧãĢãããšãã§ãããããĢããã¨ããããŧã ãčĻããã¨ããããžãã įš°ãčŋããĢãĒããžãããããããŽããããŗãĢã¨ãĩãŧããšéãŽæŊ蹥åãĢįĻįšãåŊãĻããĩãŧããšãĢããŖããã¨ããAPIãåããŖãĻãããã¨ãįĸēčĒããã¨ãããŽį¨ŽãŽæŠäŧãã¯ãããĢį°ĄåãĢãĒããžãã
ããŽå ´åããŗãŗããåãããĻããĒããĸããĒããæĨįļãããããĢããŗãŗããããŧããããšããĢããããããžãã ã§ããããį§ã¯PostgresãéåļããĻããžããã į§ã¯ãããããšãããˇãŗãĢå Ŧéããã ãã§ãã ãããĻãããŽå ´åãCLIãäŊŋį¨ããĻæĨįļããããŧãĢãĢããšãããĻãŧãļãŧãĢæĨįļãããã¨ãã§ããžãã ãããããžããįĩããŖããããŗãŗãããåŖãã ãã§ãã į§ãŽããˇãŗãĢã¯äŊãã¤ãŗãšããŧãĢãããĻããããæŦĄãŽããã¸ã§ã¯ããĢé˛ããã¨ãã§ããžãããææĨäģäēãĢæģãŖãĻãšããŗãĸãããã䏿ããã¨ããããåéãããã¨ãã§ããžãã ããããããŽãŗãŗãããŽįžããã§ãã ãããĻæåžãĢãéįēį°åĸãæ§į¯ããĻããã¨ããäģãŽããŧãĢãčŋŊå ãããã¨ãæ¤č¨ããĻããã¨ãããã¸ãĨãĸãŠã¤ãļãŧããĄããģãŧã¸ãããĒããˇãŖãŧããžãã¯éįēč ãããŠããĢãˇãĨãŧããŖãŗã°ããããã°ãããåšæįãĢčĄããŽãĢåŊšįĢã¤į°åĸãŽæ§į¯ãĢåŊšįĢã¤äģãŽããŧãĢãĒãŠãéįēį°åĸãåŧˇåããäģãŽããŽã¯äŊã§ããã ãããéįēį°åĸã§ãã
Â
įĩąåããšããŽį§ģčĄ (15:05)
įĩąåããšããĢã¤ããĻ芹ããžãããã įĩąåããšãã¯ãå¤ããŽäēēãįĩąåããšãã¨ã¯äŊããĢã¤ããĻį°ãĒãčããæãŖãĻãããããæĨŊããããŽã§ããããã§ã¯ããããåŽįžŠãããããĢå°ãæéãč˛ģãããžãã å ˇäŊįãĢã¯ããŗãŧãããããˇãĨããå¤å´ãŽãĢãŧããŽããŽé¨åãčĻãĻããĸããĒãąãŧãˇã§ãŗãå¤é¨äžåéĸäŋã§åäŊãããã¨ãæ¤č¨ŧãããå ´æãããŧãŋããŧãšãå¤ããŽįšã§éįēã§čĻãããŽãĒãŠãããšããĢãŧãã§ããããŠãŽãããĢčĄãããčĻãĻããžãã įš°ãčŋããĢãĒããžãããããšããčĄãã°čĄããģãŠãããã¯é常ããããã¤åãŽæåžãŽãšãããã§ãã ããããŖãĻãããã§ãŽãĢãŧãå ãŽããšããĢããŦãã¸ãåĒããĻãããģãŠããŗãŧããããé ģįšãĢãããã¤ãããã¨ãĢæ Ŗããžãã
ããĻãįĩąåããšããĢã¯å¤ããŽčǞéĄãäŧ´ããžãã ããžããžãĒãĩãŧããšãįŽĄįããåŋ čĻããããžãã ãããĻãããããCIã§åŽčĄããã¨ãã¯ããã§ãĢãŠããã§į¨ŧåãããĻãããããšããŗãĸããããåŋ čĻããããžãã ã§ãããããŠã¤ããĩã¤ã¯ãĢãŽįŽĄįããžãã¯ãããããĩããŧããããŗįļæãããããŽã¤ãŗããŠãšããŠã¯ããŖãŽãŋãŽįŽĄįãéå§ããåŋ čĻããããžãã ããšãéã§ããããŽį°ãĒãåãĩãŧããšãĢãĒãģãããããĢã¯ãŠãããã°ããã§ãã? ããšããŽåŽčĄãã¨ãĢããŧãŋããĒãģããããåŋ čĻãããããšããšã¤ãŧãããããã¨ããããŖãĻããå ´åãããã°ãåããšããį¸äēäŊį¨ããå¯čŊæ§ãŽããããŧãŋãĢéĸããį°ãĒããĢãŧãĢãæåž å¤ãæã¤ãĒãŠãããŽãšã¤ãŧãå ¨äŊãä¸åēĻãĢåŽčĄã§ããå ´åããããžãã ããããããŠãããŖãĻæ¸ããŽã§ãããã? ãããč¸ãžããĻããĩãŧããšãŽãŠã¤ããĩã¤ã¯ãĢãįŽĄįããåŋ čĻãããå ´åãåŽéãĢããšããäŊæããåãĢããããããŠãŽãããĢč¨åŽããã°ãããŽã§ããããã ãžããããšãĻãŽããŽãã¯ãŠãĻããĢãšããŗãĸããããčŊåããĒãå ´åããžãã¯CIį°åĸãæ´ģį¨ããĻããå¯čŊæ§ãŽããå ´æã§ããããããŧãĢãĢã§ãŠãŽãããĢåŽčĄããžãã?
ãããĻãã§ããã°ãį§ããĄãæãã§ãããŽã¯ãįæŗįãĒããšãããŠããããĢåããĻåãįĩããã¨ã§ãã ããŽãããä¸é¨ãĢãĻãããããšãããããžãã įĩąåããšãããããįĩąåããšããå¤ããã°å¤ããģãŠããĸããĒãąãŧãˇã§ãŗãäģãŽãĩãŧããšã¨ããžãéŖæēãããã¨ããããŖãĻããžãã ããããå¤ããŽå ´åãããããŽį°ãĒããĩãŧããšãįŽĄįããåŋ čĻããããããããã¯éŖãããã¨ãããããžãã ããŽãããå¤ããŽå ´åãããŧã ã¯ããšããŽį æč¨ã§įĩããããã¯ããįĩąåããšããããžãčĄãããĻããĒããŽã¯å¤§å¤ã ããã§ããã¨ããæããĢãĒããžãã ãšããŧã¸ãŗã°į°åĸãæŦįĒį°åĸãĒãŠãĢãããã¤ããã ãã§ãã ãžãããããã¤ãããããã¨ãŗãããŧã¨ãŗããžã㯠UI ããšãããããĢčĄãäēåŽã§ãã ããĻãįš°ãčŋããĢãĒããžããããããã¤ããĻæåž ããĒããããĢãéŠåãĒããšãæ§é ãåžããĢã¯ãŠãããã°ããããčãããã¨æããžãã ãããããŗãŧããå ŦéãããåãĢčĒäŋĄãæã¤ãã¨ãã§ããžãã
Â
TestcontainersãŽį´šäģ (17:43)
ããŽãããĢãTestcontainersããŦãŧã ã¯ãŧã¯ã¨ãŠã¤ããŠãĒãĢã¤ããĻčĒŦæããžãã ã¤ãžããTestcontainersã¯ãããã§čŋ°ãšãĻãããããĢãããšãäžåéĸäŋãŽä¸æįãĒčģŊéã¤ãŗãšãŋãŗãšãæäžãããããŽãŠã¤ããŠãĒãŽãĒãŧããŗãŊãŧãšãŗãŦã¯ãˇã§ãŗã§ãã įĩåąãŽã¨ãããããã¯ããã°ãŠãããŖãã¯ãŗãŗããã§ãã äģĨåã¯ãDocker compose upã¨č¨ããComposeãããããããYAMLãããĨãĄãŗãã§åŽŖč¨ããžããããTestcontainersãäŊŋį¨ããĻãããã¯é常ãĢããã°ãŠã įãĒãĸãããŧãã§ããã ãããĻãã¯ãããããĢã¯ãããããŽæ°åãããããĢãŽæ°ããããŗįĩįšããããäŊŋį¨ããĻããããįĸēčĒã§ããžãã ãããĻãããã¤ããŽå¤§ããĒäŧį¤žãŽååããããžãã åŽéãNetflixã¯ãTestcontainersãã¨ãŗã¸ããĸãĒãŗã°æåãããšãæåãĢãããŽãĢãŠãŽãããĢåŊšįĢãŖãããĢã¤ããĻããĒãčĒãŖãĻããããããčĻããŽã¯æŦåŊãĢé åįã§ããã
ããããįš°ãčŋããĢãĒããžãããããŽããã°ãŠã ãĢãããĸãããŧããĢããããããããšãčĒäŊãŽãŠã¤ããĩã¤ã¯ãĢãĢįĩãŋčžŧããã¨ãã§ããžãã ããĻãããŽäžã§ã¯ãããŽįšåŽãŽįģåãŽpostgresãŗãŗãããĢéĸéŖäģããããpostgresã¨ãã夿°åpostgresã§åŽįžŠããããŗãŧããšããããããããžãã ããŽå ´åãããŽã¤ãĄãŧã¸ã¯Docker HubããæĨãĻããžãããããã¯įŦčĒãŽå é¨ãŦã¸ãšããĒãããŽįŦčĒãŽã¤ãĄãŧã¸ãĢãããã¨ãã§ããžãã ãããåŽčĄããĻãããŗãŧããĢãããŠã¤ããŧã ãŦã¸ãšããĒããããĢã§ããčŗæ ŧæ å ąãããéãããŠãããã§ãã¤ãĄãŧã¸ãäŊŋį¨ã§ããžãã ããããŖãĻããããããšããĢããŠã°ã¤ãŗããã¨ãããšããŽåŽčĄåãĢãŗãŗãããéå§ããããšããåŽčĄããĻãããåŽäēããããŗãŗãããã¯ãĒãŧãŗãĸããã§ããžãã ãžããããšããŽį¯å˛ãĢåŋããĻãããŽãšãŋãŧããĸãããŽåč§ŖãããšãĻãŽããšãã§čĄãããä¸éŖãŽããšãã§čĄããããžãã¯äŊã§ã鏿ã§ããžããããã¯ããã°ãŠã ã¤ãŗãŋãŧãã§ã¤ãšãŽä¸é¨ã§ãããããããŽåļåžĄãå¯čŊã§ãã
įžå¨ã§ã¯ãããŧãŋããŧãšããĄããģãŧã¸ããĨãŧãAIæŠæĸ°åĻįŋãĸããĢãĒãŠãå¤ããŽä¸čŦįãĒãĻãŧãšãąãŧãšãĢ寞åŋããå¤ããŽé ŧããĢãĒããĸã¸ãĨãŧãĢã¨ãããĢäŊŋãããĸã¸ãĨãŧãĢããããžãã ã§ããããæŦåŊãĢč¯ããĸã¸ãĨãŧãĢããããããããžãã åŽéãį§ã¯ããããããŠãĻãļã§ãããĢåŧãŖåŧĩãåēããžãã ããŽãããããžããžãĒãĸã¸ãĨãŧãĢããããããžããžãĒãĢãã´ãĒãčĻããã¨ãã§ããžãã ãããĻãããĒãã¯ããããŽããĄãŽ1ã¤ãæžãŖãĻãããäŊŋããã¨ãã§ããžãã ãžããå¤ããŽäŧæĨãTestcontainersãäŊŋãå§ããã¨ãįŦčĒãŽãĸã¸ãĨãŧãĢãäŊãå§ãããŽã§ãåŽéãĢã¯ãĸã¸ãĨãŧãĢã¯åãĒããŠãããŧã§ãããTestcontainersãããããããĒãããŖããŽä¸ãĢããåĨãŽéĢãŦããĢãŽæŊ蹥åãŽãããĒããŽã§ãã äžãã°ãKafkaãäžãĢã¨ãã¨ãKafkaã1ã¤ãŽãŗãŗããã§åŽčĄã§ããããŽãĢãĒãåã¯ãZookeeperãåŽčĄããåŋ čĻããããžããã ãããĻãį§ã¯Kafkaãĸã¸ãĨãŧãĢãäŊŋį¨ããžãã ãããĻãã¯ããããã¯į§ãKafkaãŽã¯ãŗãŠã¤ããŧãæãŖãĻãããããĢčĻããžãããčå°čŖã§ã¯ãåŽéãĢã¯ãZookeeperãčĩˇåãã褿°ãŽãĩãŧããšãæĨįļããããĢãšãã§ãã¯ãåæ ŧãããŽãåž ãŖãĻãKafkaãčĩˇåãããããŽæŊ蹥åã§ãã æŖį´ãĒã¨ãããããĒãã¯ãŧãĢãĒæŊ蹥įģã§ãã ããŽãããå¤ããŽäŧæĨãįĩįšããįŦčĒãŽãĩãŧããšãã¯ãŧã¯ãããŧãĒãŠããĩããŧããããããŽįŦčĒãŽãĸã¸ãĨãŧãĢãäŊæãå§ããã§ãããã
ããĻãããããŽããšããæ¸ããĻããĻãããã§ãããĢããĸãčĄãã¨ããéįēč ã¨ããĻããããŽããšããč¨čŋ°ããããŧãĢãĢ ããˇãŗã§åäŊãæ¤č¨ŧã§ãããã¨ããããããžãã ããĻãCIãååžããã¨ãŠããĒããžãã? ãžããå¤ããŽCIį°åĸã§ã¯ãDockerã§DockerãåŽčĄã§ããĒãå ´åããKubernetesãããã§åŽčĄããĻããĻãå¯žčŠąãããããŽDocker CLIãDockerã¨ãŗã¸ãŗãããĒãå ´åãĒãŠãå°ãåļéãããĻããããããã¯ããĻãŗãããĻããããããã¨ããããžãã Testcontainers Cloudã¯ããŗãŗãããŽåŽčĄãã¯ãŠãĻããĒãŊãŧãšãĢå§äģģã§ãããããĢãĒãŖãããŽåéĄãč§ŖæąēãããŽãĢåŊšįĢãĄãžãã ãããĻåēæŦįãĢãåŋ čĻãĒã¨ããĢåčģĸããä¸čĻãĢãĒãŖãã¨ããĢåč§Ŗããžãã ãããĻãããã¯äŋĄããããĒããģãŠéãã§ãã ãããĻãããã¯ããã§ãããĢããããžãã įš°ãčŋããĢãĒããžãããįšãĢCIį°åĸã§ã¯ãé常ãĢ貴éãĒãĒãŊãŧãšã§ãã
Â
ããĸ: Testcontainers (21:30)
ããã§ã¯ãIntelliJãĢã¸ãŖãŗãããžãã ãããĻãããŽIntelliJããã¸ã§ã¯ãããããSpringbootãĸããĒãąãŧãˇã§ãŗã§ãã ãããĻããããĢããšãããããžããŽã§ãããŽããŦãŧã¯ãã¤ãŗããåé¤ããžãã åēæŦįãĢã¯ããĸããĒãąãŧãˇã§ãŗããšããŗãĸããããĻAPIããããããããŧãŋããŧãšãĢįŠãäŋåãããĻãããã¨ãæ¤č¨ŧããžãã ãžããRedisãäŊŋį¨ããĻããžãã ã§ããããįš°ãčŋããĢãĒããžãããããšãĻãæŠčŊãããã¨ãįĸēčĒããĻãã ããã ããŽįšåŽãŽããšããąãŧãšã¯ãPostgresããŧãŋããŧãšããšããŗãĸããããRedisããšããŗãĸããããã¨ããæŊčąĄãæĄåŧĩããĻããžãã ããĻãį§ããã åŧãŗåēãã¯ãŧãĢãĒãã¨ãŽ1ã¤ã¯ãããã¯SpringbootããŦãŧã ã¯ãŧã¯ãŽä¸į¨ŽãŽįšåĨãĒįĩąåã§ãããPostgresãčĩˇåããã¨ã å Ŧéãããããŧãã¨čĄ¨į¤ēãããžã 5432ã ããĻãããã¯åŋ ããã 5432ã§ããšããĢå Ŧéãããããã§ã¯ãããžããã äŊŋį¨ããã¨ãã§ãĄãŠãĢããŧãã鏿ããã ãã§ãã ãããããĩãŧããšæĨįļãĸãããŧãˇã§ãŗã¯åēæŦįãĢãããã¯ãŗãŗããã§ãããããčĻãĻãPostgresãŗãŗããã§ãããã¨ã夿ããåŽčĄä¸ãŽãŗãŗããããæ§æãæŊåēããĻãæŽããŽSpringæ§æãæ´æ°ãããã¨ãį¤ēããĻããžãã ããããŖãĻãããŽå ´åããŠãŗãã ãĒããŧãã鏿ããã ãã ã¨ããžããã 50000ã ããŽãããPostgres ãããŧã 50000ã§čĩˇåããã¨ãJDBC URL ã¯ãããŽå ŦéããŧããŽãŗãŗãããæããããĢčĒåįãĢåæ§æãããžãã įš°ãčŋããĢãĒããžãããį§ã¯ãããĢã¤ããĻäŊãããåŋ čĻã¯ãããžããã ããã§ãŽRedisãĢã¤ããĻãåããã¨ãč¨ããžãã
ããã§ã¯ãããããŽããšããåŽčĄããĻãŋãžãããã ãããããšãĻãåŽčĄããžãããã ãããĻããããčĄãŖãĻããéãį§ã¯ãããŽå´éĸãžãã¯ãããˇãĨããŧãã§Docker DesktopãåŧãŖåŧĩãã¤ããã§ãããããĻããã§įŠäēãå§ãžãã¨ãį§ã¯äģãããTestcontainersã¯ãŠãĻãã§åŽčĄããĻãããã¨ãããããžãã ã ãããæåãĢããŽããĸããããžãã ãĒããˇã§ãŗãæãĢå Ĩããžããã ããŽããããŗãŗãããåŧãŖåŧĩãŖãĻããã§äŊããå§ããĻãããã¨ãããããžãããåŽéãĢã¯į§ãŽããŧãĢãĢããˇãŗã§ã¯äŊãåŽčĄããĻããĒããã¨ãĢæ°äģãã§ãããã ãããĻãããã¯åéĄãããžããã ããã§ããį§ãŽããšãããšã¯ãŗãŗãããäŊŋį¨ããĻããžãã ãžããããŽå ´åã¯ãã¯ãŠãĻãã§ä¸čļŗããĻãããŗãŗãããĢæĨįļãããããĢäŊãããåŋ čĻã¯ãããžããã§ããã ããĻãããã¯ãĢã¤ããĻã¯ãå ãĢé˛ãã§ãäģããããŧãĢãĢã§åŽčĄãããããĢåæ§æããžãã ãããĻããŽå ´åãããŦãŧã¯ãã¤ãŗããč¨åŽãããã¨æããžãã ããã§æģããžãããã ãããĻäģãį§ã¯ããŽįšåŽãŽããŽããããã°ããžãããã åŗã¯ãĒãã¯ãĄããĨãŧãįģéĸå ąæãĢ襨į¤ēãããĒããŖããã¨ã¯įĨãŖãĻããžããããžããããŽįšåŽãŽããšããåŽčĄããĻããžãã ããŦãŧã¯ãã¤ãŗããč¨åŽããžãã ãŗãŗãããčĩˇåãããã¨ãããããžãã ãããĻãããŦãŧã¯ãã¤ãŗããããããããŽãåž ãĄãžãããã 大ä¸å¤Ģã§ãã ããããŖãĻãããŦãŧã¯ãã¤ãŗãããããããžãã
ãããĻãããã§ãããˇãĨããŧããå ¨įģéĸ襨į¤ēãĢããĻãŋãžãããã ã§ã¯ãããŧãŋããŧãšãčĻãĻãŋãžãããã ãããĻãį§ã¯åŽčĄããĻãããšããĻãŧãļãŧã¨ããĻæĨįļããžãããã ãããĻããããĢããŧããĢã襨į¤ēãããžãã ããĸ ã¨ãŗããŖããŖãã æ ã鏿ããžãã ãããĢ䞥å¤ããããã¨ãããããžãã ãããĻãããšããããžãã ããã§åŧãä¸ããžãã å¤ãäŊãããŽå¤ãæã¤ãã¨ãæåž ããĻãããã¨ãįĸēčĒããžãã ã ãããäģãããããčĒŋæ´ããĻããã¤ããã§ãã ããããŖãĻãããĸã¨ãŗããŖããŖãŽæ´æ°č¨åŽå¤ã¯ãããšããĢå¤ąæããåĨãŽå¤ãã¨įãããĒããžãã ãããĻãããä¸åēĻ鏿ããã¨ãæ´æ°ãããĻãããã¨ãããããžãã 大ä¸å¤Ģã§ãã ããã§IntelliJãĢæģããžãããã ãããĻãããã§ã¯ã¨ãĒãåŽčĄãããããĢæį¤ēããžãããã ããããŖãĻãããã§ãŽįĩæãĒãã¸ã§ã¯ããĢã¯ãããšããĢå¤ąæããäģãŽå¤ã¨äģãŽå¤ããããã¨ãããããžãã įš°ãčŋããĢãĒããžãããããã§ã¯ããŧãŋããŧãšããããĢãããŠã¤ãããĸã§ãã ããĻãæãããĢãããã¯ããšããĢå¤ąæããžãã ããšããä¸åæ ŧãĢãĒããĒ㊠ãããĻãåŽéãĢããããĻããéãĢããããšãĻãŽããšããäģãŽãŗãŗããã¯ãã§ãĢæģãã§ããžãŖãĻããžãã
ãžããTestcontainersããŦãŧã ã¯ãŧã¯ãäŊŋį¨ããã¨ãããšããå¤ąæãããã¨ãããããžãã ãããĢåēåã襨į¤ēãããžãã įš°ãčŋããĢãĒããžãããããã°ãŠã ã§ãŗãŗããããšããŗãĸããããĻãããããį§ãŽãĸããĒãąãŧãˇã§ãŗãĢåŋ čĻãĒããŽã§ããã¨ã ãč¨ããã¨ãã§ããžãã ãããĻããŽå ´åããããį§ãŽspringbootãŗãŧããĢããŠã°ã¤ãŗãããŽã¯é常ãĢį°Ąåã§ãã ããããSDKã¯ããžããžãĒæšæŗã§æŠčŊããĻããžãã į°ãĒãč¨čĒãį°ãĒãããŦãŧã ã¯ãŧã¯ãĒãŠã ãããĢã¯ãæŦåŊãĢãæŦåŊãĢã¯ãŧãĢãĒ䞥å¤ããããããããžãã ãããĻäģãåãŗãį§ã¯ããŽãŗãŧãããŗããããããã¨ãã§ããžãã į§ã¯ãããį§ãŽãŗãŧããĒãã¸ããĒãĢãããˇãĨãããã¨ãã§ããžããį§ãŽCI / CDãˇãšãã ã¯ãã¤ããŠã¤ãŗã§ãããåŽčĄããããTestcontainersCloudãäŊŋį¨ãããã¨ãã§ããžãã ãããĻãããã¯ãžãŖããåããããĢæŠčŊããžãã ãããĻäģãį§ã¯čĒåãŽãŗãŧããæŦįĒį°åĸã§æåž ãŠãããĢåäŊããã¨ããčĒäŋĄãã¯ãããĢ大ãããĒããžããã
Â
čåŧąæ§čŠäžĄãŽãˇãã (26:32)
æåžãĢã芹ãããããŽã¯ãčåŧąæ§čŠäžĄãŽãˇããã¨ããģããĨãĒããŖå ¨čŦãĢã¤ããĻã§ãã SDLCãĢ芹ãæģãã¨ãéįēč ããããčããã¨ãŽ1ã¤ã¯ããŗãŧãããããˇãĨããĻããĢããããšããåž ããĒããã°ãĒãããæįĩįãĢã¯ãģããĨãĒããŖčŠäžĄãåŽčĄããããŽãåž ããĒããã°ãĒããĒãã¨ãããã¨ã§ãã ãããĻããããģãšãŽããŖã¨åžãĢãĒãŖãĻãããããŖã¨ãäžåéĸäŋãå¤ããĒãŖãĻããããžãã¯ããã§äŊããäŋŽæŖããåŋ čĻãããã¨čãããžãã ã§ã¯ããŠãããã°ãããå°ãåˇĻãĢåãããĻãå°ãæŠãįŠäēãč§Ŗæąēã§ããã§ãããã?
įžå¨ããŗãŗããã¯ããĸããĒãąãŧãˇã§ãŗãŽãããąãŧã¸ãŗã°ã¨ãģããĨãĒããŖãĢã¤ããĻãŽčãæšãĢãį°ãĒããĸãããŧãã¨æĻčĄããããããĻããžãã ããããŖãĻããŗãŗãããäŊŋį¨ããĻãį°åĸå ã§ãĸããĒãąãŧãˇã§ãŗãæ§į¯ãããĸããĒãåŽčĄããåŋ čĻãããããšãĻãŽå ´æãĢãĸããĒãąãŧãˇã§ãŗãææ ŧãããžãã ãšããŧã¸ãŗã°į°åĸãĢį§ģåããĻVMãååžããåŋ čĻãĒããŽãããšãĻã¤ãŗãšããŧãĢããæŦįĒį°åĸã§ãåãããŽãã¤ãŗãšããŧãĢãããã¨ã¯ãããããžããã äģã§ã¯ãåéĄãįēįããã¨ããĢããããããšãĻãŽããˇãŗãĢããããéŠį¨ããåŋ čĻããããžãã ããããį§ã¯ã¤ãĄãŧã¸ãæ§į¯ããĻããããĸããĒãąãŧãˇã§ãŗãåŽčĄããåŋ čĻãããããšãĻãŽå ´æã§ãããåŽŖäŧããĻããžãã ã¤ãžãããĸããĒãąãŧãˇã§ãŗãĢčåŧąæ§ãããå ´åã¯ãæ°ãããŗãŗããã¤ãĄãŧã¸ãããĢãããã ãã§æ¸ãŋãžãã ããããããã¯ãžããããŽã¤ãĄãŧã¸ãéįēį°åĸã§ããŧãĢãĢãĢããĢãã§ããã°ããŗãŗããã¤ãĄãŧã¸ããããˇãĨãĒãããĻCIãˇãšãã ãããĢãããĻåŽčĄããåãĢããŗãŗããã¤ãĄãŧã¸ãĢåéĄãããããŠãããįĸēčĒã§ããã¨ãããã¨ãæåŗããžããįčĢįãĢã¯ãCI/CDãˇãšãã ãããĢãããĻããããŽã¨ãžãŖããåãã¤ãĄãŧã¸ãããŧãĢãĢã§ããĢãããåēåã¨įĩæãååžã§ããã¯ãã§ãã įã ãããĻãããããã Docker Scout ãæåŗããĻãããã¨ã§ãã
Â
Docker Scoutã¨ã¯äŊã§ãã? (28:20)
Docker Scout ã¯ããĩãŧããšãšã¤ãŧããŽä¸é¨ã§ããčŖŊå㎠1 ã¤ã§ããã䏿ĨãŽįĩãããĢč¯ãã¤ãĄãŧã¸ãæ§į¯ããĻããããŠãããįĨããŽãĢåŊšįĢãĄãžãã ãŠãŗãŋã¤ã æ§æã¨čåŧąæ§ãCDEããĒãŧããŗãŊãŧãšãŠã¤ãģãŗãšãŽåéĄãĒãŠãĢéĸããį§ãŽįĩįšãŽããĒãˇãŧãæēãããĻããžãã? ãããĻãåéĄãčĻã¤ããŖãã¨ããĢã¯ãéįēč ã¨ããĻããŠãŽãããĢäŋŽæŖããã°ããããĢã¤ããĻãåŽį¨įãĒæ´å¯ãåžããã¨ãã§ããžãã ããĻãį§ãčĻãĻããããžããžãĒæŠčŊã¨ããžããžãĒããĨãŧãĢåŋããĻããããæäžããããã¤ããŽį°ãĒãæšæŗããããããã§ã¯ãããããŽåäŊããããĢčĻãĻãããžãã
ã¤ãžããæŠčŊãŽ1ã¤įŽã¯éä¸åããĨãŧã§ãã ä¸å åãããWebãããĢãéããĻãįĩįšå ¨äŊãčĻæ¸Ąããã¨ãã§ããäģãŽãĒãã¸ããĒãCI/CDãˇãšãã ã¨ãŽããžããžãĒįĩąåãæ´ģį¨ããĻããŊãããĻã§ãĸãĩããŠã¤ãã§ãŧãŗå ¨äŊãŽæ´å¯ãåžããã¨ãã§ããžãã éįēč ã¨ããĻãæ¨åĨ¨ãããã¯ãŧã¯ãããŧãååžãããŠãŽãããĢåéĄãäŋŽæŖããžãã? ãããĻãåŽå ¨ãĒéįēãŽåŠããåããĻãįģååæãčĄããįŠäēããŠãŽãããĢįēįããĻããããįč§Ŗãããã¨ãã§ããžãã
Â
ããĸ: Docker Scout (29:31)
ããã§ã¯ãããã§åŽéãĢčŠĻããĻãŋãžãããã į§ããããã¨ããĻãããã¨ã¯ããžã scout.docker.com ãéããããã§ããĸį°åĸãĢå ĨããžããããŽįšåŽãŽããĸį°åĸã§ã¯ãããĒãå¤ããŽį°ãĒãããĒãˇãŧãä¸é¨ãĢ襨į¤ēãããããããŽããã¤ãã¯čåŧąæ§ãĢåēãĨããĻãããä¸é¨ã¯ããã§ãĒããã¨ãããããžãã ãã¨ãã°ãããŽæåãŽãĻãŧãļãŧ (ãããŠãĢããŽéãĢãŧã ãĻãŧãļãŧ) ã¯ãã¤ãĄãŧã¸ãæĸåŽã§éãĢãŧã ãĻãŧãļãŧã¨ããĻåŽčĄããããããĢæ§æãããĻããã¨ããįĩįšãŽããĒãˇãŧãč¨åŽãããã¨čããĻããžãã ããŽå ´åãã¤ãĄãŧã¸ã¯ 1 ã¤ã ãã§ãįŖčĻãããĻãããæēæ ããĻããžããã ã¤ãžããããŽįšåŽãŽæŋįãčĻãĻãŋãžãããã ããŽįšåŽãŽã¤ãĄãŧã¸ã¯æēæ ããĻããžããã ããã§ã¯ãéãĢãŧããĻãŧãļãŧã¨ããĻåŽčĄããããããĢäŋŽæŖããžãããã ãžãããŗããŧãŦãããŽãĒãŧããŗãŊãŧãšãŠã¤ãģãŗãšãããã§æŗ¨æããšãįšãčåŧąæ§čŠäžĄ(å¤ãããŧãšã¤ãĄãŧã¸ãäŊŋį¨ããĻããããæĒæŋčĒãŽããŧãšã¤ãĄãŧã¸ãäŊŋį¨ããĻããã)ããĩããŠã¤ãã§ãŧãŗãŽčĒč¨ŧãåŽéãĢã¤ãĄãŧã¸ãĢæˇģäģãããĻããããĒãŠãäģãĢãéĸéŖããããŽããããžãã
ã¤ãžããããã¯į§ããŠãŽãããĢããŖãĻããããĢã¤ããĻãŽįĩįšæ¨ĒæįãĒčĻįšãä¸ããĻãããã ãã§ãã? ãžããæ°ããčåŧąæ§ãįēčĻãããæ°ããCVEãįē襨ãããã¨ããŗãŗãããŽåĒããįšãŽ1ã¤ã¯ããŊãããĻã§ãĸé¨å襨(SBOM)ãåēæŦįãĢãããã¯ãšãŽä¸čēĢããŗãŗããã¤ãĄãŧã¸ãŽä¸čēĢãį¤ēããĢãŧã´ãããã§ãšãã¨ããĻæŠčŊãããã¨ã§ãã ããŽãããæ°ããčåŧąæ§ãåēãĻããããããŽčåŧąæ§ãããŽããŧã¸ã§ãŗãŽããããŽãããąãŧã¸ãĢåŊąéŋãä¸ããããŠãããåį´ãĢã¯ããšãã§ãã¯ããã ãã§ãã æļŧããã SBOMãĢã¯ããŽčåŧąãĒãããąãŧã¸ãå ĨãŖãĻããĻããããéããĻãããããã¨č¨ããã ãã§ãã ããŽCVEããããŽåŊąéŋãåããã¤ãĄãŧã¸ãčĻãĻããããĢčŠŗããåĻãŗããŠãŽãããĢäŋŽæŖããããĒãŠãåĻãŗãžãããããšãĢãĻããããããããžãã
ããĻãéįēč ã¨ããĻããããĢããããŧãĢãŽããã¤ããčĻãĻãŋãžãããã ãããĢããã¸ã§ã¯ãããããžãã ããã¯ããŧãããã¸ã§ã¯ãã§ãããããŽå ´åã¯Dockerfileããããžãã ããã¯ãããĸãŗãšããŦãŧãˇã§ãŗãŽããã ããĢå¤ãDockerfileã§ãã ããŧã 16ããããĢãããžãã ãããąãŧã¸JSONããŗããŧããžãã ã¤ãŗãšããŧãĢãčĄãŖããããĸããĒãŽãŗãŧãããŗããŧãããããžãã ããã§ã¯ãå ãĢé˛ãã§DockerããĢããčĄãããããScoutããĸv1ã¨åŧãŗãžãã ãããĻãããã¯æ§į¯ãããã§ãããã ãããĻããããäģĨåãĢåŽčĄãããŽã§ãããŽãģã¨ããŠãããŖããˇãĨããããŽã¯ããĒãéãã§ãã ãããĻãDocker ScoutãŽã¯ã¤ãã¯ããĨãŧããããĢåŽčĄã§ããžãã ã ãããããã§ããŗããããããã ã ãããĻããšãĢãĻããŽããĸã¨1ãããŖãĻãŋãžãããã ã§ããããåãŗãããŽSBOMãčĻãĻããããĢã¯ãŠãŽãããĒåéĄãåå¨ãããŽããčããĻããžãã ããĻãããã§CLIãæäŊããĻããžãããGUIãããˇãĨããŧãã§ãããããããĢčĄããã¨ãã§ããžãã ããããScoutãčĒčããĻãããã¨ãŽ1ã¤ã¯ããŗãŗããã¤ãĄãŧã¸ãč¤éã§ããã¨ãããã¨ã§ãã ãããã¯åą¤ã§ã§ããĻããžãã ã§ã¯ãį§ããããĢčåŧąæ§ãæãŖãĻããã¨ããããã¯į§ãåãįļãã ããŽããæĨãĻãããŽã§ãããã? į§ã¯æĒãããŧãšããå§ããžããã? ããã¨ããį§ãæ§į¯ããã¤ãĄãŧã¸ãéããĻããããŽåéĄãå°å Ĩããžããã? ããããŖãĻãããŽå ´åãããŧãšã¤ãĄãŧã¸ãããã§ããĒããŽæ°ãŽčåŧąæ§ãå°å ĨããĻãããã¨ãããããžãã ããããããŧãšã¤ãĄãŧã¸ãããŧã 16-ãĸãĢãã¤ãŗããããŧã 18ãĸãĢãã¤ãŗãĢ夿´ããã¨ãã¯ãĒããŖãĢãĢã 1 ãã 0 ãĢä¸ãããéĢ㯠4 ãã 0ãĢããããŖãĸã 㯠9 ãã 0 ãĢãäŊã¤ãĄãŧã¸ã 0 ãĢãĒããžãã ã ãããããã¯ããĒãč¯ãįļæ ã§ãã ã§ã¯ãããŽå¤æ´ãčĄããžãããã 大ä¸å¤Ģã§ãã
ããã§ v2 ãããĢãããžãããã ãããĻäģãį§ãåããã¨ãã§ãããããĢãĒãŖãã ScoutãŽã¯ã¤ãã¯ããĨãŧãããŖãĻãŋãžããã v2ã ããŽå ´åãSBOMãåæããããŽãåž ã¤åŋ čĻããããžãã ãããĻããããĢã¯æ°į§ãããå ´åããããžãã ååããŽããĸãčĄãŖãã¨ãã18ã§ã¯ãĒãããŧã20ãĢčĄãŖãã¨æããžããã¤ãžããã¤ãŗããã¯ãšäŊæãčĄãŖãĻãããã¨ãããããžãã äģã¯ãããæãĢå Ĩããžããã ãããĻãžããį§ããĄã¯ããã§ããĒãåĒããĻãããã¨ãããããžãã ãããããããĢã¯ãžã ããã¤ããŽčåŧąæ§ããããã¨ãããããžãã ããŧãšã¤ãĄãŧã¸ããã¯ååžã§ããžããã§ããã ãĒããģãŠãããã¯į´ æ´ãããã§ããã ã ãããį§ã¯ããã§äŊãäģãŽãã¨ãããžããã ãããĻãCVEãčĻããã¨ãã§ããžãã ã¤ãžããDocker Scoutã¯CVEã§ãã ãããĻãããã¯į§ãĢããĒããŽåēåãä¸ããã§ãããã ãããĻãį§ã¯ExpressãäŊŋį¨ããĻãããã¨ãããããžãã ãããĻãį§ã¯å¤ãããŧã¸ã§ãŗãŽExpressãäŊŋį¨ããĻããžãã ãžããããã¤ããŽį°ãĒãčåŧąæ§ããããžãã ãããĻããĒãŗã¯ãã¯ãĒãã¯ããĻãããĢã¤ããĻããŖã¨åĻãļãã¨ãã§ããã¨ããæããĻãããžãã CVSSãšãŗãĸãĒãŠããããžãã ããããäŋŽæŖããŧã¸ã§ãŗãæããĻãããžãã ããããŖãĻãããŽå ´åã 4173 ããã¯äŋŽæŖãããžãããäģãŽ2ã¤ã¯äŋŽæŖãããžããã ããã§ã¯ãããã§ããŧã¸ã§ãŗįĒåˇãæã大ããããŽãĢčĄããžãããã ã ããį§ã¯į§ãŽãããąãŧã¸JSONãæãĢå Ĩããžããã expressãããŽæ°ããããŧã¸ã§ãŗãĢ夿´ããžãã
ãããĻäģãį§ãŽV3ãããŖãĻãŋãžãããã ãããĻãžãããšãĢãĻãã¯į§ãåŠããĻãããžããããããĻį§ãč¯ãã¤ãĄãŧã¸ãäŊãŖãĻããããŠãããįč§ŖãããŽãåŠããĻãããžããã? ããŽããĸã§ã¯čåŧąæ§ãĢįĻįšãåŊãĻãĻããžããããããˇãĨããŧãã§įĸēčĒãããããĢãäģãĢãæ´ģį¨ã§ããããĒãˇãŧããããžãã ãžããCLIãããžãäŊŋãããĒããĒãäēēãŽãããĢãGUIããĸããã°ãŦãŧããããã¨ãã§ããžãã ãããĻãį§ã¯įģåãčĻããã¨ãã§ããžãã ãããĻãå ãģãŠčĻãV2 ãčĻãĻãŋãžãããã ããã§ããåēæŦã¤ãĄãŧã¸ãããŽčåŧąæ§ã¯ãĒããã¨ãããããžãã ã§ããį§ãĒããŽã¤ãĄãŧã¸ã§įĩæ§į´šäģããĻãŋãžããã ãããĻããŦã¤ã¤ãŧãã¨ãĢé˛ãããå ´åã¯ããããå¯čŊã§ãã ãžããããããŽčåŧąæ§ãåĢãžããĻãã 4171 襨įžããããŽã¨åãæ å ąã¨ãäŋŽæŖããŧã¸ã§ãŗãĒãŠãčĻããã¨ãã§ããžãã ããããŖãĻãįš°ãčŋããĢãĒããžããããããããšãĻã¯GUIãããåŠį¨ã§ããžãã
Â
įˇéᎍ (35:19)
ããĻãããã§įˇ ããããã¨ããĻãįĩåąãŽã¨ããããŊãããĻã§ãĸããŠãŽãããĢæäžããããĢã¤ããĻã§ãã ãŠãããã°åšæįãĢæäžã§ãããŽã? ãŠãããã°åšįįãĢé äŋĄã§ãããŽã? ãŠãããã°čŋ éãã¤åŽå ¨ãĢé éã§ãããŽã§ãããã? ããĄãããæĩčĄčĒã¯ãããããããžãã ã§ãããããˇãããŦããã¨ããčãæšã¯ããéįēč ãŽįãããããŖã¨ãããšããã¨ã¯äŊããããã¨č¨ããããŽããŽã§ã¯ãããžããã ããã¯ããããããĒãããã§ãĢä¸čŠąãããĒããã°ãĒããĒããã¨ããããĻããĒããčãããšããã¨ã¯äŊã§ãã? ãããĻããããåˇĻãĢåãããĻãéįēããĻããå ´æããã§ãĢæéãč˛ģãããĻããå ´æãĢčŋãĨãããĢã¯ãŠãããã°ããã§ããããã ããããã°ããããŧįļæ ãäŋã¤ãã¨ãã§ããžãããããã¯é常ãčĒåčĒčēĢãŽãã¨ãč¨ãŖãĻãããŽã§ããããããį§ãæã嚸ããĒã¨ããã§ãã ã§ã¯ããŠãããã°ãããŽã§ãããã?
äģæĨã¯ãįšãĢéįēį°åĸãįĩąåããšãããģããĨãĒããŖããŧãĢãŽ3ã¤ãŽå ˇäŊįãĒæŠäŧãĢã¤ããĻ芹ããžããã ããããįš°ãčŋããĢãĒããžããããŗãŗãããĢã¤ããĻčãå§ããã¨ãããŽãããģãšãį°Ąį´ åãããŽãĢåŊšįĢã¤ããžããžãĒæšæŗããããžãããĒããĒããä¸åēĻæ§į¯ããã°ããŠãã§ãåŽčĄã§ãããŗãŗãããäŊŋį¨ããĻéįēã§ããããã§ãã æŦåŊãĢč¯ãæŠäŧããããžãã
ããã§ã¯ããããã¨ãããããžããã ãčĻč´ããã ããããã¨ãããããžãã ãããčĻãĻããã ããããã¨ãããããžãã äŊããåĻãã ãã¨ãéĄãŖãĻããžãã ã䏿ãĒįšãããããžãããããæ°čģŊãĢãåãåãããã ããã įš°ãčŋããĢãĒããžãããį§ãŽååã¯ãã¤ãąãĢãģãĸãŧãĻãŖãŗã§ãã į§ã¯ããDockerãŽDevRelããŧã ãŽãĄãŗããŧã§ãã ãããĻãįããã¨ä¸įˇãĢãããĢãããããã¨ãåŦããæããžãã įæ§ããããã¨ãããããžããã
Â
ãããĢčŠŗãã
- ãããĢãŧã¯åããĻã§ãã? å§ããžãããã
- æŗ¨įŽãŽãŦã¤ãã§DockerčŖŊåãæˇąãæãä¸ããžãã
- Docker Newsletter ãčŗŧčĒããĻãã ããã
- Docker ããšã¯ããããŽææ°ãĒãĒãŧãšãå Ĩæããžãã
- čŗĒåããããžãã? Docker ãŗããĨãããŖããæäŧãããžãã