見つけた情報をご紹介します 👀
# flexibility

Observability Day 2024:Prometheus と CNCF 社群の進化と技術革新

PrometheusCNCFCommunityActivity LevelCNCF

Observability は現代のクラウドネイティブアーキテクチャにおいて不可欠な要素であり、システムの信頼性とパフォーマンスを確保するための基盤となる。CNCF(Cloud Native Computing Foundation)は、Observability 領域における主要な技術プロジェクトを育成し、コミュニティの活性化を通じて技術革新を推進している。本記事では、Observability Day 2024 における Prometheus、Fluent Bit、Jager、Open Telemetry などのプロジェクトの進展と、CNCF 社群の活動レベルを詳細に解説する。 ## Prometheus の進展 Prometheus は、過去12か月で最も活発な活動を遂げたプロジェクトであり、CNCF の他のプロジェクトと同等の活動レベルを維持している。GitHub のスター數では2番目に多く、技術革新とコミュニティの成長が顕著である。 ### キャンパスとガバナンス Prometheus は新しいガバナンスアーキテクチャを導入し、規模と包容性を向上させた。25人の新チームメンバーが加わり、メンテナの數はほぼ倍増した。このガバナンスの強化により、プロジェクトの持続可能性が確保されている。 ### テクノロジーの進化 Prometheus V3 がリリースされ、新UIや機能フラグの削除(破壊的変更なし)が含まれる。移行ガイドも提供され、ユーザーの負擔を軽減している。Histograms では、カスタムバケット境界のサポートが追加され、OTEL の Histograms と互換性を確保している。 ### プロトコルと拡張性 Prometheus Remote Read 2.0 がリリースされ、性能向上と機能強化が実現されている。Open Metrics v2 の開発も進んでおり、v1 の問題點を學びつつある。Open Telemetry との統合により、OTEL レシーバーが導入され、Delta 2 積算変換器が追加され、OTEL Collector なしでデータを受信できるようになった。 ### メトリクスの柔軟性 メトリクスとラベル名の文字セット制限が緩和され、UTF-8 のサポートが追加された。単位とタイプの明確な処理が導入され、リソース屬性の処理能力が向上した。Delta Temporality のサポートも近い將來に実裝される予定である。 ## Fluent Bit の新機能 Fluent Bit は、ログの収集と処理における柔軟性を高める新機能を導入した。 ### サンプリングと條件処理 Head Sampling と Tail Sampling が追加され、特定の條件に基づいてトレースデータを保持または捨てる機能が実裝された。Log Processor には條件判斷が追加され、條件に合致したログのみを処理できるようになった。 ### セキュリティと拡張性 TLS バージョンと暗號化スイートの指定が可能となり、ファイルシステムから変數を設定できるようになった。Z 言語のサポートが追加され、C との互操作性が向上した。クラウド、オンプレミス、エッジ環境での柔軟なデプロイが可能となり、Helm Chart と Kubernetes Operator のサポートが強化された。 ## Jager のアーキテクチャ変更 Jager V2 は Open Telemetry 生態系と完全に統合され、データ収集に修正版の OTEL Collector を採用した。 ### ストレージと UI の進化 ストレージ API がリファクタされ、OTEL とのネイティブ互換性が実現された。UI にはトポロジービューと強化された可視化ツールが追加され、フラメグラフやタイムラインのサポートが拡充された。 ### バックエンドと Kafka の統合 ClickHouse の公式サポートが追加され、OpenSearch でのリアルタイム指標計算が実現された。Kafka のネイティブデータキューがサポートされ、処理性能が向上した。 ## Open Telemetry の発展 Open Telemetry は、SDK 2.0 のリリースや語義的約定の進化により、観測性の基盤を強化している。 ### SDK と語義的約定 JavaScript SDK 2.0 がリリースされ、tree shaking などの最適化が実裝された。データベースの語義的約定(Semantic Conventions)の第2版がリリースされ、今月に安定版となる予定である。 ### 編集時インスツルメンテーション Go 言語の編集時インスツルメンテーション SIG が設立され、Go アプリケーションの観測性を向上させている。継続的プロファイラーが導入され、eBPF インスツルメンテーションとの統合が進んでいる。 ### 生成式 AI との統合 生成式 AI フレームワークが Open Telemetry をデフォルトでサポートしており、コミュニティの採用率が向上している。CNCF 社群では、非米國地域の貢獻者比率が50%に達しており、歐州地域の活動を促進するためのメンテナ會議が計畫されている。 ## 技術重點の総括 - **Prometheus**:V3 更新、Histograms 改善、Open Metrics v2 開発、Delta 2 轉換器導入 - **Fluent Bit**:ヘッド/テールサンプリング、Z 言語サポート、TLS 設定、Kafka 統合 - **Jager**:OTEL 統合、ストレージ API リファクタ、UI トポロジー視図、ClickHouse サポート - **Open Telemetry**:SDK 2.0、語義的約定、編集時インスツルメンテーション、継続的プロファイラー、生成式 AI 統合 ## CNCF 社群と Observability Day CNCF 社群は、Open Telemetry の認証制度(例:OpenTelemetry Certified Associate)を提供し、無料の入門コースも展開している。50%の貢獻者が非米國地域から來ていることから、歐州地域の活動を促進するため、2024年6月に Observability Day を開催し、8月にはアムステルダムでイベントを予定している。 ## Cortex と OpenSearch の進展 Cortex は、水平スケーラブルな Prometheus API、低遅延クエリ、キャッシュメカニズム、実験的機能の安定化を提供している。2.19 バージョンでは検出性能の向上や異常検出が実裝され、3.0 プランでは Apache Lucene 10 の導入が予定されている。 OpenSearch は、2019年に Elasticsearch から分離され、Linux Foundation に認証されたプロジェクトとして、分散型検索エンジンや向量データベースの統合を進めている。2.19 バージョンでは検索性能の改善やエコシステムの統合が行われ、3.0 プランでは Apache Arrow や gRPC/Protobuf のサポートが予定されている。 ## Thanos の更新 Thanos は、0.38 バージョン候補(RC2)をリリースし、OTLP 協議のサポートや原生 Histograms の導入を実現した。分散型クエリ実行機能により、PromQL クエリの処理効率が向上している。また、TanosCon という専用イベントが開催され、大規模なデプロイ経験が共有されている。 ## Cilium の進展 Cilium は、Windows プラットフォームでの eBPF サポートを拡充し、Tetragon との統合を進めている。Hubble では、動的指標設定機能が導入され、細かいフィルタリングが可能となった。コミュニティ活動として、週3回のミーティングや Slack チャンネルでの議論が行われている。 ## 結論 Observability Day 2024 における技術進展は、Prometheus、Fluent Bit、Jager、Open Telemetry などのプロジェクトの革新と CNCF 社群の活性化を象徴している。これらの技術は、クラウドネイティブ環境における信頼性と可観測性を確保するための基盤となる。今後も、コミュニティの協力と技術の進化を通じて、Observability 領域のさらなる発展が期待される。

OpenTelemetry における Delivery Hero の実踐:メリット、デメリット、そしてベンダーの課題

OpenTelemetryobservabilitytelemetryingestionvendorCNCF

## 背景と移行の動機 Delivery Hero は食品配送業界で活躍する企業であり、13の子會社を統合する過程で、それぞれが異なるプラットフォームと観測ツールを使用していた。この狀況により、分散トレースの統合が困難となり、データが異なるバックエンドに蓄積されていた。CTO は年間600萬ドルのコスト削減を目標に、プラットフォームと観測ツールの統合を推進した。この移行の目的は、ベンダー中立(vendor agnostic)の実現、語義的約束(semantic conventions)の標準化、そしてトレースを核としたすべてのテレメトリデータの統合である。 ## 移行戦略とアーキテクチャ設計 ### 理想的なアーキテクチャ 中央管理の OpenTelemetry Collector Agent を中心に、すべてのアプリケーションが OpenTelemetry SDK を使用し、データを Agent を経由して単一のベンダーにイングレスする構成が想定されていた。 ### 実際のアーキテクチャ - **中央 Datadog Collector**:Datadog フォーマットのデータを新ベンダーに統合。 - **中央 OTP Collector**:OTP フォーマットのデータを処理。 - **フェデレーテッドコレクター**:OTLP、Prometheus、JSON などの複數フォーマットをサポートし、新ベンダーに統合。 - **子會社獨自のコレクター**:Glovo、Logistics などの事業部は獨立したコレクターを維持。 ### 移行ステップ まずインフラの移行を完了し、その後アプリケーションの再インストルメンテーション(reinstrumentation)に著手した。 ## 遇う課題と問題 ### 1. カスタムコンポーネントと上流への貢獻 - **フォークされたコンポーネント**:DataDog Collector の受信機をフォークし、トレース、メトリクス、ログのすべてのテレメトリタイプをサポートする必要があった。既存のカスタムロジックは OpenTelemetry 上流バージョンと互換性がなく、戻すことができなかった。 - **その他のカスタムコンポーネント**:Span Metrics Connector、Prometheus Exporter、Delta to Cumulative Processor、Load Balancing Exporter など。 - **上流への貢獻の困難さ**:上流コンポーネントの更新サイクルが遅く、要望を迅速に統合できなかった。カスタムコンポーネントにより、OpenTelemetry Collector のバージョンアップに補丁を追加する必要があり、メンテナンスコストが増加した。 ### 2. データシリアライズ/デシリアライズのオーバーヘッド - **問題の概要**:コレクター內部でデータを変換する際、複數回のシリアライズとデシリアライズ(マーシャリング/アンマーシャリング)が行われた。これは引っ越しの例に比喩されるように、すべてのアイテム(フォーク、スプーンなど)を異なるボックスに分解するプロセスであり、効率が低下した。 - **パフォーマンスへの影響**:CPU 使用率が高くなり、ガベージコレクション(GC)のオーバーヘッドが増加した。メモリ消費も高くなり、フライムグラフでは大部分の CPU サイクルがデータ変換に費やされていた。 ### 3. 狀態を持つコンポーネントの追加ニーズ - **Span Metrics Connector**:同じトレースの spans が同じコレクターPodに到達するようにするため、Load Balancing Exporter を導入した。 - **Delta to Cumulative Processor**:DataDog ホストヘッダーに基づいてデータをルーティングする必要があり、獨自のプロキシアプリケーションとルーティングロジックを構築した。 - **メンテナンスコスト**:獨自コンポーネントの監視とデバッグを継続し、運用負擔が増加した。あるプロキシアプリケーションは重大な事故を引き起こした。 ## 結論と振り返り ### 継続的な課題 - カスタムコンポーネントと上流への貢獻のバランス。 - 狀態を持つコンポーネントの追加インフラストラクチャニーズ。 - データ変換のパフォーマンスオーバーヘッド。 ### 長期的な価値 - OpenTelemetry はベンダー中立とベンダーロックインの迴避を実現する唯一の手段である。 - 一時的なコストを払っても、長期戦略目標に合致する。 ### 総括 移行プロセスは困難だったが、OpenTelemetry の柔軟性と標準化の価値は大きい。カスタムコンポーネントと上流への貢獻プロセスを継続的に最適化し、メンテナンスコストを削減する必要がある。

から混亂へ明確性:Dropboxにおける集中ログ管理とLokiの活用

observabilitycentralized loggingLokiGrafanaevaluation metricCNCF

## はじめに 現代のクラウド環境では、アプリケーションの信頼性とパフォーマンスを確保するため、**observability(可観測性)**が不可欠です。特に、大規模なサービスアーキテクチャにおいては、分散されたログやメトリクスを統合的に管理する**集中ログ管理(centralized logging)**が重要な役割を果たします。本記事では、Dropboxが高スケールなログ管理を実現するために選んだ**Loki**と、その実裝における技術的選択肢と設計哲學を解説します。 ## 技術の定義と基本概念 **Observability**は、システムの內部狀態を外部から推測する能力を指します。これには、ログ(log)、メトリクス(metric)、トレース(trace)の3要素が含まれます。特に、**集中ログ管理**は、分散されたログを統合的に収集・検索・分析するためのアプローチであり、システムのトラブルシューティングや監視に不可欠です。 **Loki**は、CNCF(Cloud Native Computing Foundation)がサポートするオープンソースのログコレクションツールで、**メタデータベース(label-based indexing)**を採用し、コスト効率の高いスケーラビリティを実現しています。Lokiは、**Grafana**と深く統合されており、視覚化と分析を容易にします。 ## 重要な特性と機能 ### メタデータベースによる効率的な検索 Lokiは、ログ內容を直接保存せず、**メタデータ(label)**のみをインデックス化します。これにより、ストレージコストを削減し、検索効率を向上させます。例えば、`service=node1`や`cluster=prod`などのラベルでログをフィルタリングできます。 ### 分塊(Chunk)によるスケーラビリティ Lokiは、ログを時間順に分塊(Chunk)として保存し、対象のオブジェクトストレージ(例:S3、Google Cloud Storage)に圧縮して格納します。これにより、高スケールなログ処理を実現します。 ### 多租戶とセキュリティ Lokiは、多租戶環境をサポートし、各サービスやプロジェクトごとにログを隔離します。また、**端到端の暗號化(MTLS)**や**PII(Personally Identifiable Information)保護**、**動的アクセス制御**を実裝することで、セキュリティを強化しています。 ## Dropboxの実裝と課題 ### ログ管理の課題 Dropboxは、7.03億ユーザーをサポートするクラウドストレージサービスであり、以下の課題に直面していました: - **非構造化ログ**:アプリケーションからの出力がスキーマを持たず、手動処理が必要 - **ホストローテーション**:7日間のホスト交換によりログが失われる - **Kubernetesの移行**:コンテナの一時性によりログの永続性が保証されない - **SSH操作の制限**:圧縮ログやコンテナログの検索が困難 ### 評価基準と選定 Dropboxは、以下の5つの評価基準を設定し、Lokiを選定しました: 1. **コスト**:TCO(総所有コスト)を最小化 2. **パフォーマンス**:150TB/日のログ処理、P99注入遅延<30秒、クエリ応答<10秒 3. **スケーラビリティ**:大規模なログ処理をサポート 4. **ユーザー體験**:Grafanaとの統合 5. **セキュリティ**:端到端暗號化、PII保護、アクセス制御 ### Lokiの実裝詳細 Dropboxは、Lokiを以下のように実裝しました: - **書き込みパス**:Distributorがログを受信し、Ingesterが圧縮してオブジェクトストレージに保存 - **読み取りパス**:Query Frontendがクエリを分割し、関連するログブロックを検索 - **バックグラウンド処理**:Compactorがブロックをマージし、圧縮処理を実行 - **オブジェクトストレージ**:內部のMagic Pocketシステムを使用し、4MBブロック最適化を実施 ### 技術的課題と解決策 - **ハッシュと分散ストレージ**:Lokiの初期バージョンでは、SCD(Storage Class Device)のBlob更新が競合を引き起こしたため、GrafanaのMember Listを採用し、Delta更新を実裝 - **書き込み信頼性**:Write Ahead Log(WAL)を無効化し、可用性を優先 - **クエリインデックス**:BoldDBからGrafanaのTSDBに切り替え、クエリパフォーマンスを向上 ## 結論 Lokiは、メタデータベースと分塊ストレージの設計により、高スケールなログ管理を実現します。Dropboxは、Grafanaとの統合により、集中ログ管理と迅速なクエリを実現し、コスト効率とセキュリティを確保しました。Lokiは、クラウドネイティブ環境における集中ログ管理の選択肢として、高い柔軟性とスケーラビリティを提供します。

OpenTelemetryによる可観測性の拡張:MSCIの実踐と技術的考察

Open TelemetryObservabilityLegacy Vendor ToolingData CrunchingCNCF

## はじめに 現代の企業において、システムの信頼性とパフォーマンスはビジネスの成功に直結します。特に金融サービス業では、膨大なデータ処理と高可用性が求められ、可観測性(Observability)の重要性は日に日に増しています。本記事では、MSCIが遺留供給商ツールからOpenTelemetryへ移行し、可観測性を拡張した実踐を紹介します。OpenTelemetryの特徴、技術的アーキテクチャ、実裝の成果、および今後の展望について詳しく解説します。 ## OpenTelemetryとは? OpenTelemetryは、CNCF(Cloud Native Computing Foundation)が主導するオープンソースプロジェクトで、アプリケーションの可観測性を実現するための標準化されたフレームワークです。このプロジェクトは、**トレース(Tracing)、メトリクス(Metrics)、ログ(Logs)**の3つの主要な信號を統合的に収集・処理し、システム全體の狀態を把握するための基盤を提供します。 ### 主な特徴 - **柔軟性**:アプリケーションの種類や環境にかかわらず、さまざまな信號を収集可能です。 - **オープンスタンダード**:特定の供給商に依存せず、Elasticsearch、Prometheus、Jaegerなどの既存ツールと互換性を持ちます。 - **統一抽象層**:既存のツールやインフラと連攜し、システムの再構築を最小限に抑えながら統合可能です。 - **拡張性**:クラウドネイティブ環境でのスケーラビリティを確保し、今後の技術変化に迅速に対応できます。 ## MSCIにおける実裝と技術的アーキテクチャ MSCIは、440億ドル規模の金融サービス企業で、投資決定支援ツールを提供しています。技術的に、Azure、GCP、AWSなどの多クラウド環境を採用しており、6,000人のエンジニアが運用しています。しかし、55年の自然な成長と買収の積み重ねにより、**ツールのフラグメンテーション**と**チーム間の孤島化**が深刻な課題となっていました。 ### 実裝のステップ 1. **探索段階(2021年)**:Javaベースのテストアプリケーションを用いて、OpenTelemetryのJVMメトリクス収集能力を検証し、開発チームと協力してアプリケーションの儀表化を開始。 2. **推進と統合(2022年)**:標準化されたオンボーディングプロセス(Onboarding Scorecard)を導入し、80%のアプリケーションを儀表化。チーム間の協力體制を強化。 3. **最適化と拡張(2023年)**:ローカリティ原則(Locality Principle)を導入し、クラウドデータストレージの最適化を実施。自動化された儀表化パイプラインを構築。 ### 技術スタック - **OpenTelemetry Collector**:統一データ同期レイヤーとして、アプリケーションからの信號を収集。 - **Elasticsearch**:秒単位で1GBのデータを処理し、ログ、メトリクス、トレースを統合。 - **Jaeger**:分散型トレースツールとして、Elasticsearchと連攜。 - **Prometheus**:メトリクスのリアルタイム監視とアラート。 - **Grafana**:統一視覚化レイヤーとして、ログ、トレース、メトリクスを1つのインターフェースで表示。 - **Kubernetes**:OpenTelemetry Collectorのデプロイに使用し、Helmchartを活用したバージョン管理を実現。 ## 成果と業務への影響 ### 技術的成果 - **高スケーラビリティ**:秒単位で1GBのデータ処理を実現し、複雑なシステムの監視を可能に。 - **コスト削減**:CNCFエコシステムを活用し、供給商依存とライセンス費用を削減。 - **統一データレイヤー**:維持コストの削減とチーム間の協業効率の向上。 ### 業務的成果 - **問題検出時間(MTD)の30%削減**:OpenTelemetryの統合により、障害の早期発見が可能に。 - **自動化パイプライン**:新アプリケーションの儀表化を自動化し、即時での監視を実現。 - **可観測性カバレッジ率80%**:アプリケーション全體の監視を可能にし、業務の安定性を確保。 ## 面臨する課題と解決策 ### 主な課題 - **遺留システムの統合**:データ同期や開発者の抵抗(コード変更の必要性)。 - **儀表化の再構築**:既存のダッシュボード(舊言語A)の再設計。 - **オープンソースツールの運用**:OpenTelemetryの安定性と拡張性を確保するためのチーム責任。 - **データ規模管理**:日均2TB以上のデータ処理に向けた異常検出メカニズムの導入。 ### 解決策 - **抽象レイヤー設計**:OpenTelemetryを基盤に、既存のデータ孤島を保持しつつ段階的に統合。 - **儀表化優先**:アプリケーションの儀表化を優先し、次にデータ処理と可視化の最適化。 - **自動化パイプライン**:KubernetesとHelmchartを活用した迅速なデプロイとバージョン管理。 - **ドキュメントとトレーニング**:技術ドキュメントと簡易な學習資料を提供し、學習曲線を低減。 - **継続的な進化**:eBPFなどの新技術への探索を継続し、可観測性アーキテクチャの柔軟性を強化。 ## 今後の方向性と技術的展望 - **eBPF技術の活用**:Kubernetesクラスタ內での端到端依存分析を実現。 - **顧客洞察の統合**:ユーザーのニーズを予測し、アプリケーションのパフォーマンス問題を早期に発見。 - **多観測アーキテクチャの実験**:LGTMシナリオを評価し、複數の観測スタックを並行してテスト。 - **生成AIの支援**:技術問題の解決をAIで支援し、開発効率を向上。 ## 結論 OpenTelemetryは、MSCIが遺留供給商ツールから移行し、可観測性を拡張するための中心的な技術となりました。このアプローチにより、システムの安定性と障害対応能力が向上し、今後の技術革新にも柔軟に対応できる基盤が築かれました。技術と組織の変革を通じて、OpenTelemetryの導入は、長期的な価値をもたらす戦略的な選択です。

OpenTelemetry Profiling の現狀と技術的展望

profilingOpenTelemetrysignalCNCF

## はじめに OpenTelemetry は、クラウドネイティブ環境における観測性(Observability)を実現するためのオープンソースプロジェクトとして、メトリクス、トレース、ログの収集・分析を統合的にサポートしています。近年、プロファイリング(profiling)が新たな信號(signal)として OpenTelemetry に統合される動きが進んでおり、アプリケーションのパフォーマンス分析や異常診斷に不可欠な技術として注目されています。本記事では、OpenTelemetry Profiling の定義、技術的進展、実裝構造、課題、および今後の展望について詳しく解説します。 ## 技術の定義と基本概念 ### プロファイリングとは プロファイリングは、アプリケーションの実行中に消費されるリソース(CPU、メモリ、遅延など)を可視化する技術です。視覚化ツールとして、flamegraph、perfetto、Chrome開発者ツール、FlameScope などが利用され、コードの実行フローを詳細に解析します。これにより、パフォーマンスのボトルネックや、マルチスレッド環境での競合問題など、システムの挙動を深く理解できます。 ### 主な用途 - **異常診斷**:データベースのアップグレードなどによるCPU使用率の異常を迅速に特定。 - **パフォーマンス最適化**:高負荷の関數を特定し、リソース使用を調整。 - **尾部遅延分析**:ミューテックス競合などの分散システムのパフォーマンス改善。 - **マルチスレッド監視**:スレッド間の相互作用とボトルネックの可視化。 ## OpenTelemetry におけるプロファイリングの進展 ### 時系列での進展 - **2020年**:GitHub でプロファイリングを OpenTelemetry の新規信號として提案され、初期はメトリクスやロックの分析に注力。 - **2022年6月**:SIG(Special Interest Group)會議が設立され、100人以上の參加者によるデータモデル(OTB-212)とフォーマット標準(EP-239)の構築が進む。 - **2024年6月**:Elastic が ebpf プロファイラーを OpenTelemetry に寄贈し、標準化とツールチェーンの統合が実現。 - **2024年8月**:Google との協議により PPR フォーマットを維持し、OpenTelemetry が変換メカニズムを構築。 - **2024年10月**:OTL(OpenTelemetry Protocol)が Collector で実裝され、ebpf プロファイラーが Collector の受信器として採用。 - **2025年1月**:ebpf プロファイラーが Collector に正式統合され、リソース検出と屬性タグ付けが可能に。 ### 技術的アーキテクチャ - **クラスタワイドコレクター(Cluster-wide Collector)**:ログ、メトリクス、トレース、プロファイリング信號を受信し、OTL 協議で外部ストレージ(例:Elasticsearch)に変換。 - **ノードレベルコレクター(Node-level Collector)**:ebpf プロファイラーを起動し、各ノードで実行することでリソースの浪費を防ぐ。 - **データ処理フロー**:プロファイリングデータ(スタックトレース、タイムスタンプ)を生成し、リソース検出と屬性タグ付けでコンテキストを強化。OTL クエリ言語を用いたデータ変換と分析をサポート。 ## 技術的課題と今後の方向性 ### データモデルの最適化 - **スタックトレースの表現**:現在はフレームリスト形式で保存されているが、より効率的な構造への移行を検討。 - **タイムスタンプの処理**:フラメグラフなどのアグリゲートビューと時系列データのバランスを取る必要がある。 ### 協議の標準化 - **VLP(OpenTelemetry Profiling Protocol)の定義**:ツールチェーン間の互換性を確保。 - **ebpf と他ツールの統合**:JFR、PPR などのプロファイリングツールとのデータフォーマット統合。 ### 生産環境での実裝 - **開発段階**:データ変換、パフォーマンス最適化、安定性の向上が課題。 - **目標**:即時監視と可視化をサポートする完全な OpenTelemetry Profiling 生態系の構築。 ## 現在の狀態と推奨 OpenTelemetry Profiling 信號はまだ生産環境での利用には不十分ですが、テスト環境での利用を推奨します。コミュニティは活発に活動しており、フィードバックや貢獻が歓迎されています。今後の進展に注目し、必要に応じて実裝を進めてください。

Lightning Talk: 解鎖客戶中心可觀測性 〜Open TelemetryとAI原生開発プラットフォームの統合〜

open telemetrymean time to detectcustomer-centric observabilitycloud-native technologiesAI native development platformCNCF

## 背景と目的 現代の企業はAI原生開発プラットフォームを採用し、雲原生技術を基盤としており、ツール開発とオープンソースコミュニティへの貢獻に注力しています。數千のサービスと數百のWebアプリケーションを管理する中で、顧客體験の監視能力を向上させることが求められています。本稿では、平均検出時間(MTD)を3分未満に短縮し、顧客への影響を正確に評価するための「顧客中心の可観測性(Customer-Centric Observability)」の実現方法を解説します。 ## 顧客インタラクションの定義 **顧客インタラクション**とは、ユーザーが業務価値を生み出す行動(ボタンクリック、ファイルアップロード、銀行口座の追加など)を指します。このプロセスは以下のステップで構成されます: - 前端アクション(例:ボタンクリック) - 後端ネットワーク呼び出し - 応答処理とページ更新 - 最終的な表示確認 インタラクションの結果は、成功、降格、失敗(FCIS)の3つのカテゴリに分類されます。特に失敗インタラクションは重點的に監視対象とします。 ## 技術アーキテクチャと実裝 ### Open Telemetryの活用 Open Telemetry JavaScriptライブラリを用いて、インタラクションのトラッキングを実裝します。`createCustomerInteraction`メソッドをビジネスロジックに埋め込み、インタラクションの狀態(成功/失敗)を記録し、Open Telemetry Spanとして生成します。 ### データフローの設計 - 前端のSpanはOpen Telemetry JavaScriptによって収集され、 - Open Telemetry Collectorを経由して後端に送信され、 - 流処理パイプラインで成功/降格/失敗の指標を抽出し、 - 操作データラックに蓄積して異常検出に利用されます。 ### モニタリングとアラート Waveプラットフォームでデータを可視化し、異常検出パイプラインが指標の異常を検知します。閾値を超えた場合、Slack通知などの自動アラートが発信されます。 ## データ分析と効果 ### 顧客影響評価 **唯一ユーザー影響(Unique User Impact)**を計算し、重複を排除して影響範囲を正確に評価します。例えば、100ユーザーが2〜3回試行しても、5人の唯一ユーザーとしてカウントします。 ### 実績データ 8,500回のインタラクション中、21回が失敗し、5人の唯一ユーザーに影響(0.34%)を與えた例があります。このデータにより、問題の影響範囲と深刻度を特定できます。 ### 効率向上 MTD(平均検出時間)とMTI(平均修復時間)が明確に短縮され、開発者にフロントエンドシステムのリアルタイム狀態を提供します。 ## 関連技術とツール - **オープンソース貢獻**:Argo、Nomaなどのプロジェクトを維持 - **監視ツール**:Wave(データビジュアライゼーション)、操作データラック(異常検出用) - **信頼性確保**:ブラウザが10秒間バッファリングし、Open Telemetry Collectorにバッチ送信することで、データ転送の安定性と効率を確保 ## 今後の方向性 合成監視(Synthetic Monitoring)と実際のユーザーデータを統合し、異常検出モデルの精度向上と自動対応メカニズムの最適化を目指します。 ## 結論 本稿では、Open Telemetryを活用した顧客中心の可観測性の実現方法を解説しました。雲原生技術とAI原生開発プラットフォームの統合により、MTDの短縮と顧客影響の正確な評価が可能となりました。実裝においては、Open Telemetryの柔軟な拡張性と信頼性確保の仕組みを活用し、異常検出パイプラインの構築に注力することが重要です。今後は、合成監視との統合により、さらなる自動化と精度向上を目指します。

設計提案プロセスの拡張と実踐:KubernetesとCubeの進化

enhancement proposal processKubernetesQSIG1.33CNCF

## はじめに Kubernetesは2014年にリリースされ、Cloud Native Computing Foundation(CNCF)の graduate プロジェクトとして現在まで成長しました。プロジェクト規模の拡大に伴い、設計提案プロセスの體系化が求められ、KEP(Kubernetes Enhancement Proposal)やCubeの提案プロセスが進化してきました。本記事では、KEPの構造やCubeのプロセス改善、実裝における課題と今後の方向性について解説します。 ## Kubernetesの設計提案プロセス(KEP) ### 背景と起源 Kubernetesは初期の段階でSlackやメール、GitHub Issuesを通じて議論が行われていましたが、プロジェクトの規模拡大に伴い、透明性と協業効率を高めるためのシステム化が求められました。KEPは、提案の品質を確保し、コミュニティの協力を促進するためのフレームワークとして確立されました。 ### KEPの構造 1. **KEPテンプレート** - 提案の內容と段階(Alpha/Beta/Stable)を明確にします。 - 動機、設計詳細、テスト計畫、リスク評価などの項目を含みます。 2. **メタデータファイル(YAML)** - 參加者(Driver、Approver、Contributor、Informed)を記録します。 - DCモデル(Driver-Approver-Contributor-Informed)でプロジェクト管理視點を提供します。 3. **PRレビュープロセス** - 獨立チームによる生産性レビューを行い、現行システムへの影響を評価します。 - レビュー結果はGitHubに保存され、ステータス(Approver、PR Approverなど)が明記されます。 ### 発行サイクルとの統合 - **発行サイクル**:15〜16週間ごとに、議論、設計、実裝、テストの段階を區切ります。 - **Enhancement Freeze**:提案範囲を固定し、関連ファイルの変更を禁止します。 - **Code & Test Freeze**:実裝PRの審査とマージを期限內に完了させます。 - **例外処理**:未達成の提案は再評価を経て延長が可能ですが、厳格な條件があります。 ### 課題と改善 - **ドキュメント負擔**:一部の貢獻者が更新を怠り、情報が古くなることがあります。 - **プロセスの柔軟性**:SIG(Special Interest Group)はニーズに応じて門戸を調整し、初期は小規模な範囲から開始することを推奨します。 - **ツール統合**:YAMLメタデータは外部ツール(看板、ダッシュボードなど)との連攜を可能にします。 - **継続的な進化**:プロセスはプロジェクトの成長に合わせて調整され、コミュニティのコミュニケーションと責任分擔が重視されます。 ## Cubeの設計提案プロセスの進化 ### 初期段階 2016年に設立され、初期はPRと簡潔なドキュメントで機能を実裝していました(例:仮想マシンの移行)。貢獻者は3〜5人程度で、迅速なイテレーションが行われていましたが、構造化されたプロセスは存在しませんでした。 ### プロセスの確立と初期の課題 - **PRテンプレート**:機能目標と非目標を記載するよう求められましたが、実際には一貫性がありませんでした。 - **コミュニティリポジトリ**:設計ディレクトリを設け、提案テンプレート(目標、非目標など3〜5のセクション)を保管しました。 - **混亂狀態**:提案と他の議論が混在し、追跡メカニズムが欠如していたため、透明性が不足していました。 ### 改善と現在の狀況 - **設計ディレクトリ**:提案とその他の內容を分離し、可読性を向上させました。 - **追跡メカニズム**:Gitログで貢獻者と機能狀態を追跡しましたが、議論履歴は記録されていません。 - **機能閾値の不明確さ**:提案範囲が明確でなかったため、一部の機能(仮想マシンの優先順位など)が記録されていません。 - **閾値の未定義**:機能のデフォルトスイッチや削除タイミングが明確でなかったため、長期的なメンテナビリティに影響を與えました。 ### 今後の方向性 - **プロセスの標準化**:KubernetesのKEP構造を參考に、より完全な提案テンプレートを構築します。 - **コミュニティ參加の強化**:設計ミーティングやコミュニティ協力の強化により、提案の透明性と一貫性を向上させます。 - **ツール統合**:GitHubの機能(タグ、プロジェクトボードなど)を活用して、提案の進捗と狀態を追跡します。 ## 設計提案プロセスの拡張と最適化 ### 既存プロセスの課題 - **テンプレートの簡略化**:初期は目標と非目標の記載のみで、プロセスルールが明確ではありませんでした。 - **追跡メカニズムの欠如**:提案と他の議題(人材配置、権限調整など)が混在し、明確なプロセス管理が欠如していたため、提案の狀態が不明瞭でした。 - **透明性の不足**:提案評価や進捗の追跡が明確でなかったため、誰がどの機能を推進しているかが把握できませんでした。 - **個人関係依存**:機能進捗が個人の関係に依存し、包容性や新規貢獻者の參加が妨げられました。 - **機能管理の混亂**:例として、Hot Plug機能が調整不足により、ストレージ層とコンピュート層の実裝が不一致になっていた。 ### 新プロセスの設計 - **Kubernetesの拡張プロセスを參考に**:KEPの構造を採用し、テンプレートを簡略化(元の半分程度)します。 - **専用リポジトリ**:`cubert-enhancements`リポジトリを設置し、提案を集中管理するプラットフォームとして活用します。 - **GitHub Issueテンプレート**: - **機能目標**:提案の目的と非目的を明確にします。 - **連絡先指定**:主な連絡者(Primary Contact)とCubert側の責任者(Maintainer)を指定します。 - **成熟度ステータス**:機能の現在段階(草案、Alpha、Betaなど)を記載します。 - **SIGルーティングメカニズム**: - 提案は自動的に関連SIG(例:ネットワーク、ストレージ)にルーティングされます。 - SIGは機能の所有者(Owner)を指定し、実現可能性を評価します。 - **プロセス段階**: - **初期評価**:コアMaintainerによる初期レビュー(2〜3人)。 - **所有権移管**:評価通過後、機能の所有権をSIGに移管します。 - **ライフサイクル管理**:SIGが機能の開発と統合を主導します。 ### 発行サイクルとの統合 - **Kubernetesと同期**:Kubernetesの発行サイクルに合わせ、季節ごとに3回のリリース(元は4回で、安定テストのため2か月遅延)。 - **機能統合閾値**: - リリース前には統合テストを完了し、ブロックするバグを修正する必要があります。 - 特に重要な機能は90%完了度を條件にリリースを延期申請可能(議論の結果で調整)。 - **ロールバックとテスト**: - コミュニティメンバーが機能を下流ブランチにロールバック可能。 - 夜間ビルド(Nightly Builds)を提供してテストを支援。 ### 今後の提案 - **段階的なプロセス拡張**: - まずGitHub Issueのシンプルなフレームワークから始めて、貢獻者を引きつける。 - 次第にプロセスの複雑さを増やし、過度なルールを導入しない。 - **プロセスと柔軟性のバランス**: - OpenStackの経験を參考に、過度なプロセス化を避ける。 - 時間駆動型のリリースサイクルを主軸とし、重要な機能の調整は偶発的に行う。 - **コミュニティ協力**: - SIGを活用して個人関係依存を減らし、包容性を高める。 - 明確なプロセスと追跡メカニズムにより、機能進捗の予測可能性を確保する。 ## 結論 設計提案プロセスの拡張は、プロジェクトの成長に応じて柔軟に調整する必要があります。KEPやCubeのプロセス改善は、コミュニティの協力と透明性の確保を通じて、信頼性と効率性を高めています。今後の課題として、ドキュメントの更新やツールの統合が重要であり、継続的な改善が求められます。

自己サービスの力:DevOpsエンジニアとインフラ開発者のためのプラットフォーム革新

self-serviceDevOps engineersinfra developersplatformsCNCF

## 引言 DevOpsの実踐において、開発者とDevOpsエンジニアの間の負擔の不均衡は常に課題となってきた。特に、インフラリソースの作成や管理にかかる手間は、開発者の業務効率を著しく低下させる要因となる。この問題に対して、自己サービス(self-service)アーキテクチャの導入が注目されている。CNCF(Cloud Native Computing Foundation)が推進するプラットフォーム戦略において、自己サービスは開発者を業務ロジックに集中させ、DevOpsチームを高価値タスクに転換させる鍵となる。本記事では、自己サービスアーキテクチャの概念、技術的実裝、実際の成果を解説する。 ## 主要內容 ### 自己サービスアーキテクチャの定義と基本概念 自己サービスアーキテクチャは、開発者が必要なリソースを即座に利用できるようにするため、プラットフォームチームが標準化されたテンプレートを提供するアプローチである。このアーキテクチャでは、リソースの作成・管理にかかる手間を最小限に抑え、開発者が「黃金のパス」に沿って作業を進めることができる。 #### 核心理念:「自己サービスのバッファ」 プラットフォームチームは、組織の標準、セキュリティポリシー、デフォルト設定に基づき、リソーステンプレートを構築する。開発者はこれらのテンプレートを直接利用し、個々のリソース作成に必要な判斷を省略できる。これにより、リソースの作成プロセスは自動化され、エラーのリスクも低減される。 ### 技術的実裝と特徴 #### 基礎設施即コード(IaC)の活用 CDK(Cloud Development Kit)を用いて、オブジェクト指向で拡張可能なリソース定義を構築する。IAMポリシー、暗號化、監査などの複雑な設定は內部で処理され、開発者は単純なコマンドでリソースを構築できる。 #### CI/CDプロセスの統合 プルリクエスト(PR)のレビュー、セキュリティスキャンを自動化し、プロダクション環境へのデプロイを強制する。これにより、すべてのリソースが組織の基準に合致し、リスクを抑える。 #### リソースタイプと設定 - **S3バケット**: - 「ブルー・バケット(公共アクセス)」と「レッド・バケット(內部アクセス)」の2種類を提供。 - 自動的に暗號化、監査、アクセスログを適用。開発者は「センシティブ」タグを設定することで追加保護を有効化。 - **SQSとLambdaの統合**: - 死信キューを自動的に設定し、Lambdaでメッセージを処理するフローを簡略化。 - **ECSクラスター**: - 3行のコードでクラスターを構築し、VPC、サブネット、セキュリティグループ、IAMロールなど60以上のリソースを自動生成。プロダクション環境の設定を複製可能。 - **Kafkaトピック**: - クラスター(例:分析クラスター)を選択し、クラスターの位置やアドレスを抽象化。パーティション數、複製ファクター、保持ポリシーを設定するだけで運用可能。 #### 自動化と抽象化層 プラットフォームチームがすべてのポリシー、デフォルト値、依存関係を事前に設定し、開発者は特定の設定(例:バージョン管理の無効化)をオーバーライド可能。これにより、セキュリティとコンプライアンスを維持しながら、開発者の作業負擔を軽減する。 ### 成果とメリット - **開発者満足度**:自己サービス導入後1年で満足度が92%に達し、殘りの8%は継続的な改善中。 - **効率向上**:100以上のプロジェクトが16のチームで利用され、數千のリソースが構築されている。DevOps支援を必要とせず、開発者は業務ロジックに集中できる。 - **組織的メリット**:開発プロセスの加速により、組織全體の運用速度(Organizational Velocity)が向上。手動リソース作成のリスクが低減され、セキュリティとコンプライアンスが強化される。 ### 自己サービスの課題 自己サービスアーキテクチャの導入には、初期の設計と設定に時間がかかるという課題がある。また、テンプレートの柔軟性とセキュリティのバランスを取る必要がある。これらの課題を克服するには、継続的なフィードバックと改善が不可欠である。 ## 結論 自己サービスアーキテクチャは、開発者を業務ロジックに集中させ、DevOpsチームを高価値タスクに転換させる重要な手段である。CNCFが推進するプラットフォーム戦略において、自己サービスは標準化と自動化を通じて、維持可能で拡張可能なインフラを実現する。今後は、GitHubリポジトリ、コンソール設定、Vault機密管理など、さらなる自己サービス範囲の拡大が期待される。殘る8%の満足度を改善するためには、継続的なプラットフォームの最適化が求められる。

平臺革命:底層工程から製品思考への転換

platform revolutionbottom-upproduct thinkingengineering initiativeplatform to productCNCF

## はじめに 技術の進化に伴い、平臺の役割は単なる技術サービス提供から、ユーザーの消費行動を支える製品としての価値を追求する方向へと移行しています。この変化は「平臺革命」と呼ばれ、エンジニアリングの枠を超えた製品思考の導入が不可欠です。本記事では、平臺の進化プロセス、製品思考への転換戦略、そして実踐的な課題と対策について解説します。 ## 平臺の進化と転換 ### 平臺の定義と特性 平臺は、技術サービスを提供する基盤として始まりましたが、経済的効率性の欠如により、エンジニアリングの枠を超えて「製品」へと進化しました。この転換の鍵は、製品の本質を「ユーザーの消費行動」に再定義することです。SNCFのAntoan Belmo氏は、平臺の初期段階では「サービス提供」が中心でしたが、製品思考を導入することで、ユーザーのニーズに即した価値を創出できるようになりました。 ### 製品思考の導入 AdobeのKani Kaggera氏は、平臺の進化において、エンジニアリングチームが技術的課題に集中する一方で、競爭的なニーズに対応するためには製品管理文化の構築が不可欠であると指摘しています。製品管理チームは、明確な目標、戦略的路線図、価値主張をもとに、多様な利害関係者との協調を図る必要があります。 ## エンジニアリングから製品への転換の課題 ### 內部抵抗と対策 GitPodのLou Bishar氏は、エンジニアリングチームが製品管理の役割に抵抗する理由として、自主性の喪失や意思決定権の幹渉を挙げています。また、「製品」の定義が曖昧なため、目標の明確化が求められます。対策として、製品思考文化を段階的に構築し、現有チームが責任を分擔することで、固定された役割を迴避することが有効です。 ### 価値の可視化 平臺の価値を測定するためには、內部報表を逆算し、開発者タスクの時間コストや整合性を分析することが重要です。Antoan Belmo氏は、時間ベースの指標を用いてコスト効果を評価し、開発者とエンジニアの雙方の視點を考慮することで、実際の課題を正確に把握する必要があると強調しています。 ## 製品思考の実踐戦略 ### 痛點の特定と価値の明確化 平臺の価値は、自上而下の業務目標(ROI、コスト、リスクなど)と自下而上の開発者ニーズの両面から検討する必要があります。Lou Bishar氏は、開発者が自ら解決している課題(例:フロントエンドのデプロイ問題)を平臺の機能として統合することで、実証的な価値を創出できると述べています。 ### 反饋の収集と優先順位の決定 平臺の成熟に伴い、ユーザーからの機能要望が増加します。Kani Kaggera氏は、反饋をシステム化し、製品ビジョンに沿った優先順位を決定する必要があると指摘しています。反復されるパターンに注目し、努力と価値のバランスを考慮することで、過度なエンジニアリングや不足な実裝を防ぐことが可能です。 ## 平臺の転換における課題と解決策 ### 過度なエンジニアリングのリスク 平臺チームが機能の完璧さを追求しすぎると、長期的なビジョンから逸脫する可能性があります。このため、短期的な課題解決と長期的な拡張性のバランスを取ることが重要です。 ### 平臺の製品化戦略 平臺はサービス提供者から製品思考へと転換する必要があります。ユーザーの使用シーンを考慮し、技術選択を協調することで、部門間の壁を打破できます。また、問題の緊急性や內部での「アドボケート(推進者)」の育成を通じて、平臺の採用率を高めることが有効です。 ## 結論 平臺の転換は、エンジニアリングの枠を超えた製品思考の導入が不可欠です。価値主張の明確化、指標の可視化、そしてユーザーとの協働が成功の鍵となります。製品思考を実踐するには、問題の本質に注目し、長期的なビジョンを堅持しながら、柔軟な対応が求められます。

平臺作為產品:英國Top 4銀行の技術転換戦略

Platform as a ProductPlatform EngineeringSlidoCNCF

## 導入 近年、企業のデジタル変革において「平臺作為產品(Platform as a Product, PAP)」は重要な戦略として注目されています。特に金融業界では、技術の高度化と規制の厳格化に直面しながら、業務の効率化とイノベーションを両立させるため、平臺工程(Platform Engineering)の導入が進んでいます。本記事では、英國のトップ4銀行の一つであるNat West Bankが採用したPAP戦略と、CNCF(Cloud Native Computing Foundation)の成熟モデルを活用した実踐事例を解説します。 ## 平臺工程と平臺作為產品の基本概念 平臺工程は、開発者體験(Developer Experience)を最適化し、技術負債を削減し、組織全體の生産性を向上させるためのアプローチです。このアプローチでは、ツール、プロセス、組織構造を最適化し、開発者に認知負荷をかけない環境を提供します。 一方、平臺作為產品は、內部平臺を「製品」として捉え、業務ニーズと開発者ニーズを統合的に満たす戦略です。この概念は、開発者だけでなく、運用チームや製品管理チーム、業務チームにも価値を提供します。 ## CNCFの平臺工程成熟モデル CNCFは2023年10月に平臺工程成熟モデルをリリースしました。このモデルは、ツール、プロセス、文化、ガバナンスなどの多角的な観點から、組織の平臺工程能力を評価・計畫するためのフレームワークです。モデルはマトリクス形式で構成され、各段階の成熟度を明確にし、組織が自社の位置を把握し、目標を設定する手助けをします。 ## Nat West Bankの実踐事例 Nat West Bankは、2000萬の顧客と6萬の従業員を持つ英國のトップ4銀行の一つです。過去10年間、クラウドプラットフォームを活用して業務サービスを提供し、業務チームが迅速にソリューションを開発できる環境を構築してきました。しかし、近年は平臺の集中化とプロセスの簡素化の必要性に気づき、PAP戦略を採用しました。 この戦略では、開発者の認知負荷を減らし、內源化(Inner Sourcing)とセルフサービス能力を促進することを目標としています。また、組織全體の効率向上を目指しています。 ## Craticsフレームワークの活用 Craticsは、內部平臺を構築するためのフレームワークで、「約束(Promise)」という概念を強調します。このフレームワークでは、サービスのプロビジョニングとビジネスルール、コンプライアンス要件を統合的に設計します。 実踐ステップは以下の通りです: 1. **ニーズ分析**:各部門と協力し、必要なサービスを特定し、ビジネスルールとコンプライアンス要件を明確にします。 2. **約束設計**:ドメインエキスパートが約束を設計し、サービスが組織の特定のニーズに合致することを確保します。 3. **平臺拡張**:他のチームと協力し、平臺機能を拡張し、トレーニングやワークショップを通じてチームの能力を向上させます。 このフレームワークにより、Nat West Bankは自社のニーズに合った平臺を構築し、部門間の協力を促進しました。 ## 培訓と転換戦略 平臺工程の成功には、トレーニングが不可欠です。具體的なトレーニング方法には、ワークショップ(Boot Camps)、実作業(Hands-on Labs)、深く掘り下げたセッション(Deep Dive Sessions)、ハッカソン(Hackathon)が含まれます。 これらのトレーニングは、參加者のフィードバックを反映しながら継続的に改善され、現在では安定した教學モデルとなっています。特にハッカソンは、參加者が學習成果を実踐に応用する機會を提供し、平臺の継続的な発展を促進しています。 ## 平臺工程の価値と今後の方向 平臺工程の価値は、開発者だけでなく、組織全體に広がります。開発者にとっては、効率と品質の向上が期待でき、組織にとっては技術負債の削減と部門間の協力の促進が可能になります。 今後の方向性としては、PAP戦略をさらに深化させ、より多くの部門に平臺の構築を促進する予定です。また、ツールやプロセスの継続的な最適化により、平臺の標準化と拡張性を実現します。さらに、外部顧客への平臺工程経験の適用も検討されています。 ## 平臺即製品の価値と課題 平臺即製品の核心的な価値は、80%の使用シナリオに焦點を當て、開発者に「ボタンでサービス」を提供することです。これにより、開発者は業務ロジックに集中でき、技術の詳細に深く関わらなくても済みます。 一方、平臺の設計が不適切な場合、開発者の負擔が増える可能性があります。例えば、複數のポータルに移動する必要があったり、手動操作が必要になったりする場合があります。したがって、平臺の設計には慎重さが求められ、過度な複雑化を避ける必要があります。 ## 結論 平臺作為產品は、企業の技術転換において重要な戦略です。CNCFの成熟モデルを活用し、Craticsフレームワークを導入することで、Nat West Bankは平臺の効率化と部門間協力を実現しました。今後も、平臺工程の継続的な改善と、外部へのサービス拡大が期待されます。