2016年09月27日
アプリケーションをSpringBootを使ってマイクロサービスを使ってみようとして失敗した話
おはようございます。
こちらは、雨がずーっと続いておりどんよりしています。
技術的には、Spring Bootを使って開発しています。要件からたてて作っているので色々と勉強になります。
アーキテクチャと設計がマッチしていなくて最初に見積もった工数よりオーバーしてしまっていて終わりが見えなくなりました。
これが社内案件じゃなかったら…とヒヤヒヤしています。
今はやりのマイクロサービスを使って、
・AD連携するOAuth認証サーバー
・RestなResourceサーバー
・Resourceのデータを扱うUIサーバー
この3本の構成で作り始めました。
DB設計を何も考えず正規化して作ってしばらく進めてしまいました。
データの更新をするために複数のテーブルをトランザクションで更新しなければならないのですが、UIからResourceのAPIを叩いてCRUDする仕組みなので、そもそもトランザクションで処理できるわけもなく。
仕方ないので、Resource側にトランザクションで処理するための実装をかくはめになり、実装コストが大幅に増えました。
これは、DB設計をこの仕様にあわせたものにしなければならなかったのです。
反省と題してDBの作り直しは一旦せずこのまま進めることにしました。
もっと色々と考慮できるようにならなきゃって言うのと、扱えるパーツを増やしていかなければならないなと思ったのでした。
こちらは、雨がずーっと続いておりどんよりしています。
技術的には、Spring Bootを使って開発しています。要件からたてて作っているので色々と勉強になります。
アーキテクチャと設計がマッチしていなくて最初に見積もった工数よりオーバーしてしまっていて終わりが見えなくなりました。
これが社内案件じゃなかったら…とヒヤヒヤしています。
今はやりのマイクロサービスを使って、
・AD連携するOAuth認証サーバー
・RestなResourceサーバー
・Resourceのデータを扱うUIサーバー
この3本の構成で作り始めました。
DB設計を何も考えず正規化して作ってしばらく進めてしまいました。
データの更新をするために複数のテーブルをトランザクションで更新しなければならないのですが、UIからResourceのAPIを叩いてCRUDする仕組みなので、そもそもトランザクションで処理できるわけもなく。
仕方ないので、Resource側にトランザクションで処理するための実装をかくはめになり、実装コストが大幅に増えました。
これは、DB設計をこの仕様にあわせたものにしなければならなかったのです。
反省と題してDBの作り直しは一旦せずこのまま進めることにしました。
もっと色々と考慮できるようにならなきゃって言うのと、扱えるパーツを増やしていかなければならないなと思ったのでした。