タグ

ブックマーク / tech.mirrativ.stream (43)

  • 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
    udzura
    udzura 2024/04/25
    いわゆるレガシーマイグレーションにも、低レイヤ知識やディープダイブする力は役に立つみたいな話です!
  • 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
    udzura
    udzura 2024/03/04
    新作です!!!!!1
  • Cloud BuildでDockerのマルチプラットフォームイメージをビルド - Mirrativ Tech Blog

    こんにちは、バックエンドエンジニアの藤井脩紀です。 今回は表題の通りCloud Buildを活用してDockerのマルチプラットフォームイメージをビルドする方法をご紹介しようと思います。 マルチプラットフォーム is 何 まず、マルチプラットフォームイメージとは何かから説明すると、複数のCPUアーキテクチャやOSに対応したイメージのことです。 より具体的にはDockerの公式ドキュメントとブログが参考になるかと思いますので挙げておきます。 Multi-platform images | Docker Docs マルチプラットフォームドッカービルド | Docker 動機 そしてマルチプラットフォームのイメージが必要となった背景ですが、Appleシリコンの登場によりローカルでの開発ではARM、サーバー上ではAMDのイメージが欲しいというニーズが生まれました。これに応えるべくマルチプラットフォ

    Cloud BuildでDockerのマルチプラットフォームイメージをビルド - Mirrativ Tech Blog
    udzura
    udzura 2024/02/29
    2種類のCPU向けにビルドする際の工夫の紹介です!
  • ミラティブCTO交代の挨拶 - Mirrativ Tech Blog

    みなさまこんにちは、ちぎら @naru_jpn とよこて @n0mimono です。noteの方に対談を掲載していますが、テックブログのほうでも記事を書いてみようと思います。社内外の多くの方に読んでいただければ幸いです。 note.com prtimes.jp CTOを交代しました! 今のCTOより こんにちは、ミラティブ3代目CTOの千吉良(ちぎら)です。プレスリリースにあるように2024年1月よりCTOに就任しました、よろしくお願いいたします。 夏さん、横手さんと組織の中でCTOの移り変わりを眺めていて自分がその立場になるとは夢にも思わず生活をしていた訳ですが、せっかく挑戦する機会をいただいたのでお話を受けさせていただくことにしました。 私は2018年の8月からミラティブに副業ではじめて関わり、そのまま同年12月にミラティブに入社しました。 note.com インタビューにも書いたと思

    ミラティブCTO交代の挨拶 - Mirrativ Tech Blog
    udzura
    udzura 2024/01/23
  • UnityチームでGodot勉強会をしました - Mirrativ Tech Blog

    こんにちは、ミラティブ菅谷です。ミラティブではUnityチームで定期的に勉強会を行っています。今回はその取り組みの一つとして行ったGodot勉強会について紹介します。Unityエンジニアから見たGodotの特徴や触ってみての感想を記載しました。 背景:Unityライセンス体系の変更 2023年9月、Unityはライセンス体系の変更を発表しました。この変更は、多くのUnityユーザーに影響を与え、さまざまなゲームエンジンに関する議論を促しました。ミラティブのUnityチームもこの動きに注目し、ゲームエンジンの多様化に関する議論を行いました。最終的にライセンス体系は再変更されたため、ミラティブでもUnityからの移行は見送りとなりましたが、この話題をきっかけに他のゲームエンジンへの理解を深めることでUnityの長所と短所をより明確に把握することが必要であるとの結論に至りました。 Godot選択

    UnityチームでGodot勉強会をしました - Mirrativ Tech Blog
    udzura
    udzura 2024/01/10
    Godot面白い
  • クラウドネイティブな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
    udzura
    udzura 2023/12/28
    書きました!
  • サービスの管理画面を継続的に改善するためのReact Hook FormとZod活用術 - Mirrativ Tech Blog

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

    サービスの管理画面を継続的に改善するためのReact Hook FormとZod活用術 - Mirrativ Tech Blog
    udzura
    udzura 2023/11/21
  • 【Go】time.Time.AddDateの注意点と対策 - Mirrativ Tech Blog

    こんにちは、バックエンドエンジニアの藤井脩紀です。 今回の記事では日付計算に潜む罠についてお話しさせていただきます。 なお今回はGoでの事例をご紹介しますが、原理的には他の言語やライブラリでも同様の事象が発生する可能性があります点にご注意ください。 time.Time.AddDateの注意点 突然ですがここでクイズです。 来月が何月か知りたいので以下のようなコードを書きました。 このコードを実行したのは10月だとします。 結果は何になるでしょう? // AddDateの引数は順に年、月、日でそれらの値を加算したtime.Timeを返してくれます fmt.Printf("%d月\n", time.Now().AddDate(0, 1, 0).Month()) 「え、11月でしょ?」と思う方もいらっしゃるかもしれませんが正確には異なります。 焦らさずに書きますが答えは「11月か12月のどちらか

    【Go】time.Time.AddDateの注意点と対策 - Mirrativ Tech Blog
    udzura
    udzura 2023/10/31
    ありがたいまとめ
  • 内製オブジェクトストレージサーバ「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
    udzura
    udzura 2023/10/20
    1get できていなかった... いろいろやってます
  • 【インフラ】xDS API の EDS に手を加えて動的に Envoy で weight 調整できるようにした - Mirrativ Tech Blog

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

    【インフラ】xDS API の EDS に手を加えて動的に Envoy で weight 調整できるようにした - Mirrativ Tech Blog
    udzura
    udzura 2023/10/06
    自動化最高という記事
  • あてっこ!ぷにまるずを支える技術紹介 〜モバイルWebGLの開発事例〜 - Mirrativ Tech Blog

    Unityエンジニアのいも(@adarapata)です。 みなさんはUnityでWebGLプラットフォーム開発していますか? ミラティブでは先日「あてっこ!ぷにまるず」というライブゲームをリリースしました。 これはモバイルブラウザで動くWebGLです。 PCブラウザ想定のWebGLは多くありますが、モバイルブラウザを想定したゲームはあまり多くはありません。 いざ開発しようとしてもそもそも動くのか?このライブラリは対応しているのか?要求水準は満たせるのか?といったさまざまな課題が待ち受けているでしょう。 エントリーでは、あてっこ!ぷにまるず(以下ぷにまるず)を実際にリリースするにあたって利用したライブラリの簡単な紹介や、ちょっと気をつけるポイントなどを紹介していきます。 個別の技術スタックに関する話は別途エントリを書いていくので、ここでは全体のサマリーと簡単な選定理由などに留めておきます。

    あてっこ!ぷにまるずを支える技術紹介 〜モバイルWebGLの開発事例〜 - Mirrativ Tech Blog
    udzura
    udzura 2023/07/26
    “みなさんはUnityでWebGLプラットフォーム開発していますか?” これは小林さんの影響を受けた僕の影響だな
  • 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
    udzura
    udzura 2023/06/08
  • 24年新卒から次の新卒に伝えたい、ミラティブに感じた技術的な面白さ - Mirrativ Tech Blog

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

    24年新卒から次の新卒に伝えたい、ミラティブに感じた技術的な面白さ - Mirrativ Tech Blog
    udzura
    udzura 2023/03/31
    実はインターン、新卒採用熱烈募集してます。インターンはフルリモOKです。フルリモOKです(大事なので二回)
  • CI/CD Conference 2023 に参加し、ミラティブのCI基盤移行について発表しました - Mirrativ Tech Blog

    インフラ・ストリーミングチームの @udzura です。 3月20日、私は日比谷国際ビルのコンファレンススクエアで開催されたCI/CD Conference 2023に参加しました。 event.cloudnativedays.jp このカンファレンスにてミラティブにおけるCI基盤の移行についての事例発表を行いました。それとともに、参加者として他社の事例を聞き、また会場でもいろいろな意見交換ができました。この記事で、簡単ですがレポートをさせていただきます。 なお、先日のブログの通り、ミラティブはCI/CD Conference 2023のロゴスポンサーでもあります。 ミラティブの発表「大規模レガシーテストを 倒すための CI基盤の作り方」について 私は現在ミラティブで行っているCI基盤のCloud Buildへの移行と、その際に向き合った課題と実践についてお話ししました。 詳細は発表資料と

    CI/CD Conference 2023 に参加し、ミラティブのCI基盤移行について発表しました - Mirrativ Tech Blog
    udzura
    udzura 2023/03/29
    参加ブログを書きました #CICD2023
  • MirrativにおけるUnityのWebGLを用いたライブゲームの仕組み - Mirrativ Tech Blog

    はじめに 2022年のCEDECで講演した内容の詳細について解説します。特に、UnityのWebGLを用いたライブゲームの仕組みに焦点を当てて紹介します。 tech.mirrativ.stream WebGL技術を活用したライブゲーム ライブゲームには、WebGLの技術が使用されています。UnityでWebGL向けにビルドを行い、MirrativアプリのWebView上で実行されています。 ライブゲームの例 Mirrativで遊べるWebGL製ライブゲームは増え続け、ゲームのクオリティも日々向上し、魅力的なものが次々と誕生しています。 Mirrativでリリースしている「みんにゃで!ねこメダル」です。メダル落としゲームがライブゲームとして遊べます。視聴者は自分のアイコンをひもづけて様々なアイテムを贈ることができるようになっており、メダル落としゲームに視聴者協力プレイが融合したライブゲーム

    MirrativにおけるUnityのWebGLを用いたライブゲームの仕組み - Mirrativ Tech Blog
    udzura
    udzura 2023/03/24
    大ネタです!よろしければ
  • 【ミラティブ】CI/CD Conference 2023 に登壇 & スポンサーとして協賛します - Mirrativ Tech Blog

    こんにちは、ミラティブの野呂です。 いよいよ来週開催される CI/CD Conference 2023 by CloudNative Days にて、ミラティブから近藤(@udzura)が登壇します。さらに、ミラティブもスポンサーとして協賛をさせていただきます! CI/CD Conference 2023については以下公式サイトをご覧ください。 https://event.cloudnativedays.jp/cicd2023 登壇内容 Track A 2023/03/20 12:20-13:00 大規模レガシーテストを倒すためのCI基盤の作り方 by Uchio Kondo 従来のCI基盤の課題を解決するためにどのような技術選定とアーキテクチャ設計をし、またいかにコスト等を最適化したかをお話しします。 また、CI基盤のベースとしてCloud Build、Cloud Functions、C

    【ミラティブ】CI/CD Conference 2023 に登壇 & スポンサーとして協賛します - Mirrativ Tech Blog
    udzura
    udzura 2023/03/17
    登壇について書いてもらいました! 月曜頑張るぞ(まず飛行機に遅れないところから…
  • 開発組織にはじめてのスクラムを導入する - Mirrativ Tech Blog

    こんにちは、エンジニアのちぎら @_naru_jpn です。ミラティブでは開発プロセス改善の一環として、スクラムフレームワークを試験的にひとつの開発チームに導入し、開発を行っています。該当する開発チームでは1週間のタイムボックスでスプリントをきり、導入開始から12スプリント(3ヶ月弱)をこなしてきました。チームのスクラム開発にも慣れが見えはじめ、当初想定していた開発プロセスの改善も実感が湧くようになってきました。今回は、スクラム導入の背景や内容、今後の展望などをご紹介します。 スクラム導入前の開発体制とモチベーション スクラム導入前の開発イメージ スクラム導入前の開発の流れは上図のようです。仕様書と工数の概算をもとにしてガントチャートにスケジュールがひかれ、フェーズごとに開発を進めていきます。もちろんすべて天下り式に開発を進めている訳ではなく、デザインがある程度できた時点でエンジニアも含め

    開発組織にはじめてのスクラムを導入する - Mirrativ Tech Blog
    udzura
    udzura 2022/12/23
    めちゃくちゃやってってます
  • Goのtestingパッケージにコミットした話 - Mirrativ Tech Blog

    Illustrated by egonelbre. The Go Gopher was designed by Renee French. こんにちは、バックエンドエンジニアの藤井脩紀です。 今回はGoにコントリビュートすることができたのでそのお話をさせていただきたいと思います! 概要 早速コミットの内容からですが、並列実行されるテストで環境変数を設定できなくするというものです。 コード的にはtestingパッケージのT.SetenvとT.Parallelを組み合わせて呼び出すとpanicを起こすようにするという変更になります。 (正確にはもとからそういった実装になっていたのですがカバーされていないケースがあったのでその対応をしました) testing: T.Setenv can be called after T.Parallel · Issue #55128 · golang/go ·

    Goのtestingパッケージにコミットした話 - Mirrativ Tech Blog
    udzura
    udzura 2022/12/22
    OSSへのコントリだ
  • 4ヶ月間のフロントエンドインターンで得られた学び - Mirrativ Tech Blog

    はじめまして!フロントエンドエンジニアのエンドー(@onikumaruBuu)です! 私は大学3年生で、普段は大学の友人と「学モバイルオーダーアプリ」の開発をしています。フロントエンドに興味があり、React / TypeScriptを勉強中です! 8月中旬からインターンとしてミラティブに入社し、フロントエンド開発業務を行ってきました。 記事ではフロントエンドとしてのミラティブでのインターンで身につけた知見を共有します。 目次 目次 ミラティブでのフロントエンド開発 担当したフロントエンド仕事 イベントLPのTailwind CSSへリプレイス なぜTailwind CSSに置き換える必要があるのか。 grid-templateの実用性 ちょっぴりバックエンド Goの厳格なCIテストとの戦い ミラティブのここがすごい! スゴ飯会 Unipos フルリモートでのインターン 終わりに W

    4ヶ月間のフロントエンドインターンで得られた学び - Mirrativ Tech Blog
    udzura
    udzura 2022/12/21
    onikumaruさんのフロントエンドの学びだ!
  • ミラティブのインターンで趣味開発と大規模開発のギャップを体験しました - Mirrativ Tech Blog

    皆さんこんにちは、earlgray(@earlgray329) と申します。 10月17日〜12月19日の期間で、株式会社ミラティブの就業型インターンシップに参加していました。私は基盤開発技術部のバックエンドチームに所属して様々なタスクに携わらせて頂きました。 インターンシップの中で、普段行なっている趣味開発と Mirrativ という規模の大きいアプリケーションの開発の間で様々なギャップを経験することができたので、今回はインターンの中で着手したタスクとそれによって得られた知見等を紹介します。 目次 目次 基盤開発技術部とは 着手したタスク 1. Mirrativ 管理画面のログイン画面の SPA(React) 化 背景・概要 苦労したこと・得られたこと 2. 任意のユーザとしてログインできるようなデバッグ機能の追加 背景・概要 フィードバック 3. エモカラのオススメのアーティスト一覧と

    ミラティブのインターンで趣味開発と大規模開発のギャップを体験しました - Mirrativ Tech Blog
    udzura
    udzura 2022/12/15
    ”苦労したこと・得られたこと” の学びが深い