Social Icons

Kafka: コンシューマーグループのリバランスを高速化

少し昔を振り返ってみましょう。昔(Kafka 2.4以前)の時代、コンシューマーグループのリバランスは全てか無かの選択でした。リバランスが始まると、グループ内のすべてのコンシューマーは次のことを行いました: 1. メッセージの処理を停止する 2. すべてのパーティションを解放する 3. グループコーディネーターが新しいパーティションを割り当てるのを待つ 4. 新しいパーティションのオフセットを取得する 5. 処理を再開する この「世界を止める」アプローチは、ラッシュアワーのマンハッタンで大型トラックを駐車しようとするようなものでした。処理の遅延を引き起こし、慎重に扱わないとメッセージの重複処理を引き起こす可能性がありました。 インクリメンタル協調リバランスの登場 Kafka 2.4は画期的な変化をもたらしました:インクリメンタル協調リバランス。このアプローチは、あの不格好な大型トラックから機敏な電動スクーターの艦隊にアップグレードするようなものです。以下がその仕組みです: * 影響を受けたコンシューマーのみが処理を一時停止する * パーティションは複数の小さな...

2ヶ月前
3 分で読む

py-spyでPython WSGIサーバーをプロファイリング: ハンドラー内のCPUホッグを追跡

FlaskアプリケーションをGunicornで実行しているとしましょう(クールだからです)。いくつかのエンドポイントがありますが、そのうちの一つが問題を起こしています。さあ、py-spyゴーグルを装着して、何が起きているのか見てみましょう。 容疑者:CPUを食い尽くすハンドラー こちらが問題を起こしているシンプルなFlaskアプリです: from flask import Flask import time app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello, World!' @app.route('/cpu_hog&...

2ヶ月前
2 分で読む

Fluentd、Vector、Lokiを使ったモダンなロギング

21世紀においてスケーラブルで安全、そして実際に役立つログ設定を目指しています。私たちの強力なトリオをご紹介します: * Fluentd: ログ収集の万能ツール * Vector: 新たな注目株で、Fluentdに挑戦中 * Loki: 「ログがメトリクスのようにクールだったら?」というGrafanaの答え ステップ1: Syslogに別れを告げる(泣かないで、これが最善です) まず最初に、Syslogを手放す準備をしましょう。以下のチェックリストで準備が整っているか確認してください: * すべてのSyslogソースをインベントリ化する * カスタムの解析やルーティングルールを特定する * 現在のSyslog設定をバックアップする(念のため) * チームに通知する(そしてピザを注文するかも—変化は食べ物と共にあると良い) ステップ2: Fluentdのセットアップ - ログの万能選手 Fluentdはこのログの冒険の最初のステップです。これが素晴らしい理由は: * 多様な入力と出力プラグインをサポート * 構造化データと非構造化データを巧みに処理...

2ヶ月前
2 分で読む

大規模なプライベートパッケージリポジトリのホスティング: NexusとArtifactoryのトレードオフ

対決: NexusとArtifactory 赤コーナーにはSonatype Nexusがあります。2008年からリポジトリ管理で活躍しているオープンソースの人気者です。青コーナーにはJFrog Artifactoryがあります。豊富な機能セットで知られるエンタープライズ向けの巨人です。 これらのツールはどちらもパッケージ管理を簡単にするために設計されていますが、それぞれ独自の特徴があります。詳しく見ていきましょう。 Nexus: オープンソースの強者 * 利点: * 無料のオープンソース版が利用可能 * 軽量でセットアップが簡単 * Mavenリポジトリの強力なサポート * 組み込みのセキュリティ機能 * 欠点: * プラグインエコシステムが少ない * UIが一部のユーザーには直感的でない場合がある Artifactory: 機能豊富な巨人 * 利点: * 豊富なプラグインエコシステム * 高度なメタデータ管理 * 優れたアーティファクトのクリーンアップと保持ポリシー * 統合のための強力なAPI *...

2ヶ月前
4 分で読む

デルタレイクのタイムトラベル: データ監査のためのデロリアン

Delta Lakeは、Apache SparkやビッグデータワークロードにACIDトランザクションをもたらすオープンソースのストレージレイヤーで、Time Travelという便利な機能を備えています。これはデータのバージョン管理のようなもので、いつでも過去のデータバージョンにアクセスして復元することができます。すごいですよね? でも、なぜこれが重要なのでしょうか?規制遵守の世界では、この機能はまさにスーパーパワーです。詳しく見てみましょう: * 監査証跡が簡単に * データの系譜?お手の物 * 過去のレポートの再現?簡単です * 誤って削除や更新したデータの復元?問題なし Time Travelの実践例 例えば、監査が必要な財務データを扱っているとしましょう。Time Travelをどのように活用できるか見てみましょう: from delta.tables import * from pyspark.sql.functions import...

2ヶ月前
3 分で読む

Redisのブルームフィルター

ブルームフィルターとは何かを分解してみましょう: * スペース効率の良い確率的データ構造 * 要素が集合のメンバーであるかをテストするために使用される * 偽陽性はあるが、偽陰性はない * 不要な検索を減らすのに最適 簡単に言えば、データベースの用心棒のようなものです。実際に中を見せる前に、何かがクラブ(データベース)にあるかもしれないと素早くチェックします。 Redisの登場:スピーディーなサイドキック では、なぜRedisなのか?それは速いからです。まるで「瞬きしたら見逃す」ほどの速さです。ブルームフィルターとRedisを組み合わせることは、すでに速いレーシングカーにロケットを取り付けるようなものです。 Redisブルームフィルターのセットアップ まず最初に、RedisBloomモジュールをインストールする必要があります。Dockerを使用している場合、次のように簡単です: docker run -p 6379:6379 redislabs/rebloom:latest 次に、...

2ヶ月前
2 分で読む

OpenAI、次世代の推論モデル「o3」を発表

OpenAIの言語モデルo1とo3について5秒で考えたこと * 2024年9月、OpenAIはo1言語モデルのプレビューを発表しました。 * OpenAIはo3とo3-miniモデルを発表しました。 * 以前のモデルはo1と呼ばれています。 * OpenAIのCEOサム・アルトマンは、「Telefonica(O2ブランドで運営されている通信会社)への敬意と、悪い名前を考える伝統を守るために、1つの数字を意図的に飛ばした」と述べました。 * 開発者たちは、o3がユーザーの質問に答える前に「考える」ように訓練しました。 * このモデルは少し遅れて応答します。 * TechCrunchによると、最も正確だと考える答えを出す前に、推論の過程を繰り返します。 * ユーザーは推論の時間を「調整」できます。モデルに与える時間が長いほど、リクエストをより良く処理できます。 * トレーニングデータを超えたスキルを学ぶAIの能力を測るARC-AGIテストで、o3は87.5%のスコアを獲得しました。 * 85%のスコアは「人間レベル」と見なされます。 * Te...

2ヶ月前
1 分で読む

GoにおけるノンブロッキングI/Oの解体: epoll、ゴルーチン、チャネルベースのパターン

Goの並行処理モデルは、ノンブロッキングI/O技術と組み合わせることで、アプリケーションのパフォーマンスを大幅に向上させることができます。この記事では、epollの仕組み、goroutineがどのように並行プログラミングを簡単にするか、そしてチャネルを使ってどのようにエレガントで効率的なI/Oパターンを作成できるかを探ります。 Epollの謎 まず最初に、epollを解明しましょう。これは単なる高機能なポーリングシステムではなく、Goの高性能ネットワーキングの秘密のソースです。 そもそもepollとは? EpollはLinux特有のI/Oイベント通知メカニズムです。プログラムが複数のファイルディスクリプタを監視し、それらのいずれかでI/Oが可能かどうかを確認することを可能にします。I/Oナイトクラブの超効率的なバウンサーのようなものだと考えてください。 epollの動作を簡単に説明すると、次のようになります: 1. epollインスタンスを作成する 2. 監視したいファイルディスクリプタを登録する 3. それらのディスクリプタでイベントを待つ 4. イベントが発...

2ヶ月前
3 分で読む

カスタムPrometheusエクスポーターの構築: Quarkusでメトリックの迷路をナビゲート

Quarkus Jakartaを使用してカスタムPrometheusエクスポーターを構築し、高いカーディナリティを避け、効率的なメトリクスを確保することに焦点を当てています。メトリクスの魔法を体験しましょう! なぜカスタムエクスポーター?車輪の再発明ではないのか? 始める前に、なぜ既製のソリューションがたくさんあるのにカスタムエクスポーターを作るのか、その理由を説明しましょう。 * カスタマイズされたメトリクス:アプリはユニークで、時には標準で提供されないメトリクスが必要です。 * パフォーマンスの最適化:カスタムエクスポーターを使用すると、測定する内容を微調整でき、オーバーヘッドを減らすことができます。 * メトリクスの爆発を回避:大きな力には大きな責任が伴い、高いカーディナリティの落とし穴を避ける能力もあります。 Quarkus Jakartaプロジェクトのセットアップ まず最初に、Quarkusプロジェクトを立ち上げましょう。Quarkusが初めての方は、Jakarta EEのスーパーヒーローバージョンと考えてください。弾丸よりも速く、機関車よりも強力です。...

2ヶ月前
3 分で読む

ダイエット中のKafkaコンシューマー: メモリの無駄を削減

フィットネスの旅を始める前に、なぜこれに取り組むのかを考えてみましょう。メモリ使用量が大きいKafkaコンシューマーは、次のような問題を引き起こす可能性があります: * 処理時間の遅延 * インフラコストの増加 * OOMエラーのリスク増加(深夜3時の電話は誰も好きではありません) * システム全体の安定性の低下 それでは、袖をまくって余分なものを削ぎ落としましょう! オフヒープメモリ:秘密の武器 まずはオフヒープメモリです。これはメモリの世界の高強度インターバルトレーニングのようなもので、効率的で強力です。 オフヒープとは何か? オフヒープメモリは、Javaのメインヒープスペースの外に存在します。これはアプリケーションによって直接管理され、JVMのガベージコレクタによって管理されません。これにより: * GCのオーバーヘッドが減少 * パフォーマンスが予測可能に * ヒープサイズを増やさずに大規模なデータセットを処理可能 Kafkaコンシューマーでのオフヒープの実装 Kafkaコンシューマーでオフヒープメモリを使用する方法の簡単な例を示します:...

2ヶ月前
4 分で読む

seccompでコンテナを強化する: システムコールを安全に制限する実践的な手順

Seccomp(セキュアコンピューティングモードの略)は、コンテナのシステムコールに対する用心棒のようなものです。どのシステムコールがカーネルにアクセスできるかを決定し、どれが拒否されるかを決めます。しかし、詳細に入る前に、なぜこれが重要なのかを説明しましょう。 なぜシステムコールの制限が必要なのか? * 攻撃面の縮小:システムコールが少ないほど、潜在的な脆弱性も少なくなります。 * コンテナの隔離の向上:好奇心旺盛なコンテナが他を覗き見するのを防ぎます。 * セキュリティの強化:安心して眠れるように。 さて、興味を持っていただけたところで、実際にseccompを実装してみましょう。 seccompの設定:ステップバイステップガイド ステップ1:アプリケーションのプロファイリング システムコールを無闇にブロックする前に、アプリケーションが実際に必要とするものを知る必要があります。以下はシステムコールプロファイルの作成方法です: # straceを使ってコンテナを実行 docker run --rm -it --name syscall_profiling y...

2ヶ月前
2 分で読む

MongoDB 書き込み負荷の高いワークロード: ビーストを手なずける

書き込み負荷の高いワークロードに対してMongoDBを最適化するには: * 書き込みを均等に分散するシャードキーを選ぶ * チャンクのバランスを監視し管理する * 書き込み効率のためにインデックスを微調整する * 書き込みの確認を慎重に使用する * WiredTigerストレージエンジンの使用を検討する 書き込みの重要性: ワークロードを理解する 最適化技術に入る前に、まず何を扱っているのかを理解しましょう。MongoDBでの書き込み負荷の高いワークロードには通常、以下が含まれます: * 高頻度の挿入操作 * 既存のドキュメントへの頻繁な更新 * 一括書き込み操作 * 時間に敏感なデータの取り込み これがあなたのユースケースに当てはまるなら、あなたは正しい場所にいます。それでは、腕まくりをして作業に取り掛かりましょう! シャードキーの選択: 書き込み分散の基盤 適切なシャードキーを選ぶことは、高層ビルの完璧な基礎を選ぶようなものです。間違えると、他のすべてが大変な作業になります。書き込み負荷の高いワークロードでは、シャードキーは次のようにするべきです...

2ヶ月前
3 分で読む

Nvidia、開発者向けのコンパクトAIスーパーコンピュータを発表 — 手のひらサイズ

* この会社は、チャットボットやAIエージェント、AI搭載ロボットを作成するための生成AIを備えた新しいNvidia Jetson Orin Nano Super開発キットを提供しています。 * その小型サイズは「趣味の愛好家や学生」に適しています。 * 前のJetson Orin Nanoモデルと比較して、CPU性能は70%向上し、67 TOPS(1秒間に1兆回の演算)に達しています。 * JetsonにはNvidiaのAIソフトウェアが含まれています。ロボティクス用のNvidia Isaac、コンピュータビジョン用のNvidia Metropolis、センサーデータ処理用のNvidia Holoscan(光、超音波など)です。 * このミニコンピュータの価格は249ドルです。 * 以前のスーパーコンピュータモデルの価格は499ドルでした。...

2ヶ月前
1 分で読む

HelmチャートでQuarkusアプリをデプロイする

Kubernetesは強力ですが、そのYAMLマニフェストはペンキが乾くのを見ているようなものです。そこで登場するのがHelm、Kubernetesのためのパッケージマネージャーです。Kubernetesのnpmのようなもので、少しだけ気楽に使えます。 Helmがあなたの新しい親友である理由は次の通りです: * テンプレート化:YAMLファイルのコピーペーストにさよならを! * バージョン管理:「おっと」と言うよりも早くデプロイをロールバック * 再利用性:チャートを共有して、チームのヒーローになろう * シンプルさ:複雑なアプリケーションを1つのコマンドで管理 HelmでQuarkusアプリをセットアップする Helmチャートに進む前に、QuarkusアプリがKubernetesデビューの準備ができていることを確認しましょう。まだの場合は、QuarkusプロジェクトにKubernetes拡張機能を追加してください: ./mvnw quarkus:add-extension -Dextensions="kubernetes" この拡張機能はKubernetesマニ...

2ヶ月前
3 分で読む

構成管理対決: Ansible vs Puppet vs Chef (他にも!)

情報をコーヒーのように、素早く強く欲しい方へ: * Ansible: 学びやすく、エージェント不要、YAMLベース * Puppet: 成熟したツール、大企業向け、独自のDSLを使用 * Chef: Rubyベース、高度にカスタマイズ可能、学習曲線が急 * Salt: 高速、スケーラブル、Pythonベース * Terraform: インフラストラクチャをコードとして管理、クラウドに依存しない でも、まだここで終わりじゃないですよ!もっと詳しく見ていきましょう。 競争者たち: 詳細な見解 1. Ansible: シンプルさのチャンピオン Ansibleは、いつも助けてくれる友達のような存在で、あまり多くを求めません。エージェント不要なので、ターゲットマシンに何もインストールする必要がありません。SSHアクセスがあれば大丈夫です。 主な特徴:...

2ヶ月前
6 分で読む

私たちのコミュニティに参加 👋

Suddo.jp — テクノロジーニュース、ITコース、チュートリアル、プログラミング のフルメンバーシップを解除し、限定コンテンツの広範なコレクションを探索してください。

今すぐサインアップ、いつでもキャンセル可能

プランを見る