本文へスキップ
BigTree108

Apache Kafka開発・コンサルティングサービス

Apache Kafka開発・コンサルティング:イベント駆動アーキテクチャ、Java・.NET・Python・Goのプロデューサーとコンシューマー、Kafka ConnectとDebeziumによるチェンジデータキャプチャ、Kafka StreamsとApache Flinkによるストリーム処理、Confluent Cloud・Amazon MSK・Azure Event HubsのマネージドKafka、クラスターの運用・移行・アップグレードを提供します。御社チームに加わる専任のKafkaエンジニアとしても、Kafkaプロジェクトを企画から納品まで一貫して請け負う形でも承ります。

Kafkaで開発するもの

  • Kafkaによるイベント駆動アーキテクチャ

    トピック、パーティション、キー、保持期間をビジネスイベントに合わせて設計し、チーム間でイベントスキーマを合意し、トランザクショナルアウトボックスや冪等なコンシューマーといったパターンを適用します。イベントが失われることも、二重に適用されることもありません。

  • Kafkaのプロデューサーとコンシューマー

    Spring for Apache KafkaのJava、Confluent.Kafkaの.NET、Python、Goのサービスに、リトライ、デッドレタートピック、重複が金銭的損失につながる場面でのトランザクションを備えます。処理をキューのようにコンシューマーに分散する場合は、シェアグループ(Queues for Kafka、Kafka 4.2で本番利用可能)を使います。

  • Kafka ConnectとDebezium

    データベースの変更をDebeziumでKafkaにストリーミングし、シンクコネクタでトピックをウェアハウス、検索インデックス、オブジェクトストレージに届け、Confluent TableflowでトピックをIcebergまたはDeltaテーブルとして具体化します。運用はConfluent Cloud、MSK Connect、Strimzi上で行います。

  • FlinkとKafka Streamsによるストリーム処理

    Javaサービス内のKafka Streams、またはConfluent Cloud、Amazon Managed Service for Apache Flink、自社クラスター上のApache FlinkジョブとFlink SQLで、結合、ウィンドウ集計、エンリッチメントを行います。不正チェック、ライブメトリクス、アラートに使います。

  • Confluent Cloud、MSK、Event Hubs

    Confluent Cloud、Expressブローカーを使うAmazon MSKまたはMSK Serverless、Kafkaエンドポイント経由のAzure Event Hubs、Aiven、RedpandaのマネージドKafkaを、スループット、保持期間、リージョン、コストで選び、Terraformでプロビジョニングします。

  • Kubernetes上のセルフマネージドKafka

    ZooKeeperなしでKRaftで動くKafka 4クラスターを、StrimziオペレーターによるKubernetes上、または仮想マシン上で運用します。ラック対応のレプリカ、階層型ストレージ、リバランスのCruise Control、ダウンタイムなしのローリングアップグレードを備えます。

  • Schema Registryとデータコントラクト

    AvroとProtobuf、またはJSON SchemaをConfluent Schema Registry、Apicurio Registry、AWS Glue Schema Registryで管理し、互換性ルールをCIで検証するため、プロデューサーが変更でコンシューマーを壊すことはありません。

  • Kafkaの移行とアップグレード

    Kafka 4へのアップグレード前にZooKeeperクラスターをKRaftへ移行し、RabbitMQ、ActiveMQ、IBM MQからワークロードを移し、セルフマネージドKafka、MSK、Confluent Cloudの間でクラスターを、MirrorMaker 2またはCluster Linkingによりコンシューマーオフセットも含めて移します。

  • Kafkaのモニタリングとセキュリティ

    PrometheusとGrafana、またはConfluent Control Centerでコンシューマーラグ、レプリケーション不足のパーティション、スループットを監視し、すべての接続にTLS、OAuthまたは相互TLSのSASL、サービスごとのACLを設定し、トピック、クォータ、ACLの変更はコードレビューを経て行います。

Kafkaエンジニアを採用する

  • 専任のKafkaエンジニア

    御社のチームにフルタイムで参画し、御社のリポジトリ、トラッカー、会議の中で働き、御社のリードに報告するKafkaエンジニアです。面接は御社が行い、ウクライナでの雇用契約、給与支払い、請求書発行、休暇管理は当社が担います。

  • Kafkaプロジェクトのデリバリー

    Kafkaプロジェクトをスコープ策定からリリースまで担うチームです。見積り、開発、テスト、デプロイを行い、当社側のテクニカルリードが計画と品質に責任を持ちます。

  • Kafkaの保守運用と引き継ぎ

    他のチームから既存のKafkaシステムを引き継ぐ、あるいは稼働を維持します。まず読み取り専用のレビューを行ってリスクを書面にまとめ、その後、影響の大きい順に修正と新機能を進めます。

スペシャリストが御社のチームに参画する方法は専任チームのページで、プロジェクトのデリバリー、引き継ぎ、料金の考え方はアウトソーシングのページで説明しています。

御社のKafkaプロジェクトを担当するメンバー

  • Kafkaエンジニア

    クラスター設計、運用、Connect、アップグレード

  • バックエンドエンジニア

    Java、.NET、Python、Goのプロデューサーとコンシューマー

  • データエンジニア

    ストリーム処理とレイクハウスへのシンク

  • クラウド・DevOpsエンジニア

    Terraform、Kubernetes、モニタリング

  • QAエンジニア

    イベントフローのコントラクトテストと負荷テスト

運用できるイベントストリーミング

コードより設計が先です。パーティションキーは業務が必要とする順序に合わせて選び、スキーマには互換性ルールを設け、配信セマンティクスはフローごとに決めます。大半のフローでは、冪等なコンシューマーを伴う少なくとも1回の配信、少数のフローではトランザクションです。トピック、ACL、クォータ、コネクタはコードで宣言し、他の変更と同じようにレビューします。

稼働開始前には、想定ピークに余裕を加えた負荷でクラスターをテストし、コンシューマーラグとレプリケーション不足のパーティションにアラートを設定し、ブローカーの喪失、停滞したコンシューマー、トピックの再生に対するランブックを用意します。アップグレードは、まずステージングでリハーサルします。

その他のデータ・AIサービス

データとAIの概要

Kafka開発に関するご質問

Kafkaエンジニアは、どの業界で仕事をしていますか。

決済、取引モニタリング、トレーディングデータのフィンテック、銀行、保険。注文、在庫、クリックストリームのEC・小売。出荷追跡と車両イベントの物流。ネットワークと利用状況のイベントの通信・クラウドインフラ。入札とインプレッションのストリームの広告・マーケティングテクノロジー。センサーとメーターのデータの製造・エネルギー。マイクロサービス間のイベントのエンタープライズSaaSです。

Confluent Cloud、Amazon MSK、自社クラスターのどれがよいですか。

御社の他のシステムがどこで動いているか、運用をどこまで引き受けたいかによります。Confluent Cloudは、マネージドコネクタ、Flink、Schema Registry、Tableflowを1つのサービスで提供します。MSKとEvent Hubsは、御社自身のAWSまたはAzureのアカウントと請求の中に置かれます。StrimziによるセルフマネージドのクラスターはKafkaの運用を引き受ける代わりに、完全な制御を得られます。何かを購入する前に、御社の規模に合わせてトレードオフを整理してお示しします。

まだZooKeeperで動いているクラスターをアップグレードできますか。

はい。Kafka 4はKRaftでのみ動作するため、ZooKeeperクラスターはまず3.xのリリースでKRaftに移行します。クラスターがトラフィックを処理し続けたままコントローラーを追加してメタデータを移し、クライアントが削除されたAPIに対応しているか確認してから、Kafka 4にアップグレードします。

Kafkaエンジニアは、どのくらいで開始できますか。

適任のKafkaエンジニアがすぐに対応可能な場合、開始までの条件は、御社の面接と、NDAおよび知的財産権の譲渡契約の締結のみです。そうでない場合は人材を探索し、通常は2〜3週間以内に候補者のプロフィールをお出しします。御社が承諾するまで、誰も業務を始めません。

BigTree108を通じてKafkaエンジニアを採用するには、どうすればよいですか。

必要な業務内容、シニアリティ、稼働時間をお知らせください。1〜2名の候補者をプロフィールとともにご提案し、御社が自社で採用する場合と同じ形で面接を行います。契約はBIG TREE 108 LLCとの1本、請求書は月1通です。

成果物の権利は、誰に帰属しますか。

御社です。すべてのスペシャリストはBigTree108と署名済みの契約を結び、成果物のすべてを会社に帰属させています。さらに、御社との契約により、その権利は御社に引き継がれます。コード、デザイン、ドキュメントは、当社だけが変更できる場所ではなく、御社のリポジトリとツールに納品します。

Kafkaを構築・運用中ですか。

イベント量、サービスの言語、クラスターを動かす場所をお知らせください。1営業日以内に、計画、アーキテクチャレビュー、または候補者のプロフィールをお届けします。