見出し画像

テキストライブ開発記録 〜バージョン2のリリース前後〜

こんにちは。

執筆過程をライブ配信できるサービス TxTLive(テキストライブ)を運営している中の人です。

テキストライブって?

テキストライブは、よくある画面共有でのライブ配信でなく、サービス上のエディタで執筆してその文章をライブ配信する形の執筆に特化したライブ配信サービスです。

テキストライブは、よくある画面共有でのライブ配信でなく、サービス上のエディタで執筆してその文章をライブ配信する形の執筆に特化したライブ配信サービスです。

音声の配信がデフォルトオフなのでしゃべらずにまわりの環境に関わらず配信を行えたりします。

視聴者さんとはチャットコメントでやりとりします。

テキストライブをもっと詳しく知りたい方はこちらを読んでみてください。

いろいろあって考えていることなどを表に出していこうとなったのでいろいろ記事にして公開していくことしました。

この記事は、その第4弾。

作るきっかけと初期の考えについて書かれた第1弾はこちら!

いろいろの部分がもう少し詳しく書かれています。


今回はバージョン2のリリース前後について書いていきます。

バージョン2の開発

前回の最後に書きましたが、2019年9月30日にバージョン2の開発を始めました。

その時分、忙しかったのもあって進捗はゆったりとしたものでした。

ゆっくり考える時間を多くとって細かい箇所の仕様を詰めながら開発を進めていきました。

執筆時間や配信時間の計測をすることやその計測をどうやっておこなうかユーザーが計測を停止しなかったときの振る舞いなど細かい部分を悩みながら決めていったのを覚えています。

バージョン2では、サーバー側とブラウザ側とを分離できるような構成していました。

オンラインエディタという形にするのだったら将来的にアプリにできるような仕組みにしておきたいと考えてのことでした。

いまだアプリのアの文字も見えてきませんが。

また、サーバー周りが先にできていると何ができるか何を表示できるかが決まった状態になるので、

ブラウザ側のデザインや導線などを考えやすいだろうと思い、サーバー側の開発を優先的に進めていきました。

そんな形で開発をゆっくり進めていましたが事件が起こりました。

突然のバズり

バージョン1をリリースしてから少し経った頃に宣伝目的でnoteさんに投稿したサービス紹介記事が突然バズリました。

2019年7月26日投稿したものが2020年4月2日にバズりました。

こんなに投稿から時間が空いてもバズることがあるのか。

いやー、予想外でした。

バージョン2を作ろうとした理由に「保存データの取捨選択」がありました。

言い換えると、バージョン1の状態でたくさんの人に使われる状態になるとシステムとして破綻する状態だったわけです。

言わずもがな破綻しました。

サーバーの保存容量を凄まじい勢いで食い潰し、なおかつサーバー1台で耐えられるアクセス量を軽く超え、サーバーは沈黙しました。

いやー、ひどいものでした。

テキストライブに興味を持ってもらえたのに、まともに使える状態ではなかったです。

まともに使えるというかまともにページを開ける状態ではなかったです。

アクセス数だけならちょっと時間を置いてから触ってみてくださいと言えたのですがそうもいきませんでした。

最終的には、サーバーを一旦止めてサーバーの保存容量を増量する形で対応をしました。

これも容量を増やしただけなので一時的な対応に過ぎませんでした。

この際に使ってもらおうとしたユーザーに使えないサービスと認識を植え付けてしまったのが1番痛かったです。

この時に使おうとしてくださったユーザーで今も使ってくださっているユーザーは皆無ではないでしょうか。

一度、使えないと認識すると自分ではもう一度試そうと思わないでしょうから。

ここで学んだ教訓です。

  • 最初からしっかり作る

当たり前のことですが大事です。すごく大事。

サービスを運営している以上どこでどうなるかわかりません。

さて、そんなバズりを保存容量を増量する形で対応しましたが、このままサービスを続けていくには早急にデータの取捨選択をしないといけませんでした。

バージョン2への置き換えが急務になりました。

この時点での開発進捗は、サーバー側60%・ブラウザ側10%といったところでした。

ブラウザ側は、使う技術の選定が終わって開発する準備が整って少し進んだくらいの状態でした。

ページ構成やデザインなど考えられていない状態です。

サーバー側もやっておきたいテストなどが多い状態、なおかつ主機能がいくつかまだ作られていない状態でした。

そして、今回のバズりの負荷箇所を検証した結果、一部システムを分離しておく方がいいことがわかりました。

その部分の改修もありました。

ここから急ピッチで開発を進めていきました。

ブラウザ側はページ構成やデザインを深く考えるのをやめてバージョン1のデザインを踏襲しつつとりあえず見える形にするのを第一目標にして進めていきました。

その一方で、バズりが落ち着いてユーザーが離れてはいましたが、バズる前よりは使われている状態になっていたので保存容量が考えていたよりも早く消費されていきました。

バージョン2への移行

サーバー保存容量の関係でこれ以上遅れると新システムへの移行が困難になる状況になってしまったのがバズってから約1ヶ月半後のことでした。

その時の開発状況は、テストが不十分でいくらでも直したいところや考えたいところがある状態でしたが、どうにか動くものにはなっていました。

ここでバージョン2が完成するまでサービスを休止するかバージョン2移行後に不具合が起こるとしても今移行するかを決める必要がありました。

サービスの安定をとるなら一旦休止が1番です。

ただ、当時配信のみのバージョン1の状態でも少ないながらも毎日使おうとしてくださっているユーザーがいました。

また、サービスを停止するとテキストライブで書いた文章が見れなくなる状態になります。

その続きを書きたくても見れない状態になるのは避けたいと考えていました。

サービス休止中も今までに書いたものは見れる状態にしておくことを考えもしました。

また、バージョン2に移行するにしても現状のデータをバージョン2に合わせて変換する必要があり、

変換している間はサービスを止める必要がありました。

どこまでいったら完成とするか突き詰め始めれば終わらないとも考えました。

いろいろ悩んだ結果、バージョン2に移行することを決めました。

2020年5月18日から27日までサービスを停止してバージョン2への移行を行いました。

バズった時に不整合なデータが多々できてしまったいたのもあり、それに対応しながらデータ変換をおこなっていったので、当初は3日くらいで終わる予定でしたが最終的には1週間サービスを停止することになりました。

経過を見てメンテナンス延長を告知しなくてはいけなかった時は、申し訳ない気持ちでいっぱいでした。

バージョン2リリース

2020年5月27日にメンテナンスを終了してバージョン2をリリースしました。 

バージョン2をリリースしてからは、バグが出てくる出てくる。

それの調査・修正に追われながら別で謎にサーバーのメモリーを食い潰していく挙動に遭遇して地獄を見ることになりました。

処理が重たい部分見つけては対応策を考えて処理を変更する。

メモリーを使わないように処理を変更する。

いろいろ手を加えていくけどもメモリーを食い潰すのは一向に解決されない。

知り合いに聞いても特に問題なさそうだと言われ頭を抱えること数ヶ月。

原因がプログラム言語のバージョンだった時のこのなんとも言えない脱力感。

原因がわかった時、あーとなったのを今でも覚えています。

原因調査には幅広く関係があるところを網羅するようにしないと。

バグが多く出ていたのもあって自分が書いたプログラムの部分に問題があると思い込んでそこに時間をかけて調査を行っていました。

原因調査は固定観念を捨てるの大事。

バージョン2リリース前後で得た教訓。

  • 最初からしっかり作る

  • 原因調査は固定観念を捨てて行う

さいごに

さて、今回は以上になります。

バージョン2リリース前後の出来事を書きました。

問題だらけでした。

しっかり作るの大事と言いながらも結局はバグが多い状態でバージョン2をリリースすることになっているあたり学習していません。

開発に制限時間があったとしてもバグが多かったです。

次のバージョンでは学習した上で作っていきたいと思います。

バグが多発していたこの間に触ってくださったユーザーで今なお使ってくださっている人はいるのでしょうか。

ユーザーを逃してばかりです。

反省が止まりません。

最後まで読んでいただきありがとうございました。

次回も読んでいただければ嬉しいです。

また、テキストライブにちょっとでも興味が湧かれましたら、一度使ってみてください。

後、これを書こうとした際の執筆過程をテキストライブにて公開しています。

テキストライブがどんなものか知るのに丁度良いかと思いますのでみてみてください。

再生マークを押して少し待っていてもらえれば執筆過程が再生されますのでお試しください。


テキストライブ

テキストライブのTwitter
https://twitter.com/txtlive_net

中の人のTwitter
https://twitter.com/naname210

この記事が気に入ったらサポートをしてみませんか?