こんにちは、開発の佐藤鉄平 (@teppeis) です。
先日、社外講師としてビズリーチの竹添直樹さん (@takezoen) をお招きして、マイクロサービスをテーマにサイボウズの社内勉強会を開催しました。
どうしてこうなった?
ビズリーチさんでは毎週金曜に勉強会を行っているらしく、ひょんなことからその社外ゲスト講師として私にお声がかかり、8月のビズリーチ社内勉強会でES6勉強会をやらせてもらいました。
やられたらやりかえす!ということで、今度は逆に竹添さんにサイボウズの社内勉強会のゲスト講師をオファーしたところ、こころよく引き受けていただいた、というのが開催の経緯です。
マイクロサービス、本当においしいの?
ちょうどサイボウズ社内では「マイクロサービス」がホットなキーワードになっていました。
サイボウズ初のクラウドサービス cybozu.com の立ち上げから5年が経過し、契約社数は12,000社以上に成長した一方で、当初の設計にいくつかひずみが見られるようになりました。
- コードの肥大化
- コード変更による影響範囲が広がり
- サービス間の依存とデプロイ手順の複雑化
- サービスのリリースタイミングが他サービスとの調整により制限される
などなど、大規模化したサービスに典型的な問題点が表面化してきました。
そんな背景で、今年サイボウズでは開発チームとインフラチームの合同で現行アーキテクチャを刷新するプロジェクトをスタートしました。 その一環として、世を騒がしているマイクロサービスとは何なのか? 何を解決するのか? デメリットは何か? cybozu.com にとりいれるべき点はあるか? などをちょうど議論しているところで、今回の竹添さんの勉強会が開かれました。
知見が山盛り!
竹添さんの講演内容は、こちらの発表をベースに、求人検索エンジン「スタンバイ」の開発運用経験から得られた最新の知見を加えて大幅アップデートしていただいたものでした。
- ライブラリとサービスどちらを選択するか?
- メッセージフォーマットに何を使うか?JSONで良い?
- 同期?非同期?
- APIのバージョニングどうする?
- トランザクションどうする?
- 組織、チームはどういう構成で開発する?
- Scalaやりましょう!
- 性能どうなの?
- 障害起きたらどうなるの?
- モニタリングどうするの?
- 結局やってよかった?
- Scalaやりましょう!
などなど、論点になりがちなポイントについて、具体的かつ参考になる様々な知見を共有していただきました。 特に技術面だけでなく組織面についても多く触れられていて、そういう経験しなければ分からない部分についてお聞きできたのはありがたかったです。
マイクロサービスについて、以前スマートニュースさんで開催された実践Scala勉強会でお話しさせていただいたときは全然意識していなかったんだけど、継続的に運用してきて得た技術面だけでなく組織面での気付きを自分の中で整理するよい機会になった。
— Naoki Takezoe (@takezoen) 2015, 10月 29
講演終了後の質疑でも、マイクの前に行列ができるほど盛り上がりました。
最後は竹添さんに「We are hiring!」をお返しされましたが、サイボウズでも積極採用しておりますので何卒よろしくお願いします!
クローズドな勉強会だとある程度踏み込んだ生々しい話もできるので、パブリックな勉強会とは違った良さがありますね。 このような勉強会での交流にご興味のある企業さん、ぜひ @teppeis までお声がけください。