# 内製チャットサービスの開発/運用
2015~2020
https://techblog.yahoo.co.jp/advent-calendar-2018/goodbye-mym/
https://techblog.yahoo.co.jp/advent-calendar-2018/thankyou-mym/
常時接続数1~2万ほどのWebSocketベースのチャットシステム開発、運用。
2人の開発者でフロントエンド/バックエンドをともに担当。
# 社内の効率化を行うための内製社内システムの開発
2013~2018
企画、フレームワークの導入、API作成、マイクロサービス化、システムのSPA化、Nginxの導入、フロントエンドビルドツールの導入、chef導入、負荷対策、CI/CDの導入、デザインの落とし込みや反映など。
プロジェクトに関わる技術者のレベルや分野がばらばらで、プロダクトを全体的に俯瞰し将来的に拡張可能な技術や設計を選定する人材が不足していた。
将来的な拡張性と現実的な開発速度と実行速度を視野に入れた設計を重視。
マイクロサービスを常に正とせず、将来的に分割可能な設計を目指すが、初期は基本的にモノリシックに設計し、開発速度と実行速度の両立を優先。
フロントエンドにはAngularを採用。会社としてシステムを作る以上ある程度の期間運用することを見越す必要があるため、Reactなど他のライブラリを利用しなければならないフレームワークよりフルスタックのフレームワークを優先的に採用しています。
また、引き継ぎを楽にするためにもフロントエンドとバックエンド両方同じような知識でかけるようにするためNode.jsによるバックエンドの実装を採用しています。
また担当者がいなくなって環境が再構築できなくなることを防ぐため、chefを使ったプロビジョニングのレシピを残しておき、fabricのコマンドでさらにラッピングすることでサーバを1台用意すればコマンドをコピーするだけで環境が再構築可能になるようなシステム構成を作っています。
一部の成果はブログに記事として投稿し、外部からも参考にできるよう努めています。