15.3K Views
March 22, 24
スライド概要
Backstage勉強会【Platform Engineering Meetup Online#1】の登壇資料です。
https://platformengineering.connpass.com/event/311665/
ゲームが大好きなインフラ寄りのエンジニア。 新しいことに触れるのが好きです。デザインやイラストも好きで、最近はUIやWebフロントエンドに興味があります。 最近は3DCGにも興味があり、BlenderやUnreal Engineの勉強中です。 これまで不足していたアウトプットを増やそうと画策中。
Hello World, Backstage! Platform Engineering Meetup Online#1 Ayako Tanaka (@tananyan29)
Who am I? Ayako Tanaka / tanayan 株式会社エーピーコミュニケーションズ CloudNative Days - Committee Platform Engineering Meetup - Organizer Platform Engineering Kaigi - Committee @tanayan299 @tananyan29
話すこと・話さないこと 本日お話しすること Backstageのコンセプトや実現しているユースケースなど、 概要・入門的な内容 本日お話ししないこと 具体的なBackstageの導入・設定方法、詳細な事例など
ざっくりPlatform Engineering 開発者の認知負荷軽減と生産性向上を第一の目的とし、 認知負荷の根源となっている諸々を解決する基盤(Platform)を構築・運用する またそれを行う専任チーム(Platform Team)を作っていく Micro Service Serverless IaC Container Kubernetes Platform as a Product 開発 リリース デプロイ 開発者が求める 機能を実装 運用 開発者向けPlatform Platform Team Dev Team 開発者ヒアリング &フィードバック Dev Team = Customer
開発を始めるために必要なのは? 開発環境 ルール ノウハウ 開発を行うためのツールや プラットフォーム チーム開発を行う上で 開発者が守るべきルール 与えられた環境で開発を 行うためのノウハウ 従来の基盤チーム の主力範囲 開発チームごとのルール策定 車輪の再発明が多い Platform Engineering で 重要となる範囲
Golden Pathの重要性 開発のベストプラクティス + 実装するための環境を合わせて開発者に提供 → 迷わず効率的に仕事を進められるようにする Golden Path via 開発者向けPlatform Platform Team 開発者に守ってほしいルールを付与しつつ、 実際に動くアプリとコードにより開発者のノウハウ習得をサポート ! Dev Team
Golden Pathの重要性 開発のベストプラクティス + 実装するための環境を合わせて開発者に提供 → 迷わず効率的に仕事を進められるようにする Golden Golden Path を提供することが、 Path プラットフォームチームの主要なミッションの一つとも言える! via 開発者向けPlatform Platform Team 開発者に守ってほしいルールを付与しつつ、 実際に動くアプリとコードにより開発者のノウハウ習得をサポート ! Dev Team
Internal Developer Platform/Internal Developer Portal Dev 操作用UI 開発者ポータル Application Deploy Status Check etc… インターフェース の提供 Internal Developer Portal Golden Path の公開先としての 開発者の窓口 IaCデプロイパイプライン アプリケーションデプロイパイプライン etc… Cloud Console CI/CD Kubernetes IaC 抽象化された Platform Security 開発者プラットフォーム Database Internal Developer Platform Docs … … 機能/仕組み の整備
Internal Developer Platform/Internal Developer Portal Dev インターフェース の提供 Backstage Application Deploy Status Check etc… Golden Path の公開先としての 開発者の窓口 IaCデプロイパイプライン アプリケーションデプロイパイプライン etc… Cloud Console CI/CD Kubernetes IaC 抽象化された Platform Security 開発者プラットフォーム Database Internal Developer Platform Docs … … 機能/仕組み の整備
Backstage とは何者? Backstageは、もともと Spotify が開発した開発者ポータルツール 2020 年3 月にOSSとしてCNCFに寄贈 在りし日の Spotify では… 組織のスケール速度を 維持したい!! 文章化されていない組織知 新しいコンポーネント作成方法の伝達困難 両立困難 … コンテキスト切り替えによる生産性低下 etc… 製品開発の速度を 維持したい!!
Backstage とは何者? Backstageは、もともと Spotify が開発した開発者ポータルツール 2020 年3 月にOSSとしてCNCFに寄贈 在りし日の Spotify では… 組織のスケール速度を 維持したい!! 文章化されていない組織知 Backstage 新しいコンポーネント作成方法の伝達困難 両立困難 … コンテキスト切り替えによる生産性低下インフラと開発ツールを抽象化 簡素化 ェア開発を一元化して トウ フ ソ Eの E2 etc… 製品開発の速度を 維持したい!!
Backstage とは何者? Backstageは、もともと Spotify が開発した開発者ポータルツール 2020 年3 月にOSSとしてCNCFに寄贈 在りし日の Spotify では… 組織のスケール速度を 維持したい!! 文章化されていない組織知 Backstageは全てのソフトウェアとその所有者を 両立困難 … 一元的に管理 し、発見可能にすることを目的としているよ! 新しいコンポーネント作成方法の伝達困難 コンテキスト切り替えによる生産性低下 etc… 製品開発の速度を 維持したい!!
Backstage のインスタンス構造 Plugin Plugin App Backstage Core Plugin 企業のニーズに合わせて拡張するための追加機能 基本機能もプラグインとして抽象化されている 組織のエンドユーザーが利用する開発者ポータル部分 オープンソースプロジェクトのコア開発者によって構築された基本 機能 必要に応じて機能を自在に追加・カスタマイズできる柔軟性が特徴
Backstageの哲学 • Backstage is the interface (インターフェイスとしての一元化) • Backstage embraces autonomy (開発者の自律性の支援を行う) • Backstage demands clear ownership (明確な所有権の確立)
Backstageの哲学 - Backstage is the interface Backstage は開発で用いられる多くのインフラストラクチャツールを 同一のインターフェイスを通じて一元化することを目的としている = Backstage はツールを再実装するものではない ソース情報 閲覧 集約 Dev Team and so on… 詳細情報
Backstageの哲学 - Backstage embraces autonomy Backstageを通して、開発者は必要なものを セルフサービス で利用できる Backstageではプラグインアーキテクチャを通じて各チームの自律性を支援することを 目指している Pick Up Plugin Dev Team and so on…
Backstageの哲学 - Backstage demands clear ownership Backstageで管理する各ソフトウェアコンポーネントには、 明確に所有チームを紐づける 必要がある → 集中的な管理を避けることで、情報の透明性とアクセス性を高めることを目指している Dev Team A Dev Team B Dev Team C Dev Team D
Backstageが実現する3つのユースケースと5つのコア機能 Create GoldenPathに沿った形で 新規アプリケーションを迅速 に作成する コア機能: - Software Template - TechDocs Manage Explore Software Componentを 一元管理 再利用可能な社内リソース とその所有者の検索 コア機能: - Software Catalog(overview) - K8s Plugin コア機能: - Software Catalog(list) - Search
Backstageが実現する3つのユースケース - Create Create GoldenPathに沿った形で 新規アプリケーションを迅速 に作成する コア機能: - Software Template - TechDocs Manage Explore Software Componentを 一元管理 再利用可能な社内リソース とその所有者の検索 コア機能: - Software Catalog(overview) - K8s Plugin コア機能: - Software Catalog(list) - Search
Backstageのコア機能 - Software Template ● ● ● Create GoldenPathに沿った形で 新規アプリケーションを迅速 に作成する コア機能: - Software Template - TechDocs 新規プロジェクトの環境構築を支援 開発者は数クリックで目的のマイクロサービスなどを開発するた めのベースリポジトリを作成可能 生成されたコンポーネントはカタログに自動登録可能 ○ Templateを利用することで発見可能性と標準化が促進
Backstageのコア機能 - Software Template ● ● ● 新規プロジェクトの環境構築を支援 開発者は数クリックで目的のマイクロサービスなどを開発するた めのベースリポジトリを作成可能 生成されたコンポーネントはカタログに自動登録可能 ○ Templateを利用することで発見可能性と標準化が促進 Create GoldenPathに沿った形で 新規アプリケーションを迅速 に作成する コア機能: - Software Template - TechDocs Create New Repository
Backstageのコア機能 - TechDocs ● ● ● Create GoldenPathに沿った形で 新規アプリケーションを迅速 に作成する コア機能: - Software Template - TechDocs ドキュメントを一元的に管理する機能 ○ Repository内のMarkdownから静的サイトを自動生成 (Document as Code) 各Repositoryに移動することなくドキュメントの確認が可能 Markdownをコードと一緒に配置するため更新しやすい
Backstageが実現する3つのユースケース - Manage Create GoldenPathに沿った形で 新規アプリケーションを迅速 に作成する コア機能: - Software Template - TechDocs Manage Explore Software Componentを 一元管理 再利用可能な社内リソース とその所有者の検索 コア機能: - Software Catalog(overview) - K8s Plugin コア機能: - Software Catalog(list) - Search
Backstageのコア機能 - Software Catalog(overview) ● ● Manage Software Componentを 一元管理 コア機能: - Software Catalog(overview) - K8s Plugin 組織内の全てのソフトウェアアセット (ウェブサイト, API, ライブラ リ, データリソースなど) を一元的に管理するためのディレクトリを 提供 カタログではコンポーネントごとにメタデータ、所有者、CI/CDの状 況などを確認可能 ○ コンテキストの切り替えが不要
Backstageのコア機能 - Software Catalog(overview) ● ● Manage Software Componentを 一元管理 コア機能: - Software Catalog(overview) - K8s Plugin 組織内の全てのソフトウェアアセット(ウェブサイト, API, ライブラリ, データリソースなど) を一元的に管理するためのディレクトリを提 供 カタログではエンティティごとにメタデータ、所有者、CI/CDの状況 などを確認可能 ○ コンテキストの切り替えが不要
Backstageのコア機能 - Software Catalog(overview) ● ● Manage Software Componentを 一元管理 コア機能: - Software Catalog(overview) - K8s Plugin 組織内の全てのソフトウェアアセット(ウェブサイト, API, ライブラリ, データリソースなど) を一元的に管理するためのディレクトリを提 供 カタログではエンティティごとにメタデータ、所有者、CI/CDの状況 などを確認可能 ○ コンテキストの切り替えが不要
Backstageのコア機能 - K8s Plugin ● ● Manage Software Componentを 一元管理 コア機能: - Software Catalog(overview) - K8s Plugin 開発チーム用のKubernetes可視化ツール カタログの画面において、登録済みコンポーネントに紐づくクラス ターの情報を表示
Backstageのコア機能 - K8s Plugin ● ● Manage Software Componentを 一元管理 コア機能: - Software Catalog(overview) - K8s Plugin 開発チーム用のKubernetes監視ツール カタログの画面において、登録済みエンティティに紐づくクラスター の情報を表示
Backstageが実現する3つのユースケース - Explore Create GoldenPathに沿った形で 新規アプリケーションを迅速 に作成する コア機能: - Software Template - TechDocs Manage Explore Software Componentを 一元管理 再利用可能な社内リソース とその所有者の検索 コア機能: - Software Catalog(overview) - K8s Plugin コア機能: - Software Catalog(list) - Search
Backstageのコア機能 - Software Catalog(list) ● ● Explore 再利用可能な社内リソース とその所有者の検索 コア機能: - Software Catalog(list) - Search 組織内のソフトウェアを一覧で確認可能 コンポーネントごとにメタデータ、所有者、依存関係を追跡し、ソフ トウェアの構造を可視化するグラフを生成 ○ 依存関係の把握により、システム全体構造理解を促進
Backstageのコア機能 - Software Catalog(list) ● ● Explore 再利用可能な社内リソース とその所有者の検索 コア機能: - Software Catalog(list) - Search 組織内のソフトウェアを一覧で確認可能 エンティティごとにメタデータ、所有者、依存関係を追跡し、ソフト ウェアの構造を可視化するグラフを生成 ○ 依存関係の把握により、システム全体構造理解を促進
Backstageのコア機能 - Search ● ● Explore 再利用可能な社内リソース とその所有者の検索 コア機能: - Software Catalog(list) - Search Backstageに集約される様々な情報を横断的に検索するための 機能 キーワードを指定し、ドキュメント (TechDocs)や必要とするリポジ トリを横断的に検索することが可能
まとめ ● Backstageは開発者ポータルツールの一つであり、Golden Path によってつくられたドキュメン トやテンプレートの公開先として、また各種プラットフォーム機能へのリンク等を記載する先とし て、開発者にとっての窓口となる存在 ● Backstageはインターフェイスとしての一元化 (Backstage is the interface)、開発者の自律性 の支援 (Backstage embraces autonomy)、明確な所有権の確立 (Backstage demands clear ownership)の3つの哲学を持つ ● BackstageはCreate、Manage、Exploreの3つのユースケースを実現する ● ユースケースを実現するために 5つのコア機能がある
よき Backstage ライフを! X: @tananyan29 / GitHub: @tanayan299
スライドに登場した ネコは何匹? 感想と一緒に答えを ポストしてほしいな