Findy Tools
開発ツールのレビューサイト

Gyazoのシステムアーキテクチャ

Xのツイートボタン
このエントリーをはてなブックマークに追加
Xのツイートボタン
このエントリーをはてなブックマークに追加

Gyazoのシステムアーキテクチャ

最終更新日 投稿日
gyazo_architecture.jpg

アーキテクチャの工夫ポイント

Gyazoでは、DevOpsの観点から、システム全体のオートスケールやCI/CD効率化のためにGKEを採用しています。開発者がGitHubでリリースPull Requestをマージすると、Cloud Buildがコンテナをビルドし、GKEのアプリケーションコンテナを最新のリリースに置き換えてエンドユーザーにデプロイするというCDパイプラインが構築できています。

また、Ruby on RailsのみではなくGolangを使っている背景としては、Golangは単一バイナリにコンパイルされるため、軽量かつ高速であり、また、画像や動画などのバイナリ処理においても優れたパフォーマンスを発揮するためです。ユーザーの画像閲覧や画像アップロードといったスピードが命の部分や、画像の加工、動画の加工といったポイントに限って、Golangを採用しています。

他にも転送量が大きくなった場合のコストを抑えるために、Google Cloud CDNではなくCloudflare CDNを使っていたり、Gyazoの規模のデータベースに対応するために、MongoDB Atlasではなく自前でMongoDBをホスティングしていたり、以前は自前でElasticsearchクラスタをホスティングしていたものを、Elastic Cloudのフルマネージドサービスに移行したりと工夫をしています。

現在のアーキテクチャの課題と今後の改善予定

今後は、GKEのみではなくGoogle Cloud Runも検討したいと考えています。また、MongoDB Atlasが性能改善していればMongoDB Atlasに移行する可能性もあります。

改善方針としては、システムアーキテクチャを改善したり洗練させること自体が目的なのではなく、CI/CDを含めて安定したインフラによって、チームの開発リソースを、お客様の役に立つ価値あるソフトウェアを素早く生み出して素早く届けるという本質に集中できるような状態を維持向上することを目的として、取り組んでいきたいと思っています。


◆執筆:松村 結衣 株式会社Helpfeel 開発部 Gyazo開発チーム

【サービス公式サイト】
https://gyazo.com/ja

アーキテクチャを構成するツール

Cloudflare

CDN

Cloudflare

Cloud Storage

インフラ

Cloud Storage

Cloud Build

CI/CD

Cloud Build

CircleCI

CI/CD

CircleCI

会社情報

株式会社Helpfeel

株式会社Helpfeel

テクノロジーの発明により、人の可能性を拡張する人の好奇心は無限大であり、テクノロジーの可能性も無限に広がっています。私たちは人にとってスムーズで頼もしい両者の関係を設計することで⼈間の思考とコミュニケーションを加速します。