Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CloudNative DaysはカンファレンスのシステムをどうCI/CDしているのか

CloudNative DaysはカンファレンスのシステムをどうCI/CDしているのか

ツナカン(TUNA-JP Conference) #4 で話した資料です!
https://tuna-jp.connpass.com/event/254710/

システム運用で失敗した話については、Cloud Operator Days Tokyo 2021の発表をどうぞ
https://www.youtube.com/watch?v=T0KB_9wKvTw

Kazuto Kusama

August 22, 2022
Tweet

More Decks by Kazuto Kusama

Other Decks in Technology

Transcript

  1. 他にも欲しい機能が沢山ある • スポンサーのロゴを画面に表示したい ◦ 既存の仕組みだと、動画側にうまく埋め込む必要がある • 事前収録・オンライン登壇・会場登壇をうまくミックスしたい ◦ OBS等を活用して職人芸でスイッチング作業する •

    スポンサーに提供する「リード」を取得したい ◦ 参加者の情報をどうやって取得するか。 YouTube Liveではそういった情報は取れない。 • できればイベントの告知は配信と同じサイトで行いたい • できればCFPなども同じサイトで募集したい • などなど
  2. イベントプラットフォーム「Dreamkast」 CloudNative Daysへの参加申し込みや、 カンファレンスの視聴が行えるWebアプリケーション。 設計のコンセプトは 「大晦日のテレビ感覚で見られるUX」 ・歌合戦 ・笑ってはいけない ・格闘技 ・トークバラエティ

    ・グルメ ずっと同じ番組を見ても良いし、好きな人が出ていると きだけその番組に切り替える、あるいはチャンネルを回 して面白そうなものを見るという視聴スタイル
  3. Review App DreamkastとCI/CD Pull Request Main Branch GitHub ActionsでRSpec実行(CI) Merge

    Staging Production PRごとにレビュー用アプリ を自動デプロイ 自動デプロイ 自動デプロイ(トリガーは手動) Commit コードレビュー 動作確認 レビューして問題無ければ Approve
  4. Dreamkast v1 - 良かったことと気になったこと • 本番まで3ヶ月を切る中で、ゼロから開発を開始して本番にこぎ着けた RailsとHerokuの生産性すごかった • CI/CDを初手から行ったおかげで上手く分担して開発が出来た •

    HerokuがビルトインでCD周りを提供してくれたのが最高に助かった • 総じてテクノロジー選択は最適だったと思う 気になったこと • クラウドではあるがクラウドネイティブではない ◦ テクノロジースタックとしては枯れているもの。今回はポジティブ面が 目立ったが、今後どうなるか? • DB周りの安定度 ◦ Heroku AddonのDBは本番向けには難が多く、直前にAmazon RDSに切り替 えた • UI周りの開発が早々に限界に ◦ jQueryを使ったが、インタラクティブなUIの作成には向いていないと感じた
  5. Dreamkast v2.x 2021/09 - CI/CD Conference 2021 2021/11 - CloudNative

    Days Tokyo 2021 2022/03 - Observability Conference 2022
  6. ArgoCD Application これまで取っていたパターン Pull Request pr-123 App Repo Infra Repo

    Pull Request pr-124 Dreamkast Deployment Dreamkast UI Deployment Contour HTTPProxy MySQL Statefulset Redis Statefulset ArgoCD Application (pr-124) Dreamkast Deployment Dreamkast UI Deployment Contour HTTPProxy MySQL Statefulset Redis Statefulset ArgoCD Application (pr-123) App-of-apps pattern PRチェック Manifest生成
  7. ArgoCD Application ArgoCD Application apiVersion: argoproj.io/v1alpha1 kind: ApplicationSet metadata: name:

    dreamkast-dk namespace: argocd spec: generators: - pullRequest: github: owner: cloudnativedaysjp repo: dreamkast template: metadata: name: 'dreamkast-dk-{{number}}' spec: project: reviewapps source: repoURL: https://github.com/cloudnativedaysjp/dreamkast-infra.git targetRevision: main path: manifests/app/dreamkast/overlays/development/template-dk ApplicationSet Pull Request pr-123 App Repo Pull Request pr-124 ArgoCD ApplicationSet ApplicationSet Controller
  8. イベント運営の全てをコード化 Amazon IVS MediaLive Dreamkast Team Broadcast Team OBS Studio

    cndctl After Effects Export 動画自動生成 Observability Team Monitor Stats Promotion Team Export Export
  9. Kubernetes以外の活用 API Gateway Lambda ECS EKS DynamoDB 新機能 Amplify Promo

    Web Heroku時代に比べるとコストが10倍に 跳ね上がってしまったため、k8sである 必要がないアプリはAWSの機能で運用し ていきたい
  10. Kubernetes以外の活用 API Gateway Lambda ECS EKS DynamoDB 新機能 Amplify Promo

    Web これをどうやってCI/CDしていくかは チャレンジ
  11. CloudNative Days Tokyo 2022 • 11/21-22に開催! スケジュール空けておいて下さい! • CFPは9月中旬に開始! ネタ考えておいてください!

    • (たぶん) ハイブリッド開催! オンラインでもオフラインでも登壇でき るし参加出来ます