プラットフォームエンジニアリングを加速させるCircleCI

1.1K Views

January 23, 24

スライド概要

現代のソフトウェア開発におけるイノベーションとリスク管理
https://www2.circleci.com/fy24q4-brand-apac-lvt-_Registration.html

企業全体でのソフトウェアデリバリーを向上させる手段として、近年プラットフォームエンジニアリングが注目されています。このセッションでは、プラットフォームエンジニアリングを実践・進化させていきたい方に向けたCircleCIの最近機能とベストプラクティスを、デモを交えながらご紹介します。

・リリースエージェント(Kubernetes)
・BIダッシュボード(Insights)
・設定ファイルのポリシー管理(Config Policy)

profile-image

CircleCI の Japan・APAC 担当として、様々なCI/CD(Web/インフラ/モバイル/ゲーム)の導入・技術的支援をリードしています。前職ではフリマアプリ企業で Software Engineer in Test(SET)、AIスタートアップ企業で DevOps エンジニアとして CI / CD や自動テストの導入・改善を行ってきました。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

プラットフォームエンジニアリングを加速 させるCircleCI 2024/01/23 Tadashi Nemoto Senior Solutions Engineer 1

2.

Agenda 1 プラットフォームエンジニアリングとは? 2 プラットフォームエンジニアリングにおけるCI/CDの選定基準は? 3 プラットフォームエンジニアリングを加速させるCircleCI の機能 4 ● リリースエージェント (Kubernetes) ● BIダッシュボード (Insights) ● 設定ファイルのポリシー管理 (Config Policy) まとめ 2

3.

プラットフォーム エンジニアリングとは? 3

4.

● プロジェクト・開発チーム・部署が自 CI/CDを含めた 開発ツールを 選定する 由に選定 ● 今後共通した開発基盤(プラット フォーム)として提供したい 4

5.

● プロジェクト・開発チーム・部署が自 CI/CDを含めた 開発ツールを 選定する 由に選定 ● 今後共通した開発基盤(プラット フォーム)として提供したい 5

6.

プラットフォーム エンジニアリング https://www.gartner.co.jp/ja/articles/what-is-platform-engineering 6

7.

プラットフォーム エンジニアリング の効果 ● 開発者体験と生産性の向上 ● 一貫性と効率化 ● プロダクト・チームによる顧客価値の デリバリーを加速 ● Gartner社 ○ 2024年戦略的技術トレンドTop10 ○ 2026年までにソフトウェア企業の80%がプ ラットフォームチームを結成する と予測 7

8.

プラットフォーム エンジニアリングにおける CI/CDの選定基準は? 8

9.

プラットフォームエンジニアリングにおける CI/CD の選定基準 セルフホストによる メンテナンス 不安定さを減らす なるべく1つの CI/CD に 統一する 可視化・管理の しやすさを重視する 9

10.

セルフホストによるメ ンテナンス 不安定さを減らす ● 例) Jenkins や セルフホストランナー ● メンテナンス ● ● ○ 引き継ぎ、担当者の変更 ○ ブラックボックス化しやすい 信頼性 ○ リリースの信頼性も悪化する ○ リリース頻度や復旧時間にも悪影響 プラットフォームが拡大した際に、 安定してスケールできることが重要 マネージド型を選定すべき 10

11.

● VCS に依存した CI/CD サービス ● クラウドプロバイダーに依存した CI/CD サービ ス なるべく1つの CI/CDに統一する ● モバイル CI/CD サービスなど ● 意識しないと無限にツールが増えていく ● 可視性や知見の共有、コラボレーション、ガバ ナンスが難しくなる ● あらゆる条件・ユースケースに合うCI/CDツー ルを選び、統一していく 11

12.

● 可視化・管理 のしやすさを 重視する ● 可視化 ○ プロジェクト毎の CI/CD 利用状況 ○ デプロイ・リリース状況 管理のしやすさ ○ 監査ログの取得 ○ 利用ポリシーの作成 ○ 設定ファイルの共通化 ● 開発者: 素早いセットアップ、拡大、最適化 ● 基盤提供者: 負担軽減、標準化、ガバナンス 12

13.

プラットフォームエンジニアリングにおける CI/CD の選定基準 セルフホストによる メンテナンス 不安定さを減らす なるべく1つの CI/CD に 統一する 可視化・管理の しやすさを重視する 13

14.

プラットフォーム エンジニアリングを加速させる CircleCI の機能 14

15.

マルチVCS・マルチプラットフォーム・マルチクラウド対応 Best in Class CI/CD サービス ソースコード管理 コードコミット コラボレーション 本番環境へのリリース マルチVCS デリバリ ビルド • テスト • デリバリ Linux Windows macOS GPU マルチクラウド 実行 モニタリング • 運用 15

16.

● リリースエージェント(kubernetes) プラットフォームエン ジニアリングを加速 させる CircleCI の 機能 ● BI ダッシュボード(Insights) ● 設定ファイルのポリシー管理 (Config Policy) 16

17.

● Kubernetes へのリリースを CircleCI 内 のみで一元管理 リリースエージェント (Kubernetes) ○ リリースステータスの把握 ○ 操作(キャンセル、ロールバック、 スケールアップ・ダウンなど) ● ● 今後以下をサポート予定 ○ Progressive Delivery(Blue/Green) ○ AI/MLによる機能強化 ○ Kubernetes 以外のプラットフォーム CI/CD(ビルド・テスト・リリース)を1つのプラット フォームに統合することができる 17

18.

リリースエージェントのアーキテクチャー 18

19.

タイムライン ダッシュボードで、各 クラスタへの直近のリリースを 一覧表示 コンポーネントごとの詳細も表示可能

20.

コンポーネント タイムラインで 各コンポーネントのリリース履歴を 参照可能 詳細ページで各リリースの 詳細な情報を確認

21.

● CI/CD 導入後も開発者・基盤提供者共に、 データに基づいた改善を ● DevOps Four Keys に基づいた パイプラインデータ BI ダッシュボード (Insights) ○ 成功率(Success Rate) 実行時間(Duration) 実行頻度(Throughput) クレジット消費 ● 自動化されたテストのデータ ○ 実行されたテストの推移 ○ 不安定なテスト(Flaky Tests) ○ 実行時間が長いテスト 21

22.

インサイトダッシュボード 22

23.

テストインサイトダッシュボード 23

24.

● 設定ファイルのポリシーを策定・組織に適用 ○ セキュリティテストなど特定のジョブを必ず 実行させる ○ 設定ファイルの ポリシー管理 (Config Policy) 特定の実行環境やシークレット(Context)を使う ようにする、それ以外は使わないようにする ○ Hard Fail(実行させない)、Soft Fail(実行するが 開発者に警告を出す)など柔軟に制御可能 ● 基盤の拡大に伴う、セキュリティ・ガバナンスの向上 ● “ドキュメントではなく機械的に” 標準化・ベストプラクティス の共有を行う 24

25.

ポリシー例 25

26.

適用例 26

27.

● セキュリティ ○ FedRAMP, SOC2 Type II 標準 ○ 監査ログ(最大12ヶ月保存) ○ OpenID Connect によるクラウド プロバイダーへのセキュアなアクセス その他 ■ AWS, GCP, Azure をサポート ● iOS / Android アプリケーションの CI/CD サポート ● 設定ファイルの共通化(Private Orb) ● セルフホストランナー 27

28.

まとめ 28

29.

プラットフォームエンジニアリングにおける CI/CD の選定基準 セルフホストによる メンテナンス 不安定さを減らす なるべく1つの CI/CD に 統一する 可視化・管理の しやすさを重視する 29

30.

マルチVCS・マルチプラットフォーム・マルチクラウド対応 Best in Class CI/CD サービス ソースコード管理 コードコミット コラボレーション 本番環境へのリリース マルチVCS デリバリ ビルド • テスト • デリバリ Linux Windows macOS GPU マルチクラウド 実行 モニタリング • 運用 30

31.

● リリースエージェント(kubernetes) プラットフォームエン ジニアリングを加速 させる CircleCI の 機能 ● BI ダッシュボード (Insights) ● 設定ファイルのポリシー管理 (Config Policy) 31

32.

Thank you!! [email protected] 32