1.1K Views
January 23, 24
スライド概要
現代のソフトウェア開発におけるイノベーションとリスク管理
https://www2.circleci.com/fy24q4-brand-apac-lvt-_Registration.html
企業全体でのソフトウェアデリバリーを向上させる手段として、近年プラットフォームエンジニアリングが注目されています。このセッションでは、プラットフォームエンジニアリングを実践・進化させていきたい方に向けたCircleCIの最近機能とベストプラクティスを、デモを交えながらご紹介します。
・リリースエージェント(Kubernetes)
・BIダッシュボード(Insights)
・設定ファイルのポリシー管理(Config Policy)
CircleCI の Japan・APAC 担当として、様々なCI/CD(Web/インフラ/モバイル/ゲーム)の導入・技術的支援をリードしています。前職ではフリマアプリ企業で Software Engineer in Test(SET)、AIスタートアップ企業で DevOps エンジニアとして CI / CD や自動テストの導入・改善を行ってきました。
プラットフォームエンジニアリングを加速 させるCircleCI 2024/01/23 Tadashi Nemoto Senior Solutions Engineer 1
Agenda 1 プラットフォームエンジニアリングとは? 2 プラットフォームエンジニアリングにおけるCI/CDの選定基準は? 3 プラットフォームエンジニアリングを加速させるCircleCI の機能 4 ● リリースエージェント (Kubernetes) ● BIダッシュボード (Insights) ● 設定ファイルのポリシー管理 (Config Policy) まとめ 2
プラットフォーム エンジニアリングとは? 3
● プロジェクト・開発チーム・部署が自 CI/CDを含めた 開発ツールを 選定する 由に選定 ● 今後共通した開発基盤(プラット フォーム)として提供したい 4
● プロジェクト・開発チーム・部署が自 CI/CDを含めた 開発ツールを 選定する 由に選定 ● 今後共通した開発基盤(プラット フォーム)として提供したい 5
プラットフォーム エンジニアリング https://www.gartner.co.jp/ja/articles/what-is-platform-engineering 6
プラットフォーム エンジニアリング の効果 ● 開発者体験と生産性の向上 ● 一貫性と効率化 ● プロダクト・チームによる顧客価値の デリバリーを加速 ● Gartner社 ○ 2024年戦略的技術トレンドTop10 ○ 2026年までにソフトウェア企業の80%がプ ラットフォームチームを結成する と予測 7
プラットフォーム エンジニアリングにおける CI/CDの選定基準は? 8
プラットフォームエンジニアリングにおける CI/CD の選定基準 セルフホストによる メンテナンス 不安定さを減らす なるべく1つの CI/CD に 統一する 可視化・管理の しやすさを重視する 9
セルフホストによるメ ンテナンス 不安定さを減らす ● 例) Jenkins や セルフホストランナー ● メンテナンス ● ● ○ 引き継ぎ、担当者の変更 ○ ブラックボックス化しやすい 信頼性 ○ リリースの信頼性も悪化する ○ リリース頻度や復旧時間にも悪影響 プラットフォームが拡大した際に、 安定してスケールできることが重要 マネージド型を選定すべき 10
● VCS に依存した CI/CD サービス ● クラウドプロバイダーに依存した CI/CD サービ ス なるべく1つの CI/CDに統一する ● モバイル CI/CD サービスなど ● 意識しないと無限にツールが増えていく ● 可視性や知見の共有、コラボレーション、ガバ ナンスが難しくなる ● あらゆる条件・ユースケースに合うCI/CDツー ルを選び、統一していく 11
● 可視化・管理 のしやすさを 重視する ● 可視化 ○ プロジェクト毎の CI/CD 利用状況 ○ デプロイ・リリース状況 管理のしやすさ ○ 監査ログの取得 ○ 利用ポリシーの作成 ○ 設定ファイルの共通化 ● 開発者: 素早いセットアップ、拡大、最適化 ● 基盤提供者: 負担軽減、標準化、ガバナンス 12
プラットフォームエンジニアリングにおける CI/CD の選定基準 セルフホストによる メンテナンス 不安定さを減らす なるべく1つの CI/CD に 統一する 可視化・管理の しやすさを重視する 13
プラットフォーム エンジニアリングを加速させる CircleCI の機能 14
マルチVCS・マルチプラットフォーム・マルチクラウド対応 Best in Class CI/CD サービス ソースコード管理 コードコミット コラボレーション 本番環境へのリリース マルチVCS デリバリ ビルド • テスト • デリバリ Linux Windows macOS GPU マルチクラウド 実行 モニタリング • 運用 15
● リリースエージェント(kubernetes) プラットフォームエン ジニアリングを加速 させる CircleCI の 機能 ● BI ダッシュボード(Insights) ● 設定ファイルのポリシー管理 (Config Policy) 16
● Kubernetes へのリリースを CircleCI 内 のみで一元管理 リリースエージェント (Kubernetes) ○ リリースステータスの把握 ○ 操作(キャンセル、ロールバック、 スケールアップ・ダウンなど) ● ● 今後以下をサポート予定 ○ Progressive Delivery(Blue/Green) ○ AI/MLによる機能強化 ○ Kubernetes 以外のプラットフォーム CI/CD(ビルド・テスト・リリース)を1つのプラット フォームに統合することができる 17
リリースエージェントのアーキテクチャー 18
タイムライン ダッシュボードで、各 クラスタへの直近のリリースを 一覧表示 コンポーネントごとの詳細も表示可能
コンポーネント タイムラインで 各コンポーネントのリリース履歴を 参照可能 詳細ページで各リリースの 詳細な情報を確認
● CI/CD 導入後も開発者・基盤提供者共に、 データに基づいた改善を ● DevOps Four Keys に基づいた パイプラインデータ BI ダッシュボード (Insights) ○ 成功率(Success Rate) 実行時間(Duration) 実行頻度(Throughput) クレジット消費 ● 自動化されたテストのデータ ○ 実行されたテストの推移 ○ 不安定なテスト(Flaky Tests) ○ 実行時間が長いテスト 21
インサイトダッシュボード 22
テストインサイトダッシュボード 23
● 設定ファイルのポリシーを策定・組織に適用 ○ セキュリティテストなど特定のジョブを必ず 実行させる ○ 設定ファイルの ポリシー管理 (Config Policy) 特定の実行環境やシークレット(Context)を使う ようにする、それ以外は使わないようにする ○ Hard Fail(実行させない)、Soft Fail(実行するが 開発者に警告を出す)など柔軟に制御可能 ● 基盤の拡大に伴う、セキュリティ・ガバナンスの向上 ● “ドキュメントではなく機械的に” 標準化・ベストプラクティス の共有を行う 24
ポリシー例 25
適用例 26
● セキュリティ ○ FedRAMP, SOC2 Type II 標準 ○ 監査ログ(最大12ヶ月保存) ○ OpenID Connect によるクラウド プロバイダーへのセキュアなアクセス その他 ■ AWS, GCP, Azure をサポート ● iOS / Android アプリケーションの CI/CD サポート ● 設定ファイルの共通化(Private Orb) ● セルフホストランナー 27
まとめ 28
プラットフォームエンジニアリングにおける CI/CD の選定基準 セルフホストによる メンテナンス 不安定さを減らす なるべく1つの CI/CD に 統一する 可視化・管理の しやすさを重視する 29
マルチVCS・マルチプラットフォーム・マルチクラウド対応 Best in Class CI/CD サービス ソースコード管理 コードコミット コラボレーション 本番環境へのリリース マルチVCS デリバリ ビルド • テスト • デリバリ Linux Windows macOS GPU マルチクラウド 実行 モニタリング • 運用 30
● リリースエージェント(kubernetes) プラットフォームエン ジニアリングを加速 させる CircleCI の 機能 ● BI ダッシュボード (Insights) ● 設定ファイルのポリシー管理 (Config Policy) 31
Thank you!! [email protected] 32