Slide 1

Slide 1 text

CHATOPS,AWS, AND ANSBLE CyberAgent, inc. @nnao45 with cndjp

Slide 2

Slide 2 text

ˏnnao45 ✓ 27ࡀ(ฏ੒3೥ੜ·Ε) ✓ ࠓ͸ओʹΫϥ΢υ԰ ✓ ཱڭେֶཧֶ෦ԽֶՊଔۀ ✓ ςχεྺ10೥ ✓ ITྺ4೥໨ ✓ Go࠷ߴ!!zsh࠷ߴ!! ✓cndjpษڧձӡӦ ✓גࣜձࣾαΠόʔΤʔδΣϯτॴଐ ✓ ݩISPͷNWϝΠϯ $ WHOIS NNAO45

Slide 3

Slide 3 text

JAPAN CONTAINER DAYS!! ͓ർΕ༷Ͱͨ͠ʢɾ˜ɾʣ

Slide 4

Slide 4 text

JAPAN CONTAINER DAYS!! ͓ർΕ༷Ͱͨ͠ʢɾ˜ɾʣ https://speakerdeck.com/cndjp/jkd-v18-dot-12-2w3

Slide 5

Slide 5 text

JAPAN CONTAINER DAYS!! ͓ർΕ༷Ͱͨ͠ʢɾ˜ɾʣ https://speakerdeck.com/cndjp/jkd-v18-dot-12-2w3

Slide 6

Slide 6 text

SHOW CNDJP INFRASTRUCTURE ଟ͘ͷΠϯϑϥ΁ͷ՝୊ͱཁٻɾɾɾʂ ࣗಈతʹΫϥ΢υ(AWS)Λબ୒ ʮ׬શίʔυ؅ཧx൒ࣗಈCD͕ඞਢʯ ౰વશίϯϙʔωϯτΛίʔυԽ कඋൣғͷ޿͞ͱ׳ΕͯΔͱ͍͏
 ཧ༝ʹΑΓɺAnsibleΛ࠾༻ Զ͡Όͳͯ͘΋σϓϩΠͰ͖ΔΑ͏
 SlackʹΑΔChatOpsͷ࣮૷ ։ൃ࣌ʮͷΈʯશΠϯϑϥΛ୭Ͱ΋σϓϩΠ ·ɺϚωʔ ͕ɾɾɾɾɻ

Slide 7

Slide 7 text

SHOW CNDJP INFRASTRUCTURE ଟ͘ͷΠϯϑϥ΁ͷ՝୊ͱཁٻɾɾɾʂ એݴతઃఆ͕ՄೳͳK8SΛ࠾༻ શίϯϙʔωϯτΛCloudformation
 AnsibleʹΑΓႈ౳ੑΛ֬อʂ ͞ΒʹύΠϓϥΠϯʹSpinnakerɺ
 όοΫΞοϓπʔϧʹHeptio/ArkΛ
 Λ࢖༻ͯ͠ঢ়ଶΛ҆Ձʹอ࣋Ͱ͖Δ
 ύΠϓϥΠϯΛߏங ࢖͍ऴΘͬͨΒɺʮঢ়ଶΛอ࣋ͯ͠ʯશ෦Լ͛Δ

Slide 8

Slide 8 text

SHOW CNDJP INFRASTRUCTURE

Slide 9

Slide 9 text

SHOW CNDJP INFRASTRUCTURE ϩάऩू ؂ࢹ τϨʔγϯά ίϯςφ ϥϯλΠϜ ίϯςφ Φʔέετϥ ՄࢹԽ αʔϏε σΟεΧόϦ ߏ੒؅ཧ ΠϯϑϥCD RDS Ωϟογϡ όοΫΞοϓ ϑϩϯτ ίʔυ؅ཧ CICD ύΠϓϥΠϯ ΧφϦΞϦϦʔε+GitOps+CNΛ࣮ݱ͢Δϛυϧ΢ΣΞ

Slide 10

Slide 10 text

SHOW CNDJP INFRASTRUCTURE deploy!!

Slide 11

Slide 11 text

SHOW CNDJP INFRASTRUCTURE destroy!!

Slide 12

Slide 12 text

SHOW CNDJP INFRASTRUCTURE destroy!!

Slide 13

Slide 13 text

THIS IS “COOL” INFRASTRUCTUREʁ

Slide 14

Slide 14 text

SO…BUT, AND “TURAMI”ʂ

Slide 15

Slide 15 text

WHAT IS THE “TURAMI” ίϯςφωΠςΟϒͳίϯςϯπσϦόϦ͕ͭΒΈ Kubernetes্ͰύΠϓϥΠϯΛ
 ׬݁ͤ͞ΔͨΊͷ੍໿͕ਏ͍ɻ ̍γΣϧڬΈ͍ͨͷʹɺ
 ֎෦ύΠϓϥΠϯ͸ʮWebhookʯ
 ͚ͩͩͱɾɾɾɾʂʁ VMͰAnsibleΛ༻ҙ͕ͨ͠ɺ
 ૬౰؁͑ͨײ͕͋ΔʢŬŧŒŗ ύΠϓϥΠϯͷΩοΫʹγΣϧ͕ແ͍ɾɾɾʁ

Slide 16

Slide 16 text

WHAT IS THE “TURAMI” EKSͷAWSϦιʔεͱͷ࿈ಈͱ͔ɾɾɾɻ ϙΠϙΠ্͛Լ͛ͯͯ͠ؾ෇͍ͨΒɺ ELB͕200ݸҐ͋ͬͯ૲΋ੜ͑ͳ͍ ͦͯ͠ඥ͍ͮͯग़དྷͨϦιʔε͸ɺ
 ґଘઌ͕ফ͑ͯͳ͍ͱফ͑ͳ͍ ࢓ํͳ͍͔ΒEKSͰࣗಈͰ࡞Δ
 ϦιʔεΛফ͢࢓૊ΈΛ࡞Δͱ͍͏
 ͳΜ͔͜͏ΞϨͳؾ࣋ͪɻ EKSͷ࿈ಈσϓϩΠ͞ΕͨϦιʔε͕ফ͑ແ͍

Slide 17

Slide 17 text

WHAT IS THE “TURAMI” AWSωΠςΟϒͳίʔυ؅ཧʹ MySQLͱ͔RedisΛRoute53ͷ໊લ
 ʹඥ͚ͮͯ؅ཧ͠Α͏ͱ͢Δͱɺ
 ΋͏Cloudformationແ͍ͱେมɻ ͦ͏ͯ͠ɺ΄ͱΜͲͷAWSϦιʔε
 ͕CloudformationͰ؅ཧ͢Δࣄʹɻ ΠϛϡʔλϒϧͳK8SΛ࠾༻ͨ͠
 ҙຯ͕ബΕ͍ͯ͘ɾɾɾʁ ͲΜͲΜCloudformation͋Γ͖ͳߏ੒ʹɻ

Slide 18

Slide 18 text

TOO “TURAMI”…

Slide 19

Slide 19 text

BUT!! I FIND THE “YABAMI” !!

Slide 20

Slide 20 text

WHAT IS THE “YABAMI” ChatOpsͰʮΦϖϛε࡟ݮʯxʮѪணʯ Python3.7ͷasyncioύοέʔδͰ
 ඇಉظ͔ͭλεΫεέδϡʔϦϯά γϯϓϧͳChatOpsͷbotΛৗற
 ͢Δ͜ͱͰɺΞϓϦ։ൃऀ͕ɺ
 ͍ͭͰ΋؆୯ʹσϓϩΠՄೳ BOTΛΩϟϥԽ͢Δ͜ͱͰɺ
 Ѫண͕Θ͖ɺϝϯς͞ΕΔΑ͏ʹʂ ΩοΫͤ͞ΔεΫϦϓτΛPython3Ͱߋʹॊೈʹ

Slide 21

Slide 21 text

WHAT IS THE “YABAMI” ● ● ● GCPͷVMΠϯελϯεΛৗ্ཱ͓͖࣌ͪ͛ͯɺ ʮ্͛ͯʯͳͲͷૢ࡞Λ࣮ࢪ ●

Slide 22

Slide 22 text

WHAT IS THE “YABAMI” KubernetesͷόοΫΞοϓʹʮHeptio/Arkʯ ͓޷͖ͳΫϥ΢υϕϯμʹ
 etcdʹ֨ೲ͞ΕͨAPIίʔυΛ
 όοΫΞοϓ͓ͯ͘͠ͱ͍͏΋ͷ ඇৗʹߴ଎ͰɺಉϦʔδϣϯͳΒ
 ̎ඵҎ಺ͰόοΫΞοϓ/ϦετΞʂ PVͱίϯςφAPI͕ඥ͚ͭͰ͖ͯɺ
 ͜ΕͰΑΓڧྗʹόοΫΞοϓɻ ʮએݴʯͷόοΫΞοϓͱ͍͏Ξϓϩʔν

Slide 23

Slide 23 text

WHAT IS THE “YABAMI” ΋ͪΖΜΞʔϯγϘʔ΋׆༂ͨͧ͠ʂ Ͳ͏ͯ͠΋ϚΠΫϩαʔϏε࿈ܞ͸
 πʔϧ܈΋ଟ͘ͳΔ͕ɺͦͷ؅ཧʹ
 ႈ౳ੑΛɻ K8SΛ໾ׂඃΔʁ͍΍ɺ໾ׂඃΔ
 ͔ΒίϯςφΦʔέετϨʔγϣϯ
 ʹ૊ΈࠐΈ΍͍͢ʂ γΣϧୟؚ͖ΊখճΓ͕ར͘ͷͰɺ
 ແବͳπʔϧΛ૿΍ͣ͞ʹࡁΉɻ कඋൣғͷ޿͞ɺখճΓͷྑ͞ɺK8Sͱ૬ੑ˕

Slide 24

Slide 24 text

$SHUTDOWN +10 Ϋϥ΢υωΠςΟϒͳπʔϧ͸ɺ
 ·ͩ·ͩൃల్্ͳ෦෼͕໨ཱͭɻ ͦͷൃల్্ͳ෦෼ΛͦͬͱຒΊͯ͘ΕΔɺ
 ͦΕ͕AnsibleͳΜͩΑͳ͊ɾɾɾɾΈͭ˔ɻ