Slide 1

Slide 1 text

ϦϦʔεϑϥάͱ ϓϩάϨογϒσϦόϦʔΛ׆༻ͨ͠ ҆શͳWEBΞϓϦέʔγϣϯσϓϩΠ ʙύϑΣ͸ࠤ౻ΑΓࠤʑ໦ʹߦ͖͕ͪฤʙ

Slide 2

Slide 2 text

ࢁԼ࿨඙!QZBNB QIQ QSP fi MF< ॴଐ(.0ϖύϘٕज़ج൫νʔϜ ໾৬γχΞɾϓϦϯγύϧ झຯ<ώϧτϯ८Γ Ωϟϯϓ ཱྀߦ> ΢ΣϒαΠτ< UFDIIUUQUFOTOBQPODPN MJGFIUUQQZBNBGVO TUOTIUUQTUOTKQ > >

Slide 3

Slide 3 text

45/4 -JOVY/444FSWFS TUOTKQ

Slide 4

Slide 4 text

ϗεςΟϯάࣄۀ &$ࢧԉࣄۀ ϋϯυϝΠυɾͦͷଞࣄۀ

Slide 5

Slide 5 text

ࠓ೔࿩͢͜ͱ σϓϩΠͷޫͱҋ ϦϦʔεϑϥάͷجຊ ϦϦʔεϑϥάͷԠ༻ ϓϩάϨογϒσϦόϦʔͷ࣮ફ ๺ւಓͰ৯͏΂͖΋ͷ100બ

Slide 6

Slide 6 text

σϓϩΠͷ ޫͱҋ

Slide 7

Slide 7 text

届ける価値 ステージングと異なるマスター 「検証環境では動いたんですけど」 環 境 変 数 このCI、パスしてるけど テストされてないじゃん 急ぎなので、緊急リリースします fi x typお

Slide 8

Slide 8 text

ϦϦʔε ϑϥά

Slide 9

Slide 9 text

ϦϦʔεϑϥάͷجຊ ϦϦʔεϑϥά ɹ֎෦ͷαʔόͱ࿈ܞͯ͠ɺιʔεΛมߋ͢Δ ɹ͜ͱͳ͘ɺΞϓϦέʔγϣϯͷڍಈΛ ɹมߋͰ͖Δ

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

ϦϦʔεϑϥά͕ى͜͢มԽ σϓϩΠͱϦϦʔεͷ੾Γ཭͠ ϏοάόϯϚʔδͷࠜઈ ϦϦʔεͷखஈ

Slide 12

Slide 12 text

σϓϩΠͱϦϦʔεͷ੾Γ཭͠ ϦϦʔεϑϥάΛ༻͍Δͱ σϓϩΠ != ϦϦʔεͱͳΔ σϓϩΠ ϦϦʔε σϓϩΠ ϦϦʔε ϦϦʔεϑϥάON ϦϦʔεϑϥάͳ͠ ϦϦʔεϑϥά͋Γ

Slide 13

Slide 13 text

release branch ػೳ1-1 ػೳ1-2 ػೳ2-1 Ϛʔδ Ϛʔδ Ϛʔδ σϓϩΠͱϦϦʔεͷ੾Γ཭͠ Α͋͘Δػೳ։ൃ

Slide 14

Slide 14 text

release branch ػೳ1-1 ػೳ1-2 ػೳ2-1 Ϛʔδ Ϛʔδ Ϛʔδ main branch Ϛʔɾɾɾ σϓϩΠͱϦϦʔεͷ੾Γ཭͠ Α͋͘Δػೳ։ൃ

Slide 15

Slide 15 text

$ git merge release-branch Auto-merging src/Controller/UserController.php CONFLICT (content): Merge con fl ict in src/Controller/UserController.php Auto-merging src/Controller/OrderController.php CONFLICT (content): Merge con fl ict in src/Controller/OrderController.php Auto-merging src/Model/InvoiceModel.php CONFLICT (content): Merge con fl ict in src/Model/InvoiceModel.php Auto-merging src/Model/ProductModel.php CONFLICT (content): Merge con fl ict in src/Model/ProductModel.php Auto-merging templates/layout/header.php CONFLICT (content): Merge con fl ict in templates/layout/header.php ...

Slide 16

Slide 16 text

͓ લ ͕ δ χ Ξ ͷ ࣌ ʹ ڭ ͑ ͨ ϓ ϧ Ϧ Ϋ Λ খ ͞ ͘ ͢ Ε ͹ ສ ࣄ Φ έ ͱ ͍ ͏ ͷ ͸ ӕ ͡

Slide 17

Slide 17 text

release branch ػೳ1-1 ػೳ1-2 ػೳ2-1 Ϛʔδ Ϛʔδ Ϛʔδ main branch σϓϩΠͱϦϦʔεͷ੾Γ཭͠ ϦϦʔεϑϥάΛར༻͢Δ͜ͱͰ ࡉ͔͘ϝΠϯϒϥϯνʹϚʔδͰ͖Δ

Slide 18

Slide 18 text

ಛఆͷϢʔβʔͷΈϦϦʔε N%ͷϢʔβʔͷΈϦϦʔε ஈ֊తͳϦϦʔε͕ՄೳͳͷͰ ӨڹൣғΛݶఆͯ͠ϦϦʔε͕Ͱ͖Δ

Slide 19

Slide 19 text

ϦϦʔεϑϥά ͷԠ༻

Slide 20

Slide 20 text

ϦϦʔεϑϥάͷԠ༻ ৽य़ηʔϧ΍ͬͯ·͢!!1

Slide 21

Slide 21 text

ϦϦʔεϑϥάͷԠ༻ ඇৗ࣌ʹݕࡧΛແޮʹͨ͠Γ͢Δ KillεΠονͱͯ͠׆༻

Slide 22

Slide 22 text

ϝϯςφϯεϖʔδ΁ͷ੾Γସ͑ SaaSɾܾࡁγεςϜͷμ΢ϯ࣌ͷॖୀӡస ϙʔϦϯάܥͷॲཧͷࢮ׆ WEBαʔϏεͷӡ༻ʹ͓͍ͯ ॿ͔Δ͜ͱ͕͋Δ

Slide 23

Slide 23 text

GMOϖύϘ͸UnleashΛར༻ Unleash OpenSource TypeScript Self Hosted Multiple Language Support https://www.getunleash.io/

Slide 24

Slide 24 text

Unleash ଟػೳͰγϯϓϧ

Slide 25

Slide 25 text

҆৺͍ͯͩ͘͠͞ https://ten-snapon.com/archives/2880

Slide 26

Slide 26 text

҆৺ɾɾɾͳͷ͔ʁ https://ten-snapon.com/archives/2880

Slide 27

Slide 27 text

ϓϩάϨογϒ σϦόϦʔ

Slide 28

Slide 28 text

ϓϩάϨογϒσϦόϦʔ ϓϩάϨογϒ ʦ໊ɾܗಈʧਐาతͳ͞·ɻֵ৽తͳ͞·ɻ·ͨɺਐาओٛऀɻ※1 ΧφϦΞϦϦʔεͳͲΛར༻ͯ͠ঃʑʹΞϓϦέʔγϣϯΛϦϦʔε͠ɺ ϝτϦΫεΛ௨ͯ͡ΞϓϦέʔγϣϯ͔Β৘ใΛऩूͯ͠ɺ ϑΟʔυόοΫ੍ޚ͠ͳ͕Β҆શʹιϑτ΢ΣΞΛϦϦʔε͢Δख๏ ※1 https://kotobank.jp/ΑΓ

Slide 29

Slide 29 text

ϓϩάϨογϒσϦόϦʔ ܧଓతσϦόϦʔͱ ϓϩάϨογϒσϦόϦʔ ϓϧϦΫΤετ ςετ ΧφϦΞϦϦʔε ϞχλϦϯά ϦϦʔε ϩʔϧόοΫ ܧଓతσϦόϦʔ ϓϩάϨογϒɾσϦόϦʔ ϓϧϦΫΤετ ϦϦʔε ςετ

Slide 30

Slide 30 text

ϦϦʔεํࣜ ୅දతͳϦϦʔεํࣜ ΧφϦΞϦϦʔε App App App App 25%͚ͩϦϦʔε͢Δ ϩʔϦϯάϦϦʔε App App App App ஈ֊తʹ৽͘͠ϦϦʔε͢Δ BlueGreenϦϦʔε App App ৽͍͠ϦϦʔεͷάϧʔϓΛ࡞Δ App App Ұ؏ੑ͕͋Γɺ੾Γ໭͠΋༰қ͕ͩ Ϧιʔε͕ഒඞཁʹͳΔ Өڹൣғ͕ݶఆ͞ΕΔ͕ɺ ΞϓϦέʔγϣϯͷ Ұ؏ੑ͸ଛͳΘΕΔ ΧφϦΞϦϦʔεͱ Ұॹʹར༻͞ΕΔ͜ͱ͕ଟ͍

Slide 31

Slide 31 text

ϞχλϦϯά • ΞϓϦέʔγϣϯΤϥʔͷൃੜ਺ • HTTPεςʔλείʔυͷมԽ • HTTPϨΠςϯγʔͷมԽ ϝτϦΫεͷѱԽͰࣗಈͰϩʔϧόοΫ͢Δ

Slide 32

Slide 32 text

GMOϖύϘ͸Kubernetes͸Argo RolloutsΛར༻ Argo Rollouts OpenSource GitOps Istio/Nginx Ingress

Slide 33

Slide 33 text

GMOϖύϘ͸Kubernetes͸Argo RolloutsΛར༻

Slide 34

Slide 34 text

ϨΨγʔϓϩάϨογϒσϦόϦʔͱ͸ɾɾɾʁ

Slide 35

Slide 35 text

git-assets-canary-releaser 1. github.com(or GHES)ΛϙʔϦϯά 2. ϦϦʔε͕͋Ε͹μ΢ϯϩʔυ 3. 1୆σϓϩΠ͢Δ 4. ࢦఆ࣌ؒϔϧενΣοΫ͕௨Ε͹ɺ શ୆ϦϦʔεɺ௨Βͳ͚Ε͹ϩʔϧ όοΫ

Slide 36

Slide 36 text

git-assets-canary-releaser 1. github.com(or GHES)ΛϙʔϦϯά 2. ϦϦʔε͕͋Ε͹μ΢ϯϩʔυ 3. 1୆σϓϩΠ͢Δ 4. ࢦఆ࣌ؒϔϧενΣοΫ͕௨Ε͹ɺ શ୆ϦϦʔεɺ௨Βͳ͚Ε͹ϩʔϧ όοΫ

Slide 37

Slide 37 text

git-assets-canary-releaser ΧφϦʔαʔόͷબग़͸RedisͷSETNXΛར༻ SetNX(Set If Not eXists) ※2.6.12Ҏ߱͸SET key value NXͷܗ͕ࣜਪ঑ʹͳΓ·͢ VM 1 VM 2 Redis lock key VM2͚͕ͩϩοΫऔಘ VM 3

Slide 38

Slide 38 text

git-assets-canary-releaser 1. github.com(or GHES)ΛϙʔϦϯά 2. ϦϦʔε͕͋Ε͹μ΢ϯϩʔυ 3. 1୆σϓϩΠ͢Δ 4. ࢦఆ࣌ؒϔϧενΣοΫ͕௨Ε ͹ɺશ୆ϦϦʔεɺ௨Βͳ͚Ε͹ ϩʔϧόοΫ

Slide 39

Slide 39 text

git-assets-canary-releaser • MackerelͷνΣοΫεΫϦϓτ΍ಠࣗͷ๭ ͰϔϧενΣοΫ͕Մೳ • εΫϦϓτʹμ΢ϯϩʔυͨ͠ϑΝΠϧͷ ύε΍λά͕౉͞ΕΔͷͰͦΕΛར༻͠ ͯɺσϓϩΠॲཧ΍ϩʔϧόοΫ΋ࣗ༝ʹ ࣮૷Ͱ͖Δ

Slide 40

Slide 40 text

ϓϩάϨογϒσϦόϦʔͷӡ༻Ͱେࣄͳ͜ͱ • ඇৗ࣌ͷϦϦʔεϑϩʔΛ४උ͓ͯ͘͠ • ؂ࢹର৅ͷϝτϦΫε͸௥Ճ͍ͯ͘͠લఏͰߟ͑Δ • σʔλ੔߹ੑͳͲϩʔϧόοΫ͞ΕΔલఏͰ࣮૷͢Δ

Slide 41

Slide 41 text

ࠓ೔࿩ͨ͜͠ͱ • ϦϦʔεϑϥάΛར༻͢ΔͱϦϦʔε!=σϓϩΠͱͳΔ • ϦϦʔεϑϥά΍ϓϩάϨογάσϦόϦʔΛར༻͢ΔͱɺϦεΫΛίϯ τϩʔϧ͠ͳ͕Β҆શʹϦϦʔε͢Δ͜ͱ͕Ͱ͖Δ • Kubernetes͡Όͳͯ͘΋͜ΕΒͷϓϥΫςΟεΛ࣮ફ͢Δ͜ͱ͕Ͱ͖Δ

Slide 42

Slide 42 text

౦ژɾ෱ԬɾࣛࣇౡͰ ೤྽ʹ࠾༻͍ͯ͠·͢ɻ ࠷৽ͷ࠾༻৘ใΛνΣοΫˠ !QC@SFDSVJU