midonia415のブックマーク (882)

  • 【インフラ】 Envoy の導入と xDS API で Consul 連携やってみた話 - Mirrativ Tech Blog

    こんにちは ハタ です 今回はインフラ/基盤開発で導入している Envoy について紹介したいなと思っています 現在ミラティブでは Go移行 を進めているところで、 既存のWebアプリケーション(Perl で実装されてます)と、新たに Go で実装された Web アプリケーションをシームレスに導入/切り替えするために Envoy の導入を行いました Envoy xDSとConsul によるインスタンス管理 NGINX や HAProxy または Apache HTTP Server など使い慣れた && ノウハウもあるミドルウェアではなくなぜ Envoy を選定したかというと、 なんといっても魅力的なのが xDS と呼ばれる Discovery Service 群があることで柔軟に既存コンポーネントと連携を取りやすいことやAPI操作によるコントロールの柔軟性が高いことが決め手となっています

    【インフラ】 Envoy の導入と xDS API で Consul 連携やってみた話 - Mirrativ Tech Blog
  • Mirrativのコラボ通話&配信のクライアント/サーバー間の仕組みを徹底解説 - Mirrativ Tech Blog

    こんにちは。サーバーエンジニアのユンです。 今回Mirrativは「コラボ配信」という機能を開発しました。他の配信者(最大3人)と音声でつながり、視聴者とも同時にコミュニケーションを楽しむことができる機能です。 コラボ配信機能の紹介記事 | Mirrativ公式ブログ コラボ配信機能 現在のところ、一部の配信者さんにご利用いただき、さらなる機能改善を進めています。 もともと、Mirrativでは「コラボ通話」という配信者と視聴者が通話する機能があります。コラボ通話はWebRTCの機能を使っていて、iOS/Android側はlibwebrtcにパッチを当てたものを利用しています。またSTUN/TURNはTwilioを利用しています。 コラボ通話をしているときユーザーは配信者、コラボ通話者、視聴者の3種類に区別され、配信者とコラボ通話者はWebRTCで音声が双方向になり、お互いの声をWebRT

    Mirrativのコラボ通話&配信のクライアント/サーバー間の仕組みを徹底解説 - Mirrativ Tech Blog
  • 【Unity】MirrativのギフトとUnityを活用したリッチな演出の紹介 - Mirrativ Tech Blog

    こんにちは、Unityエンジニアの菅谷です。 今回はMirrativのギフト機能について紹介します。特にMirrativ内のアバター(エモモ)を利用したMirrativ特有のギフトについて解説します。 Mirrativのギフト ギフトは配信を盛り上げるための機能の一つで、視聴者がギフトを贈ることで配信者の画面に演出が表示されます。 代表的なギフト演出を仕組みごとに紹介します。 スタンプギフトやシンプルなアニメーションギフトでは、Lottieライブラリ(iOS/Android)を利用してギフトの画像をアニメーションさせています。 LottieはAfter Effectsから出力したJsonファイルをそのまま利用することができます。 スタンプギフトは画面上にアイコンやアニメーションを表示します。 ギフトは30種類以上あり、様々なシチュエーションに合わせて贈られています。 また、エモモと連動した

    【Unity】MirrativのギフトとUnityを活用したリッチな演出の紹介 - Mirrativ Tech Blog
  • 【Android】FlipperのCustomPluginを作成してデバッグ効率を改善する - Mirrativ Tech Blog

    Mirrativ Androidエンジニアのmorizoooです。MirrativではデバッグツールとしてFlipperを使っています。Flipperはモバイルアプリデバッグのためのデスクトップアプリケーションで、アプリ内のデータの整形や可視化を行うことができます。また、Flipperはネットワークの通信状況を確認するNetworkPluginなど、標準でいくつかの機能が用意されています。詳細についてはこちらをご覧ください。 tech.mirrativ.stream Flipperは標準機能だけでなく、独自のCustomPluginを作成することもできます。MirrativではCustomPluginを積極的に作成し、バグ調査や開発効率の改善に役立てています。一つ例を上げると、Mirrativではコメントやギフトの機能のために、WebSocketベースの独自のPubSubライブラリを使用し

    【Android】FlipperのCustomPluginを作成してデバッグ効率を改善する - Mirrativ Tech Blog
  • CSS Variablesを使ってWeb LP制作のエンジニア作業時間を0にした話 - Mirrativ Tech Blog

    こんにちは。Webフロントエンジニアの駒木です。 Mirrativでは毎週の様に運営主催イベントやゲーム会社様とのコラボ企画イベント等が開催されます。 そのイベント情報をユーザーへお伝えするメディアとして、イベント毎にWebページ いわゆる LP ( Landing Page ) を制作・公開しています。 Mirrativで公開している多種多様なLP ですが毎週の様に新しいイベントが企画・開催されますので、LPをエンジニアが都度制作していてはとても追いつきません。 そこでミラティブではCSS Variablesを活用することで、イベントの魅力が伝わるWeb LPをエンジニアが作業することなく制作・運用できる体制を構築しています。 記事ではここまでに至った過程も含めお伝えします! 目指すはイベント運用の効率化と専門性の排除 遡ること半年ほど前、イベント企画チームの目標として『より多くのイベ

    CSS Variablesを使ってWeb LP制作のエンジニア作業時間を0にした話 - Mirrativ Tech Blog
  • Goで開発した配信サーバーのメモリ使用量問題に向き合う - Mirrativ Tech Blog

    こんにちは。ストリーミングチームの松です。 Mirrativのストリーミングチームは、低遅延配信や、通知ぼかしというような機能を追加するため、配信のorigin serverの前段にtranscoder serverというものを導入してきました。 tech.mirrativ.stream tech.mirrativ.stream transcoder serverはGoによる内製のミドルウェアであり、主に映像の変換を行う目的で作られました。現在は配信プロトコルの変換(既存プロトコル -> 低遅延プロトコル)などを行っています。また、実際にはサーバー上のDockerコンテナ内で動作しています。 transcoder serverを展開していくにあたり、メモリ使用量が常に増え続ける問題が起きていたため、その際に直面したGoの実メモリ使用量に関する話を書きたいと思います。 メモリ使用量の増加問

    Goで開発した配信サーバーのメモリ使用量問題に向き合う - Mirrativ Tech Blog
  • 【インフラ】Mirrativのデータベースを最小限の影響で切り替える運用の紹介 - Mirrativ Tech Blog

    こんにちは、ミラティブのインフラを担当している清水です。 今回はミラティブのデータベースのマスタをどのようにフェイルオーバさせているかノウハウをお伝えしようかと思います。 ミラティブではデータベースにMySQLを利用しており、マスタ・スレーブ構成で冗長化しています。 マスタ・スレーブ構成の優れている点はデータをフルダンプすればデータベースを完全に複製でき、マルチマスタ構成で発生しうるデータ不整合を気にかけなくて良い点です。 データベースのクラスタリングには MySQL Cluster や GaleraCluster などもありますが、マスタ・スレーブ構成はストレージエンジンに依存せず素のMySQLで運用できるので、クラスタ固有の制約にハマったりせずシンプルに運用できるのも強みです。 ただし、マスタ・スレーブ構成の鬼門となるのがマスタのフェイルオーバです。 スレーブは参照のみリクエストを処理

    【インフラ】Mirrativのデータベースを最小限の影響で切り替える運用の紹介 - Mirrativ Tech Blog
  • 【Go】profefeでContinuous Profilingをやっていく話 - Mirrativ Tech Blog

    こんにちは、サーバーエンジニアの牧野です。 今回はGoで開発しているアプリケーションでContinuous Profilingを実践するために導入した profefe を紹介したいと思います。 Continuous Profilingとは Continuous Profilingとは、ざっくり言うと番環境で継続的にプロファイリングすることを指します。Continuous Profilingができると、番環境でのみ発生するパフォーマンスの問題を捉えることができたり、継続的にプロファイリングすることで問題が発生する前後の状態を比較することができます。 Goには pprof というプロファイリングのための標準パッケージがあり、プロファイリング自体は容易に行うことができますが、Continuous Profilingを実現するとなると、以下のような課題と向き合う必要があります。 番環境でオー

    【Go】profefeでContinuous Profilingをやっていく話 - Mirrativ Tech Blog
  • Mirrativ の Android アプリで使っているライブラリを紹介する! - Mirrativ Tech Blog

    こんにちは、Androidエンジニアのもりぞーです。今回は Mirrativ の Android アプリで使っているライブラリをご紹介します。 こちらの記事のAndroid版になります! tech.mirrativ.stream ライブラリ一覧 Google開発ライブラリ 公式ライブラリでありAndroid開発のスタンダードになっているので、Googleが提供しているライブラリは必要に応じて積極的に使うようにしています。 Android Jetpack Mirrativでは現状以下のライブラリを使っています。 "androidx.appcompat:appcompat" "androidx.annotation:annotation" "androidx.browser:browser" "androidx.cardview:cardview" "androidx.constraintla

    Mirrativ の Android アプリで使っているライブラリを紹介する! - Mirrativ Tech Blog
  • ミラティブのサーバサイドをGo + Clean Architectureに再設計した話 - Mirrativ Tech Blog

    こんにちは、テックリードの夏です。 今年4月にCTOからテックリードに肩書が変わり、ガリガリコードを書くようになりました。 背景については、こちらをご覧ください。 www.wantedly.com 普段はプロダクト側の機能開発と、サーバ側の基盤開発を半々ぐらいの割合で仕事しています。 一口にサーバ側の基盤開発といっても定義が曖昧なのですが、基的にはこんな感じのタスクをやっています。 インフラコストの最適化 不正なアクセスからの防御 障害の再発防止 新技術の導入やアーキテクチャの整備 今回はこのうち「新技術の導入やアーキテクチャの整備」の中で、サーバサイドをGo + Clean Architectureで再設計したことについてお話したいと思います。 背景 ミラティブは2015年春頃に開発が始まり、同年8月にサービスがリリースされ、2020年8月で5周年を迎えました。 その過程で組織やプロダ

    ミラティブのサーバサイドをGo + Clean Architectureに再設計した話 - Mirrativ Tech Blog
  • Mirrativ の iOS アプリで使っているライブラリを紹介する! - Mirrativ Tech Blog

    こんにちは、iOSエンジニアのちぎらです。今回は Mirrativ の iOS アプリで使っているライブラリをご紹介します。 Mirrativ ではどんなライブラリを使用していますか?と質問されることが時々あります。設定画面のライセンス情報に一覧で表示はされているものの、ライブラリ名だけでは用途が分かりにくいものもあるので、説明を添えて一覧で確認できるようにしようというのが今回の趣旨です。 ライブラリ管理には CocoaPods、Carthage を使用しています。最新のライブラリに追従できるように、一部のライブラリでは CI(Bitrise)上で定期的にバージョン更新のためのプルリクを作成しています。Swift Package Manager はまだ導入していませんが、タイミングを見て集約していけたらいいですね。 ライブラリ一覧 HTTP通信/ストリーミング Alamofire HTTP

    Mirrativ の iOS アプリで使っているライブラリを紹介する! - Mirrativ Tech Blog
  • 【Unity】MirrativのEmbedding Unityを更新した話: 実践 Unity as a Library - Mirrativ Tech Blog

    こんにちは皆様いかがお過ごしでしょうか、10ヶ月ぶりくらいのポストになります、よこてです。今日は「Mirrativ の Unity は進化してるんだぞ」という記事を書いていきます。 tech.mirrativ.stream Mirrativ は Swift/Kotlin によるネイティブアプリですが、3D/アバター部分は Unity で実現しています。いわゆる embedding unity で、 Unity 2018.3 からは Unity as a Library として公式サポートされています。前回記事で触れたように、Unity をネイティブアプリに組み込むこと自体は公式サポート以前にもできて、ミラティブでは Unity 2018.2(2018年8月頃)から使っています。 Mirrativ では今 Unity 2019.4 LTS を使っていて、8月から Mirrativ の機能とし

    【Unity】MirrativのEmbedding Unityを更新した話: 実践 Unity as a Library - Mirrativ Tech Blog
  • MirrativのiOSアプリリリースを支える自動化技術 - Mirrativ Tech Blog

    こん○○は。エンジニアのshogo4405です。普段は、ミラティブで開発しながら、余暇にOSSのHaishinKit*1をつくっています。 はじめに MirrativのiOSアプリは、git-flow で開発を行なっています。git-flow や日々の開発を運用する中で、次のような考慮すべきタイミングがありました。今回は、これらを自動化した際の話をコード付き*2で紹介します。 ライブラリーのアップデート releaseブランチ作成 tag付けの実施 releaseブランチのmasterへのマージとdevelopへのマージ なお、リリース頻度は、1週間に1回以上。毎週火曜日に通常版の申請を実施しています。手動で運用していた時には、文字通り、気を付け ながら運用していました。 週の業務の流れ MirrativのiOSチームの業務の流れと共に、曜日ベースで📝自動化した内容を紹介していきます。

    MirrativのiOSアプリリリースを支える自動化技術 - Mirrativ Tech Blog
  • 【iOS】ReactorKitの導入とアプリのFlux化 - Mirrativ Tech Blog

    こんにちは。 iOS エンジニアの千吉良(ちぎら)です。 今回は iOS アプリの設計をサポートするフレームワークとして ReactorKit を導入した話をします。 動機 Mirrativ の iOS アプリは元々「1ViewControllerあたり1Storyboard」という構成で作られていました。 ViewController内の実装に関しては特に実装方針を定めていませんでしたが、多くの方が実装に関わっていくにつれて、実装方針が決まっていないことは、新しく開発に参加される方の戸惑いや、特殊なケースに特化した独自の設計が導入されていく危険性につながるのではないかという懸念が出てきました。メインの課題はそれらの懸念を解消することなのですが、設計を決めるにあたって、いくつかの前提がありました。 機能開発を並行で進めたいので、部分的に適用できるものにしたい モデル層は型安全な形式に移行し

    【iOS】ReactorKitの導入とアプリのFlux化 - Mirrativ Tech Blog
    midonia415
    midonia415 2020/02/06
    👀
  • ミラティブにてクラロワAPIを利用したイベントをやってみた - Mirrativ Tech Blog

    こんにちわ。たてのです。最近ミラティブでクラッシュ・ロワイヤル(以降クラロワ)と連携したイベントを実施しました。このイベントをどのように実現したのかについてレポートします。 クラロワはAPIを公開しており、開発者サイトに登録すれば、ユーザ情報やバトル履歴などを取得することができます。 developer.clashroyale.com 他にもPUBG, CoD, FortniteなどのゲームタイトルはAPIを公開しており、 これらのAPIを使ったサービスやアプリによる独自のエコシステムが構築されています。 (2019年12月現在、クラロワ以外にモバイルプレイヤーの情報が取得できるのはFortniteだけのよう) ミラティブでは、たくさんの配信者さんがクラロワの配信をしています。そこでクラロワAPIを使って配信中のバトル結果などを利用することでユーザさんがより楽しみながら配信できるイベントを

    ミラティブにてクラロワAPIを利用したイベントをやってみた - Mirrativ Tech Blog
  • 【Unity】Mirrativのアバターがなんで動いているのか誰にもわからないので説明する - Mirrativ Tech Blog

    こんにちは、よこてです。Mirrativ のアバターUnity で動いているという話をします。Mirrativ は iOS/Android の ライブ配信アプリですが、機能の一つとしてエモモ(アバター)があります。 これは Unity で動いているのですが Mirrativ そのものはネイティブのモバイルアプリです。意味がわかりませんね。具体的には オレンジの部分がネイティブで実装されていて、青い部分がUnityで実装されています。わかりにくいですね。要するに 基的にはネイティブ実装されていて、アバターの部分だけがUnityで実装されています 。 このように Mirrativ は ネイティブ実装とUnity実装のハイブリッド構成 になっています。これは歴史的経緯があるのですが、Mirrativ はモバイルのライブ配信サービスとして開発され運用されてきました。最初はアバターという機能は

    【Unity】Mirrativのアバターがなんで動いているのか誰にもわからないので説明する - Mirrativ Tech Blog
  • 【MPTCP】ライブ配信の通信安定化に向けて MultiPath TCP を試験導入している話 - Mirrativ Tech Blog

    こんにちは ハタ です。 今回は Mirrativ の番サーバの一部に試験導入している MultiPath TCP (MPTCP) について紹介させていただきたいなと思います。 MultiPath TCP といえば、iOSの Siri で利用していることなどで一時有名になりました 今回紹介するMPTCPも同じ技術を使っており、通信の安定化に向けて取り組んでいる事項の紹介になります MPTCP の概要と各OSの実装について MPTCPのイメージ MultiPath TCP (以降 MPTCP)は、複数の経路を通じて同じホストに対して通信が行えるTCP拡張です。 従来のTCP通信では、単一の通信パスしか使えなかったものが、複数の通信パスを利用できるようになります。 例えばスマートフォンでは 4G 回線と WiFi ネットワークが用意されているため、それぞれから同一のコネクション張り、どちらか

    【MPTCP】ライブ配信の通信安定化に向けて MultiPath TCP を試験導入している話 - Mirrativ Tech Blog
  • Mirrativにおける低遅延配信への取り組みについて【開発中】 - Mirrativ Tech Blog

    こんにちは ハタ です。 Mirrativで開発中の低遅延配信機能について、ある程度形がまとまってきて、開発段階から品質チェック段階になりましたのでちょっとだけどんな感じになるか紹介させていただきたいなと思います。 なお、今回紹介するのは開発中のものからピックアップさせていただくので 実際にサービスにリリースされるものとは異なりますのでご留意お願いします。 言葉の定義 まず先に、世の中には「低遅延」という言葉の意味が沢山あるのですが 僕らのいう「低遅延」配信とはざっくり一言でいうと 「配信中の画面がインターネットを超えて視聴画面に見えるようになるまでの早さが短いもの」 としています。 つまり配信画面に映ってるものが視聴端末にすぐ(1秒未満)に再生されるようにする事が目標となっています。 配信した時刻にどれだけ近いか、を示す言葉として低遅延と呼んでいます まずはどんなものを作っているのか 開

    Mirrativにおける低遅延配信への取り組みについて【開発中】 - Mirrativ Tech Blog
  • ミラティブ「採用候補者さまへの手紙」/mirrativ letter

    採用広報の文脈でエンジニア向けのイベントをやることになった経緯とその教訓など / The experiences of tech events for recruiting

    ミラティブ「採用候補者さまへの手紙」/mirrativ letter
    midonia415
    midonia415 2019/02/20
    でました👏
  • あなたは、誰にでもなれる──Mirrativ、アバター作成から配信まで可能なVTuber新機能「エモモ」追加 

    ミラティブは1日、スマートフォン向け動画配信ツール「Mirrativ」の新機能として、ユーザーがアバターを操作しながら生放送できる「エモモ」β版を提供開始すると発表した。エモモの利用待ち登録をする、または15分以上の配信を7日間連続で行う「まいにち配信者」になることで使えるようになる。βテスト期間は8月中旬頃までの予定。利用料は無料。 アバターの作成、リップシンク(口の動きの同期)による操作、キャプチャーしたスマホ画面とアバターを合成しての配信と、スマホ1台とMirrativアプリだけでバーチャルYouTuber(VTuber)活動をカバーできるのが特徴だ。ソフトの主な機能に加えて、ミラティブ代表取締役の赤川隼一氏にインタビューできたので開発に込めた思いもまとめていこう。 必要十分に絞られた機能 ここ数ヵ月で立て続けに発表されているバーチャルYouTuber関連ツール。PC向けだけでもバー

    あなたは、誰にでもなれる──Mirrativ、アバター作成から配信まで可能なVTuber新機能「エモモ」追加