はじめに
2020アドベントカレンダー 21日目です!
まず、はじめに
「フクロトジ」というサービスはご存知ですか?
フクロトジはクリエイターは秘密の写真・映像・音声を有料で公開、ユーザは**”袋とじ”の感覚で楽しむ**ことのできる18禁SNSで、2020年6月末にリリースしました!
2020年12月に入り、ユーザ総数50000人を突破した、今勢いのあるサービスです!
ぜひ「覗き」にきてください!(スマートフォンのみアクセスが可能です)
↓↓↓
フクロトジトップへ!
↑↑↑
私はサービス提供元の株式会社ハイボールでフクロトジの開発にエンジニアとして携わっています。
タイトル「フクロトジの高可用性のヒミツ」
この記事ではフクロトジの可用性について触れます。
読者対象
・フクロトジユーザで、開発者が具体的にどんな対応しているのか気になる方
・フクロトジのサーバが落ちないか気になる方
可用性(Availability)とは
システムが停止することなく稼働し続ける能力を意味し、稼働率として表せます。
例として、必ず90時間に一度障害が発生して停止するシステムがあって、障害の発生の度にシステム再稼働に10時間を要するならば、このシステムは100時間で90時間しか稼働しないため、可用性(=稼働率)は90%です。
**フクロトジではこの可用性がほぼ100%**で、サーバがダウンし、アクセスできなくなったことはないです!(外部のサーバーを利用する決済やログインの機能が一時的に利用できなくなったため”ほぼ”の表記になります)
この可用性に起因するものは何か
フクロトジのほぼ100%可用性を担保するものは一体何なのか?
1. インフラの対応
サーバのアクセス数が増加してもそれに耐えうるような負荷分散の構成になっており、またシステムの再稼働に大幅な時間を要しません。
2. コードの完全性・テストの充実
機能開発をしたエンジニアがコード自体の完全性を担保すべくテストコードの実装や、デプロイ前の確認などを入念に行っています。
3. CSチームによる確認
デプロイにおける最終確認として、開発された機能が要件にあっているかを多重に確認して万一でもエラーがしないよう努めています。
可用性に加えて、ユーザビリティの向上の施策
・画像のアップロードをバックグラウンド処理化し、ロード画面の待機時間を削減
・画像の表示にかかる時間を画像サイズの軽量化と、キャッシュの機能を利用することで削減
・アイコンによる操作のガイドや、購入画像のフクロトジを開封するときのアニメーションなどの楽しめる要素
以上のようにただ”どの時間でも利用できる”だけでなく、”利用することの心地よさ”にも追求しています。
まとめ
**『アクセス急増によりサーバがダウンした!』**といった現象が起こるくらいにユーザがさらに増えることを期待して🙌