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

リリース速度10倍を実現したビットキー流DevOps - Argo CD との付き合い方 - ...

リリース速度10倍を実現したビットキー流DevOps - Argo CD との付き合い方 - / Bitkey-style DevOps with 10X faster release speed - How to work with Argo CD -

ビットキーでは Kubernetes (GKE) を用いてアプリケーションを開発・運用しています。
リリースにおいて、以前はデプロイスクリプトの実行やCLIによるコマンド操作をしていたことから2時間程度かかっていましたが、現在は Argo CD を用いることにより、GUI にて数回クリックするだけで10分程度で実行完了させることができました。
本セッションでは Argo CD の開発や本番での環境ごとのリリース方法の設定のほか、CLI を活用したゼロからの Argo CD の環境構築についてもご紹介します。
CloudNative Tokyo 2023:https://event.cloudnativedays.jp/cndt2023/talks/2021

More Decks by 株式会社ビットキー / Bitkey Inc.

Other Decks in Technology

Transcript

  1. 2 Copyright © 2023 Bitkey Inc. All right reserved. Outline

    1. 自己紹介 2. ビットキー 3. 開発組織とアーキテクチャ 4. bitkey platform:BKP 5. ビットキー流 DevOps 6. ゼロから構築し破棄する Argo CD 環境 7. 今後の展望・まとめ
  2. 4 Copyright © 2023 Bitkey Inc. All right reserved. 自己紹介

    大高 浩太郎  Kotaro Otaka 2020.04 2022.11 新卒社会人として Web業界にてエンジニア人生開幕 AWS Lambda など Serverless による開発を経験 株式会社ビットキーへジョイン Google Cloud を活用した デジタルキーを管理するプラットフォーム開発 認証認可なども実装 2023.12 Platform & Subsystems BKP & HubCoreModule 2023年 ベストバイアイテム Dygma Raise Dygma Raise 2 が発売されるとか... @otakakot
 @otakakot

  3. 7 Copyright © 2023 Bitkey Inc. All right reserved. ビットキー

    創業  :2018年8月  従業員数:約230名 開発者数:約80名 事業  :デジタルコネクトプラットフォームの      企画・設計・開発
  4. 8 Copyright © 2023 Bitkey Inc. All right reserved. ビットキー

    根底にあるのは Connect Everything という思想
  5. 9 Copyright © 2023 Bitkey Inc. All right reserved. ビットキー

    “人々の生活すべてを対象に” 3つの事業を推進 暮らし 働く 非日常 ※ 企画構想中
  6. 10 Copyright © 2023 Bitkey Inc. All right reserved. ビットキー

    ソフトウェアの領域を超えてリアルとデジタルの「分断」を解消
  7. 11 Copyright © 2023 Bitkey Inc. All right reserved. 3.

    開発組織とアーキテクチャ
  8. 12 Copyright © 2023 Bitkey Inc. All right reserved. 開発組織とアーキテクチャ

    組織 プロダクト ビジネス 横断的プロダクト開発 経営チーム / 横断機能組織 事業組織 プロダクト プラットフォーム開発 ビジネス 横断的リレーションシップ構築 コーポレート機能 ファームウェア開発 SRE‧CRE ハードウェア開発 UI / UXデザイン サプライチェーン コーポレートブランディング PR クリエイティブ デザイン 財務‧経理 / 法務‧知財 ⼈事‧総務 / 情報システム リクルーティング カルチャー Board Member プロジェクトマネジメント カスタマーサクセス アライアンス ビジネスマーケティング セールス WEBアプリ開発 モバイルアプリ開発 プロダクトマネジメント QA‧テスティング プロダクトブランディング プロジェクトマネジメント カスタマーサクセス アライアンス ビジネスマーケティング セールス WEBアプリ開発 モバイルアプリ開発 プロダクトマネジメント プロダクトブランディング Home Workspace
  9. 16 Copyright © 2023 Bitkey Inc. All right reserved. bitkey

    platform:BKP bitkey platform:BKP ▪ビットキーに関わる ヒト・モノ・コト を管理するシステム ▪ヒト … ビットキーアカウントや組織管理 認証認可を独自で作成 OIDC や SAML 連携も可能 ▪モノ … ビットキーデバイスや仮想的に作りだす鍵穴、そしてデジタルキー ▪コト … モノの取引 ▪ ほかにも … ▪ 顔情報の管理 … 顔認証に利用する特徴量抽出やその管理 ▪ メッセージ配信 … 認証や組織への招待で利用 ▪開発者は私を含め3名体制
  10. 18 Copyright © 2023 Bitkey Inc. All right reserved. bitkey

    platform:BKP アーキテクチャ 今日話すところ
  11. 20 Copyright © 2023 Bitkey Inc. All right reserved. ビットキー流

    DevOps Argo CD ▪ アルゴプロジェクトのひとつ ▪ Argo CD ▪ Argo Workflow ▪ Argo Rollouts ▪ Argo Events ref: https://argo-cd.readthedocs.io/en/stable/ ▪ Argo CD ▪ Kubernetes のための GitOps に則った CD (Continuous Delivery) ツール  -> デプロイ自動化ツール
  12. 21 Copyright © 2023 Bitkey Inc. All right reserved. ビットキー流

    DevOps GitOps ▪ Git リポジトリを信頼できる唯一の情報源として使用 ▪ インフラとアプリケーションを管理する手法 ▪ Argo CD を使うと Git で管理している Kubernetes マニフェストの状態となるように  (自動で)環境に適応が可能 ref: https://www.weave.works/technologies/gitops/
  13. 22 Copyright © 2023 Bitkey Inc. All right reserved. ビットキー流

    DevOps ブランチ戦略 ▪ GitHub Flow に近い形 を目指す ▪ 利用するブランチは main と feature/xxxx main feature/xxx Pull Request
  14. 23 Copyright © 2023 Bitkey Inc. All right reserved. ▪

    方法 全てがスクリプトで完結するわけではなく手作業も必要 ▪ 時間 ▪ だいたい2時間程度 ビットキー流 DevOps Before Argo CD
  15. 24 Copyright © 2023 Bitkey Inc. All right reserved. ビットキー流

    DevOps After Argo CD ▪ 方法 GitOps による自動リリース ▪ 時間 ▪ 開発環境 0 分 ▪ ステージング・本番環境 約 5 分
  16. 25 Copyright © 2023 Bitkey Inc. All right reserved. ビットキー流

    DevOps なぜ Argo CD ??? ▪ 移行が決断できた大きなきっかけは StatefulSet の廃止 ▪ そのまま Jenkins × Helm でもよかったが Argo CD にチャレンジ ▪ StatefulSet の廃止で GitOps の恩恵を受けることができそう ▪ Kubernetes 初心者だった私としてもGUIはユーザーフレンドリーで好感触
  17. 26 Copyright © 2023 Bitkey Inc. All right reserved. ビットキー流

    DevOps Argo CD との付き合い方 ▪ How it Works ▪ kustomize applications ▪ helm charts ▪ jsonnet files ▪ Prain directory of YAML/json manifests ▪ Any custom config management tool configured as a config management plugin ref: https://argo-cd.readthedocs.io/en/stable/#how-it-works
  18. 27 Copyright © 2023 Bitkey Inc. All right reserved. ビットキー流

    DevOps Helm charts ▪ Kubernetes 用のパッケージマネージャー ▪ 公開されているチャートの利用 ▪ Argo CD ▪ Datadog Agent ▪ 独自構築のチャート利用 ▪ BKPのアプリケーション構築 ▪ テンプレートを利用した環境ごとの値管理 ref: https://helm.sh/
  19. 28 Copyright © 2023 Bitkey Inc. All right reserved. ビットキー流

    DevOps ディレクトリ構成 ▪ manifest を管理するリポジトリ ▪ argocd/apps ... Argo CD で アプリケーションを管理するための manifest ▪ 監視対象のアプリケーションをどうやってデプロイするか(ex:helm)を記載 ▪ charts ... helm charts でアプリケーションを管理するための manifest ▪ アプリケーションがどのようにオーケストレーションされるかを記載 ▪ scripts ... Argo CD への apply と login のスクリプト ▪ argocd command を使いやすくするように記述 ▪ 誤って別環境へのデプロイを防止
  20. 29 Copyright © 2023 Bitkey Inc. All right reserved. ビットキー流

    DevOps BKPの環境 ▪ 開発環境 ▪ BKPチームの開発環境 ▪ アプリケーションリポジトリ main マージで即デプロイ ▪ デイリーでE2Eテストを実行 ▪ ステージング環境(社内開発者への開発およびステージング環境) ▪ ビットキー社内向け環境 ▪ デイリーでデプロイ ただし、E2Eが失敗していた場合はスキップ ▪ 本番ミラー環境 ▪ ウィークリーで構築 ▪ 本番リリース前の最終動作確認に使用 ▪ 本番環境
  21. 30 Copyright © 2023 Bitkey Inc. All right reserved. ビットキー流

    DevOps 環境ごとの設定 ▪ velues.yaml + values-${env}.yaml ▪ Argo CD の application manifest  apply するときに該当の環境を指定
  22. 31 Copyright © 2023 Bitkey Inc. All right reserved. ビットキー流

    DevOps Argo CD への適応 ▪ Argo CD でアプリケーションを管理する manifest はプレーンに近い管理 ▪ 動的に変更したい値は envsubst を用いて環境やブランチ名を切り替えて対応 ▪ 初回デプロイやブランチ変更を実施したい場合に下記のようなコマンドを実行
  23. 34 Copyright © 2023 Bitkey Inc. All right reserved. ビットキー流

    DevOps 本番ミラー環境 「ゼロから構築し破棄する Argo CD 環境」 にて解説します!
  24. 36 Copyright © 2023 Bitkey Inc. All right reserved. ビットキー流

    DevOps ビットキー流 DevOps のいいところ ▪ 開発環境は勝手に自動でデプロイ ▪ ステージング環境もGUIで簡単にデプロイ可能 ▪ 本番環境もステージング環境と同様の作業で完了 ▪ ロールバックもGUIで簡単に
  25. 37 Copyright © 2023 Bitkey Inc. All right reserved. 6.

    ゼロから構築し破棄する Argo CD 環境
  26. 38 Copyright © 2023 Bitkey Inc. All right reserved. ゼロから構築し破棄する

    Argo CD 環境 週次リリースで必要となるミラー環境 ▪ なぜ必要になったのか インフラ維持費が高い ▪ 以前は起動しっぱなし ウィークリーでしか使わないのに ▪ 開発環境やステージング環境は性能が低いインスタンスや安価なpreemptibleを活用 ▪ 本番ミラー環境は本番環境同等のインスタンスを利用 無駄!!!
  27. 39 Copyright © 2023 Bitkey Inc. All right reserved. ゼロから構築し破棄する

    Argo CD 環境 前提:リポジトリ管理 大きく 3種類 のリポジトリが存在 ▪ manifest リポジトリ ▪ Kubernetes 管理 ▪ application リポジトリ ▪ 複数存在します。ほんとうはモノレポにしたい ▪ terraform リポジトリ ▪ Google Cloud のインフラ管理
  28. 40 Copyright © 2023 Bitkey Inc. All right reserved. ゼロから構築し破棄する

    Argo CD 環境 2つの流れ 1. リリース用のPRを作成 2. 最終検証用の本番ミラー環境を構築。そして破棄。
  29. 41 Copyright © 2023 Bitkey Inc. All right reserved. ステップ1:特定の時刻

    に application リポジトリにてジョブを起動 ステップ2:application リポジトリ に対してタグを作成 ステップ3:application リポジトリにてタグ作成をトリガーにジョブが起動 ゼロから構築し破棄する Argo CD 環境 流れ1:リリース用のPRを作成
  30. 42 Copyright © 2023 Bitkey Inc. All right reserved. 1.

    repository-dispatch にて manifest リポジトリのジョブを起動 2. リリース用のブランチおよびPRを作成 ゼロから構築し破棄する Argo CD 環境 ステップ1:特定の時刻 に application リポジトリにてジョブが起動
  31. 43 Copyright © 2023 Bitkey Inc. All right reserved. ゼロから構築し破棄する

    Argo CD 環境 ステップ2:application リポジトリ に対してタグを作成 1. 各アプリケーションリポジトリに対して release-yyyy-mm-dd-x タグを作成
  32. 44 Copyright © 2023 Bitkey Inc. All right reserved. 1.

    コンテナをビルド 2. コンテナをプッシュ 3. 該当のアプリケーションの manifest を repository-dispatch にて更新 ゼロから構築し破棄する Argo CD 環境 ステップ3:application リポジトリにてタグ作成をトリガーにジョブが起動
  33. 45 Copyright © 2023 Bitkey Inc. All right reserved. ゼロから構築し破棄する

    Argo CD 環境 流れ2:最終検証用の本番ミラー環境を構築。そして破棄。 ステップ1:特定の時刻 に terraform リポジトリにあるミラー環境を構築するジョブを起動 ステップ2:manifest リポジトリにあるミラー環境にアプリケーションをデプロイするジョブを起動 ステップ3:特定の時刻 に terraform リポジトリにあるミラー環境を破棄するジョブを起動 ステップ1 ステップ2 ステップ3
  34. 46 Copyright © 2023 Bitkey Inc. All right reserved. ゼロから構築し破棄する

    Argo CD 環境 ステップ1 ▪ 特定の時刻 に terraform リポジトリにあるミラー環境を構築するジョブを起動 ▪ terraform apply するだけ
  35. 47 Copyright © 2023 Bitkey Inc. All right reserved. ゼロから構築し破棄する

    Argo CD 環境 ステップ2 ▪ manifest リポジトリにあるミラー環境にアプリケーションをデプロイするジョブを起動 1. Argo CD を Kubernetes にインストール 2. Argo CD に login する 3. Argo CD の project を作成する 4. Argo CD の project に add-destination する 5. Argo CD の project に allow-cluster-resource する 6. Argo CD の project に add-source する 7. Argo CD の project に add ssh-private-key する 8. Argo CD の project に監視対象ブランチを release-yyyy-mm-dd-x に設定して apply する 9. Argo CD の application を sync する
  36. 48 Copyright © 2023 Bitkey Inc. All right reserved. ゼロから構築し破棄する

    Argo CD 環境 argocd Command Reference ▪ Argo CD サーバーへのコマンドドキュメント ▪ ブックマーク必須 ▪ 各種コマンドを丁寧に解説 ref: https://argo-cd.readthedocs.io/en/stable/user-guide/commands/argocd/
  37. 49 Copyright © 2023 Bitkey Inc. All right reserved. ゼロから構築し破棄する

    Argo CD 環境 argocd install ▪ Argo CDをインストール ▪ GUIなどが存在しないコアコンポーネントだけをインストールすることも可能 ref: https://argo-cd.readthedocs.io/en/stable/getting_started/ 1. Argo CD を Kubernetes にインストール 2. Argo CD に login する 3. Argo CD の project を作成する 4. Argo CD の project に add-destination する 5. Argo CD の project に allow-cluster-resource する 6. Argo CD の project に add-source する 7. Argo CD の project に add ssh-private-key する 8. Argo CD の project に監視対象ブランチを release-yyyy-mm-dd-x に設定して apply する 9. Argo CD の application を sync する
  38. 50 Copyright © 2023 Bitkey Inc. All right reserved. ゼロから構築し破棄する

    Argo CD 環境 argocd login ▪ Argo CD へとログインするためのコマンド ▪ Argo CD へとコマンド実行するために必須 ▪ [SERVER] は kubectl port-forward でポートを解放し接続 ref: https://argo-cd.readthedocs.io/en/stable/user-guide/commands/argocd_login/ 1. Argo CD を Kubernetes にインストール 2. Argo CD に login する 3. Argo CD の project を作成する 4. Argo CD の project に add-destination する 5. Argo CD の project に allow-cluster-resource する 6. Argo CD の project に add-source する 7. Argo CD の project に add ssh-private-key する 8. Argo CD の project に監視対象ブランチを release-yyyy-mm-dd-x に設定して apply する 9. Argo CD の application を sync する
  39. 51 Copyright © 2023 Bitkey Inc. All right reserved. ゼロから構築し破棄する

    Argo CD 環境 argocd proj create ▪ Argo CD で管理するためのプロジェクトを作成するコマンド ▪ プロジェクトはアプリケーションの論理的なグループを管理 ▪ BKPはとくにグループわけしていないのでひとつだけ作成 ref: https://argo-cd.readthedocs.io/en/stable/user-guide/commands/argocd_proj_create/ 1. Argo CD を Kubernetes にインストール 2. Argo CD に login する 3. Argo CD の project を作成する 4. Argo CD の project に add-destination する 5. Argo CD の project に allow-cluster-resource する 6. Argo CD の project に add-source する 7. Argo CD の project に add ssh-private-key する 8. Argo CD の project に監視対象ブランチを release-yyyy-mm-dd-x に設定して apply する 9. Argo CD の application を sync する
  40. 52 Copyright © 2023 Bitkey Inc. All right reserved. ゼロから構築し破棄する

    Argo CD 環境 argocd proj add-destination ▪ Argo CD プロジェクトへ Kubernetes の destination (宛先:namespace) apply を許可するコマンド ref: https://argo-cd.readthedocs.io/en/stable/user-guide/commands/argocd_proj_add-destination/ 1. Argo CD を Kubernetes にインストール 2. Argo CD に login する 3. Argo CD の project を作成する 4. Argo CD の project に add-destination する 5. Argo CD の project に allow-cluster-resource する 6. Argo CD の project に add-source する 7. Argo CD の project に add ssh-private-key する 8. Argo CD の project に監視対象ブランチを release-yyyy-mm-dd-x に設定して apply する 9. Argo CD の application を sync する
  41. 53 Copyright © 2023 Bitkey Inc. All right reserved. ゼロから構築し破棄する

    Argo CD 環境 argocd proj allow-cluster-resource ▪ Argo CD プロジェクトへ Kubernetes リソースへのアクセスを許可するコマンド ref:https://argo-cd.readthedocs.io/en/stable/user-guide/commands/argocd_proj_allow-cluster-resource/ 1. Argo CD を Kubernetes にインストール 2. Argo CD に login する 3. Argo CD の project を作成する 4. Argo CD の project に add-destination する 5. Argo CD の project に allow-cluster-resource する 6. Argo CD の project に add-source する 7. Argo CD の project に add ssh-private-key する 8. Argo CD の project に監視対象ブランチを release-yyyy-mm-dd-x に設定して apply する 9. Argo CD の application を sync する
  42. 54 Copyright © 2023 Bitkey Inc. All right reserved. ゼロから構築し破棄する

    Argo CD 環境 argocd proj add-source ▪ Argo CD プロジェクトへ特定のGitリポジトリへのアクセスを許可するコマンド ref: https://argo-cd.readthedocs.io/en/stable/user-guide/commands/argocd_proj_add-source/ 1. Argo CD を Kubernetes にインストール 2. Argo CD に login する 3. Argo CD の project を作成する 4. Argo CD の project に add-destination する 5. Argo CD の project に allow-cluster-resource する 6. Argo CD の project に add-source する 7. Argo CD の project に add ssh-private-key する 8. Argo CD の project に監視対象ブランチを release-yyyy-mm-dd-x に設定して apply する 9. Argo CD の application を sync する
  43. 55 Copyright © 2023 Bitkey Inc. All right reserved. ゼロから構築し破棄する

    Argo CD 環境 argocd repo add ssh-private-key ▪ Argo CD プロジェクトへ追加した Git リポジトリへの接続情報を設定するコマンド ▪ 事前にキーペアを準備し GitHub に保存 ref: https://argo-cd.readthedocs.io/en/stable/user-guide/commands/argocd_repo_add/ 1. Argo CD を Kubernetes にインストール 2. Argo CD に login する 3. Argo CD の project を作成する 4. Argo CD の project に add-destination する 5. Argo CD の project に allow-cluster-resource する 6. Argo CD の project に add-source する 7. Argo CD の project に add ssh-private-key する 8. Argo CD の project に監視対象ブランチを release-yyyy-mm-dd-x に設定して apply する 9. Argo CD の application を sync する
  44. 56 Copyright © 2023 Bitkey Inc. All right reserved. ゼロから構築し破棄する

    Argo CD 環境 kubectl apply ▪ Argo CD へ application の管理 manifest を適用する 1. Argo CD を Kubernetes にインストール 2. Argo CD に login する 3. Argo CD の project を作成する 4. Argo CD の project に add-destination する 5. Argo CD の project に allow-cluster-resource する 6. Argo CD の project に add-source する 7. Argo CD の project に add ssh-private-key する 8. Argo CD の project に監視対象ブランチを release-yyyy-mm-dd-x に設定して apply する 9. Argo CD の application を sync する
  45. 57 Copyright © 2023 Bitkey Inc. All right reserved. ゼロから構築し破棄する

    Argo CD 環境 argocd app sync ▪ Argo CD へとアプリケーションを同期するように指示するコマンド ▪ 個別にアプリケーション名を指定したり argocd app list で一覧取得して for で回して実行 ref: https://argo-cd.readthedocs.io/en/stable/user-guide/commands/argocd_app_sync/ 1. Argo CD を Kubernetes にインストール 2. Argo CD に login する 3. Argo CD の project を作成する 4. Argo CD の project に add-destination する 5. Argo CD の project に allow-cluster-resource する 6. Argo CD の project に add-source する 7. Argo CD の project に add ssh-private-key する 8. Argo CD の project に監視対象ブランチを release-yyyy-mm-dd-x に設定して apply する 9. Argo CD の application を sync する
  46. 58 Copyright © 2023 Bitkey Inc. All right reserved. ゼロから構築し破棄する

    Argo CD 環境 argocd app list ▪ Argo CD で管理されているアプリケーションの一覧を取得するコマンド ▪ Sync や Healthy といった状態も取得できる ▪ -o json オプションにて json 形式で出力し jq にて加工して使う ref: https://argo-cd.readthedocs.io/en/stable/user-guide/commands/argocd_app_list/ 1. Argo CD を Kubernetes にインストール 2. Argo CD に login する 3. Argo CD の project を作成する 4. Argo CD の project に add-destination する 5. Argo CD の project に allow-cluster-resource する 6. Argo CD の project に add-source する 7. Argo CD の project に add ssh-private-key する 8. Argo CD の project に監視対象ブランチを release-yyyy-mm-dd-x に設定して apply する 9. Argo CD の application を sync する
  47. 59 Copyright © 2023 Bitkey Inc. All right reserved. ゼロから構築し破棄する

    Argo CD 環境 ステップ3 ▪ 特定の時刻 に terraform リポジトリにあるミラー環境を破棄するジョブを起動 ▪ 破棄したいリソースを指定して terraform destroy を実行
  48. 60 Copyright © 2023 Bitkey Inc. All right reserved. ゼロから構築し破棄する

    Argo CD 環境 Argo CD のいいところ ▪ GUIによる操作 ▪ インフラの状態が可視化される ▪ Kubernetes キャッチアップ中の  私にとって大きなメリット ▪ CUIによる自動化 ▪ Argo CD 環境構築に使える(再現性) ▪ (重要) ドキュメントがイケてて読みやすい ref: https://argo-cd.readthedocs.io/en/stable/user-guide/commands/argocd/ ▪ 他ツールとの比較などは未実施 ▪ Flux ▪ PipeCD
  49. 61 Copyright © 2023 Bitkey Inc. All right reserved. ゼロから構築し破棄する

    Argo CD 環境 GitHub Actions で調整してて思ったツラミや雑感 ツラミ ▪ 調整・動作確認が超めんどくさい ▪ 環境構築して破棄しての連続 ▪ コンソールからリソース消しても大丈夫かな?挙動変わっちゃうかな? ▪ 30分から1時間は待ちが発生 ▪ 待ち時間に作業はできるけどすぐ確認したい ▪ GitHub Actions に関しては別のGitHubリポジトリにて簡易的に検証 ▪ ミラー環境構築が安定しなかったときにはミラー環境が構築できずリリースをスキップ
  50. 62 Copyright © 2023 Bitkey Inc. All right reserved. ゼロから構築し破棄する

    Argo CD 環境 GitHub Actions で調整してて思ったツラミや雑感 雑感 ▪ GitHub Actions でフローを作っているときは楽しいけど忘れる ▪ フロー図とかがないとなにをしているかわからなくなる ▪ ドキュメントほんと大事 ▪ 社内勉強会でリリースについて共有する機会があったのでそのとき作成 ▪ 無理やりでもそういう機会を作ってドキュメントを作成 ▪ この資料もある種のドキュメント! ▪ このフローに至るまでも紆余曲折が... ▪ このあと 株式会社ビットキー Developer Advent Calendar 2023 公開予定!
  51. 63 Copyright © 2023 Bitkey Inc. All right reserved. ゼロから構築し破棄する

    Argo CD 環境 GitHub Actions で調整してて思ったツラミや雑感 雑感 ▪ yaml ファイルを操作する yq コマンドが2種類存在 ▪ kislyuk/yq ▪ mikefarah/yq ▪ オプションだったりの挙動が若干違うので困る ▪ 可能なら yaml じゃなくて json にして jq 使う ▪ どうしても yq を使うなら mikefarah/yq を使う ▪ why? GitHub Actions での runner image にインストールされているから ▪ ref: Ubuntu 22.04 README.md
  52. 65 Copyright © 2023 Bitkey Inc. All right reserved. 今後の展望・まとめ

    困りごと ▪ マイグレーションジョブの設定 ▪ auto sync がうまく動かせていない ▪ force オプションで実行 ▪ アプリケーション管理が単一のレポジトリではないのでミラー環境構築のフローが複雑 ▪ リポジトリはどうやって管理していますか? ぜひ、議論しませんか!?
  53. 66 Copyright © 2023 Bitkey Inc. All right reserved. 今後の展望・まとめ

    今後の展望 ▪ リリースタイミングを簡単に調整したい ▪ GitHub Actions でクーロンを設定しているが調整しづらい ▪ ミラー環境へのE2Eテストが自動化できていない ▪ 最初は GitHub Actions でトリガー引いてたけどタイミングを失ってやめた ▪ いまは手動実行している ▪ ミラー環境での検証って本当に必要?ほかによいリリース方法ってない? ▪ Blue Green デプロイ ▪ カナリアリリース ▪ 厳密なリリース順番を自動で担保したい ▪ 本番環境は Auto Sync ではないのでそれぞれ Sync ▪ Argo CD には Apps of App パターンがある ref:https://argo-cd.readthedocs.io/en/stable/operator-manual/cluster-bootstrapping/#app-of-apps-pattern
  54. 67 Copyright © 2023 Bitkey Inc. All right reserved. 今後の展望・まとめ

    まとめ ビットキー流 DevOps として環境ごとの運用方法を紹介 Argo CD は Argo CD CLI と GitHub Actions を組み合わせることで 簡単に何度でも 構築可能 みなさんも Argo CD と付き合ってみませんか? ♡
  55. 68 Copyright © 2023 Bitkey Inc. All right reserved. 今後の展望・まとめ

    We Are Hiring ! 職種の一例としては... 1. PdM 2. EM 3. SE(WEB、モバイル) 4. SRE 5. UI/UXデザイナー … など、様々なポジションで募集中です! ご興味があれば右のQRコードまたは、 X(Twitter): @otakakot までお気軽に Go 連絡ください! わたしたちは、ともに働く仲間を募集しております!