shiguredo
Published in

shiguredo

時雨堂 2021 年振り返り

2021 年は無理をせず、できることをコツコツとやっていくをテーマに進めてきました。

自社製品料金体系変更

販売当初は「事例をくれたら定価、くれないなら少し高くなる」という方針をとっていましたが、「最初は定価、次の更新時に事例をくれたら安くする」へ切り替えました。

理由は単純で、そもそも買ったタイミングで事例を出すタイミングがいつなのかなんてわかりにくいためです。

社員考案の「更新時に事例をくれれば安くなります」というシンプルな仕組みに切り替えました。顧客にとっても自社にとってもわかりやすくなって良かったです。

End to End Encryption

リリースしてからは SSO + ACME などを調べたりプロトタイプを作ってみたりしていましたが、まだ過渡期ということもあり、いったん手を引いて遠くから見守る事にしました。MLS と SPacket あたりが落ち着いてくれれば手を出し始められるかな?という気持ちです。

Discord でコミュニティ

ありがたいことに参加者が 500 名を超え、さらに不定期開催のオンラインイベントにも 20 名ほどの方が参加してくれています。

バグ報告や質問にはコミュニティマネージャーを 2 名雇う事で万全の体制を取っています。社員では無く社外の方なので時間外労働とかを気にする必要がないのも大きいです。

時雨堂は匿名での技術コミュニティをとても大事にしており、継続して行ければと思います。

フルリモート体制継続

去年に引き続き従業員は全員フルリモートです。総務が数回出社した以外は出社しておりません。今後も落ち着くまではフルリモートを継続していきます。

自社 Sphinx テーマ作成

念願だった自社製品ドキュメントのオリジナルテーマを開発できました。読みやすくするテーマと言うことで、細かいところをいじったりしています。OSS として公開しているので、もし良ければどうぞ。

プロジェクトマネージャ採用

今まで担当していた自社製品 OSS のプロジェクトマネージメントの一部を mio_SAKUMA にバトンタッチしました。

自分の負担が大きかったのと、細かいところまで見切れずリリース遅延などが発生していたのが理由です。

Sora iOS とAndroid Sora SDK に関してはすべてお任せできており、今後は少しずつバトンタッチする範囲を広げて行ければと思います。

Sora iOS / Android / Unity SDK への投資

プロジェクトマネージャーの採用とあわせて、Sora iOS / Android SDK の開発を enm10k 手伝ってもらう事にしました。Sora Unity SDK は tori_kizimelpon に見てもらっています。

時雨堂ではクローズドソースのは社内のみで、オープンソースはできるだけ社外の人と一緒に行うという方針をとっています。

これはオープンソースの製品を社内に閉じてしまうと視野が狭くなってしまうと考えているからです。特にクローズド製品の SDK であれば、ユーザ視点が凄く重要になるため、社内に閉じない方が良いとしています。

今後も積極的に手伝ってもらえる人を探して行ければと思います。

Sora WebRTC DataChannel 対応

念願だった DataChannel の対応を Sora に組み込みました。今回も何かのライブラリに依存するとかはなく 1 からコードを開発しています。

最小限のコードで必要な分だけをと思っていたのですが、DataChannel は残念ながら最小限=すべて実装という内容で、大変でした。仕様が複雑極まりない中で、できるだけ簡単に使える事を重視して開発しました。

さらに現実世界で使うには必要な機能をプロトコル互換を持たせたまま拡張したりもしました。

シグナリング、メッセージングの両方で DataChannel を利用可能にできました。

Erlang VM JIT 対応

OTP 24 で Erlang VM が x86_64 の JIT に対応しました。AsmJit を利用したもので、最大 30% 程度の高速化が見込まれるとのことで、もちろん有効にして Sora に組み込んであります。

ちなみに Erlang Ecosystem Foundation と AsmJit の OSS スポンサーもして少しだけですが貢献をしています。

WebRTC SFU Sora 2021.1 リリース

DataChannel を利用したシグナリングに対応したり、クライアントのマシンリソースを減らすスポットライト機能を充実させたりと、小さな変更が山ほど入ったバージョンでした。

SaaS 提供準備

Sora の SaaS を実現したいと 2020 年から考えていたのですが、転送量課金のビジネスはやりたくなかったため色々悩んでいたところに Discord が利用している転送量無制限の DataPacket というサービスを見つけて、これだ!となり、準備をし始めることにしました。

最初は転送量無制限を売りにした SaaS を提供予定です。2022 年中夏までには公開できればと思います。

Sora リアルタイムメッセージング機能

WebRTC SFU といえば音声と映像のイメージですが、そこに DataChannel を利用したリアルタイムメッセージング機能を追加しました。

デフォルトで PubSub の仕組みになっており、DataChannel の Label が MQTT でいう Topic になっています。

メッセージングに手を出したかったのですが、需要があまりないのはわかっていたのですが、昨今の VR/XR 需要でメッセージングが欲しい!という声が聞こえてきたこともあり、提供することにしました。

Sora クラスター対応

そろそろ WebRTC でロードバランスしたり、耐障害性を高めたりというのが必要であろうということで、Sora クラスター機能の開発を 2021 年夏から始め Sora 2021.2 にて提供し始めました。

耐障害性とロードバランシングの両方の機能を追加でき、今後もクラスター機能の充実化を図っていきます。

顧客の運用負担をできるだけ減らす事を目指します。

OSS スポンサー

今年は多くの OSS スポンサーになりました。

  • Let’s Encrypt
  • OpenSSL
  • Erlang Ecosystem Foundation
  • Takeshi KOMIYA
  • Loïc Hoguin
  • Petr Kobalicek
  • Kyle Conroy
  • Ulf Wiger
  • Kenji Urushima

来年も多くの利益を出し、継続できればと思います。

統計エクスポーター対応

今までやりたかった一つである、クライアントから送られてきた統計データを TSDB (タイムシリーズデータベース) へ保存し解析をするというための、最初のステップとして、クライアントから統計データ DataChannel で受け取り HTTP/2 で統計コレクターサーバへ出力するという仕組みを実現しました。

この HTTP/2 を使って並列で出力するというのはかなり大きな前進でした。今後は統計情報だけで無く音声データなどもこの仕組みを使って出力できるようにしたいと考えています。

開発ツール提供

今まで Sora デモ機能として提供していたツールを UI を一新し、より Sora を利用したアプリを開発する際に Sora の挙動を確認したりするのが便利なツールへと変更しました。特にデバッグ機能としてのログ出力は相当便利で、Sora 開発者自体ががっつり使い込んでいます。

メディア処理

仮想背景やノイズ抑制といった前処理を行う仕組みをなんとか実現できないだろうかと考えていたところ、ちょうどいいタイミングで機械学習を経験している人が入社してくれたので任せることにしました。

この前処理は今後も凄く重要になってくると思い、OSS で公開しいろいろな方からのフィードバックをもらってうまく育てて行ければと思います。

RNNoise の WebAssembly SIMD 対応版などを公開しています。2022 年には気軽に npm install して使えるメディア処理ライブラリを提供予定です。

WebRTC SFU Sora 2021.2 リリース

DataChannel を利用したリアルタイムメッセージング、クラスター機能、セッション機能といったかゆいところに手が届く機能を盛りだくさん詰んでリリースできました。

まとめ

良い製品作りができていると感じます。売り上げも前期は今までで最高でした。だからといって激務で遅くまで働くということを従業員二すること無く、1 日 6 時間の定時労働、年の有給 20 日使い切るというのが実現できてよかったです。

来年もマイペースに無理をせずに良い製品を作り続け、提供できればと思います。

--

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
V

V

Erlang/OTP / 時雨堂 / WebRTC / E2EE

More from Medium

Attackers are abusing MSBuild to evade defenses and implant Cobalt Strike beacons

ERP: Where Does it Come From? Where should it go?

NBA News & Fantasy Basketball Notes 12/20

PR Intern Kaori Gets to Know: Eri in LA