Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...
RedisやMongoDB、Kafka、Elasticsearchなどのオープンソースソフトウェアの開発元企業が、AWSなど大手クラウドベンダがそのオープンソースを用いたマネージドサービスを提供して大きな利益を上げていることに反発して、ライセンスを変更するなどで商用サービス化を制限する動きがあることは、今年の1月の記事で紹介しました。 Redis、MongoDB、Kafkaらが相次いで商用サービスを制限するライセンス変更。AWSなどクラウドベンダによる「オープンソースのいいとこ取り」に反発 この動きに対してGoogleは4月、Google Cloudにオープンソースベンダによるマネージドサービスを統合すると発表し、彼らとの戦略的提携という姿勢を打ち出しました。 [速報]Google、大手クラウドに不満を表明していたMongoDB、RedisらOSSベンダと戦略的提携。Google Clou
LINEの開発組織のそれぞれの部門やプロジェクトについて、その役割や体制、技術スタック、今後の課題やロードマップなどを具体的に紹介していく「Team & Project」シリーズ。 今回は、LINEのMessaging Server開発業務、Apache Kafkaプラットフォームの開発・運用をしているチームについて紹介します。Z PartチームのWonpill Seo、井出真広、Javier Luca de Tena、河村勇人に話を聞きました。 ―― まず、自己紹介をお願いします。 Wonpill:LINEのMessaging Server開発業務、Apache Kafkaプラットフォームの開発・運用を担当しているZ Partチームでマネージャーとして働いています。 井出:今所属しているZ Partでは、主にMessaging platformで利用しているRedisクラスタの運用やRe
先日 LINE が開発するライブラリ Decaton が OSS として公開されました。 Decaton は Kafka を利用したジョブキューライブラリで、LINE 社内で幅広く利用されています。 GitHub - line/decaton: High throughput asynchronous task processing on Apache Kafka 今回の記事では、LINE で Decaton がどのように利用されているか、実際に利用されているプロダクトの実例を交えて紹介します。 Decaton とは? Decaton は LINE 社内で非同期処理を行う際のジョブキューとして利用されているライブラリで、データストアとして Kafka を利用しています。 Kafka には、ストリーム処理を扱う公式のライブラリとして Kafka Streams があります。しかし、Kafka
こんにちは、メルペイ DataPlatformチーム(@rerorero, @darklore, @laughingman7743)です。 この記事は、Merpay Tech Openness Month 2022 の14日目の記事です。 今日はメルペイ DataPlatformで取り組んでいるCDCパイプラインについて紹介します。 CDCパイプラインとは何か CDCとは Change Data Capture の略称で、データベース内のデータの変更(新規作成、削除、変更など)を追跡するシステムです。データソースで発生した変更は、ニアリアルタイムでデータシンクに反映させることができます。 CDCの実現方法にはいくつかあるのですが、メルペイ DataPlatformでは以下の2つの方法を使ったパイプラインを構築しています。 Striim社のブログ がよくまとまっていたので、こちらから引用させ
2021年11月10日と11日の2日間、LINE株式会社が主催するエンジニア向け技術カンファレンス「LINE DEVELOPER DAY 2021」がオンラインで開催されました。そこで岡田遥来氏が、LINEで最もよく使われるミドルウェアの1つ「Kafka」クラスターのリクエスト遅延を、どのように解決したかについて紹介しました。まずは起きた現象と、その原因究明について。 分散ストリーミングミドルウェア「Apache Kafka」 岡田遥来氏:ではセッションを始めます。よろしくお願いいたします。 こんにちは。岡田遥来と申します。LINEでシニアソフトウェアエンジニアをやっていて、全社的に利用されるApache Kafkaプラットフォームの開発・運用を担当しています。 ご存じの方も多いかもしれませんが、Apache Kafkaは分散ストリーミングミドルウェアで、LINEでは最もよく使われるミドル
Platform Team/Repro Core Unit の村上です。 Repro では Kafka を基盤としたストリーム処理のアプリケーションを構築する際に、Kafka Streams を積極的に活用しています。 Kafka Streams は、フォールトトレラントなステートフル処理を簡潔に実装でき、データパイプラインを Topology という表現で抽象化することで、複雑な処理でも管理しやすい形で組み立てていくことが可能です。 また、Apache Kafka 以外の外部依存がないことや Streams DSL によるシンプルな記述でストリーム処理を実装できることなども、ストリーム処理のアプリケーションをスムーズに構築する上で助かっています。 一方で、 なにかしらの問題が発生したときのトラブルシューティングや影響範囲調査の際には、Kafka Streams の内部処理を把握していない
社内向けのドキュメントと兼用したので、前提とかメンバー向けの解説が含まれているので、前後のパフォーマンスの変化だけを見たい人は、下の方のグラフ画像までスクロールしてください。 gravitonインスタンスを活用するモチベーション ワークロードによる相性はあるが、特にマルチスレッド性能で既存のインスタンスより性能向上が見られる上にコストが安いため、うまくフィットすれば性能改善とコスト削減の双方でメリットがある。 また、周辺ハードウェアもアップデートされているため、エフェメラルストレージ付きのインスタンスのストレージサイズが増えているなどのメリットもある。 特に現時点ではr6gdインスタンスが利用したかった。 gravitonインスタンスを利用するためarm64アーキテクチャへの対応 gravitonインスタンスはarm64 (aarch64) アーキテクチャのCPUのため、既存のx86_64
Author Will Haltom GitHub にプッシュすると何が起こるのでしょう?「リポジトリに私の変更が反映される」あるいは「リモートの参照元が更新される」という答えが正しいかもしれません。いくつか例を挙げてみましょう: プルリクエストが同期されます。つまり、プルリクエストの差分とコミットが、新しくプッシュされた変更を反映します。 プッシュされたウェブフックがディスパッチされます。 ワークフローがトリガーされます。 アプリの設定ファイル(Dependabot や GitHub Actions など)をプッシュすると、アプリが自動的にリポジトリにインストールされます。 GitHub ページが公開されます。 Codespacesの設定が更新されます。 さらに色んなことがあります。 これらは重要ものの一部で、プッシュするたびに行われることのほんの一例にすぎません。実際、GitHubモノ
Photo by Thalia Tran on UnsplashKafka is a top-notch industry platform for streaming data processing at scale. No surprise that first-class citizens of Kafka world are 24/7-running producer/consumer applications (e.g. classical servers, k8s-pods, etc.). But what about the rapidly rising world of AWS Serverless ecosystem? Image credit: AuthorThe diagram above is a collection of workflows: Propagate
Reproでチーフアーキテクトとして働いているid:joker1007です。 今回、Kafka Brokerのcompaction動作について調査しチューニングすることでパフォーマンス改善の成果が得られたため、そのノウハウをブログにまとめておきました。 かなりマニアックな内容なので、需要は多くないと思いますが、私が調査した限りでは日本語で同じ様な内容のブログ記事はほとんど存在しなかったため、Kafkaを自前で運用している人にとっては役に立つ内容かもしれません。 compactionとは (参考: https://kafka.apache.org/documentation/#compaction) Kafkaの基本的なデータ削除ポリシーは一定時間が経過したら過去のデータをそのまま削除するdeleteというポリシーを使う。 これは、log.retention.hoursという設定でコントロー
HN Disclaimer: WarpStream sells a drop-in replacement for Apache Kafka built directly on-top of object storage. TL;DRWarpStream is an Apache Kafka® protocol compatible data streaming platform built directly on top of S3. It's delivered as a single, stateless Go binary so there are no local disks to manage, no brokers to rebalance, and no ZooKeeper to operate. WarpStream is 5-10x cheaper than Kafka
LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog 2021年11月10日・11日の2日間にわたり、LINEのオンライン技術カンファレンス「LINE DEVELOPER DAY 2021」が開催されました。特別連載企画「 DEVDAY21 +Interview」では、登壇者たちに発表内容をさらに深堀り、発表では触れられなかった関連の内容や裏話についてインタビューします。今回の対象セッションは「LINE Messaging Platform におけるHBaseとKafkaのデータパイプラインと活用例」です。 LINEでは、Messaging Platformのストレージミドルウェアの1つとしてApache HBase(以下、HBase)を使用しています。HBaseのレプリケーショ
2021年11月10日と11日の2日間、LINE株式会社が主催するエンジニア向け技術カンファレンス「LINE DEVELOPER DAY 2021」がオンラインで開催されました。そこで岡田遥来氏が、LINEで最もよく使われるミドルウェアの1つ「Kafka」クラスターのリクエスト遅延を、どのように解決したかについて紹介しました。後半は、実際どのように問題を特定して解決したかについて。前半はこちら。 TCP windowの概念について 岡田遥来氏:さて、このようにブローカーがSYN flood状態になって、一部のクライアントのhandshakeがSYN Cookiesを使ったフローにフォールバックしてしまっていたことがわかったわけですが、実はこのSYN Cookiesというのは、TCPスループットの悪化を引き起こすケースがあるということが知られています。これについて見るために、まずはTCP w
はじめに こんにちは。基幹システム本部・物流開発部の作田です。現在、ZOZO社内で使用している基幹システムのリプレイスを担当しています。 現在行っているリプレイスでは、既存の基幹システムから発送機能を切り出し、マイクロサービスに移行しています。リプレイスの詳細については、ZOZOBASEを支える発送システムリプレイスの取り組みをご覧ください。 techblog.zozo.com マイクロサービスは発送業務の各作業が完了したことを基幹システムに連携しており、この連携を実現するためにAmazon Managed Streaming for Apache Kafka(以降、Amazon MSK)を採用しました。今回は、サービス間のデータ連携にAmazon MSKを採用した理由やAmazon MSKでの実装例と考慮点について紹介します。MySQLなどのリレーショナルデータベースに対してAmazon
LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog LINEで働くエンジニアに色々と話を聞いていく「LINE Engineer Insights」。LINEの技術組織で働く個々人に、何を重視して技術者としてのキャリアを歩んでいるのか、今LINEで何に取り組んでいるのか、今後実現していきたいことなどを聞いていきます。 今回登場するのは、LINEのMessaging Platform IMFチームのApache Kafka(以下、Kafka)スペシャリストである岡田遥来です。IMFチームは全社的に利用されるマルチテナントKafkaプラットフォームの開発・運用を行っています。最も大きなKafkaクラスターが処理するトラフィックは秒間1,500万メッセージ・7.5GBにのぼり、単一クラ
これは社内向けに書いた、Kafkaってそもそも何やねん、ということをメンバーに解説するための記事を一部編集して公開できる様にしたものです。 第2回以降では、Kafkaを利用したアプリケーション開発のノウハウについて解説していく予定です。そちらも社内の事情を除いた形で公開していくつもりです。 そもそもKafkaとは Kafkaはイベントストリーミングプラットフォームと呼ばれるミドルウェアです。 元々はストリームバッファと呼ばれてたと思います。 公式のドキュメントには以下の様に書かれています。 Kafka combines three key capabilities so you can implement your use cases for event streaming end-to-end with a single battle-tested solution: To publis
「Kafka Summit 2020」開催!ストレージ階層化、ZooKeeperフリー、クラウドネイティブ ―次の10年に向けて進化を続けるKafkaのいま 8月24日、25日(米国時間)の2日間に渡り、Confluentが主催する「Kafka Summit 2020」がオンラインで開催されました。新型コロナウイルスの感染拡大により、2020年はほぼすべてのITカンファレンスがキャンセル、またはオンラインでの開催へと切り替えられてきましたが、これまで年に2回、サンフランシスコやロンドン、ニューヨークなどでリアルイベントが行われてきた「Kafka Summit」も同様に、初めてのバーチャルカンファレンスとして開催されました。もっとも今回の登録者数は143ヵ国から約3万5,000名にも上り、リアルイベントからオンラインへと変わったことで、Kafka Summitとしては過去最大級の参加者を集め
What it feels like when your app is leaking memoryIntroductionOver the last few years at Zendesk, both Go and Kafka have been increasingly growing in importance in our architecture. It was of course inevitable that they should meet, and so various teams have been writing Kafka consumers and producers in Go of late. There are a few different library options for building Kafka apps in Go, but we’ve
2020/10/3 に開催されたKaigi on Rails 2020に登壇してきました。 オンラインのイベントやカンファレンスに登壇したことはあるんですが、今迄割とカンファレンスの現場感みたいなのが薄いなと感じる中で、Kaigi on Railsはかなり以前の祭り感みたいなのを感じることが出来て、とても良いカンファレンスだったと思います。 特にSpatial Chatでカンファレンス会場の廊下っぽい空気を完璧とは言えないまでも再現出来てたのはとても良い試みだと思いました。 さて、私はというとキーノートを除いた通常発表のトリとして発表させていただきました。 (午前だったら寝坊してたのでやばかった……、運営チームの気遣いに感謝しておりますw) 内容は以下の通りです。 speakerdeck.com 背景とか反省とか RailsというWebアプリケーション開発のフレームワークを中心にしたカンフ
最近開発しているサービスがだんだん成長してきて、先々を考えるといくつかのサービスに分離したいなーと思いChange Data Capture (CDC)について色々と調べていました。 MySQLでの構築については、この記事DebeziumでCDCを構築してみたがとても丁寧に解説されているのでお薦めです。この記事の解説を参考にしてMySQL+Kafka+Debeziumで動作してお試しできる環境ができたので、色々と挙動を確認できました。 PostgreSQLでCDC MySQLでの実験環境は簡単に構築できたのですが、今回導入を検討しているサービスではPostgreSQLを使用しています。 ということで、まずは手元でPostgreSQL + Kafka + DebeziumでCDC環境を構築してみます。 Kafkaの構築 こちらは前出のブログの記載とほぼ同じで、Docker hubにある公式イ
レッドハットのソリューションアーキテクトの森です。 マイクロサービスについて、前回はそのアーキテクチャの概要から利点、そして課題についてまとめました。今回はマイクロサービス間のデータ同期の手法についてご紹介していきます。 前回の記事はこちらです。 rheb.hatenablog.com Outboxパターン と Change Data Capture によるデータ同期 マイクロサービスにおいては、基本的には各サービスとデータベースは1:1とするモデルを推奨しています。そのため、サービス間のデータベースの同期を取るしくみについて考慮が必要です。データベース間の同期を取るための方法の1つとして、データベース処理とメッセージを併用する Transactional Outbox と Transactionlog tailing があります。 Transactional Outbox の実体はデータ
今データを使って何かした方がいいと考えているお客様は多いのではないかと思います。Red Hat の金融セミナーでもこの手のお話があり、マネーソーの登壇者が以下の話をしていました。 義務化されるものがある一方で、オープンバンキングを実装するための様々なアプローチがあるのですが、一貫したテーマが一つあることに気付きました。〜略〜 今や誰もが同じデータへアクセスすることが可能で勘定系システムの中にある貴重なデータに基づいて活動できるのは私だけではありません。ではどうしたら差別化できるでしょうか。〜略〜 その答えとは次のようなものです。 データを使っていますぐ何かした方がよい。〜略〜 データに基づく活動が次の未開拓領域です。 ETL を使っていたときの LinkedIn の課題前提 : アクテビティデータActivity data is one of the newer ingredients i
LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog 2021年11月10日・11日の2日間にわたり、LINEのオンライン技術カンファレンス「LINE DEVELOPER DAY 2021」が開催されました。特別連載企画「DEVDAY2021 アフターインタビュー」では、登壇者たちに発表内容をさらに深堀りし、発表では触れられなかった関連の内容や裏話などについてインタビューします。今回の対象セッションは「次世代マーケティングデータ活用基盤『Business Manager』開発の裏側」です。 「Business Manager」は、広告主である企業がLINEの各種広告プロダクトを横断してさまざまなデータを有効活用するための基盤です。2021年1月に開発がスタートし、2021年10月
先日のアップデートで Amazon MSK(Managed Streaming for Apache Kafka) を Lambda のソースイベントとして利用できるようになりました! AWS Lambda now supports Amazon Managed Streaming for Apache Kafka as an event source アップデートされて直ぐに触ってたのですが、まだ MSK まわりは情報も少なく、うまく検証が進まなかったのですが、本日リリースされていた公式ブログでようやく理解が深まりました。(Thank you, James!!) 何がうれしいのか Amazon MSK はフルマネージドな Apache Kafka のサービスで、最大のメリットは「完全互換」があることでしょう。現在、オンプレ環境で利用中の Apache Kafka を利用したデータパイプラ
1. © 2019 NTT DATA Corporation 【テクノロジー】 え、まって。その並列分散処理、Kafkaのしくみでもできるの? ~Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理~ NTTデータ 技術革新統括本部 システム技術本部 生産技術部 インテグレーション技術センタ データ活用チーム 佐々木 徹 2019/09/05 NTTデータ テクノロジーカンファレンス 2019 2. 2 © 2019 NTT DATA Corporation 氏名/所属 – 佐々木 徹(ささき とおる) – NTTデータ 技術革新統括本部 システム技術本部 生産技術部 インテグレーション技術センタ 業務内容 – Apache Spark, Apache Kafkaの導入や技術サポートなど オープンソースへの貢献 – 複数のオープンソースプロダクト(Hadoop
Kafka StreamsにはWindow Aggregationという仕組みがある。 特定の時間間隔毎にイベントの数を数えたり等を行うための機能だ。 で、それを利用してユーザー毎のイベント実行回数をカウントする処理を書いていたのだが、何故か結果が合わない。 テストコードでは再現しないし確率的に結果がズレるという状況が発生した。 物凄くハマったが、原因は未来のtimestampが来た時の処理にあった。 検証バージョン kafka-streams-2.4.0 問題の詳細 一度書き込んでバックエンドのKafkaトピックまでデータが届いているにも関わらず、データを再度取得しようとした時に既存の集計カウントが取得できない。 そのためカウントがリセットされるし、他の箇所でも結果が取得できない状態になっていた。 確実にput処理は行われている 紐付いているKafkaのトピックには確実にデータが届いてい
Apache Kafka Needs No Keeper: Removing the Apache ZooKeeper Dependency Currently, Apache Kafka® uses Apache ZooKeeper™ to store its metadata. Data such as the location of partitions and the configuration of topics are stored outside of Kafka itself, in a separate ZooKeeper cluster. In 2019, we outlined a plan to break this dependency and bring metadata management into Kafka itself. So what is the
【レポート】Amazon ECSとKafka Streamsを活用した低コストで高機能なストリーミングアプリケーションの構築 #AWSSummit DA事業本部の春田です。 AWS Summit Online絶賛開催中!ということで、本記事では「CUS-47: Building Semi-Realtime Processing System with Kafka and Kafka Streams on Amazon ECS」の内容についてまとめていきます。 セッション情報 Repro 株式会社 CTO 橋立 友宏 氏 より短かいスパンでより大規模な情報を分析可能にすることが求められる現代のデータ基盤を実現するため、Amazon ECS と Kafka Streams フレームワークを活用して低コストで高機能なストリーミングアプリケーションを構築するノウハウについて解説します。 ※セッショ
At the heart of Apache Kafka® sits the log—a simple data structure that uses sequential operations that work symbiotically with the underlying hardware. Efficient disk buffering and CPU cache usage, prefetch, zero-copy data transfers, and many other benefits arise from the log-centric design, leading to the high efficiency and throughput that it is known for. For those new to Kafka, the topic—and
To help fellow engineers wrap their head around Apache Kafka and event streaming, I wrote a 4-part series on the Confluent blog on Kafka’s core fundamentals. In the series, we explore Kafka’s storage and processing layers and how they interrelate, featuring Kafka Streams and ksqlDB. In the first part, I begin with an overview of events, streams, tables, and the stream-table duality to set the stag
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く