sakamoto10423のブックマーク (74)

  • ログ基盤のFluentdをFluent Bitに移行して監視ツールを実装した話 - Mirrativ Tech Blog

    はじめまして、Azuma(@azuma_alvin)です。現在大学院の1年生で、2024年2月から4ヶ月間ミラティブのインフラチームにインターンとして参加しました。普段はインフラやMLOpsといった領域に興味があり、最近はVim環境の整備がマイブームです。 記事では、ログ基盤をFluentdからFluent Bitへ部分移行した経緯とその2種類の監視ツールの実装についてお話しします。 記事の最後に、インターンから見たインフラチームの特徴と私が4ヶ月間で学んだことを紹介しています。興味がある方は末尾までスクロールしてぜひご覧ください。 1. 背景と目的 2. ミラティブのログ基盤について 3. ログ欠損の原因調査 Fluentdのバッファリングの仕組み fsnotifyを用いたバッファリングの観察 負荷試験 日付時刻フォーマットとワイルドカードによるログ欠損 ログ保存とサーバータイムスタン

    ログ基盤のFluentdをFluent Bitに移行して監視ツールを実装した話 - Mirrativ Tech Blog
  • AddressableによりWebGLゲームのクラッシュ率が改善した話 - Mirrativ Tech Blog

    こんにちは、ミラティブ菅谷です。MirrativのWebGL製ライブゲームにて、アセットのロード方法をインスペクタでの直接参照からAddressable Asset System(以下Addressable)に変更したことで、クラッシュ率が大幅に改善し、クラッシュせずにプレイが終了した「正常プレイ率」は98%まで改善しました。記事では、その具体的な手順と効果について紹介します。 課題背景 MirrativのライブゲームはWebGLで動いていますが、特にモバイルのWebGLではパフォーマンスに気をつける必要があります。今回改善を行ったプロジェクトではもともとAddressableを使用していませんでした。プロジェクトの初期リリース時点では大きな問題もなく運用できていましたが、アセットやリソースを追加していくにつれてクラッシュが多く見られるようになりました。ただし、WebGLではクラッシュし

    AddressableによりWebGLゲームのクラッシュ率が改善した話 - Mirrativ Tech Blog
    sakamoto10423
    sakamoto10423 2024/06/12
    愚直
  • Kotlin Fest 2024 にミラティブのAndroidエンジニアが登壇します! - Mirrativ Tech Blog

    こんにちは!Androidエンジニアの kitakkun(@kitakkun_pb)です。 6月22日 開催の Kotlin Fest 2024 にて、ミラティブから私が登壇します! www.kotlinfest.dev 登壇内容 ロング(40分) 2024/06/22 14:50〜 トラック2 もっとKotlinを好きになる!K2時代のKotlin Compiler Plugin開発 by kitakkun fortee.jp セッションでは、Kotlin Compiler Pluginの仕組みやその開発方法に興味をお持ちの方を対象として、 Kotlin Compilerの基礎知識、各種Compiler Plugin APIの使い方、そして実際の活用例についてお伝えします。 コンパイラまでも柔軟に拡張できるという、Kotlinのさらなる魅力に迫るセッションとなっています。 お時間に余裕

    Kotlin Fest 2024 にミラティブのAndroidエンジニアが登壇します! - Mirrativ Tech Blog
  • memcached proxyで使うハッシュアルゴリズムを比較した話 - Mirrativ Tech Blog

    memcached proxyのハッシュアルゴリズム比較 はじめまして!hibikiです(@add_bakkers) 現在大学3年生で、最近はネットワークに興味があり勉強中です。2023年8月からインフラチームにインターンとして参加しました。 記事ではmemcached proxyのハッシュアルゴリズム比較の結果を紹介します。 memcached proxyのハッシュアルゴリズム比較 1. 背景と目的 ミラティブでのmemcachedの利用 課題: クライアントサイドでサーバ決定をしている memcached proxyの検討 2. memcached proxyに求められるアルゴリズム キーの分散 移動率の抑制 パフォーマンス ハッシュアルゴリズムの比較 3. 今回行うベンチマークの概要 計測対象とシナリオ 分散と移動率のベンチ 処理性能のベンチ 4. ベンチマークの結果と比較 移動率

    memcached proxyで使うハッシュアルゴリズムを比較した話 - Mirrativ Tech Blog
  • CLIツールの管理をSPMからMintに移行した経緯とその課題 - Mirrativ Tech Blog

    はじめに お久しぶりです、iOSチームにインターンとして参加させて頂いておりますMと申します。 MirrativのiOSアプリでは、これまでSwift製のCLIツールをBuildToolsという名前のSwift Packageを作成してこれにまとめて管理していました。 しかしこの度、ある課題や利便性の観点からyonaskolb/Mintでの管理に移行しました。 今回はMintへの移行に至るまでの背景や経緯、および移行に際して起こったいくつかの課題をどのように解決したかについて書いていこうと思います。 目次 はじめに 目次 Mintへの移行に至る背景 CLIツールの利用 SPMによる管理における課題 依存関係の不整合 依存解決の時間 Mintへの移行 Mintへの移行時に発生した課題とその解決 バージョンの自動更新 バージョン更新のためのコマンドを実装 1. Mintfileのパスを取得 2

    CLIツールの管理をSPMからMintに移行した経緯とその課題 - Mirrativ Tech Blog
  • PerlからGoへのシステム移行のアシスト 〜Perl XSとUnix Domain Socketを活用〜 - Mirrativ Tech Blog

    こんにちは ハタ です。 Mirrativ では 2020年頃から サーバサイドの技術PerlからGoへのシステム移行 を行っており、2024年現在でもサグラダファミリアのように移行作業は継続しています PerlGoという2つの環境を同時に運用していますが、 基的には 新機能は Go で実装 し、 Perlでは積極的に新規実装を行わない というスタイルで進めていました しかし、既存の機能の一部に手を加えたいとなった場合、まだまだ Perl の実装に手を加えることが一定あり、Perl から Go の機能を呼び出したいというニーズが出てきました (配信やギフトといったビジネスの根幹を支えるレガシーな実装においては顕著) そこで PerlXS を利用することで Perl から Go を直接呼び出せるようにできないかと考え検証を進めることにしました Goの -buildmode=c-shar

    PerlからGoへのシステム移行のアシスト 〜Perl XSとUnix Domain Socketを活用〜 - Mirrativ Tech Blog
  • Neural Audio Codec を用いた大規模配信文字起こしシステムの構築 - Mirrativ Tech Blog

    こんにちは ハタ です。 最近Mirrativ上に構築した配信の文字起こしシステムを紹介したいなと思います 音声からの文字起こしは、各社SaaSでAPI提供されているものがあると思いますが、今回紹介するものはセルフホスト型(自前のGPUマシンを使う)になります 構築していく上で色々試行錯誤したのでそれが紹介できればなと思っています どんなものを作ったか 前提知識: 配信基盤 前提知識: Unix Domain Socket Live Recorder Archiver DS Filter VAD Filter NAC / Compress Transcriber NAC / Decompress Speach To Text コンテナイメージ まとめ We are hiring! どんなものを作ったか 今回作ったものは Mirrativで配信されるすべての音声を対象に文字起こしを行う シス

    Neural Audio Codec を用いた大規模配信文字起こしシステムの構築 - Mirrativ Tech Blog
  • iOSプロジェクトに対してモジュール分割しながらSwiftUIを部分適用している事例 - Mirrativ Tech Blog

    こんにちは、クライアントエンジニアの竹澤(@to4iki)です。 MirrativのiOSチームでは、開発効率の最大化を狙い以下に取り組んでいます。 データフローの単方向化 (Fluxアーキテクチャの強制) 宣言的UIによるView実装 (SwiftUIの部分適用) 責務分割 (モジュール分割) 今回の記事では、どのような構成でSwiftUIを適用し始めたか、また、MirrativのiOSプロジェクトの構成やプロダクト特性の課題感からセットでモジュール分割を進めている点を紹介します。 背景 前提となるプロジェクト構成 導入に向けて決めたこと SwiftUIでどこまで実装するか 体アプリではなくSwiftPackageを活用する 垂直分割するか水平分割するか 方針やTipsを明文化し育てる 新規開発部分のUI開発をFeatureモジュールで行う SwiftPackage: SwiftUI.

    iOSプロジェクトに対してモジュール分割しながらSwiftUIを部分適用している事例 - Mirrativ Tech Blog
  • クラウドネイティブなVPNを構築して運用している話 - Mirrativ Tech Blog

    インフラストリーミングチームの近藤(@udzura)です。 今日は、ミラティブ社内向けツールの話をします。ミラティブではVPNの仕組みをクラウドをフル活用して自前で構築し、1年ほど運用しています。運用中にいろいろ課題はありつつ、現在かなり安定して動作してます。 今回の記事は、そのVPNの仕組みを紹介します。 既存VPNの課題 災害時に稼働できないリスクを避けたい どこに誰がアクセスできるか楽に管理したい 新しいVPNをハッカソンで開発した話 新VPNの設計思想 災害時でも稼働できる どこに誰がアクセスできるか管理できる 攻撃時の影響を限定する 12時間でインスタンスを停止する クラウドネイティブなVPNである アーキテクチャと技術の説明 WireGuard Google Cloud VPCの各機能 Cloud Functions + Pub/Sub + Slack App API Slac

    クラウドネイティブなVPNを構築して運用している話 - Mirrativ Tech Blog
  • サービスの管理画面を継続的に改善するためのReact Hook FormとZod活用術 - Mirrativ Tech Blog

    こんにちは!ミラティブのフロントエンドエンジニア どじねこ です。 今回は、ミラティブを支える社内向けの管理システムにおいて、機能開発の体験を改善する取り組みを「MUIZodReact Hook Form の活用術」としてご紹介させていただきます。 前提 ミラティブでは、他の多くの Web サービスと同様に配信者さんの登録した情報や配信の履歴を管理する社内向けのシステムが存在しています。 特に管理システムのフロントエンドにおいては、その特性上入力フォームの実装がその大半を占めています。 日々の機能開発においては、そうした管理システムに実装された入力フォームの新規実装や機能拡張が行われています。 課題 一般的な入力フォームでは、画面の初期描画の際にすでに設定済みの値をフォームに適用する初期化処理や、入力された内容を検証して必要に応じてエラー表示するバリデーション処理が必要です。 ミラ

    サービスの管理画面を継続的に改善するためのReact Hook FormとZod活用術 - Mirrativ Tech Blog
  • 内製オブジェクトストレージサーバ「b3」でコスト最適化を目指した話 - Mirrativ Tech Blog

    インフラストリーミングチームの近藤 (@udzura) です。今回は、ミラティブで内製しているオブジェクトストレージサーバ「b3」の紹介記事を書きたいと思います。 今回の記事は、6月にGopher Talkというイベントで発表した「Go製ミドルウェアを実践投入するにあたりやったこと」をベースに、内容を詳細にしたり直近の開発状況に合わせて更新したものです。一部内容はこの発表と重複していますがご了承ください。 オブジェクトストレージサーバを内製した背景 1. 大量オブジェクトの操作や増え続ける転送量に対応したい 2. 一定期間しかファイルの保持をしない 3. オンメモリ/SSD/HDDを組み合わせたチューニングがしたい オブジェクトストレージb3の特徴 S3 互換の基的なAPIを実装 LSM-Tree index+WALなDB/マージ操作に対応 I/O 帯域を制限可能 非同期レプリケーション

    内製オブジェクトストレージサーバ「b3」でコスト最適化を目指した話 - Mirrativ Tech Blog
  • 【インフラ】xDS API の EDS に手を加えて動的に Envoy で weight 調整できるようにした - Mirrativ Tech Blog

    こんにちは、ミラティブのインフラを担当している清水です。 ミラティブではクラウドに Google Cloud を利用しているのですが、稀にインスタンスの性能劣化が発生し動かしているアプリケーションの応答時間が長くなることがあります。 非同期な処理の場合は一時的にタスクキューの時間あたりの処理数が減るものの、遅延を許容できる機能であれば時間経過で回復するのでシステムを継続稼働できます。 一方で、web サーバのように同期処理の場合はリクエストを時間内に返すことができずに timeout したりだとか、worker が埋まって新たにリクエストが返せなくなったりと、正常にリクエストを返すことができずにユーザのクライアントにエラーが返ってしまします。 そこで、今回はクラウドが不調になったときに web サーバへ流れるリクエストの流量を動的に制御し、一時的にリクエスト数を減らしてユーザのクライアント

    【インフラ】xDS API の EDS に手を加えて動的に Envoy で weight 調整できるようにした - Mirrativ Tech Blog
  • Mirrativ iOSアプリでのメモリ使用量削減への取り組み - Mirrativ Tech Blog

    こんにちは、iOSエンジニアのふじのです。 Mirrativの機能開発を進める傍ら、iOSアプリのメモリ使用量の改善に取り組んでいます。 今回は、アプリ内でメモリ使用量を増やしている問題点を見つける方法と、それらをクライアント実装で解決する具体的なアプローチについて紹介します。 Mirrativアプリが抱える課題 着眼点とアプローチ 画像キャッシュの効率化 UIImageのリサイズ 画像のメモリキャッシュの上限サイズ設定 メモリリークへの対策 Allocationsやmemory graphを利用した手動検出 XCTestを利用したCI上での自動検出 改善の成果と今後の課題 We are hiring! 参考リンク Mirrativアプリが抱える課題 Mirrativアプリはライブ配信機能や視聴機能、Unityを利用したアバター機能やWebGLを利用したゲーム機能など、メモリを多く必要とす

    Mirrativ iOSアプリでのメモリ使用量削減への取り組み - Mirrativ Tech Blog
  • GitHub APIを利用したスケーラブルなマスターデータ管理システム - Mirrativ Tech Blog

    こんにちは、バックエンド基盤チームマネージャーの夏(なつ)と申します。ミラティブの基盤チームはユーザが直接触れる機能よりかは、開発者や会社全体の生産性を向上させるためにエンジニア主導で課題を発見・解決している部署です。 今回は基盤チームが主体となって運用しているマスターデータ管理システムについて紹介したいと思います。ゲーム運営などではエクセルやスプレッドシートで管理されることがよくありますが、学習コストや安全性の観点で入力者を増やしづらい場合があります。このような問題に対応するため、ミラティブでは一部のマスターデータをGitHub APIを利用した専用の管理画面を実装することで入力作業をスケールできるようにしました。 (なお、記事は社内向けドキュメントを兼ねています) マスターデータとは マスターデータとはユーザによって生成されるデータではなく、主に運営が用意するデータになります。詳細と

    GitHub APIを利用したスケーラブルなマスターデータ管理システム - Mirrativ Tech Blog
  • Flipperを使ったiOSアプリの開発体験向上&iOSエンジニア目線でのミラティブ社の魅力について - Mirrativ Tech Blog

    はじめに 初めまして!Mと申します。 私は、2022年8月中旬より現在まで、iOSチームでインターンとして参加させて頂いています。 (実はこのミラティブのTechブログを読んだことがきっかけで、インターンに参加することになりました) これまでの期間、特に私は、開発体験の向上のためのデバッグ環境改善に関するタスクを行なってきました。 記事では、MirrativのiOSアプリ開発における、Flipperというデバッグツールの活用事例および実装のポイントについて説明します。 また、私がインターンの中で感じたミラティブ社の魅力や、どんなことが学べたのかについてお伝えしようと思います。 目次 はじめに 目次 MirrativでのFlipper活用例 Flipperとは Flipperプラグイン ミラティブのデバッグ体験の改善点 iOSアプリ内のデータの流れ デバッグ面で大変だったこととその解決策①

    Flipperを使ったiOSアプリの開発体験向上&iOSエンジニア目線でのミラティブ社の魅力について - Mirrativ Tech Blog
  • 新しいUnity AnalyticsとUnity Cloud Diagnosticsの紹介と使い方 - Mirrativ Tech Blog

    こんにちは。ミラティブUnityエンジニアの菅谷です。今回はUnityのサービスであるUnity AnalyticsとUnity Cloud Diagnosticsについて紹介します。2つのサービスはゲーム開発者がゲームのパフォーマンスを追跡し、ユーザーエクスペリエンスを改善するための強力なツールです。ミラティブではUnity Cloud Diagnosticsはこれまでも使っていましたが、最近のプロダクトではUnity Analyticsも活用し始めています。 Unity Analytics Unity Analyticsは、ゲーム内のイベントやKPI(Key Performance Indicator)を取得するツールです。日々のイベントやKPIを可視化し、ゲームのパフォーマンスを詳細に追跡することが可能になります。さらに、使い方によってはエラー数の検知やエラー発生時のトレースなどにも

    新しいUnity AnalyticsとUnity Cloud Diagnosticsの紹介と使い方 - Mirrativ Tech Blog
  • Go Conference 2023 にて Go/Cgoで映像・音声のリアルタイム処理をやるまでの道のり というタイトルでお話してきました - Mirrativ Tech Blog

    こんにちは ハタ です。 このたび Go Conference 2023 Online にて Go/Cgoで映像・音声のリアルタイム処理をやるまでの道のり というタイトルで発表しました 久しぶりの大きなカンファレンスでの登壇だったのでとても緊張しましたが、10周年を迎えた機会に登壇できて光栄です gocon.jp 今回発表した資料はこちらになります、当日のアーカイブは近々公開されると思いますのでお待ち下さい speakerdeck.com (2023/06/28追記) アーカイブ公開されたようです! もし当日ご覧になれなかった方はこちらからご視聴ください! zenn.dev さて、今回登壇するにあたり資料を用意していたのですが、発表時間の関係で削除してしまった内容がいくつかあるため、ここで紹介させてください go <-> cgo のオーバーヘッドを何とかしたい トランポリンコードの世界 c

    Go Conference 2023 にて Go/Cgoで映像・音声のリアルタイム処理をやるまでの道のり というタイトルでお話してきました - Mirrativ Tech Blog
  • LeSS Huge を参考にしたスクラムのスケーリング - Mirrativ Tech Blog

    こんにちは、エンジニアのちぎらです。先日 開発組織にはじめてのスクラムを導入する という記事を公開しました。先日の記事にも課題として記述した通り、組織の一つのチームにスクラムを導入した後は、他のチームにどのようにスクラムを展開していくか、全社的な開発体制をどうやって変えていくかということを考えていく必要があります。 ミラティブでは、その後の半年弱の期間で3つの開発チーム全てにスクラムを導入しました。さらに、LeSS Huge を参考にした開発体制を敷くことで、チーム横断の開発施策の把握や、全社的な開発施策の透明化を推進しています。 スクラムを他チームに展開する 先日の記事を書いた時点では、ひとつの開発チームにスクラムを導入したのみでした。いずれかのチームでスクラムの導入経験があれば、他のチームへのスクラムの展開は比較的簡単です。一方でチームへのスクラム導入のタイミングは重要で、メンバーの混

    LeSS Huge を参考にしたスクラムのスケーリング - Mirrativ Tech Blog
  • 24年新卒から次の新卒に伝えたい、ミラティブに感じた技術的な面白さ - Mirrativ Tech Blog

    前書き 初めまして。山倉拓也と申します。 私は2022年9月26日から現在(2023年3月)まで、株式会社ミラティブの基盤開発部でインターンをさせていただいており、2024年度に正社員として入社する予定です。この記事では、私が具体的にミラティブで今までにどんな仕事をしたのか、どんなところに技術的な魅力を感じて入社を決意したのかをお伝えします。 目次 前書き 目次 ミラティブを支えるバックエンド&インフラの技術的な話 インフラに、インメモリデータベースであるRedisを内製化して使っている Go/クリーンアーキテクチャ、に現在移行している いままでミラティブでした仕事 エモモランあーるぴーじーで、イベントが切り替わるタイミングでライフを自動回復する機能の実装 背景・概要 学んだこと 1. メンテナンス期間をいれない、シームレスなライフ管理のバージョン移行 2. ミラティブ独自のパーティショニ

    24年新卒から次の新卒に伝えたい、ミラティブに感じた技術的な面白さ - Mirrativ Tech Blog
  • SDWebImage起因のクラッシュを解消した話と学び - Mirrativ Tech Blog

    こんにちは、iOSエンジニアのいっちー(@0IcchI)です。 最近はインターン終了を迎えるなか、引越しや卒業などでバタバタしており、若かりし頃の自分が広げまくった風呂敷をやっと畳んでるような気がしてます。 ...これからシェアハウスなどを始めるので、まだまだ風呂敷は広げていきます😌 題ですが、ミラティブではアニメーション素材の表示などにSDWebImageというライブラリを利用しているのですが、そこでクラッシュが発生していました。 記事ではそのクラッシュの解消方法と、その過程で得た学びについて紹介します。 経緯 ミラティブではクラッシュレポートツールのFirebase Crashlyticsを使って監視を行っています。 具体的にはベロシティアラートやクラッシュレートをSlackチャンネルに流したり、エンジニアが逐次不審なクラッシュの有無を確認したりしています。 今回のクラッシュはベ

    SDWebImage起因のクラッシュを解消した話と学び - Mirrativ Tech Blog