2024.12.19
システムの穴を運用でカバーしようとしてミス多発… バグが大量発生、決算が合わない状態から業務効率化を実現するまで
Startup Architecture Of The Year 2019 #2-7 株式会社ジャストインケース(全1記事)
提供:アマゾン ウェブ サービス ジャパン株式会社
リンクをコピー
記事をブックマーク
小笠原寛明氏(以下、小笠原):今日は私たちが、こんまりさん(近藤麻理恵氏)みたいに、アーキテクチャでチームに魔法をかけた話をします。
まずjustInCaseという会社についてなんですけど、我々は保険会社です。
私たちのミッションは保険を使って社会をActiveにすることです。
誰でも必要な保険にいつでも入れるように、「保険API」というサービスを提供しています。
例えば、みなさんの管轄しているWebサービスに保険の加入のような機能を入れたいときに、たった数行コードを追加するだけで、このように保険の加入が実装できます。
ただ、私たちのバックエンドには深刻な問題がありました。ぜんぜんときめかないんです。どういうことか?
去年の夏に私がジョインした段階で、まず保険契約に関するコードは3つのリポジトリに分散していて、それらが相互に参照しあっているせいで、テストはデプロイしないと動かせない。
しかもCIのフローが整備されていなかったせいで、マスターのバージョンが本当にリソースとして反映されているのか、ぜんぜんわからない。
こんな調子だったので、キャッチアップにものすごく時間がかかり、結果、去年の秋にリリースする予定だった保険商品第2号は、リリースが無期限の延期となってしまっています。
小笠原:そこで私たちは、アーキテクチャを片づけることにしました。これが片づけたあとのアーキテクチャです。
私たちが片づけたポイントは2つ。「テストを書きたくなるアーキテクチャ」、それから「デプロイがしたくなるアーキテクチャ」です。
このアーキテクチャを書くためのアドバイスは、みなさんが知っているあの人からもらいました。誰でしょう? 正解は……ジェフ・ベゾスです。
ベゾスさんは2002年にこんなことを言ったことがあります。
「すべてのサービスはインターフェースを通して公開してください。さもないと、クビです」。
私たちはクビにされたくなかったので、まずこれまでの通信を見直しました。APIを経由していても、環境によって名前がぜんぜん違ったり、もしくは、APIを経由しないでコンテナを直接起動していたりしていました。
これを私たちはAWS Cloud Mapを使って片づけました。
どの環境でも、ローカルと同じようにHTTPで通信でき、しかも依存するとき、参照するときの名前も変わりません。
それから、認証も見直しました。テストのたびにログイン・ログアウトをしていたのでは、ぜんぜんテストを書きたくならないと思うんです。
私たちはAmazon API Gatewayのカスタムオーソライザーを使って、これを解決しました。Amazon ECSやAWS Lambdaを問わず、すべての外部からの通信はAmazon API Gatewayのカスタムオーソライザーでトークンを検証してから行っています。
だから、例えば私たちのAmazon ECSのソースコードには、アクセストークンを検証するような仕組みは一切入っていません。結果、ローカルでも認証なしですぐにテストができます。
小笠原:こうやって片づけたことによって、チームにも変化がありました。
まず、アプリケーションエンジニアを、年始からこの6月で新たに6名採用しました。しかもプルリクのマージまでの日数も、3日短縮できました。
それからデプロイも片づけました。これまでAWS CloudFormationで管理はしていたものの、どんな状態がデプロイされているのかまったくわからなかった。スタック間の依存性を大幅に見直したことによって、AWS CloudFormationをまるごとCIに乗せることができました。
よかったこととしては、タグをPushするだけで、AWS CloudFormationの使い方がわかっていないエンジニアでも、テスト環境にリソースをまるごとデプロイできるようになりました。これはデプロイしたくなりますよね。
実際、効果がありました。
例えば直近3ヶ月のCircle CIを見てみたところ、デプロイ回数が平均1日10回でした。
こうした片づけをしたことによって、私たちのチームに魔法がかかりました。
おさらいです。メンバーが半年で3倍になり、プルリクのマージ期間が3日短縮、デプロイの回数が1日10回以上。
これにより、1ヶ月あたりの機能開発の速度が12.5倍になりました。
私たちは本番環境に月91本のリリースをしています。しかも、既存のメンバーががんばったわけではなくて、新しくジョインしたメンバーがパフォーマンスを出してくれました。
振り返ります。私たちはアーキテクチャを片づけました。
そのおかげでメンバーがテストを書きたくなり、デプロイをしたくなりました。
結果として、チームをときめかせることができました!
(会場拍手)
以上、このアーキテクチャを作るにあたって、チームのみなさまとAWSの協力していただいていたみなさま、オーディエンスのみなさま、ありがとうございました。
司会者:小笠原さん、ありがとうございました。
(会場拍手)
では1分間のQ&Aにいきたいと思います。審査員のみなさん、なにかご質問がある方いらっしゃいますでしょうか?
大竹雅登氏(以下、大竹):ありがとうございます。エンジニアだったら、そうやって時間を投資して環境を整備することに合理性を見いだせると思うんですけど、これまでできていなかったということは、それに有意性を見出していない環境があったんじゃないかなと思います。ご自身はそれを推進していくために、どんな工夫をしたのかをお聞きしたいです。
小笠原:私はかなりいい時期にジョインしたと思っています。商品第1号のリリースはこれまで別の人間がやっていたんですけど、MVPを早く作らなければいけなかったということで、インフラや人に強く依存したコードになっていたのは仕方のないことかなと思っています。
私はチームがスケールしていくタイミングで入ったので、こうやってアーキテクチャを作り変えていくのは、ある意味で当然の流れだったのかなと理解をしています。
大竹:わかりました。ありがとうございます。
司会者:ありがとうございます。では、みなさま。小笠原さんにもう一度大きな拍手をお願いいたします。小笠原さん、ありがとうございました。
(会場拍手)
アマゾン ウェブ サービス ジャパン株式会社
関連タグ:
2024.12.20
日本の約10倍がん患者が殺到し、病院はキャパオーバー ジャパンハートが描く医療の未来と、カンボジアに新病院を作る理由
2024.12.19
12万通りの「資格の組み合わせ」の中で厳選された60の項目 532の資格を持つ林雄次氏の新刊『資格のかけ算』の見所
2024.12.16
32歳で成績最下位から1年でトップ営業になれた理由 売るテクニックよりも大事な「あり方」
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
PR | 2024.12.20
モンスター化したExcelが、ある日突然崩壊 昭和のガス工事会社を生まれ変わらせた、起死回生のノーコード活用術
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.18
「社長以外みんな儲かる給与設計」にした理由 経営者たちが語る、優秀な人材集め・会社を発展させるためのヒント
2024.12.17
面接で「後輩を指導できなさそう」と思われる人の伝え方 歳を重ねるほど重視される経験の「ノウハウ化」
2024.12.13
ファシリテーターは「しゃべらないほうがいい」理由 入山章栄氏が語る、心理的安全性の高い場を作るポイント
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
Climbers Startup JAPAN EXPO 2024 - 秋 -
2024.11.20 - 2024.11.21
『主体的なキャリア形成』を考える~資格のかけ算について〜
2024.12.07 - 2024.12.07
Startup CTO of the year 2024
2024.11.19 - 2024.11.19
社員の力を引き出す経営戦略〜ひとり一人が自ら成長する組織づくり〜
2024.11.20 - 2024.11.20
「確率思考」で未来を見通す 事業を成功に導く意思決定 ~エビデンス・ベースド・マーケティング思考の調査分析で事業に有効な予測手法とは~
2024.11.05 - 2024.11.05