Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CircleCIを活用して AWSへの継続的デリバリーを 実践する
Search
coconala_engineer
March 27, 2024
Programming
1
430
CircleCIを活用して AWSへの継続的デリバリーを 実践する
https://trident-qa.connpass.com/event/310009/
のイベントの登壇資料です。
coconala_engineer
March 27, 2024
Tweet
Share
More Decks by coconala_engineer
See All by coconala_engineer
SIEMを利活用した信頼性向上プロセスと実践
coconala_engineer
0
26
Cursorを使って 新機能開発してみて 感じたこと
coconala_engineer
0
120
社内にAIレビューツール導入してみた
coconala_engineer
0
120
犯人はE2Eテスト? 並列実行で開発チームを救え!
coconala_engineer
0
47
サービスを止めるな! DDoS攻撃へのスマートな備えと最前線の事例
coconala_engineer
2
290
SREの次のキャリアの道しるべ 〜SREがマネジメントレイヤーに挑戦して、 気づいたこととTips〜
coconala_engineer
2
5.9k
ココナラiOSチームの生成AI利用
coconala_engineer
0
47
AIと向き合う若手エンジニアの責任
coconala_engineer
0
57
GraphQLを活用したリアーキテクチャに対応するSLI/Oの再設計
coconala_engineer
0
350
Other Decks in Programming
See All in Programming
uniqueパッケージの内部実装を支えるweak pointerの話
magavel
0
970
Pull-Requestの内容を1クリックで動作確認可能にするワークフロー
natmark
2
490
詳しくない分野でのVibe Codingで困ったことと学び/vibe-coding-in-unfamiliar-area
shibayu36
3
4.9k
階層構造を表現するデータ構造とリファクタリング 〜1年で10倍成長したプロダクトの変化と課題〜
yuhisatoxxx
3
990
Django Ninja による API 開発効率化とリプレースの実践
kashewnuts
0
1.3k
SpecKitでどこまでできる? コストはどれくらい?
leveragestech
0
670
(Extension DC 2025) Actor境界を越える技術
teamhimeh
1
250
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
290
Back to the Future: Let me tell you about the ACP protocol
terhechte
0
140
NixOS + Kubernetesで構築する自宅サーバーのすべて
ichi_h3
0
540
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
240
「ちょっと古いから」って避けてた技術書、今だからこそ読もう
mottyzzz
10
6.6k
Featured
See All Featured
Building Adaptive Systems
keathley
43
2.8k
The Pragmatic Product Professional
lauravandoore
36
6.9k
Gamification - CAS2011
davidbonilla
81
5.5k
Embracing the Ebb and Flow
colly
88
4.8k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Rails Girls Zürich Keynote
gr2m
95
14k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
970
Building Better People: How to give real-time feedback that sticks.
wjessup
368
20k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Become a Pro
speakerdeck
PRO
29
5.5k
How to Ace a Technical Interview
jacobian
280
24k
Transcript
Copyright coconala Inc. All Rights Reserved. CircleCIΛ׆༻ͯ͠ AWSͷܧଓతσϦόϦʔΛ ࣮ફ͢Δ ΠϯϑϥɾSREνʔϜ
TeamManager ٢ݟ
Copyright coconala Inc. All Rights Reserved. 2 ࣗݾհ ٢ݟʢΑ͔͠Θ ͨ͘Έʣ
• ੜ·Ε ੩Ԭ → จܥେֶ͔ΒΤϯδχΞ • ܦྺ ۚ༥SIer → ελʔτΞοϓ → ίίφϥ • झຯ ϥΠϒɾΠϕϯτʹߦ͘
Vision Ϗδϣϯɺϛογϣϯʹج͍ͮͨࣄۀΛల։ νʔϜ͕ߏங͍ͨ͠ͱࢥ ͏࠷ྑͳະདྷͷΠϝʔδ νʔϜ͕ߏங͍ͨ͠ͱࢥ ͏࠷ྑͳະདྷͷΠϝʔδ Mission νʔϜ͕࣮ݱ͍ͨ͠த৺ తͳతʢଘࡏҙٛʣ ҰਓͻͱΓ͕ʮࣗͷετʔϦʔʯΛੜ͖͍ͯ͘ੈͷதΛ࡞Δ
ݸਓͷࣝɾεΩϧɾܦݧΛՄࢹԽ͠ɺ ඞཁͱ͢Δͯ͢ͷਓʹ݁ͼ͚ͭɺ ݸਓΛΤϯύϫʔϝϯτ͢ΔϓϥοτϑΥʔϜΛఏڙ͢Δ ࣝɾεΩϧɾܦݧͷϚονϯάαʔϏεΛల։ ࣄۀ༰ 3
ϚονϯάαʔϏε ֓ཁ 4
Copyright coconala Inc. All Rights Reserved. 5 ΞδΣϯμ • CI/CDͱ
◦ ͳͥඞཁͳͷ͔ • CircleCIͷಛ • ίίφϥͰͷར׆༻ ◦ ͪΐͬͱͨ͠ςΫχοΫ
Copyright coconala Inc. All Rights Reserved. 6 CI/CDͱ
Copyright coconala Inc. All Rights Reserved. 7 CI/CDͱ • ݫີʹCIͱCDผͰ͋Δ͕ɺͻͱ͘͘ΓͰઆ໌͞ΕΔ͜ͱ͕ଟ͍
◦ CIɿܧଓతΠϯςάϨʔγϣϯ ◦ CDɿܧଓతσϦόϦʔ
Copyright coconala Inc. All Rights Reserved. 8 CI/CDͱ • ݫີʹCIͱCDผͰ͋Δ͕ɺͻͱ͘͘ΓͰઆ໌͞ΕΔ͜ͱ͕ଟ͍
◦ CIɿܧଓతΠϯςάϨʔγϣϯ ◦ CDɿܧଓతσϦόϦʔ • ͷͬ͘͘͢͟͝ΓҰݴઆ໌͢Δͱ ◦ CIɿࣗಈςετ ◦ CDɿࣗಈσϓϩΠ ɹ→ Ұ࿈ͷྲྀΕʢύΠϓϥΠϯʣ͕͋Δ
Copyright coconala Inc. All Rights Reserved. 9 ͳͥCI/CDύΠϓϥΠϯ͕ ඞཁͳͷ͔
Copyright coconala Inc. All Rights Reserved. 10 ͳͥCI/CDύΠϓϥΠϯΛΉͷ͔
Copyright coconala Inc. All Rights Reserved. 11 ͳͥCI/CDύΠϓϥΠϯΛΉͷ͔ ɾϑΥʔϚοτਖ਼͍͠ʁ ɾςετ͞Ε͍ͯΔʁ
ɾϏϧυͰ͖Δʁ
Copyright coconala Inc. All Rights Reserved. 12 ͳͥCI/CDύΠϓϥΠϯΛΉͷ͔ ɾϑΥʔϚοτਖ਼͍͠ʁ ɾςετ͞Ε͍ͯΔʁ
ɾϏϧυͰ͖Δʁ ։ൃऀϨϏϡΞʔ ෛ୲͕େ͖͍
Copyright coconala Inc. All Rights Reserved. 13 ͳͥCI/CDύΠϓϥΠϯΛΉͷ͔ push͢Δ͚ͩͰࣗಈ࣮ߦ →
݁ՌΛ֬ೝ͢Δ͚ͩͰ OK
Copyright coconala Inc. All Rights Reserved. 14 ͳͥCI/CDύΠϓϥΠϯΛΉͷ͔ • ίʔυ࣭ͷ্
◦ खಈ࡞ۀΛ͕શͯࣗಈԽ͢Δ͜ͱʹΑΔώϡʔϚϯϦεΫɾίετͷݮ ◦ ςετϓϩηεΛ௨͢͜ͱʹΑΔόάͷൃݟ • ϦϦʔεαΠΫϧͷߴԽ ◦ ϝΠϯϒϥϯνͷঢ়ଶͰରڥʹϦϦʔε͞ΕΔ
Copyright coconala Inc. All Rights Reserved. 15 ͳͥCI/CDύΠϓϥΠϯΛΉͷ͔ • ίʔυ࣭ͷ্
◦ खಈ࡞ۀΛ͕શͯࣗಈԽ͢Δ͜ͱʹΑΔώϡʔϚϯϦεΫɾίετͷݮ ◦ ςετϓϩηεΛ௨͢͜ͱʹΑΔόάͷൃݟ • ϦϦʔεαΠΫϧͷߴԽ ◦ ϝΠϯϒϥϯνͷঢ়ଶͰରڥʹϦϦʔε͞ΕΔ ɹ ։ൃੜ࢈ੑͷ্
Copyright coconala Inc. All Rights Reserved. 16 CircleCIͱ
Copyright coconala Inc. All Rights Reserved. 17 ଟछଟ༷ͳCI/CDπʔϧ
Copyright coconala Inc. All Rights Reserved. 18 CircleCIͰओʹͰ͖Δ͜ͱ • ੩తղੳʢLintʣ
• ୯ମςετʢTestʣ • ϦιʔεϏϧυʢBuildʣ • ίʔυͷσϓϩΠʢReleaseʣ etc…
Copyright coconala Inc. All Rights Reserved. 19 CircleCIͷಛ 1. ΫϥυαʔϏεͷͨΊ࣮ߦڥΛཧ͢Δඞཁ͕ͳ͍
• ࣗಈϏϧυɺςετΛ࣮ߦ͢ΔͨΊʹαʔόΛ༻ҙ͢Δඞཁͳ͍ ◦ ઃఆϑΝΠϧΛهड़͢Εɺ࣮ߦ͞ΕΔΑ͏ʹͳΔ • ͨͩ͠ηΩϡϦςΟͷ߹্ɺΫϥυNGͱ͍͏߹ ◦ Self Hosted Runner·ͨEnterpriseϓϥϯͰରԠՄೳ 1. ͞·͟·ͳVCSʢόʔδϣϯίϯτϩʔϧγεςϜʣʹରԠ • GithubɺGitLabɺBitbucket • ྫ͑GithubActionsΛ͍͍ͨ߹GithubΛ͍ͬͯΔඞཁ͕͋Δ͕ɺ ɹɹCircleCIͰͦͷΑ͏ͳ੍΄ͱΜͲͳ͍
Copyright coconala Inc. All Rights Reserved. 20 CircleCIͷಛ 3. άάϥϏϦςΟ͕ͳ͔ͳ͔ߴ͍
• 2013ࠒ͔Β಄͍ͯ͠Δ&ݸਓͰແྉར༻ՄೳͳͷͰใ͕๛ • ࠷ۙGithubActions͔... 4. σϑΥϧτͰsshσόοάػೳ͋Γ • ઃఆϑΝΠϧΛهࡌͯ͠ɺ ࢥ͏Α͏ʹಈ͔ͳ͍ͱ͖ʹศར • printσόοάΈ͍ͨͳ͜ͱ͕ෆཁ • GithubActionsͰઐ༻ActionsΛΈࠐΉ ඞཁ͕͋Δ
Copyright coconala Inc. All Rights Reserved. 21 CircleCIͷಛ 5. Insightػೳ
• ϦϙδτϦ͝ͱͷޭɺύΠϓϥΠϯͷ࣮ߦ࣌ؒͷ֓ཁΛ֬ೝͰ͖Δ ◦ Ͳ͕͍͜ͷ͔ɺվળ༨͕͋Δͷ͔͕ҰͰΘ͔Γ͍͢
Copyright coconala Inc. All Rights Reserved. 22 CircleCIͷ֓೦ ύΠϓϥΠϯʢ㲈ϫʔΫϑϩʔʣʢԼਤͦͷͷʣ |–
δϣϒʢԼਤͷϒϩοΫʣ |– εςοϓʢӈਤͷϒϩοΫʣ |– ίϚϯυ
Copyright coconala Inc. All Rights Reserved. 23 CircleCIͷઃఆ yamlϑΝΠϧ1ͭͰ݁ʂ
Copyright coconala Inc. All Rights Reserved. 24 ίίφϥͰͷར׆༻ࣄྫ ͱςΫχοΫ
Copyright coconala Inc. All Rights Reserved. 25 πʔϧ༻ 90%ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ10% ओཁαʔϏεྨͷςετɾσϓϩΠ
ࣾ༻πʔϧɺPRૢ࡞ܥ
Copyright coconala Inc. All Rights Reserved. 26 CircleCIΛ༻͍ͯAWSσϓϩΠ͢Δ ίίφϥͰEC2ɺECSɺLambdaͷσϓϩΠʹCircleCIΛ׆༻ •
developϒϥϯνϚʔδʹΑΓεςʔδϯάɺ masterϒϥϯνϚʔδʹΑΓຊ൪ࣗಈతʹσϓϩΠ͞ΕΔ • CircleCI্ͰLint→test→build→deploy ͕جຊϑϩʔ
Copyright coconala Inc. All Rights Reserved. 27 ͪΐͬͱͨ͠ςΫχοΫ • AWSGCPσϓϩΠ͢ΔͨΊʹΞΧϯτΩʔ͕ඞཁɾɾɾʁ
◦ ͩͬͨͷલ·Ͱͷ ◦ ݱࡏͰOpenIDConnectͱ͍͏ΈͰೝূ͢Δ͜ͱͰΩʔϨε͕Մೳ ◦ ৄ͘͠ϒϩάΛࢀর͍͖͍ͨͩͨ
Copyright coconala Inc. All Rights Reserved. 28 ͪΐͬͱͨ͠ςΫχοΫ • OrbsΛͲΜͲΜར༻
◦ OrbsͱδϣϒίϚϯυΛύοέʔδԽͨ͠ͷ ▪ ຊདྷेߦʹΔίϚϯυͳͲΛγϯϓϧʹهࡌͰ͖Δ ◦ ࣗͨͪઐ༻ʹPrivate OrbΛ࡞͢Δ͜ͱՄೳ ɹɹ ɹ→aws-cliΛར༻͍ͨͨ͠ΊΠϯετʔϧ͍ͨ͠ɻ ɹ ௨ৗwgetʙtarʙmvͳͲهࡌ͢Δඞཁ͕͋Δ͕ ɹ ͜Ε͕ͨͬͨ1ߦʢaws-cli/installʣͰࡁΜͰ͍Δ
Copyright coconala Inc. All Rights Reserved. 29 ͪΐͬͱͨ͠ςΫχοΫ • ςετฒྻԽͯ͠ߴԽ
◦ CI࣮ߦ࣌ؒͷଟ͘ͷׂ߹ΛΊΔͷ͕ςετఔ ◦ CircleCIͰࢄ࣮ߦͷઃఆ͕Մೳ ◦ ৄ͘͠ϒϩάΛࢀর͍͖͍ͨͩͨ ↓ ྻ࣮ߦͰ30͔͔͍ͬͯͨͷ͕τʔλϧ6ఔʹ
Copyright coconala Inc. All Rights Reserved. 30 CircleCIͰ CI/CDύΠϓϥΠϯΛ͑ շదͳ։ൃऀϥΠϑΛʂ
We are hiring!! ࠾༻ϗʔϜϖʔδ https://coconala.co.jp/recruit ΤϯδχΞ࠾༻ϗʔϜϖʔδ https://coconala.co.jp/recruit/engineer ίίφϥͷਓͱ৫Λ͑Δϒϩά ίίφϥLIVE https://blog.coconala.co.jp/m/m4e4abe8b17e5
ਓੜͷՄೳੑΛ͛ͨϢʔβʔετʔϦʔ Θͨ͠ͷεΩϧղ์ه https://blog.coconala.co.jp/m/me8a586112ad2 ίίφϥʹॴଐ͢ΔΤϯδχΞʹΑΔϒϩά ςοΫϒϩά https://zenn.dev/coconala 31