DevelopersIO 2024 FUKUOKA Day2にて「Google Cloudでプロダクト開発するZennの例」をテーマとして登壇しました #devio2024 #クラスメソッド福岡
こんにちは。Zennチームの和田です。2024年はクラスメソッド設立20周年イベントということで、Classmethod Odysseyが開催されます。先陣を切るのは福岡。6月28日(金)のDay1と、6月29日(土)のDay2、2days開催です。私は Day2 で「Google Cloud でプロダクト開発事業として成長させる Zennの例」というテーマで登壇しました。
現地登壇って、いいよね…
オフラインならではの熱気、リアクション、リアルタイムなやりとり、運営の方々のプロフェッショナルな連携…最高です。
同じ会場で開催されていたベイブレードの大会がきになる。
登壇資料
直前のセッションが Google Cloud Japan 大沼翔様のセッションで、キャリアとプロダクト開発の勘所について、ご自身の体験を交えながら共有してくださいました。バトンを受けたわたしは、ZennがGoogle Cloudをどう活用しているか、プロダクト開発をどのように進めているか、例を交えてお話させていただきました。
あゆみ
これまでもさまざまなメディアで展開されていますが、Zennはもともとcatnoseさんが個人プロジェクトとしてリリースしたWebアプリです。現在は、クラスメソッドのZennチームがメインで開発・運用を行っています。
Zennのアーキテクチャ
ZennのAPIはRuby on Railsで実装されており、初期リリース時点でApp Engineへデプロイしていました、その名残もありGoogle Cloudを使い続けています。App Engine をCloud Runへ移行し、スケーラブルな環境で稼働できています。
Cloud Build でデプロイする例
Google Cloud でどんなことをやっているかの例のひとつです。GitHubのmainブランチへマージされると、Cloud Buildが起動し、Cloud Run の新しいリビジョンを作成します。最後の、新しいリビジョンへトラフィックを流す部分は人間が行っています。
Cloud Tasks でオフロードする例
Cloud Tasks は、任意のパラメータをタスクキューに詰め、その実行流量を制御できるオフロード用のサービスです。ZennではMarkdownをHTMLへ一括変換する処理で活用しています。
Google Cloud まとめ
- 開発者にとって絶妙な抽象度で事業に集中できる
- ワークロードに対してベストプラクティスに沿えば困ることは少ない
- 迷ったら Cloud Run と Cloud SQL 中心でOK
総じて、開発者がビジネスに集中できるよう設計されているというのが、私が好きなポイントです。
統計ダッシュボードを改善した流れ
Zenn の Publication Pro で提供している機能のひとつに、統計ダッシュボードがあります。先日リニューアルリリースしたのですが、その際、実際に使っていただいている方のフィードバックを大いに参考にさせていただきました。
要望から課題を探る
ヒアリングのなかで、要望を聞くだけでなく、課題を深堀りすることを意識した結果、「統計情報を個人のふりかえりに使いたい」という共通課題が抽出できました。結果、ありがたい反響をいただいています。これを繰り返して、Publication Pro は、企業の皆様の大きな課題を解決することを目指しています。
さいごに Zenn Community で意見交換しましょう
Zenn Community はオープンなGitHubリポジトリです。ここのISSUEで要望や不具合のやりとりを行っています。気になったISSUEなどに、リアクション❤️をいただけると嬉しいです!