Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
転職会議のマイクロサービスを支えるデプロイ基盤@yabaibuki.dev #2
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
katainaka
September 26, 2024
350
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
転職会議のマイクロサービスを支えるデプロイ基盤@yabaibuki.dev #2
katainaka
September 26, 2024
More Decks by katainaka
See All by katainaka
CloudWatch Database Insightsで RDS関連の問題調査を行いやすくした(い)話 / yabaibuki cloudwatch database insights
katainaka0503
1
210
エンジニア採用広報チームの活動を紹介します / Engineer Recruitment PR Team
katainaka0503
1
270
マッハバイトのオンプレDBをAmazon Auroraに移行した話 / mach-db-transition-jaws
katainaka0503
2
540
Amazon EKS上の開発体験を最大化するプレビュー環境の作り方
katainaka0503
0
6k
Featured
See All Featured
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.7k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.7k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
590
Fantastic passwords and where to find them - at NoRuKo
philnash
53
4k
Site-Speed That Sticks
csswizardry
13
1.6k
We Are The Robots
honzajavorek
0
430
Mobile First: as difficult as doing things right
swwweet
225
10k
The agentic SEO stack - context over prompts
schlessera
0
1k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
370
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Darren the Foodie - Storyboard
khoart
PRO
4
4.1k
Transcript
転職会議のマイクロサービスを ⽀えるデプロイ基盤 2024/09/26 令和最新版 他⼈に⾃慢したいヤバいCI/CD LT会 @ yabaibuki.dev #2 技術部インフラストラクチャーグループ
⼭﨑理弘 Copyright © Livesense Inc.
0 1 2 3 4 ⾃⼰紹介 転職会議について 前提: 転職会議のシステム構成 転職会議のデプロイ基盤
転職会議のデプロイ基盤のこれから Copyright © Livesense Inc.
⾃⼰紹介 SECTION 0 Copyright © Livesense Inc.
0. 自己紹介 • 株式会社リブセンス所属のSRE • 転職会議やマッハバイトなど様々な事業部に関わる • ⾼知県在住 • 趣味
◦ 釣り🎣 ◦ スーパー銭湯めぐり♨ ◦ 飲み歩き🍺など • たまに東京で暇しているので飲みに誘ってください🍻 ⼭崎 理弘 a.k.a. かたいなか Copyright © Livesense Inc.
0. 自己紹介 ゆるい雰囲気で肩肘張らずに SRE関連のトピックについて話す勉強会です。 初⼼者SREの⽅や、 他職種だがSREっぽいことをやっている⽅も ⼤歓迎です。🎉🎉🎉 次回 #8 は絶賛準備中です!
「ゆるSRE勉強会」定期的に開催してます! Copyright © Livesense Inc.
転職会議について SECTION 1 Copyright © Livesense Inc.
転職会議について SECTION 1 Copyright © Livesense Inc.
前提: 転職会議のシステム構成 SECTION 2 Copyright © Livesense Inc.
2. 前提: 転職会議のシステムについて • マイクロサービスアーキテクチャを採⽤ ◦ 当初はPHPのレガシーアプリケーションから段階的に脱却するため ◦ レガシー脱却が終わった今はマイクロサービスをまとめていく⽅向 •
EKSを採⽤ ◦ 多数のマイクロサービスを管理するため ◦ アプリケーションエンジニアも普通にYAMLを書いている! Copyright © Livesense Inc.
転職会議のデプロイ基盤 SECTION 3 Copyright © Livesense Inc.
設計時の考慮ポイント SECTION 3-1 Copyright © Livesense Inc.
3-1. 転職会議のデプロイ基盤 設計時の考慮ポイント • CIOps ◦ CIから変更をpushする • GitOps ◦
クラスタ上からGitHub等の設定情報をpullして同期する ◦ GitHubを⾒ることでほとんどの設定を確認できる • GUIでの設定の確認ができることなどのメリットを重視し、 ArgoCDによるGitOpsを採⽤ 設計時の考慮ポイント①: CIOpsにするか、GitOpsにするか Copyright © Livesense Inc.
3-1. 転職会議のデプロイ基盤 設計時の考慮ポイント • 環境変数やPodの台数などの設定のデプロイ ◦ ⽐較的頻度は少ない ◦ diffを⾒たい •
アプリケーションのコンテナイメージのデプロイ ◦ コードの変更のたびに必要なので頻度が多い ◦ インフラに詳しくないエンジニアが⾏うことが多い • 稀に両⽅を同時にデプロイしたいことも 設計時の考慮ポイント②: コンテナイメージと設定のデプロイの両⽴ Copyright © Livesense Inc.
3-1. 転職会議のデプロイ基盤 設計時の考慮ポイント • 双⽅のライフサイクルの違いを理解してどうやって両⽴させるかがポイント • 特にGitOpsではどうやって両⽴させるか考慮が必要 ◦ CIでKubernetes上のイメージの情報を書き換えても GitOpsツールがGitHub上のイメージの設定に戻してしまったり‧‧‧
◦ latestタグを指定して都度ローリングアップデートでも可能だが‧‧‧ • 転職会議では、ArgoCD Image Updaterを使って解決 ◦ 新しいイメージの情報を⾃動でGitHubにプッシュしてくれるツール ◦ GitHubに書き戻したらArgoCDが変更をクラスタに反映 設計時の考慮ポイント②: コンテナイメージと設定のデプロイの両⽴ Copyright © Livesense Inc.
アーキテクチャやフローの紹介 SECTION 3-2 Copyright © Livesense Inc.
3-2. 転職会議のデプロイ基盤 アーキテクチャやフローの紹介 設定のデプロイの全体像 Copyright © Livesense Inc.
3-2. 転職会議のデプロイ基盤 アーキテクチャやフローの紹介 • 環境ごとに同期させるブランチ ◦ developブランチ => ステージング環境 ◦
masterブランチ => 本番環境 • developブランチにマージしたらcherry-pickして ⾃動で本番リリース⽤のPull Request作成 ◦ 以前はdevelopからmasterにマージする流れだったが、 developブランチに複数の変更が近いタイミングでマージされたときの 調整が必要になったため。 • Pull Requestに差分情報を⾃動でコメント。変更内容をすぐ確認できるように 設定のデプロイフロー Copyright © Livesense Inc.
3-2. 転職会議のデプロイ基盤 アーキテクチャやフローの紹介 イメージのデプロイの全体像 Copyright © Livesense Inc.
イメージのデプロイフロー(ステージング) 3-2. 転職会議のデプロイ基盤 アーキテクチャやフローの紹介 • 各アプリケーションリポジトリのCircleCIからコンテナイメージをプッシュ ◦ (後述するようにGitHub Actionsに移⾏したい) •
ArgoCD Image UpdaterがGitHubにイメージ情報をプッシュ • ArgoCDが新しい設定をKubernetesに適⽤し、新しいイメージがデプロイされる Copyright © Livesense Inc.
イメージのデプロイフロー(ブランチデプロイ) 3-2. 転職会議のデプロイ基盤 アーキテクチャやフローの紹介 • 開発時にはPull Requestマージ前に動作確認したいことが多々あるため、 Pull Requestのブランチを⼀時的にステージング環境にデプロイできる仕組みを⽤意 •
具体的には ChatOpsでArgoCD Image Updaterが更新対象にするタグ名の情報を変更する ◦ イメージのタグにはブランチ名のプレフィックスをつけている。 ◦ 対象のブランチ名から始まるタグを対象にさせる。 Copyright © Livesense Inc.
イメージのデプロイフロー(本番) 3-2. 転職会議のデプロイ基盤 アーキテクチャやフローの紹介 • 各アプリケーションリポジトリのCircleCIからコンテナイメージをプッシュ ◦ (後述するようにGitHub Actionsに移⾏したい) •
ArgoCD Image Updater + GitHub ActionsでPull Request作成(本番のみ) • Pull Requestをマージすると ArgoCDが新しい設定をKubernetesに適⽤し、新しいイメージがデプロイされる Copyright © Livesense Inc.
転職会議のデプロイ基盤のこれから SECTION 4 Copyright © Livesense Inc.
アプリケーションリポジトリのCIを CircleCIからGitHub Actionsに移⾏したい • 理由 ◦ ワークフローをプライベートリポジトリ間で共有したい ◦ エコシステムが充実している •
実際にGitHub Actions使っている⽅で、 知⾒ある⽅、懇親会で相談させてください 4. 転職会議のデプロイ基盤のこれから Copyright © Livesense Inc.
• ブランチデプロイ時などにArgoCD Image Updaterの挙動のもっさり感が⽬⽴っている • ArgoCD Image Updaterの次のリリースで⾼速化につながりそうな機能が出そう ◦ Gitリポジトリのシャローフェッチなど
• 将来的には、Webhookを受け取って いい感じにタイミングよく動いてくれたらいいなぁ‧‧‧ ◦ ArgoCD Image Updaterのロードマップ上には予定あり イメージの更新を⾼速化したい 4. 転職会議のデプロイ基盤のこれから Copyright © Livesense Inc.
夢: プレビュー環境を実現したい 4. 転職会議のデプロイ基盤のこれから • Pull Requestがまだマージされていない状態で、 同時に複数のエンジニアが異なる機能の動作確認を⾏えるようにしたい! • ArgoCD
+ AWS Load Balancer Controllerで実現できないか検討中 ◦ ArgoCD Applications SetでIngressをデプロイして 複数のIngressを⼀つのALBにグルーピング機能でまとめることでルーティングを実 現する構想 • mirrordやtelepresenceなどのローカル環境と Kubernetes上のコンテナを接続するツールも導⼊できると尚良し Copyright © Livesense Inc.
最⾼のCI/CD環境づくりは まだまだ道半ば! Copyright © Livesense Inc.
None