Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GitOps と Apache Kafka Part 1 / GitOps and Apach...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
suzukiry
December 27, 2021
Technology
330
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GitOps と Apache Kafka Part 1 / GitOps and Apache Kafka Part 1
suzukiry
December 27, 2021
More Decks by suzukiry
See All by suzukiry
OpenShiftの内部レジストリって何?/What's OpenShift Image Registry
suzukiry
1
1.9k
Strimzi Kafka Operator を試す Part 3 / Try Strimzi Part3
suzukiry
0
640
Apache Kafka on Kubernetes 基礎編 ワークショップ QA 2022-01-12 / Apache Kafka Workshop QA 2022-01-12
suzukiry
0
130
Strimzi Kafka Operator を試す Part 2 / Try Strimzi Part2
suzukiry
0
400
Apache Kafka on Kubernetes 基礎編 ワークショップ QA 2021-11-24 / Apache Kafka Workshop QA 2021-11-24
suzukiry
0
160
Apache KafkaとKubernetes / Kafka and K8s
suzukiry
1
1.6k
Other Decks in Technology
See All in Technology
つくって納得、つかって実感! 大規模言語モデルことはじめ ver2.0
recruitengineers
PRO
5
2k
MulticaとPi Coding Agentで、小規模OSSを30本同時運用した流れ
eiei114
0
130
【CEDEC2026】Creative Approaches to Localizing the Dialects and Unique Speech of Umamusume: Pretty Derby Characters in English
cygames
PRO
3
25k
AIコーディングの次。コードレビューと理解負荷を解消して組織の開発生産性を高める
moongift
PRO
2
2.7k
Kiro Crew入門 - 常駐エージェントの仕組みと使いどころ / Intro to Kiro Crew
k_adachi_01
1
480
도구에서 동료까지: 10년차 AI 스타트업의 AI 적응기
inureyes
PRO
0
210
AIのためのEthernet技術動向 (SerDes)
markunet
1
220
少人数チームで実現する、大規模AWSサーバーレス基盤における"揺らがない"信頼性運用
maimyyym
1
110
Webアクセシビリティ入門 2026
recruitengineers
PRO
3
660
QAエンジニア起点で進める、SmartHRにおける信頼性向上について
kaomi_wombat
1
150
【GCC2026】大規模言語モデルを活用した内製検索サービスの社内展開や業務活用
bandainamcostudios
PRO
0
260
My broken English still works: speaking at global OSS events
naruoga
0
110
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
528
40k
Documentation Writing (for coders)
carmenintech
77
5.5k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
500
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
620
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
530
AI: The stuff that nobody shows you
jnunemaker
PRO
9
920
The Curious Case for Waylosing
cassininazir
1
460
How to build a perfect <img>
jonoalderson
1
5.9k
Building an army of robots
kneath
306
46k
Designing for Timeless Needs
cassininazir
1
450
Navigating Team Friction
lara
192
16k
Transcript
GitOps と Apache Kafka Part 1
GitOps と Kafka
GitOps とは Introduction to GitOpsより GitOps*は、Kubernetes Infrastructure-as-Codeのデプロイ、設定、監視、更 新、管理方法に関する標準的なワークフローです。 GitOpsのコアとなる考え方は、本番環境で現在望まれるインフラストラクチャの 宣言的な記述を常に含むGitリポジトリを持ち、本番環境をリポジトリ内の記述
状態に一致させるための自動化されたプロセスを持つことです。 *2017年にWeaveworks 社によって作られたコンセプト Git 宣言型インフラストラクチャ とアプリケーションのための the single source of truth
1. システム全体が宣言的に記述されていること 2. Gitでバージョン管理された正規の希望するシステム状態 3. 自動的に適用できる承認済みの変更点 4. Software Agentで正しさを保証し、分岐に警告を出す GitOps
の原則 Software Agent check/ pull deploy/ prune
Kubernetes と GitOps • 宣言的なリソースの管理による の簡素化 • コントロールループによる継続 的な監視、差異があれば復元・ 復旧できる仕組み
• 開発者は使い慣れたツールを使っ てプルリクエストを行い、リソー スの操作ができる Kubernetes GitOps 開発者・運用者の両者の視点で、 デプロイと運用タスクの両方を簡略化できる
ガバナンスにおけるメリット ◦ プルリクエストでコミットされるので現在の開発フローのガバナンスをそのまま 利用できる ◦ すべての変更はGitから確認できるし、検証、監査も可能 セキュリティにおけるメリット ◦ CIツールにCluster Adminロールを共有しなくてよい
◦ Cluster Adminロールのトラックもできる ◦ Gitのレポジトリやブランチ権限も利用して、セキュリティ管理できる リスク管理におけるメリット ◦ アプリケーションの完全なロールバックとロギング GitOps のメリット
Apache Kafka とは • リアルタイムのデータパイプラインを構築するための主要なプラットフォーム ◦ 分散システム、水平スケーラブル・冗長性・コミットログ ◦ Pub/Sub型メッセージングシステム •
高いスループットと拡張性が不可欠なさまざまなユースケースをサポート ◦ イベントを介してサービス同士が通信することが可能 ◦ イベントストリームのSubcribe、保存や処理をリアルタイムで行うことが可能 • SparkやCassandraといった分散システムのKubernetes利用と同じく、Kafkaも Operator化(例 Strimzi Operatorなど)。コンテナ基盤でのKafka利用も一つの選択 肢となってきている。
なぜ Apache Kafka on Kubernetes なのか? • 分散システムの課題を、Kubernetes の仕組みで緩和する リソースの抽象化
宣言的な記述だけでインフラリソースの 作成・管理ができる。 →開発者がほしいとき構築・変更が可能 Kubernetesの価値 自動回復・自動スケーリング 現在のシステム状態 (Current Status)が 望ましい状態 (Desired Status)に一致する ように繰り返し動作できる。 →運用者の負担を減らす Apache Kafkaの運用面の課題 分散システムの構築負荷 アプリ開発者が俊敏性を持ってKafka を 使った開発をしたい 複数ノードの運用管理の煩雑さ スケーラブルな分、比較的多くなりやす いノードの運用管理、障害対応の作業負 荷は増え続ける
Kafka の GitOps 環境を作る
KafkaにGitOpsを採用する意義 開発者としての意義 • 開発チームの独立性 ◦ 必要なTopicや設定をすぐに構築・利用することができる。開発者主導で進めることができる ようになり、運用者との連携プレーを減らし、開発作業に注力できる。 • アプリケーション+データハブ(Kafka)でのデプロイが可能 ◦
アプリだけでなくデータハブまでを含めてストリーミングプラットフォームアプリケーショ ンとして、デプロイ・スケールアウトの操作が行える 運用者としての意義 • 運用軽減 ◦ Topicなどの簡易作業に手を煩わすことなく、Resilency プランニングやカオステスティング など、システムにより価値がでる本来の作業に注力ができる。 • ガバナンス ◦ Pull Requestを活用できるので、アプリ側の既存のGitフローをそのまま使えるのでガバナン スを保てる
Kafka + GitOps で必要になるツール Kubernetes Operator GitOpsツール(CD機能) Secrets管理 • Strimzi
Operator • Confluent Operator • koperator • Aiven Operator • Lense operator • Argo CD • Flux CD • Jenkins X • External Secrets • HashiCorp Vault • Bitnami Sealed Secrets 宣言的にKafka クラスタから Topic設定などまで操作が可能 GitをSingle Source Of Truth としてリソースを運用 外部ストレージで機密情報を 保管し復号防止
Kafka + GitOps に関連する取り組み • Kubernetesベースの Kafka + GitOps 種類
概要 Red Hat ・AMQ Streams(Strimzi) Operatorの提供 ・GitOpsツール(OpenShift GitOps *Argo CD)も提供しており、Kafka の GitOps環境まで構築できる Confluent ・Confluent Cloud上で、GitOpsでKafkaを利用するための独立したプロ ジェクト(streaming-ops project *中はshell operator+同プロジェクト専用Operator+Flux CD+Bitnami Sealed Secrets 構成)。 ・Confluent Operatorの提供 Banzai Cloud、 Aiven、 Lenses ・各社Operator(koperator、Aiven Operator、Lense operator)を提供 し、CD(Jenkinsなど)と組み合わせGitOpsを実現
Kafka + GitOps に関連する取り組み • 独自ユーティリティを使った Kafka + GitOps 種類
概要 Lenses ・lenses-cliユーティリティ ・パラメータを管理したyamlを読み込みながら、Kafka クラスタのTopicな どを管理する Jikkou(Apache 2.0) ・jikkouユーティリティ ・パラメータを管理したyamlを読み込みながら、Kafka クラスタのTopicな どを管理する JulieOps(MIT) ・julie-ops-cli.sh ・パラメータを管理したyamlを読み込みながら、Kafka クラスタのTopicな どを管理する
Argocd Operator Strimzi Operator + Argo CD StrimziとArgoCDを使った構成イメージ Rep Kafka
Cluster (Prod) Kafka Cluster (DR) Strimzi Operator 開発者 運用者
Thank you
AMQ Streams • Apache Kafka のエンタープライズ向けディストリビューション ◦ 2018年から Kafka をサポート、Kubernetes
上でも提供 ◦ Red Hat AMQ Streams としてローンチ • 提供形態 ◦ Red Hat Enterprise Linux ◦ Red Hat OpenShift Container Platform Apache Kafka on Kubernetes 基礎編 ワークショップ: https://redhat-open.connpass.com/ Strimzi/AMQ Streamsをハンズオンをしてみたい
OpenShift GitOps • Argo CDをアップストリームとしたCDプロセスを担うOpenShiftのDeveloper Serviceの一つ • マルチクラスタ OpenShift および
Kubernetes インフラストラクチャのクラスタと アプリケーションの設定を宣言的に管理ができます • Argo CDとTektonを使用することで、エンドツーエンドのGitOpsワークフローを 構築できます OpenShift CI/CD 基礎編 ワークショップ: https://redhat-open.connpass.com/ OpenShift GitOpsをハンズオンをしてみたい
記事は別途まとめています。 https://suzukiry.medium.com/gitops-and-apache-kafka-part-1-705bdde95fea